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_core::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_core::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_core::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_core::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_core::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_core::link!("mapi32" "system" fn DeinitMapiUtil());
118 unsafe { DeinitMapiUtil() }
119}
120#[inline]
121pub unsafe fn DeregisterIdleRoutine(ftg: *mut core::ffi::c_void) {
122 windows_core::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_core::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_core::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_core::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_core::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_core::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_core::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_core::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_core::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_core::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_core::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_core::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_core::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_core::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_core::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_core::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_core::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_core::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_core::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_core::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_core::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_core::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_core::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_core::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_core::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_core::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_core::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_core::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_core::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_core::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_core::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_core::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_core::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_core::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_core::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_core::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_core::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_core::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_core::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_core::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_core::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_core::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_core::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_core::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_core::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_core::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_core::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_core::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_core::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_core::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_core::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_core::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_core::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_core::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_core::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_core::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_core::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_core::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_core::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_core::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_core::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_core::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_core::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_core::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_core::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_core::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_core::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_core::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_core::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_core::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_core::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_core::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_core::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_core::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_core::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_core::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_core::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_core::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_core::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_core::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_core::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_core::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_core::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_core::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_core::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_core::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_core::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_core::link!("olmapi32" "C" 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_core::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_core::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_core::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_core::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 OpenStreamOnFileW<P3, P4>(
1471 lpallocatebuffer: LPALLOCATEBUFFER,
1472 lpfreebuffer: LPFREEBUFFER,
1473 ulflags: u32,
1474 lpszfilename: P3,
1475 lpszprefix: P4,
1476) -> windows_core::Result<windows::Win32::System::Com::IStream>
1477where
1478 P3: windows_core::Param<windows_core::PCWSTR>,
1479 P4: windows_core::Param<windows_core::PCWSTR>,
1480{
1481 windows_core::link!("olmapi32" "system" fn OpenStreamOnFileW(lpallocatebuffer : LPALLOCATEBUFFER, lpfreebuffer : LPFREEBUFFER, ulflags : u32, lpszfilename : windows_core::PCWSTR, lpszprefix : windows_core::PCWSTR, lppstream : *mut * mut core::ffi::c_void) -> windows_core::HRESULT);
1482 unsafe {
1483 let mut result__ = core::mem::zeroed();
1484 OpenStreamOnFileW(
1485 lpallocatebuffer,
1486 lpfreebuffer,
1487 ulflags,
1488 lpszfilename.param().abi(),
1489 lpszprefix.param().abi(),
1490 &mut result__,
1491 )
1492 .and_then(|| windows_core::Type::from_abi(result__))
1493 }
1494}
1495#[inline]
1496pub unsafe fn PpropFindProp(
1497 lpproparray: *mut SPropValue,
1498 cvalues: u32,
1499 ulproptag: u32,
1500) -> *mut SPropValue {
1501 windows_core::link!("mapi32" "system" fn PpropFindProp(lpproparray : *mut SPropValue, cvalues : u32, ulproptag : u32) -> *mut SPropValue);
1502 unsafe { PpropFindProp(lpproparray as _, cvalues, ulproptag) }
1503}
1504#[inline]
1505pub unsafe fn PropCopyMore(
1506 lpspropvaluedest: *mut SPropValue,
1507 lpspropvaluesrc: *mut SPropValue,
1508 lpfallocmore: LPALLOCATEMORE,
1509 lpvobject: *mut core::ffi::c_void,
1510) -> i32 {
1511 windows_core::link!("mapi32" "system" fn PropCopyMore(lpspropvaluedest : *mut SPropValue, lpspropvaluesrc : *mut SPropValue, lpfallocmore : LPALLOCATEMORE, lpvobject : *mut core::ffi::c_void) -> i32);
1512 unsafe {
1513 PropCopyMore(
1514 lpspropvaluedest as _,
1515 lpspropvaluesrc as _,
1516 lpfallocmore,
1517 lpvobject as _,
1518 )
1519 }
1520}
1521#[inline]
1522pub unsafe fn RTFSync<P0>(lpmessage: P0, ulflags: u32) -> windows_core::Result<windows_core::BOOL>
1523where
1524 P0: windows_core::Param<IMessage>,
1525{
1526 windows_core::link!("mapi32" "system" fn RTFSync(lpmessage : * mut core::ffi::c_void, ulflags : u32, lpfmessageupdated : *mut windows_core::BOOL) -> windows_core::HRESULT);
1527 unsafe {
1528 let mut result__ = core::mem::zeroed();
1529 RTFSync(lpmessage.param().abi(), ulflags, &mut result__).map(|| result__)
1530 }
1531}
1532#[inline]
1533pub unsafe fn ScBinFromHexBounded(lpsz: *const i8, lpb: *mut u8, cb: u32) -> i32 {
1534 windows_core::link!("mapi32" "system" fn ScBinFromHexBounded(lpsz : *const i8, lpb : *mut u8, cb : u32) -> i32);
1535 unsafe { ScBinFromHexBounded(lpsz, lpb as _, cb) }
1536}
1537#[inline]
1538pub unsafe fn ScCopyNotifications(
1539 cnotification: i32,
1540 lpnotifications: *mut NOTIFICATION,
1541 lpvdst: *mut core::ffi::c_void,
1542 lpcb: *mut u32,
1543) -> i32 {
1544 windows_core::link!("mapi32" "system" fn ScCopyNotifications(cnotification : i32, lpnotifications : *mut NOTIFICATION, lpvdst : *mut core::ffi::c_void, lpcb : *mut u32) -> i32);
1545 unsafe { ScCopyNotifications(cnotification, lpnotifications as _, lpvdst as _, lpcb as _) }
1546}
1547#[inline]
1548pub unsafe fn ScCopyProps(
1549 cvalues: i32,
1550 lpproparray: *mut SPropValue,
1551 lpvdst: *mut core::ffi::c_void,
1552 lpcb: *mut u32,
1553) -> i32 {
1554 windows_core::link!("mapi32" "system" fn ScCopyProps(cvalues : i32, lpproparray : *mut SPropValue, lpvdst : *mut core::ffi::c_void, lpcb : *mut u32) -> i32);
1555 unsafe { ScCopyProps(cvalues, lpproparray as _, lpvdst as _, lpcb as _) }
1556}
1557#[inline]
1558pub unsafe fn ScCountNotifications(
1559 cnotifications: i32,
1560 lpnotifications: *mut NOTIFICATION,
1561 lpcb: *mut u32,
1562) -> i32 {
1563 windows_core::link!("mapi32" "system" fn ScCountNotifications(cnotifications : i32, lpnotifications : *mut NOTIFICATION, lpcb : *mut u32) -> i32);
1564 unsafe { ScCountNotifications(cnotifications, lpnotifications as _, lpcb as _) }
1565}
1566#[inline]
1567pub unsafe fn ScCountProps(cvalues: i32, lpproparray: *mut SPropValue, lpcb: *mut u32) -> i32 {
1568 windows_core::link!("mapi32" "system" fn ScCountProps(cvalues : i32, lpproparray : *mut SPropValue, lpcb : *mut u32) -> i32);
1569 unsafe { ScCountProps(cvalues, lpproparray as _, lpcb as _) }
1570}
1571#[inline]
1572pub unsafe fn ScCreateConversationIndex(
1573 cbparent: u32,
1574 lpbparent: *mut u8,
1575 lpcbconvindex: *mut u32,
1576 lppbconvindex: *mut *mut u8,
1577) -> i32 {
1578 windows_core::link!("mapi32" "system" fn ScCreateConversationIndex(cbparent : u32, lpbparent : *mut u8, lpcbconvindex : *mut u32, lppbconvindex : *mut *mut u8) -> i32);
1579 unsafe {
1580 ScCreateConversationIndex(
1581 cbparent,
1582 lpbparent as _,
1583 lpcbconvindex as _,
1584 lppbconvindex as _,
1585 )
1586 }
1587}
1588#[inline]
1589pub unsafe fn ScDupPropset(
1590 cvalues: i32,
1591 lpproparray: *mut SPropValue,
1592 lpallocatebuffer: LPALLOCATEBUFFER,
1593 lppproparray: *mut *mut SPropValue,
1594) -> i32 {
1595 windows_core::link!("mapi32" "system" fn ScDupPropset(cvalues : i32, lpproparray : *mut SPropValue, lpallocatebuffer : LPALLOCATEBUFFER, lppproparray : *mut *mut SPropValue) -> i32);
1596 unsafe {
1597 ScDupPropset(
1598 cvalues,
1599 lpproparray as _,
1600 lpallocatebuffer,
1601 lppproparray as _,
1602 )
1603 }
1604}
1605#[inline]
1606pub unsafe fn ScInitMapiUtil(ulflags: u32) -> i32 {
1607 windows_core::link!("mapi32" "system" fn ScInitMapiUtil(ulflags : u32) -> i32);
1608 unsafe { ScInitMapiUtil(ulflags) }
1609}
1610#[inline]
1611pub unsafe fn ScLocalPathFromUNC<P0, P1>(lpszunc: P0, lpszlocal: P1, cchlocal: u32) -> i32
1612where
1613 P0: windows_core::Param<windows_core::PCSTR>,
1614 P1: windows_core::Param<windows_core::PCSTR>,
1615{
1616 windows_core::link!("mapi32" "system" fn ScLocalPathFromUNC(lpszunc : windows_core::PCSTR, lpszlocal : windows_core::PCSTR, cchlocal : u32) -> i32);
1617 unsafe { ScLocalPathFromUNC(lpszunc.param().abi(), lpszlocal.param().abi(), cchlocal) }
1618}
1619#[inline]
1620pub unsafe fn ScMAPIXFromSMAPI(
1621 lhsimplesession: usize,
1622 ulflags: u32,
1623 lpinterface: *mut windows_core::GUID,
1624 lppmapisession: *mut Option<IMAPISession>,
1625) -> i32 {
1626 windows_core::link!("mapi32" "system" fn ScMAPIXFromSMAPI(lhsimplesession : usize, ulflags : u32, lpinterface : *mut windows_core::GUID, lppmapisession : *mut * mut core::ffi::c_void) -> i32);
1627 unsafe {
1628 ScMAPIXFromSMAPI(
1629 lhsimplesession,
1630 ulflags,
1631 lpinterface as _,
1632 core::mem::transmute(lppmapisession),
1633 )
1634 }
1635}
1636#[inline]
1637pub unsafe fn ScRelocNotifications(
1638 cnotification: i32,
1639 lpnotifications: *mut NOTIFICATION,
1640 lpvbaseold: *mut core::ffi::c_void,
1641 lpvbasenew: *mut core::ffi::c_void,
1642 lpcb: *mut u32,
1643) -> i32 {
1644 windows_core::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);
1645 unsafe {
1646 ScRelocNotifications(
1647 cnotification,
1648 lpnotifications as _,
1649 lpvbaseold as _,
1650 lpvbasenew as _,
1651 lpcb as _,
1652 )
1653 }
1654}
1655#[inline]
1656pub unsafe fn ScRelocProps(
1657 cvalues: i32,
1658 lpproparray: *mut SPropValue,
1659 lpvbaseold: *mut core::ffi::c_void,
1660 lpvbasenew: *mut core::ffi::c_void,
1661 lpcb: *mut u32,
1662) -> i32 {
1663 windows_core::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);
1664 unsafe {
1665 ScRelocProps(
1666 cvalues,
1667 lpproparray as _,
1668 lpvbaseold as _,
1669 lpvbasenew as _,
1670 lpcb as _,
1671 )
1672 }
1673}
1674#[inline]
1675pub unsafe fn ScUNCFromLocalPath<P0, P1>(lpszlocal: P0, lpszunc: P1, cchunc: u32) -> i32
1676where
1677 P0: windows_core::Param<windows_core::PCSTR>,
1678 P1: windows_core::Param<windows_core::PCSTR>,
1679{
1680 windows_core::link!("mapi32" "system" fn ScUNCFromLocalPath(lpszlocal : windows_core::PCSTR, lpszunc : windows_core::PCSTR, cchunc : u32) -> i32);
1681 unsafe { ScUNCFromLocalPath(lpszlocal.param().abi(), lpszunc.param().abi(), cchunc) }
1682}
1683#[inline]
1684pub unsafe fn SetAttribIMsgOnIStg(
1685 lpobject: *mut core::ffi::c_void,
1686 lpproptags: *mut SPropTagArray,
1687 lppropattrs: *mut SPropAttrArray,
1688 lpppropproblems: *mut *mut SPropProblemArray,
1689) -> windows_core::Result<()> {
1690 windows_core::link!("mapi32" "system" fn SetAttribIMsgOnIStg(lpobject : *mut core::ffi::c_void, lpproptags : *mut SPropTagArray, lppropattrs : *mut SPropAttrArray, lpppropproblems : *mut *mut SPropProblemArray) -> windows_core::HRESULT);
1691 unsafe {
1692 SetAttribIMsgOnIStg(
1693 lpobject as _,
1694 lpproptags as _,
1695 lppropattrs as _,
1696 lpppropproblems as _,
1697 )
1698 .ok()
1699 }
1700}
1701#[inline]
1702pub unsafe fn SzFindCh(lpsz: *mut i8, ch: u16) -> *mut i8 {
1703 windows_core::link!("mapi32" "system" fn SzFindCh(lpsz : *mut i8, ch : u16) -> *mut i8);
1704 unsafe { SzFindCh(lpsz as _, ch) }
1705}
1706#[inline]
1707pub unsafe fn SzFindLastCh(lpsz: *mut i8, ch: u16) -> *mut i8 {
1708 windows_core::link!("mapi32" "system" fn SzFindLastCh(lpsz : *mut i8, ch : u16) -> *mut i8);
1709 unsafe { SzFindLastCh(lpsz as _, ch) }
1710}
1711#[inline]
1712pub unsafe fn SzFindSz(lpsz: *mut i8, lpszkey: *mut i8) -> *mut i8 {
1713 windows_core::link!("mapi32" "system" fn SzFindSz(lpsz : *mut i8, lpszkey : *mut i8) -> *mut i8);
1714 unsafe { SzFindSz(lpsz as _, lpszkey as _) }
1715}
1716#[inline]
1717pub unsafe fn UFromSz(lpsz: *mut i8) -> u32 {
1718 windows_core::link!("mapi32" "system" fn UFromSz(lpsz : *mut i8) -> u32);
1719 unsafe { UFromSz(lpsz as _) }
1720}
1721#[inline]
1722pub unsafe fn UlAddRef(lpunk: *mut core::ffi::c_void) -> u32 {
1723 windows_core::link!("mapi32" "system" fn UlAddRef(lpunk : *mut core::ffi::c_void) -> u32);
1724 unsafe { UlAddRef(lpunk as _) }
1725}
1726#[inline]
1727pub unsafe fn UlFromSzHex(lpsz: *mut i8) -> u32 {
1728 windows_core::link!("mapi32" "system" fn UlFromSzHex(lpsz : *mut i8) -> u32);
1729 unsafe { UlFromSzHex(lpsz as _) }
1730}
1731#[inline]
1732pub unsafe fn UlPropSize(lpspropvalue: *mut SPropValue) -> u32 {
1733 windows_core::link!("mapi32" "system" fn UlPropSize(lpspropvalue : *mut SPropValue) -> u32);
1734 unsafe { UlPropSize(lpspropvalue as _) }
1735}
1736#[inline]
1737pub unsafe fn UlRelease(lpunk: *mut core::ffi::c_void) -> u32 {
1738 windows_core::link!("mapi32" "system" fn UlRelease(lpunk : *mut core::ffi::c_void) -> u32);
1739 unsafe { UlRelease(lpunk as _) }
1740}
1741#[inline]
1742pub unsafe fn WrapCompressedRTFStream<P0>(
1743 lpcompressedrtfstream: P0,
1744 ulflags: u32,
1745) -> windows_core::Result<windows::Win32::System::Com::IStream>
1746where
1747 P0: windows_core::Param<windows::Win32::System::Com::IStream>,
1748{
1749 windows_core::link!("mapi32" "system" fn WrapCompressedRTFStream(lpcompressedrtfstream : * mut core::ffi::c_void, ulflags : u32, lpuncompressedrtfstream : *mut * mut core::ffi::c_void) -> windows_core::HRESULT);
1750 unsafe {
1751 let mut result__ = core::mem::zeroed();
1752 WrapCompressedRTFStream(lpcompressedrtfstream.param().abi(), ulflags, &mut result__)
1753 .and_then(|| windows_core::Type::from_abi(result__))
1754 }
1755}
1756#[inline]
1757pub unsafe fn WrapCompressedRTFStreamEx<P0>(
1758 pcompressedrtfstream: P0,
1759 pwcsinfo: *const RTF_WCSINFO,
1760 ppuncompressedrtfstream: *mut Option<windows::Win32::System::Com::IStream>,
1761 pretinfo: *mut RTF_WCSRETINFO,
1762) -> windows_core::Result<()>
1763where
1764 P0: windows_core::Param<windows::Win32::System::Com::IStream>,
1765{
1766 windows_core::link!("olmapi32" "system" fn WrapCompressedRTFStreamEx(pcompressedrtfstream : * mut core::ffi::c_void, pwcsinfo : *const RTF_WCSINFO, ppuncompressedrtfstream : *mut * mut core::ffi::c_void, pretinfo : *mut RTF_WCSRETINFO) -> windows_core::HRESULT);
1767 unsafe {
1768 WrapCompressedRTFStreamEx(
1769 pcompressedrtfstream.param().abi(),
1770 pwcsinfo,
1771 core::mem::transmute(ppuncompressedrtfstream),
1772 pretinfo as _,
1773 )
1774 .ok()
1775 }
1776}
1777#[inline]
1778pub unsafe fn WrapStoreEntryID(
1779 ulflags: u32,
1780 lpszdllname: *const i8,
1781 cborigentry: u32,
1782 lporigentry: *mut ENTRYID,
1783 lpcbwrappedentry: *mut u32,
1784 lppwrappedentry: *mut *mut ENTRYID,
1785) -> windows_core::Result<()> {
1786 windows_core::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);
1787 unsafe {
1788 WrapStoreEntryID(
1789 ulflags,
1790 lpszdllname,
1791 cborigentry,
1792 lporigentry as _,
1793 lpcbwrappedentry as _,
1794 lppwrappedentry as _,
1795 )
1796 .ok()
1797 }
1798}
1799#[inline]
1800pub unsafe fn __CPPValidateParameters(
1801 emethod: METHODS,
1802 ppfirst: *const core::ffi::c_void,
1803) -> windows_core::Result<()> {
1804 windows_core::link!("mapi32" "system" fn __CPPValidateParameters(emethod : METHODS, ppfirst : *const core::ffi::c_void) -> windows_core::HRESULT);
1805 unsafe { __CPPValidateParameters(emethod, ppfirst).ok() }
1806}
1807#[inline]
1808pub unsafe fn __ValidateParameters(
1809 emethod: METHODS,
1810 ppthis: *mut core::ffi::c_void,
1811) -> windows_core::Result<()> {
1812 windows_core::link!("mapi32" "system" fn __ValidateParameters(emethod : METHODS, ppthis : *mut core::ffi::c_void) -> windows_core::HRESULT);
1813 unsafe { __ValidateParameters(emethod, ppthis as _).ok() }
1814}
1815pub const ABORT_XP_HEADER_OPERATION: u32 = 2097152u32;
1816pub type ABPROVIDERINIT = Option<
1817 unsafe extern "system" fn(
1818 hinstance: windows::Win32::Foundation::HINSTANCE,
1819 lpmalloc: windows_core::Ref<windows::Win32::System::Com::IMalloc>,
1820 lpallocatebuffer: LPALLOCATEBUFFER,
1821 lpallocatemore: LPALLOCATEMORE,
1822 lpfreebuffer: LPFREEBUFFER,
1823 ulflags: u32,
1824 ulmapiver: u32,
1825 lpulproviderver: *mut u32,
1826 lppabprovider: windows_core::OutRef<IABProvider>,
1827 ) -> windows_core::HRESULT,
1828>;
1829pub const AB_FIND_ON_OPEN: u32 = 16u32;
1830pub const AB_MODIFIABLE: u32 = 4u32;
1831pub const AB_NOT_DEFAULT: u32 = 32u32;
1832pub const AB_NO_DIALOG: u32 = 1u32;
1833pub const AB_RECIPIENTS: u32 = 1u32;
1834pub const AB_RESOLVE: u32 = 32u32;
1835pub const AB_SELECTONLY: u32 = 16u32;
1836pub const AB_SHOW_OTHERS: u32 = 4u32;
1837pub const AB_SHOW_PHANTOMS: u32 = 2u32;
1838pub const AB_SUBCONTAINERS: u32 = 2u32;
1839pub const AB_UNICODEUI: u32 = 64u32;
1840pub const AB_UNMODIFIABLE: u32 = 8u32;
1841pub const ACCTUI_NO_WARNING: u32 = 256u32;
1842pub const ACCTUI_SHOW_ACCTWIZARD: u32 = 1024u32;
1843pub const ACCTUI_SHOW_DATA_TAB: u32 = 512u32;
1844#[repr(C)]
1845#[derive(Clone, Copy, Debug, PartialEq)]
1846pub struct ACCT_BIN {
1847 pub cb: u32,
1848 pub pb: *mut u8,
1849}
1850impl Default for ACCT_BIN {
1851 fn default() -> Self {
1852 unsafe { core::mem::zeroed() }
1853 }
1854}
1855pub const ACCT_INIT_NOSYNCH_MAPI_ACCTS: u32 = 1u32;
1856#[repr(C)]
1857#[derive(Clone, Copy)]
1858pub struct ACCT_VARIANT {
1859 pub dwType: u32,
1860 pub Val: ACCT_VARIANT_0,
1861}
1862impl Default for ACCT_VARIANT {
1863 fn default() -> Self {
1864 unsafe { core::mem::zeroed() }
1865 }
1866}
1867#[repr(C)]
1868#[derive(Clone, Copy)]
1869pub union ACCT_VARIANT_0 {
1870 pub dw: u32,
1871 pub pwsz: windows_core::PWSTR,
1872 pub bin: ACCT_BIN,
1873}
1874impl Default for ACCT_VARIANT_0 {
1875 fn default() -> Self {
1876 unsafe { core::mem::zeroed() }
1877 }
1878}
1879pub const ACLTABLE_FREEBUSY: u32 = 2u32;
1880#[repr(C)]
1881#[derive(Clone, Copy)]
1882pub struct ACTION {
1883 pub acttype: ACTTYPE,
1884 pub ulActionFlavor: u32,
1885 pub lpRes: *mut SRestriction,
1886 pub lpPropTagArray: *mut SPropTagArray,
1887 pub ulFlags: u32,
1888 pub dwAlignPad: u32,
1889 pub Anonymous: ACTION_0,
1890}
1891impl Default for ACTION {
1892 fn default() -> Self {
1893 unsafe { core::mem::zeroed() }
1894 }
1895}
1896#[repr(C)]
1897#[derive(Clone, Copy)]
1898pub union ACTION_0 {
1899 pub actMoveCopy: ACTION_0_0,
1900 pub actReply: ACTION_0_1,
1901 pub actDeferAction: ACTION_0_2,
1902 pub scBounceCode: i32,
1903 pub lpadrlist: *mut ADRLIST,
1904 pub propTag: SPropValue,
1905}
1906impl Default for ACTION_0 {
1907 fn default() -> Self {
1908 unsafe { core::mem::zeroed() }
1909 }
1910}
1911#[repr(C)]
1912#[derive(Clone, Copy, Debug, PartialEq)]
1913pub struct ACTION_0_2 {
1914 pub cbData: u32,
1915 pub pbData: *mut u8,
1916}
1917impl Default for ACTION_0_2 {
1918 fn default() -> Self {
1919 unsafe { core::mem::zeroed() }
1920 }
1921}
1922#[repr(C)]
1923#[derive(Clone, Copy, Debug, PartialEq)]
1924pub struct ACTION_0_0 {
1925 pub cbStoreEntryId: u32,
1926 pub lpStoreEntryId: *mut ENTRYID,
1927 pub cbFldEntryId: u32,
1928 pub lpFldEntryId: *mut ENTRYID,
1929}
1930impl Default for ACTION_0_0 {
1931 fn default() -> Self {
1932 unsafe { core::mem::zeroed() }
1933 }
1934}
1935#[repr(C)]
1936#[derive(Clone, Copy, Debug, PartialEq)]
1937pub struct ACTION_0_1 {
1938 pub cbEntryId: u32,
1939 pub lpEntryId: *mut ENTRYID,
1940 pub guidReplyTemplate: windows_core::GUID,
1941}
1942impl Default for ACTION_0_1 {
1943 fn default() -> Self {
1944 unsafe { core::mem::zeroed() }
1945 }
1946}
1947#[repr(C)]
1948#[derive(Clone, Copy, Debug, PartialEq)]
1949pub struct ACTIONS {
1950 pub ulVersion: u32,
1951 pub cActions: u32,
1952 pub lpAction: *mut ACTION,
1953}
1954impl Default for ACTIONS {
1955 fn default() -> Self {
1956 unsafe { core::mem::zeroed() }
1957 }
1958}
1959#[repr(transparent)]
1960#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
1961pub struct ACTTYPE(pub i32);
1962#[repr(transparent)]
1963#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
1964pub struct ADDRESSFORMAT(pub i32);
1965#[repr(C)]
1966#[derive(Clone, Copy, Debug, PartialEq)]
1967pub struct ADDRESSLIST {
1968 pub cAdrs: u32,
1969 pub prgAdr: *mut ADDRESSPROPS,
1970}
1971impl Default for ADDRESSLIST {
1972 fn default() -> Self {
1973 unsafe { core::mem::zeroed() }
1974 }
1975}
1976#[repr(C)]
1977#[derive(Clone, Copy, Debug, PartialEq)]
1978pub struct ADDRESSPROPS {
1979 pub dwProps: u32,
1980 pub hAddress: *mut HADDRESS__,
1981 pub ietFriendly: ENCODINGTYPE,
1982 pub hCharset: *mut HCHARSET__,
1983 pub dwAdrType: u32,
1984 pub pszFriendly: windows_core::PSTR,
1985 pub pwszReserved: windows_core::PWSTR,
1986 pub pszEmail: windows_core::PSTR,
1987 pub certstate: CERTSTATE,
1988 pub tbSigning: windows::Win32::System::Com::BLOB,
1989 pub tbEncryption: windows::Win32::System::Com::BLOB,
1990 pub dwCookie: u32,
1991 pub dwReserved1: u32,
1992 pub dwReserved2: u32,
1993}
1994impl Default for ADDRESSPROPS {
1995 fn default() -> Self {
1996 unsafe { core::mem::zeroed() }
1997 }
1998}
1999pub const ADDRESS_ONE: u32 = 8u32;
2000pub const ADMN_PAD: u32 = 3u32;
2001#[repr(C)]
2002#[derive(Clone, Copy, Debug, PartialEq)]
2003pub struct ADRENTRY {
2004 pub ulReserved1: u32,
2005 pub cValues: u32,
2006 pub rgPropVals: *mut SPropValue,
2007}
2008impl Default for ADRENTRY {
2009 fn default() -> Self {
2010 unsafe { core::mem::zeroed() }
2011 }
2012}
2013#[repr(C)]
2014#[derive(Clone, Copy, Debug, PartialEq)]
2015pub struct ADRLIST {
2016 pub cEntries: u32,
2017 pub aEntries: [ADRENTRY; 1],
2018}
2019impl Default for ADRLIST {
2020 fn default() -> Self {
2021 unsafe { core::mem::zeroed() }
2022 }
2023}
2024#[repr(C)]
2025#[derive(Clone, Copy, Debug)]
2026pub struct ADRPARM {
2027 pub cbABContEntryID: u32,
2028 pub lpABContEntryID: *mut ENTRYID,
2029 pub ulFlags: u32,
2030 pub lpReserved: *mut core::ffi::c_void,
2031 pub ulHelpContext: u32,
2032 pub lpszHelpFileName: *mut i8,
2033 pub lpfnABSDI: LPFNABSDI,
2034 pub lpfnDismiss: LPFNDISMISS,
2035 pub lpvDismissContext: *mut core::ffi::c_void,
2036 pub lpszCaption: *mut i8,
2037 pub lpszNewEntryTitle: *mut i8,
2038 pub lpszDestWellsTitle: *mut i8,
2039 pub cDestFields: u32,
2040 pub nDestFieldFocus: u32,
2041 pub lppszDestTitles: *mut *mut i8,
2042 pub lpulDestComps: *mut u32,
2043 pub lpContRestriction: *mut SRestriction,
2044 pub lpHierRestriction: *mut SRestriction,
2045}
2046impl Default for ADRPARM {
2047 fn default() -> Self {
2048 unsafe { core::mem::zeroed() }
2049 }
2050}
2051pub const ADRPARM_HELP_CTX: u32 = 0u32;
2052pub const AFT_DISPLAY_BOTH: ADDRESSFORMAT = ADDRESSFORMAT(2i32);
2053pub const AFT_DISPLAY_EMAIL: ADDRESSFORMAT = ADDRESSFORMAT(1i32);
2054pub const AFT_DISPLAY_FRIENDLY: ADDRESSFORMAT = ADDRESSFORMAT(0i32);
2055pub const AFT_RFC822_DECODED: ADDRESSFORMAT = ADDRESSFORMAT(3i32);
2056pub const AFT_RFC822_ENCODED: ADDRESSFORMAT = ADDRESSFORMAT(4i32);
2057pub const AFT_RFC822_TRANSMIT: ADDRESSFORMAT = ADDRESSFORMAT(5i32);
2058pub const AG_DAYS: u32 = 2u32;
2059pub const AG_MONTHS: u32 = 0u32;
2060pub const AG_WEEKS: u32 = 1u32;
2061pub const ANTIVIRUS_SCAN_NO_VIRUS: u32 = 0u32;
2062pub const ANTIVIRUS_SCAN_VIRUS_CLEANED: u32 = 2u32;
2063pub const ANTIVIRUS_SCAN_VIRUS_DELETED: u32 = 3u32;
2064pub const ANTIVIRUS_SCAN_VIRUS_PRESENT: u32 = 1u32;
2065pub const ATTACH_BY_REFERENCE: u32 = 2u32;
2066pub const ATTACH_BY_REF_ONLY: u32 = 4u32;
2067pub const ATTACH_BY_REF_RESOLVE: u32 = 3u32;
2068pub const ATTACH_BY_VALUE: u32 = 1u32;
2069pub const ATTACH_BY_WEBREFERENCE: u32 = 7u32;
2070pub const ATTACH_DIALOG: u32 = 1u32;
2071pub const ATTACH_EMBEDDED_MSG: u32 = 5u32;
2072pub const ATTACH_OLE: u32 = 6u32;
2073pub const AUTO_RESPONSE_SUPPRESS_AUTO_REPLY: u32 = 32u32;
2074pub const AUTO_RESPONSE_SUPPRESS_DR: u32 = 1u32;
2075pub const AUTO_RESPONSE_SUPPRESS_NDR: u32 = 2u32;
2076pub const AUTO_RESPONSE_SUPPRESS_NORFC821FROM: u32 = 64u32;
2077pub const AUTO_RESPONSE_SUPPRESS_NRN: u32 = 8u32;
2078pub const AUTO_RESPONSE_SUPPRESS_OOF: u32 = 16u32;
2079pub const AUTO_RESPONSE_SUPPRESS_RN: u32 = 4u32;
2080pub const BACKGROUND_SEARCH: u32 = 32u32;
2081pub const BEGIN_DEFERRED: u32 = 1u32;
2082pub const BMR_EQZ: u32 = 0u32;
2083pub const BMR_NEZ: u32 = 1u32;
2084#[repr(transparent)]
2085#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
2086pub struct BODYLOCATION(pub i32);
2087#[repr(C)]
2088#[derive(Clone, Copy, Debug, Default, PartialEq)]
2089pub struct BODYOFFSETS {
2090 pub cbBoundaryStart: u32,
2091 pub cbHeaderStart: u32,
2092 pub cbBodyStart: u32,
2093 pub cbBodyEnd: u32,
2094}
2095pub const BOOKMARK_BEGINNING: u32 = 0u32;
2096pub const BOOKMARK_CURRENT: u32 = 1u32;
2097pub const BOOKMARK_END: u32 = 2u32;
2098pub const CALLBACK_DISCONTINUE: u32 = 2147483648u32;
2099pub type CALLERRELEASE = Option<
2100 unsafe extern "system" fn(
2101 ulcallerdata: usize,
2102 lptbldata: windows_core::Ref<ITableData>,
2103 lpvue: windows_core::Ref<IMAPITable>,
2104 ),
2105>;
2106pub const CB_OID_1: u32 = 9u32;
2107pub const CB_OID_2: u32 = 10u32;
2108pub const CB_OID_3: u32 = 11u32;
2109pub const CB_OID_4: u32 = 12u32;
2110pub const CB_OID_MAC_BINARY: u32 = 9u32;
2111pub const CB_OID_MIMETAG: u32 = 9u32;
2112pub const CB_OID_OLE: u32 = 9u32;
2113pub const CB_OID_OLE1: u32 = 10u32;
2114pub const CB_OID_OLE1_STORAGE: u32 = 11u32;
2115pub const CB_OID_OLE2: u32 = 10u32;
2116pub const CB_OID_OLE2_STORAGE: u32 = 11u32;
2117pub const CB_OID_TNEF: u32 = 9u32;
2118pub const CCHMAX_CID: u32 = 255u32;
2119pub const CCHMAX_CSET_NAME: u32 = 128u32;
2120pub const CCHMAX_FACE_NAME: u32 = 128u32;
2121pub const CCHMAX_HEADER_LINE: u32 = 1000u32;
2122pub const CCHMAX_INTERNET_DATE: u32 = 50u32;
2123pub const CCHMAX_LANG_NAME: u32 = 128u32;
2124pub const CCHMAX_MID: u32 = 255u32;
2125pub const CDID_EMAIL: CERTDATAID = CERTDATAID(0i32);
2126pub const CDID_MAX: CERTDATAID = CERTDATAID(1i32);
2127#[repr(transparent)]
2128#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
2129pub struct CERTDATAID(pub i32);
2130pub const CERTIFICATE_CHAIN_TOO_LONG: CERTSTATE = CERTSTATE(3i32);
2131pub const CERTIFICATE_CRL_LISTED: CERTSTATE = CERTSTATE(5i32);
2132pub const CERTIFICATE_ERROR: CERTSTATE = CERTSTATE(8i32);
2133pub const CERTIFICATE_EXPIRED: CERTSTATE = CERTSTATE(2i32);
2134pub const CERTIFICATE_INVALID: CERTSTATE = CERTSTATE(7i32);
2135pub const CERTIFICATE_MISSING_ISSUER: CERTSTATE = CERTSTATE(4i32);
2136pub const CERTIFICATE_NOPRINT: CERTSTATE = CERTSTATE(9i32);
2137pub const CERTIFICATE_NOT_PRESENT: CERTSTATE = CERTSTATE(1i32);
2138pub const CERTIFICATE_NOT_TRUSTED: CERTSTATE = CERTSTATE(6i32);
2139pub const CERTIFICATE_OK: CERTSTATE = CERTSTATE(0i32);
2140pub const CERTIFICATE_UNKNOWN: CERTSTATE = CERTSTATE(10i32);
2141#[repr(transparent)]
2142#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
2143pub struct CERTNAMETYPE(pub i32);
2144#[repr(transparent)]
2145#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
2146pub struct CERTSTATE(pub i32);
2147#[repr(transparent)]
2148#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
2149pub struct CHARSETTYPE(pub i32);
2150pub const CHARSET_BODY: CHARSETTYPE = CHARSETTYPE(0i32);
2151pub const CHARSET_HEADER: CHARSETTYPE = CHARSETTYPE(1i32);
2152pub const CHARSET_WEB: CHARSETTYPE = CHARSETTYPE(2i32);
2153pub const CHECK_SENDER: u32 = 1u32;
2154pub const CLEAR_NRN_PENDING: u32 = 64u32;
2155pub const CLEAR_READ_FLAG: u32 = 4u32;
2156pub const CLEAR_RN_PENDING: u32 = 32u32;
2157pub const CLSID_IMimeHtmlProtocol: windows_core::GUID =
2158 windows_core::GUID::from_u128(0x05300401_bcbc_11d0_85e3_00c04fd85ab4);
2159pub const CLSID_IVirtualStream: windows_core::GUID =
2160 windows_core::GUID::from_u128(0xfd853cdf_7f86_11d0_8252_00c04fd85ab4);
2161pub const CLSID_MimeEdit: windows_core::GUID =
2162 windows_core::GUID::from_u128(0x1c82ead9_508e_11d1_8dcf_00c04fb951f9);
2163pub const CLSID_OlkAccountManager: windows_core::GUID =
2164 windows_core::GUID::from_u128(0xed475410_b0d6_11d2_8c3b_00104b2a6676);
2165pub const CLSID_OlkAddressBook: windows_core::GUID =
2166 windows_core::GUID::from_u128(0xed475419_b0d6_11d2_8c3b_00104b2a6676);
2167pub const CLSID_OlkHotmailAccount: windows_core::GUID =
2168 windows_core::GUID::from_u128(0x4db5cbf0_3b77_4852_bc8e_bb81908861f3);
2169pub const CLSID_OlkIMAP4Account: windows_core::GUID =
2170 windows_core::GUID::from_u128(0xed475412_b0d6_11d2_8c3b_00104b2a6676);
2171pub const CLSID_OlkLDAPAccount: windows_core::GUID =
2172 windows_core::GUID::from_u128(0x4db5cbf2_3b77_4852_bc8e_bb81908861f3);
2173pub const CLSID_OlkMAPIAccount: windows_core::GUID =
2174 windows_core::GUID::from_u128(0xed475414_b0d6_11d2_8c3b_00104b2a6676);
2175pub const CLSID_OlkMail: windows_core::GUID =
2176 windows_core::GUID::from_u128(0xed475418_b0d6_11d2_8c3b_00104b2a6676);
2177pub const CLSID_OlkPOP3Account: windows_core::GUID =
2178 windows_core::GUID::from_u128(0xed475411_b0d6_11d2_8c3b_00104b2a6676);
2179pub const CLSID_OlkStore: windows_core::GUID =
2180 windows_core::GUID::from_u128(0xed475420_b0d6_11d2_8c3b_00104b2a6676);
2181pub const CMDSETID_MimeEdit: windows_core::GUID =
2182 windows_core::GUID::from_u128(0x1c82eada_508e_11d1_8dcf_00c04fb951f9);
2183pub const CMDSETID_MimeEditHost: windows_core::GUID =
2184 windows_core::GUID::from_u128(0x1c82eadb_508e_11d1_8dcf_00c04fb951f9);
2185#[repr(C)]
2186#[derive(Clone, Copy, Debug, PartialEq)]
2187pub struct CODEPAGEINFO {
2188 pub dwMask: u32,
2189 pub cpiCodePage: u32,
2190 pub fIsValidCodePage: windows_core::BOOL,
2191 pub ulMaxCharSize: u32,
2192 pub fInternetCP: windows_core::BOOL,
2193 pub cpiFamily: u32,
2194 pub szName: [i8; 128],
2195 pub szBodyCset: [i8; 128],
2196 pub szHeaderCset: [i8; 128],
2197 pub szWebCset: [i8; 128],
2198 pub szFixedFont: [i8; 128],
2199 pub szVariableFont: [i8; 128],
2200 pub ietNewsDefault: ENCODINGTYPE,
2201 pub ietMailDefault: ENCODINGTYPE,
2202 pub dwReserved1: u32,
2203}
2204impl Default for CODEPAGEINFO {
2205 fn default() -> Self {
2206 unsafe { core::mem::zeroed() }
2207 }
2208}
2209pub const COMMIT_ONLYIFDIRTY: u32 = 1u32;
2210pub const COMMIT_REUSESTORAGE: u32 = 2u32;
2211pub const COMMIT_SMIMETRANSFERENCODE: u32 = 4u32;
2212pub const CONFIG_CHANGED: u32 = 1048576u32;
2213pub const CONFIG_NO_AUTO_DETECT: u32 = 16u32;
2214pub const CONFIG_OST_CACHE_ONLY: u32 = 32u32;
2215pub const CONFIG_PROMPT_FOR_CREDENTIALS: u32 = 8u32;
2216pub const CONFIG_SERVICE: u32 = 1u32;
2217pub const CONFIG_SHOW_CONNECT_UI: u32 = 4u32;
2218pub const CONFIG_SHOW_STARTUP_UI: u32 = 2u32;
2219pub const CONNECT_ANONYMOUS_ACCESS: u32 = 16u32;
2220pub const CONNECT_NO_ADDRESS_RESOLUTION: u32 = 64u32;
2221pub const CONNECT_NO_NOTIFICATIONS: u32 = 32u32;
2222pub const CONNECT_NO_RPC_ENCRYPTION: u32 = 2u32;
2223pub const CONNECT_NO_TABLE_NOTIFICATIONS: u32 = 32u32;
2224pub const CONNECT_NO_UNDER_COVER_CONNECTION: u32 = 8u32;
2225pub const CONNECT_RESTORE_DATABASE: u32 = 128u32;
2226pub const CONNECT_USE_ADMIN_PRIVILEGE: u32 = 1u32;
2227pub const CONNECT_USE_SEPARATE_CONNECTION: u32 = 4u32;
2228pub const CONVENIENT_DEPTH: u32 = 1u32;
2229pub const COPY_SUBFOLDERS: u32 = 16u32;
2230pub const COUNTRY_PAD: u32 = 0u32;
2231pub const CP_ACP: u32 = 0u32;
2232pub const CP_ISO2022JPESC: u32 = 50221u32;
2233pub const CP_ISO2022JPSIO: u32 = 50222u32;
2234pub const CP_JAUTODETECT: u32 = 50932u32;
2235pub const CP_KAUTODETECT: u32 = 50949u32;
2236pub const CP_OEMCP: u32 = 1u32;
2237pub const CP_UNICODE: u32 = 1200u32;
2238pub const CP_USASCII: u32 = 1252u32;
2239pub const CREATE_ALWAYS: u32 = 2u32;
2240pub const CREATE_CHECK_DUP_LOOSE: u32 = 2u32;
2241pub const CREATE_CHECK_DUP_STRICT: u32 = 1u32;
2242pub const CREATE_NEW: u32 = 1u32;
2243pub const CREATE_REPLACE: u32 = 4u32;
2244#[repr(transparent)]
2245#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
2246pub struct CSETAPPLYTYPE(pub i32);
2247pub const CSET_APPLY_ALL: CSETAPPLYTYPE = CSETAPPLYTYPE(1i32);
2248pub const CSET_APPLY_TAG_ALL: CSETAPPLYTYPE = CSETAPPLYTYPE(2i32);
2249pub const CSET_APPLY_UNTAGGED: CSETAPPLYTYPE = CSETAPPLYTYPE(0i32);
2250pub const CURRENT_SPI_VERSION: i32 = 65552i32;
2251pub const DEF_ALLOW_8BIT_HEADER: u32 = 0u32;
2252pub const DEF_BODY_REMOVE_NBSP: u32 = 1u32;
2253pub const DEF_CAN_INLINE_TEXT_BODIES: u32 = 0u32;
2254pub const DEF_CBMAX_BODY_LINE: u32 = 74u32;
2255pub const DEF_CBMAX_HEADER_LINE: u32 = 1000u32;
2256pub const DEF_CLEANUP_TREE_ON_SAVE: u32 = 1u32;
2257pub const DEF_DBCS_ESCAPE_IS_8BIT: u32 = 0u32;
2258pub const DEF_DECODE_RFC1154: u32 = 0u32;
2259pub const DEF_ENCRYPTION_ALG_ID: u32 = 26114u32;
2260pub const DEF_GENERATE_MESSAGE_ID: u32 = 0u32;
2261pub const DEF_HANDSOFF_ONSAVE: u32 = 0u32;
2262pub const DEF_HASH_ALG_ID: u32 = 32772u32;
2263pub const DEF_HIDE_TNEF_ATTACHMENTS: u32 = 1u32;
2264pub const DEF_INCLUDE_SENDER_CERT: u32 = 0u32;
2265pub const DEF_LOAD_USE_BIND_FILE: u32 = 0u32;
2266pub const DEF_NO_DEFAULT_CNTTYPE: u32 = 0u32;
2267pub const DEF_SAVEBODY_KEEPBOUNDARY: u32 = 0u32;
2268pub const DEF_SECURITY_IGNOREMASK: u32 = 0u32;
2269pub const DEF_SHOW_MACBINARY: u32 = 0u32;
2270pub const DEF_SUPPORT_EXTERNAL_BODY: u32 = 0u32;
2271pub const DEF_WRAP_BODY_TEXT: u32 = 1u32;
2272pub const DEINIT_HURRY: u32 = 2147483648u32;
2273pub const DEINIT_NORMAL: u32 = 1u32;
2274pub const DELETE_CHILDREN_ONLY: u32 = 2u32;
2275pub const DELETE_HARD_DELETE: u32 = 16u32;
2276pub const DELETE_PROMOTE_CHILDREN: u32 = 1u32;
2277pub const DEL_ASSOCIATED: u32 = 8u32;
2278pub const DEL_FOLDERS: u32 = 4u32;
2279pub const DEL_MESSAGES: u32 = 1u32;
2280pub const DIALOG_ALLOW_CANCEL: u32 = 128u32;
2281pub const DIALOG_ATTACH: u32 = 8u32;
2282pub const DIALOG_CONFIRM_CANCEL: u32 = 256u32;
2283pub const DIALOG_COPY: u32 = 32u32;
2284pub const DIALOG_DELETE: u32 = 64u32;
2285pub const DIALOG_FOLDER: u32 = 1u32;
2286pub const DIALOG_MESSAGE: u32 = 2u32;
2287pub const DIALOG_MODAL: u32 = 1u32;
2288pub const DIALOG_MOVE: u32 = 16u32;
2289pub const DIALOG_OPTIONS: u32 = 4u32;
2290pub const DIALOG_PROP: u32 = 4u32;
2291pub const DIALOG_SDI: u32 = 2u32;
2292pub const DIR_BACKWARD: u32 = 1u32;
2293pub const DO_NOT_SEND_TO_ORIGINATOR: u32 = 1u32;
2294#[repr(C)]
2295#[derive(Clone, Copy, Debug, Default, PartialEq)]
2296pub struct DTBLBUTTON {
2297 pub ulbLpszLabel: u32,
2298 pub ulFlags: u32,
2299 pub ulPRControl: u32,
2300}
2301#[repr(C)]
2302#[derive(Clone, Copy, Debug, Default, PartialEq)]
2303pub struct DTBLCHECKBOX {
2304 pub ulbLpszLabel: u32,
2305 pub ulFlags: u32,
2306 pub ulPRPropertyName: u32,
2307}
2308#[repr(C)]
2309#[derive(Clone, Copy, Debug, Default, PartialEq)]
2310pub struct DTBLCOMBOBOX {
2311 pub ulbLpszCharsAllowed: u32,
2312 pub ulFlags: u32,
2313 pub ulNumCharsAllowed: u32,
2314 pub ulPRPropertyName: u32,
2315 pub ulPRTableName: u32,
2316}
2317#[repr(C)]
2318#[derive(Clone, Copy, Debug, Default, PartialEq)]
2319pub struct DTBLDDLBX {
2320 pub ulFlags: u32,
2321 pub ulPRDisplayProperty: u32,
2322 pub ulPRSetProperty: u32,
2323 pub ulPRTableName: u32,
2324}
2325#[repr(C)]
2326#[derive(Clone, Copy, Debug, Default, PartialEq)]
2327pub struct DTBLEDIT {
2328 pub ulbLpszCharsAllowed: u32,
2329 pub ulFlags: u32,
2330 pub ulNumCharsAllowed: u32,
2331 pub ulPropTag: u32,
2332}
2333#[repr(C)]
2334#[derive(Clone, Copy, Debug, Default, PartialEq)]
2335pub struct DTBLGROUPBOX {
2336 pub ulbLpszLabel: u32,
2337 pub ulFlags: u32,
2338}
2339#[repr(C)]
2340#[derive(Clone, Copy, Debug, Default, PartialEq)]
2341pub struct DTBLLABEL {
2342 pub ulbLpszLabelName: u32,
2343 pub ulFlags: u32,
2344}
2345#[repr(C)]
2346#[derive(Clone, Copy, Debug, Default, PartialEq)]
2347pub struct DTBLLBX {
2348 pub ulFlags: u32,
2349 pub ulPRSetProperty: u32,
2350 pub ulPRTableName: u32,
2351}
2352#[repr(C)]
2353#[derive(Clone, Copy, Debug, Default, PartialEq)]
2354pub struct DTBLMVDDLBX {
2355 pub ulFlags: u32,
2356 pub ulMVPropTag: u32,
2357}
2358#[repr(C)]
2359#[derive(Clone, Copy, Debug, Default, PartialEq)]
2360pub struct DTBLMVLISTBOX {
2361 pub ulFlags: u32,
2362 pub ulMVPropTag: u32,
2363}
2364#[repr(C)]
2365#[derive(Clone, Copy, Debug, Default, PartialEq)]
2366pub struct DTBLPAGE {
2367 pub ulbLpszLabel: u32,
2368 pub ulFlags: u32,
2369 pub ulbLpszComponent: u32,
2370 pub ulContext: u32,
2371}
2372#[repr(C)]
2373#[derive(Clone, Copy, Debug, Default, PartialEq)]
2374pub struct DTBLRADIOBUTTON {
2375 pub ulbLpszLabel: u32,
2376 pub ulFlags: u32,
2377 pub ulcButtons: u32,
2378 pub ulPropTag: u32,
2379 pub lReturnValue: i32,
2380}
2381#[repr(C)]
2382#[derive(Clone, Copy)]
2383pub struct DTCTL {
2384 pub ulCtlType: u32,
2385 pub ulCtlFlags: u32,
2386 pub lpbNotif: *mut u8,
2387 pub cbNotif: u32,
2388 pub lpszFilter: *mut i8,
2389 pub ulItemID: u32,
2390 pub ctl: DTCTL_0,
2391}
2392impl Default for DTCTL {
2393 fn default() -> Self {
2394 unsafe { core::mem::zeroed() }
2395 }
2396}
2397#[repr(C)]
2398#[derive(Clone, Copy)]
2399pub union DTCTL_0 {
2400 pub lpv: *mut core::ffi::c_void,
2401 pub lplabel: *mut DTBLLABEL,
2402 pub lpedit: *mut DTBLEDIT,
2403 pub lplbx: *mut DTBLLBX,
2404 pub lpcombobox: *mut DTBLCOMBOBOX,
2405 pub lpddlbx: *mut DTBLDDLBX,
2406 pub lpcheckbox: *mut DTBLCHECKBOX,
2407 pub lpgroupbox: *mut DTBLGROUPBOX,
2408 pub lpbutton: *mut DTBLBUTTON,
2409 pub lpradiobutton: *mut DTBLRADIOBUTTON,
2410 pub lpmvlbx: *mut DTBLMVLISTBOX,
2411 pub lpmvddlbx: *mut DTBLMVDDLBX,
2412 pub lppage: *mut DTBLPAGE,
2413}
2414impl Default for DTCTL_0 {
2415 fn default() -> Self {
2416 unsafe { core::mem::zeroed() }
2417 }
2418}
2419pub const DTCT_BUTTON: u32 = 7u32;
2420pub const DTCT_CHECKBOX: u32 = 5u32;
2421pub const DTCT_COMBOBOX: u32 = 3u32;
2422pub const DTCT_DDLBX: u32 = 4u32;
2423pub const DTCT_EDIT: u32 = 1u32;
2424pub const DTCT_GROUPBOX: u32 = 6u32;
2425pub const DTCT_LABEL: u32 = 0u32;
2426pub const DTCT_LBX: u32 = 2u32;
2427pub const DTCT_MVDDLBX: u32 = 12u32;
2428pub const DTCT_MVLISTBOX: u32 = 11u32;
2429pub const DTCT_PAGE: u32 = 8u32;
2430pub const DTCT_RADIOBUTTON: u32 = 9u32;
2431pub const DTE_FLAG_ACL_CAPABLE: u32 = 1073741824u32;
2432pub const DTE_FLAG_REMOTE_VALID: u32 = 2147483648u32;
2433pub const DTE_MASK_LOCAL: u32 = 255u32;
2434pub const DTE_MASK_REMOTE: u32 = 65280u32;
2435#[repr(C)]
2436#[derive(Clone, Copy)]
2437pub struct DTPAGE {
2438 pub cctl: u32,
2439 pub lpszResourceName: *mut i8,
2440 pub Anonymous: DTPAGE_0,
2441 pub lpctl: *mut DTCTL,
2442}
2443impl Default for DTPAGE {
2444 fn default() -> Self {
2445 unsafe { core::mem::zeroed() }
2446 }
2447}
2448#[repr(C)]
2449#[derive(Clone, Copy)]
2450pub union DTPAGE_0 {
2451 pub lpszComponent: *mut i8,
2452 pub ulItemID: u32,
2453}
2454impl Default for DTPAGE_0 {
2455 fn default() -> Self {
2456 unsafe { core::mem::zeroed() }
2457 }
2458}
2459pub const DT_ACCEPT_DBCS: u32 = 32u32;
2460pub const DT_AGENT: u32 = 3u32;
2461pub const DT_DISTLIST: u32 = 1u32;
2462pub const DT_EDITABLE: u32 = 2u32;
2463pub const DT_EQUIPMENT: u32 = 8u32;
2464pub const DT_FOLDER: u32 = 16777216u32;
2465pub const DT_FOLDER_LINK: u32 = 33554432u32;
2466pub const DT_FOLDER_SPECIAL: u32 = 67108864u32;
2467pub const DT_FORUM: u32 = 2u32;
2468pub const DT_GLOBAL: u32 = 131072u32;
2469pub const DT_LOCAL: u32 = 196608u32;
2470pub const DT_MAILUSER: u32 = 0u32;
2471pub const DT_MODIFIABLE: u32 = 65536u32;
2472pub const DT_MULTILINE: u32 = 1u32;
2473pub const DT_NOT_SPECIFIC: u32 = 327680u32;
2474pub const DT_ORGANIZATION: u32 = 4u32;
2475pub const DT_PASSWORD_EDIT: u32 = 16u32;
2476pub const DT_PRIVATE_DISTLIST: u32 = 5u32;
2477pub const DT_REMOTE_MAILUSER: u32 = 6u32;
2478pub const DT_REQUIRED: u32 = 4u32;
2479pub const DT_ROOM: u32 = 7u32;
2480pub const DT_SEC_DISTLIST: u32 = 9u32;
2481pub const DT_SET_IMMEDIATE: u32 = 8u32;
2482pub const DT_SET_SELECTION: u32 = 64u32;
2483pub const DT_WAN: u32 = 262144u32;
2484pub const EBF_COMMITIFDIRTY: u32 = 131072u32;
2485pub const EBF_MASK: u32 = 4294901760u32;
2486pub const EBF_RECURSE: u32 = 65536u32;
2487pub const EDITOR_FORMAT_DONTKNOW: u32 = 0u32;
2488pub const EDITOR_FORMAT_HTML: u32 = 2u32;
2489pub const EDITOR_FORMAT_PLAINTEXT: u32 = 1u32;
2490pub const EDITOR_FORMAT_RTF: u32 = 3u32;
2491pub const EDK_RULES_VERSION: u32 = 1u32;
2492pub const EMS_AB_ADDRESS_LOOKUP: u32 = 1u32;
2493#[repr(transparent)]
2494#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
2495pub struct ENCODINGTYPE(pub i32);
2496pub const END_DONT_RESEND: u32 = 262144u32;
2497pub const END_RESEND_LATER: u32 = 131072u32;
2498pub const END_RESEND_NOW: u32 = 65536u32;
2499#[repr(C)]
2500#[derive(Clone, Copy, Debug, PartialEq)]
2501pub struct ENTRYID {
2502 pub abFlags: [u8; 4],
2503 pub ab: [u8; 1],
2504}
2505impl Default for ENTRYID {
2506 fn default() -> Self {
2507 unsafe { core::mem::zeroed() }
2508 }
2509}
2510#[repr(C)]
2511#[derive(Clone, Copy, Debug, PartialEq)]
2512pub struct ENUMHEADERROW {
2513 pub hRow: *mut HHEADERROW__,
2514 pub pszHeader: windows_core::PSTR,
2515 pub pszData: windows_core::PSTR,
2516 pub cchData: u32,
2517 pub dwReserved: u32,
2518}
2519impl Default for ENUMHEADERROW {
2520 fn default() -> Self {
2521 unsafe { core::mem::zeroed() }
2522 }
2523}
2524#[repr(C)]
2525#[derive(Clone, Copy, Debug, PartialEq)]
2526pub struct ENUMPROPERTY {
2527 pub pszName: windows_core::PSTR,
2528 pub hRow: *mut HHEADERROW__,
2529 pub dwPropId: u32,
2530}
2531impl Default for ENUMPROPERTY {
2532 fn default() -> Self {
2533 unsafe { core::mem::zeroed() }
2534 }
2535}
2536pub const ENV_BLANK: u32 = 0u32;
2537pub const ENV_MSG_EXT: u32 = 2u32;
2538pub const ENV_RECIP_EXT: u32 = 4u32;
2539pub const ENV_RECIP_NUM: u32 = 1u32;
2540pub const EPF_NONAME: u32 = 1u32;
2541#[repr(C)]
2542#[derive(Clone, Copy, Debug, PartialEq)]
2543pub struct ERROR_NOTIFICATION {
2544 pub cbEntryID: u32,
2545 pub lpEntryID: *mut ENTRYID,
2546 pub scode: i32,
2547 pub ulFlags: u32,
2548 pub lpMAPIError: *mut MAPIERROR,
2549}
2550impl Default for ERROR_NOTIFICATION {
2551 fn default() -> Self {
2552 unsafe { core::mem::zeroed() }
2553 }
2554}
2555pub const EXCHANGE_RM_SET_EXPLICIT_SD: u32 = 1u32;
2556pub const EXCHIVERB_FORWARD: u32 = 104u32;
2557pub const EXCHIVERB_OPEN: u32 = 0u32;
2558pub const EXCHIVERB_PRINT: u32 = 105u32;
2559pub const EXCHIVERB_REPLYTOALL: u32 = 103u32;
2560pub const EXCHIVERB_REPLYTOFOLDER: u32 = 108u32;
2561pub const EXCHIVERB_REPLYTOSENDER: u32 = 102u32;
2562pub const EXCHIVERB_RESERVED_COMPOSE: u32 = 100u32;
2563pub const EXCHIVERB_RESERVED_DELIVERY: u32 = 107u32;
2564pub const EXCHIVERB_RESERVED_OPEN: u32 = 101u32;
2565pub const EXCHIVERB_SAVEAS: u32 = 106u32;
2566#[repr(C)]
2567#[derive(Clone, Copy, Debug, PartialEq)]
2568pub struct EXTENDED_NOTIFICATION {
2569 pub ulEvent: u32,
2570 pub cb: u32,
2571 pub pbEventParameters: *mut u8,
2572}
2573impl Default for EXTENDED_NOTIFICATION {
2574 fn default() -> Self {
2575 unsafe { core::mem::zeroed() }
2576 }
2577}
2578pub const E_ACCT_NOT_FOUND: u32 = 2148303105u32;
2579pub const E_ACCT_WRONG_SORT_ORDER: u32 = 2148303109u32;
2580pub const E_OLK_ALREADY_INITIALIZED: u32 = 2148302850u32;
2581pub const E_OLK_NOT_INITIALIZED: u32 = 2148302853u32;
2582pub const E_OLK_PARAM_NOT_SUPPORTED: u32 = 2148302851u32;
2583pub const E_OLK_PROP_READ_ONLY: u32 = 2148302861u32;
2584pub const E_OLK_REGISTRY: u32 = 2148302850u32;
2585pub const FACILITY_INTERNET: u32 = 12u32;
2586pub type FGETCOMPONENTPATH = Option<
2587 unsafe extern "system" fn(
2588 szcomponent: *mut i8,
2589 szqualifier: *mut i8,
2590 szdllpath: *mut i8,
2591 cchbuffersize: u32,
2592 finstall: windows_core::BOOL,
2593 ) -> windows_core::BOOL,
2594>;
2595pub const FILE_ATTRIBUTE_ARCHIVE: u32 = 32u32;
2596pub const FILE_ATTRIBUTE_DIRECTORY: u32 = 16u32;
2597pub const FILE_ATTRIBUTE_HIDDEN: u32 = 2u32;
2598pub const FILE_ATTRIBUTE_NORMAL: u32 = 128u32;
2599pub const FILE_ATTRIBUTE_READONLY: u32 = 1u32;
2600pub const FILE_ATTRIBUTE_SYSTEM: u32 = 4u32;
2601pub const FILE_ATTRIBUTE_TEMPORARY: u32 = 256u32;
2602pub const FILE_FLAG_RANDOM_ACCESS: u32 = 268435456u32;
2603pub const FILE_FLAG_SEQUENTIAL_SCAN: u32 = 134217728u32;
2604pub const FILE_FLAG_WRITE_THROUGH: u32 = 2147483648u32;
2605pub const FILL_ENTRY: u32 = 1u32;
2606#[repr(C)]
2607#[derive(Clone, Copy, Debug, Default, PartialEq)]
2608pub struct FINDBODY {
2609 pub pszPriType: windows_core::PSTR,
2610 pub pszSubType: windows_core::PSTR,
2611 pub dwReserved: u32,
2612}
2613#[repr(C)]
2614#[derive(Clone, Copy, Debug, Default, PartialEq)]
2615pub struct FINDHEADER {
2616 pub pszHeader: windows_core::PCSTR,
2617 pub dwReserved: u32,
2618}
2619#[repr(C)]
2620#[derive(Clone, Copy, Debug, PartialEq)]
2621pub struct FLATENTRY {
2622 pub cb: u32,
2623 pub abEntry: [u8; 1],
2624}
2625impl Default for FLATENTRY {
2626 fn default() -> Self {
2627 unsafe { core::mem::zeroed() }
2628 }
2629}
2630#[repr(C)]
2631#[derive(Clone, Copy, Debug, PartialEq)]
2632pub struct FLATENTRYLIST {
2633 pub cEntries: u32,
2634 pub cbEntries: u32,
2635 pub abEntries: [u8; 1],
2636}
2637impl Default for FLATENTRYLIST {
2638 fn default() -> Self {
2639 unsafe { core::mem::zeroed() }
2640 }
2641}
2642#[repr(C)]
2643#[derive(Clone, Copy, Debug, PartialEq)]
2644pub struct FLATMTSIDLIST {
2645 pub cMTSIDs: u32,
2646 pub cbMTSIDs: u32,
2647 pub abMTSIDs: [u8; 1],
2648}
2649impl Default for FLATMTSIDLIST {
2650 fn default() -> Self {
2651 unsafe { core::mem::zeroed() }
2652 }
2653}
2654pub const FLDSTATUS_DELMARKED: u32 = 8u32;
2655pub const FLDSTATUS_HIDDEN: u32 = 4u32;
2656pub const FLDSTATUS_HIGHLIGHTED: u32 = 1u32;
2657pub const FLDSTATUS_TAGGED: u32 = 2u32;
2658pub const FLUSH_ASYNC_OK: u32 = 32u32;
2659pub const FLUSH_DOWNLOAD: u32 = 4u32;
2660pub const FLUSH_FORCE: u32 = 8u32;
2661pub const FLUSH_NO_UI: u32 = 16u32;
2662pub const FLUSH_UPLOAD: u32 = 2u32;
2663pub const FL_FULLSTRING: u32 = 0u32;
2664pub const FL_IGNORECASE: u32 = 65536u32;
2665pub const FL_IGNORENONSPACE: u32 = 131072u32;
2666pub const FL_LOOSE: u32 = 262144u32;
2667pub const FL_PREFIX: u32 = 2u32;
2668pub const FL_SUBSTRING: u32 = 1u32;
2669#[repr(transparent)]
2670#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
2671pub struct FNTSYSTYPE(pub i32);
2672pub const FNT_SYS_ICON: FNTSYSTYPE = FNTSYSTYPE(0i32);
2673pub const FNT_SYS_ICON_BOLD: FNTSYSTYPE = FNTSYSTYPE(1i32);
2674pub const FNT_SYS_ICON_STRIKEOUT: FNTSYSTYPE = FNTSYSTYPE(3i32);
2675pub const FNT_SYS_LAST: FNTSYSTYPE = FNTSYSTYPE(4i32);
2676pub const FNT_SYS_MENU: FNTSYSTYPE = FNTSYSTYPE(2i32);
2677pub const FOLDER_COMMON_VIEWS_VALID: u32 = 64u32;
2678pub const FOLDER_DIALOG: u32 = 2u32;
2679pub const FOLDER_FINDER_VALID: u32 = 128u32;
2680pub const FOLDER_GENERIC: u32 = 1u32;
2681pub const FOLDER_IPM_INBOX_VALID: u32 = 2u32;
2682pub const FOLDER_IPM_OUTBOX_VALID: u32 = 4u32;
2683pub const FOLDER_IPM_SENTMAIL_VALID: u32 = 16u32;
2684pub const FOLDER_IPM_SUBTREE_VALID: u32 = 1u32;
2685pub const FOLDER_IPM_WASTEBASKET_VALID: u32 = 8u32;
2686pub const FOLDER_MOVE: u32 = 1u32;
2687pub const FOLDER_ROOT: u32 = 0u32;
2688pub const FOLDER_SEARCH: u32 = 2u32;
2689pub const FOLDER_VIEWS_VALID: u32 = 32u32;
2690pub const FORCE_SAVE: u32 = 4u32;
2691pub const FORCE_SUBMIT: u32 = 1u32;
2692pub const FORCE_XP_CONNECT: u32 = 262144u32;
2693pub const FORCE_XP_DISCONNECT: u32 = 524288u32;
2694pub const FOREGROUND_SEARCH: u32 = 16u32;
2695#[repr(C)]
2696#[derive(Clone, Copy, Debug, Default, PartialEq)]
2697pub struct FORMPRINTSETUP {
2698 pub ulFlags: u32,
2699 pub hDevMode: windows::Win32::Foundation::HGLOBAL,
2700 pub hDevNames: windows::Win32::Foundation::HGLOBAL,
2701 pub ulFirstPageNumber: u32,
2702 pub fPrintAttachments: u32,
2703}
2704pub const FORMPROPSET_INTERSECTION: u32 = 1u32;
2705pub const FORMPROPSET_UNION: u32 = 0u32;
2706pub const FPST_ENUM_PROP: u32 = 1u32;
2707pub const FPST_VANILLA: u32 = 0u32;
2708pub const FWD_AS_ATTACHMENT: u32 = 4u32;
2709pub const FWD_DO_NOT_MUNGE_MSG: u32 = 2u32;
2710pub const FWD_PRESERVE_SENDER: u32 = 1u32;
2711#[repr(C)]
2712#[derive(Clone, Copy, Debug, PartialEq)]
2713pub struct FlagList {
2714 pub cFlags: u32,
2715 pub ulFlag: [u32; 1],
2716}
2717impl Default for FlagList {
2718 fn default() -> Self {
2719 unsafe { core::mem::zeroed() }
2720 }
2721}
2722pub const GENERATE_RECEIPT_ONLY: u32 = 16u32;
2723#[repr(C)]
2724#[derive(Clone, Copy, Debug, Default, PartialEq)]
2725pub struct HADDRESS__ {
2726 pub unused: u32,
2727}
2728#[repr(C)]
2729#[derive(Clone, Copy, Debug, Default, PartialEq)]
2730pub struct HBODY__ {
2731 pub unused: u32,
2732}
2733#[repr(C)]
2734#[derive(Clone, Copy, Debug, Default, PartialEq)]
2735pub struct HCHARSET__ {
2736 pub unused: u32,
2737}
2738#[repr(C)]
2739#[derive(Clone, Copy, Debug, Default, PartialEq)]
2740pub struct HEADERROWINFO {
2741 pub dwRowNumber: u32,
2742 pub cboffStart: u32,
2743 pub cboffColon: u32,
2744 pub cboffEnd: u32,
2745}
2746#[repr(transparent)]
2747#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
2748pub struct HEADERTABLEFLAGS(pub i32);
2749pub const HFRMREG_DEFAULT: u32 = 0u32;
2750pub const HFRMREG_FOLDER: u32 = 3u32;
2751pub const HFRMREG_LOCAL: u32 = 1u32;
2752pub const HFRMREG_PERSONAL: u32 = 2u32;
2753pub const HF_NO_DUPLICATES: u32 = 1u32;
2754#[repr(C)]
2755#[derive(Clone, Copy, Debug, Default, PartialEq)]
2756pub struct HHEADERROW__ {
2757 pub unused: u32,
2758}
2759pub const HOOK_CANCEL: u32 = 2u32;
2760pub const HOOK_DELETE: u32 = 1u32;
2761pub const HOOK_INBOUND: u32 = 512u32;
2762pub const HOOK_OUTBOUND: u32 = 1024u32;
2763pub type HPPROVIDERINIT = Option<
2764 unsafe extern "system" fn(
2765 lpsession: windows_core::Ref<IMAPISession>,
2766 hinstance: windows::Win32::Foundation::HINSTANCE,
2767 lpallocatebuffer: LPALLOCATEBUFFER,
2768 lpallocatemore: LPALLOCATEMORE,
2769 lpfreebuffer: LPFREEBUFFER,
2770 lpsectionuid: *mut MAPIUID,
2771 ulflags: u32,
2772 lppspoolerhook: windows_core::OutRef<ISpoolerHook>,
2773 ) -> windows_core::HRESULT,
2774>;
2775pub const HTF_ENUMHANDLESONLY: HEADERTABLEFLAGS = HEADERTABLEFLAGS(2i32);
2776pub const HTF_NAMEINDATA: HEADERTABLEFLAGS = HEADERTABLEFLAGS(1i32);
2777windows_core::imp::define_interface!(
2778 IABContainer,
2779 IABContainer_Vtbl,
2780 0x0002030d_0000_0000_c000_000000000046
2781);
2782impl core::ops::Deref for IABContainer {
2783 type Target = IMAPIContainer;
2784 fn deref(&self) -> &Self::Target {
2785 unsafe { core::mem::transmute(self) }
2786 }
2787}
2788windows_core::imp::interface_hierarchy!(
2789 IABContainer,
2790 windows_core::IUnknown,
2791 IMAPIProp,
2792 IMAPIContainer
2793);
2794impl IABContainer {
2795 pub unsafe fn CreateEntry(
2796 &self,
2797 cbentryid: u32,
2798 lpentryid: *mut ENTRYID,
2799 ulcreateflags: u32,
2800 lppmapipropentry: *mut Option<IMAPIProp>,
2801 ) -> windows_core::Result<()> {
2802 unsafe {
2803 (windows_core::Interface::vtable(self).CreateEntry)(
2804 windows_core::Interface::as_raw(self),
2805 cbentryid,
2806 lpentryid as _,
2807 ulcreateflags,
2808 core::mem::transmute(lppmapipropentry),
2809 )
2810 .ok()
2811 }
2812 }
2813 pub unsafe fn CopyEntries<P2>(
2814 &self,
2815 lpentries: *mut SBinaryArray,
2816 uluiparam: usize,
2817 lpprogress: P2,
2818 ulflags: u32,
2819 ) -> windows_core::Result<()>
2820 where
2821 P2: windows_core::Param<IMAPIProgress>,
2822 {
2823 unsafe {
2824 (windows_core::Interface::vtable(self).CopyEntries)(
2825 windows_core::Interface::as_raw(self),
2826 lpentries as _,
2827 uluiparam,
2828 lpprogress.param().abi(),
2829 ulflags,
2830 )
2831 .ok()
2832 }
2833 }
2834 pub unsafe fn DeleteEntries(
2835 &self,
2836 lpentries: *mut SBinaryArray,
2837 ulflags: u32,
2838 ) -> windows_core::Result<()> {
2839 unsafe {
2840 (windows_core::Interface::vtable(self).DeleteEntries)(
2841 windows_core::Interface::as_raw(self),
2842 lpentries as _,
2843 ulflags,
2844 )
2845 .ok()
2846 }
2847 }
2848 pub unsafe fn ResolveNames(
2849 &self,
2850 lpproptagarray: *mut SPropTagArray,
2851 ulflags: u32,
2852 lpadrlist: *mut ADRLIST,
2853 lpflaglist: *mut FlagList,
2854 ) -> windows_core::Result<()> {
2855 unsafe {
2856 (windows_core::Interface::vtable(self).ResolveNames)(
2857 windows_core::Interface::as_raw(self),
2858 lpproptagarray as _,
2859 ulflags,
2860 lpadrlist as _,
2861 lpflaglist as _,
2862 )
2863 .ok()
2864 }
2865 }
2866}
2867#[repr(C)]
2868#[doc(hidden)]
2869pub struct IABContainer_Vtbl {
2870 pub base__: IMAPIContainer_Vtbl,
2871 pub CreateEntry: unsafe extern "system" fn(
2872 *mut core::ffi::c_void,
2873 u32,
2874 *mut ENTRYID,
2875 u32,
2876 *mut *mut core::ffi::c_void,
2877 ) -> windows_core::HRESULT,
2878 pub CopyEntries: unsafe extern "system" fn(
2879 *mut core::ffi::c_void,
2880 *mut SBinaryArray,
2881 usize,
2882 *mut core::ffi::c_void,
2883 u32,
2884 ) -> windows_core::HRESULT,
2885 pub DeleteEntries: unsafe extern "system" fn(
2886 *mut core::ffi::c_void,
2887 *mut SBinaryArray,
2888 u32,
2889 ) -> windows_core::HRESULT,
2890 pub ResolveNames: unsafe extern "system" fn(
2891 *mut core::ffi::c_void,
2892 *mut SPropTagArray,
2893 u32,
2894 *mut ADRLIST,
2895 *mut FlagList,
2896 ) -> windows_core::HRESULT,
2897}
2898pub trait IABContainer_Impl: IMAPIContainer_Impl {
2899 fn CreateEntry(
2900 &self,
2901 cbentryid: u32,
2902 lpentryid: *mut ENTRYID,
2903 ulcreateflags: u32,
2904 lppmapipropentry: windows_core::OutRef<IMAPIProp>,
2905 ) -> windows_core::Result<()>;
2906 fn CopyEntries(
2907 &self,
2908 lpentries: *mut SBinaryArray,
2909 uluiparam: usize,
2910 lpprogress: windows_core::Ref<IMAPIProgress>,
2911 ulflags: u32,
2912 ) -> windows_core::Result<()>;
2913 fn DeleteEntries(&self, lpentries: *mut SBinaryArray, ulflags: u32)
2914 -> windows_core::Result<()>;
2915 fn ResolveNames(
2916 &self,
2917 lpproptagarray: *mut SPropTagArray,
2918 ulflags: u32,
2919 lpadrlist: *mut ADRLIST,
2920 lpflaglist: *mut FlagList,
2921 ) -> windows_core::Result<()>;
2922}
2923impl IABContainer_Vtbl {
2924 pub const fn new<Identity: IABContainer_Impl, const OFFSET: isize>() -> Self {
2925 unsafe extern "system" fn CreateEntry<Identity: IABContainer_Impl, const OFFSET: isize>(
2926 this: *mut core::ffi::c_void,
2927 cbentryid: u32,
2928 lpentryid: *mut ENTRYID,
2929 ulcreateflags: u32,
2930 lppmapipropentry: *mut *mut core::ffi::c_void,
2931 ) -> windows_core::HRESULT {
2932 unsafe {
2933 let this: &Identity =
2934 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
2935 IABContainer_Impl::CreateEntry(
2936 this,
2937 core::mem::transmute_copy(&cbentryid),
2938 core::mem::transmute_copy(&lpentryid),
2939 core::mem::transmute_copy(&ulcreateflags),
2940 core::mem::transmute_copy(&lppmapipropentry),
2941 )
2942 .into()
2943 }
2944 }
2945 unsafe extern "system" fn CopyEntries<Identity: IABContainer_Impl, const OFFSET: isize>(
2946 this: *mut core::ffi::c_void,
2947 lpentries: *mut SBinaryArray,
2948 uluiparam: usize,
2949 lpprogress: *mut core::ffi::c_void,
2950 ulflags: u32,
2951 ) -> windows_core::HRESULT {
2952 unsafe {
2953 let this: &Identity =
2954 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
2955 IABContainer_Impl::CopyEntries(
2956 this,
2957 core::mem::transmute_copy(&lpentries),
2958 core::mem::transmute_copy(&uluiparam),
2959 core::mem::transmute_copy(&lpprogress),
2960 core::mem::transmute_copy(&ulflags),
2961 )
2962 .into()
2963 }
2964 }
2965 unsafe extern "system" fn DeleteEntries<
2966 Identity: IABContainer_Impl,
2967 const OFFSET: isize,
2968 >(
2969 this: *mut core::ffi::c_void,
2970 lpentries: *mut SBinaryArray,
2971 ulflags: u32,
2972 ) -> windows_core::HRESULT {
2973 unsafe {
2974 let this: &Identity =
2975 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
2976 IABContainer_Impl::DeleteEntries(
2977 this,
2978 core::mem::transmute_copy(&lpentries),
2979 core::mem::transmute_copy(&ulflags),
2980 )
2981 .into()
2982 }
2983 }
2984 unsafe extern "system" fn ResolveNames<Identity: IABContainer_Impl, const OFFSET: isize>(
2985 this: *mut core::ffi::c_void,
2986 lpproptagarray: *mut SPropTagArray,
2987 ulflags: u32,
2988 lpadrlist: *mut ADRLIST,
2989 lpflaglist: *mut FlagList,
2990 ) -> windows_core::HRESULT {
2991 unsafe {
2992 let this: &Identity =
2993 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
2994 IABContainer_Impl::ResolveNames(
2995 this,
2996 core::mem::transmute_copy(&lpproptagarray),
2997 core::mem::transmute_copy(&ulflags),
2998 core::mem::transmute_copy(&lpadrlist),
2999 core::mem::transmute_copy(&lpflaglist),
3000 )
3001 .into()
3002 }
3003 }
3004 Self {
3005 base__: IMAPIContainer_Vtbl::new::<Identity, OFFSET>(),
3006 CreateEntry: CreateEntry::<Identity, OFFSET>,
3007 CopyEntries: CopyEntries::<Identity, OFFSET>,
3008 DeleteEntries: DeleteEntries::<Identity, OFFSET>,
3009 ResolveNames: ResolveNames::<Identity, OFFSET>,
3010 }
3011 }
3012 pub fn matches(iid: &windows_core::GUID) -> bool {
3013 iid == &<IABContainer as windows_core::Interface>::IID
3014 || iid == &<IMAPIProp as windows_core::Interface>::IID
3015 || iid == &<IMAPIContainer as windows_core::Interface>::IID
3016 }
3017}
3018impl windows_core::RuntimeName for IABContainer {}
3019pub const IABContainer_CopyEntries: METHODS = METHODS(43i32);
3020pub const IABContainer_CreateEntry: METHODS = METHODS(42i32);
3021pub const IABContainer_DeleteEntries: METHODS = METHODS(44i32);
3022pub const IABContainer_ResolveNames: METHODS = METHODS(45i32);
3023windows_core::imp::define_interface!(
3024 IABLogon,
3025 IABLogon_Vtbl,
3026 0x00020314_0000_0000_c000_000000000046
3027);
3028windows_core::imp::interface_hierarchy!(IABLogon, windows_core::IUnknown);
3029impl IABLogon {
3030 pub unsafe fn GetLastError(
3031 &self,
3032 hresult: windows_core::HRESULT,
3033 ulflags: u32,
3034 lppmapierror: *mut *mut MAPIERROR,
3035 ) -> windows_core::Result<()> {
3036 unsafe {
3037 (windows_core::Interface::vtable(self).GetLastError)(
3038 windows_core::Interface::as_raw(self),
3039 hresult,
3040 ulflags,
3041 lppmapierror as _,
3042 )
3043 .ok()
3044 }
3045 }
3046 pub unsafe fn Logoff(&self, ulflags: u32) -> windows_core::Result<()> {
3047 unsafe {
3048 (windows_core::Interface::vtable(self).Logoff)(
3049 windows_core::Interface::as_raw(self),
3050 ulflags,
3051 )
3052 .ok()
3053 }
3054 }
3055 pub unsafe fn OpenEntry(
3056 &self,
3057 cbentryid: u32,
3058 lpentryid: *mut ENTRYID,
3059 lpinterface: *mut windows_core::GUID,
3060 ulflags: u32,
3061 lpulobjtype: *mut u32,
3062 lppunk: *mut Option<windows_core::IUnknown>,
3063 ) -> windows_core::Result<()> {
3064 unsafe {
3065 (windows_core::Interface::vtable(self).OpenEntry)(
3066 windows_core::Interface::as_raw(self),
3067 cbentryid,
3068 lpentryid as _,
3069 lpinterface as _,
3070 ulflags,
3071 lpulobjtype as _,
3072 core::mem::transmute(lppunk),
3073 )
3074 .ok()
3075 }
3076 }
3077 pub unsafe fn CompareEntryIDs(
3078 &self,
3079 cbentryid1: u32,
3080 lpentryid1: *mut ENTRYID,
3081 cbentryid2: u32,
3082 lpentryid2: *mut ENTRYID,
3083 ulflags: u32,
3084 lpulresult: *mut u32,
3085 ) -> windows_core::Result<()> {
3086 unsafe {
3087 (windows_core::Interface::vtable(self).CompareEntryIDs)(
3088 windows_core::Interface::as_raw(self),
3089 cbentryid1,
3090 lpentryid1 as _,
3091 cbentryid2,
3092 lpentryid2 as _,
3093 ulflags,
3094 lpulresult as _,
3095 )
3096 .ok()
3097 }
3098 }
3099 pub unsafe fn Advise<P3>(
3100 &self,
3101 cbentryid: u32,
3102 lpentryid: *mut ENTRYID,
3103 uleventmask: u32,
3104 lpadvisesink: P3,
3105 lpulconnection: *mut usize,
3106 ) -> windows_core::Result<()>
3107 where
3108 P3: windows_core::Param<IMAPIAdviseSink>,
3109 {
3110 unsafe {
3111 (windows_core::Interface::vtable(self).Advise)(
3112 windows_core::Interface::as_raw(self),
3113 cbentryid,
3114 lpentryid as _,
3115 uleventmask,
3116 lpadvisesink.param().abi(),
3117 lpulconnection as _,
3118 )
3119 .ok()
3120 }
3121 }
3122 pub unsafe fn Unadvise(&self, ulconnection: usize) -> windows_core::Result<()> {
3123 unsafe {
3124 (windows_core::Interface::vtable(self).Unadvise)(
3125 windows_core::Interface::as_raw(self),
3126 ulconnection,
3127 )
3128 .ok()
3129 }
3130 }
3131 pub unsafe fn OpenStatusEntry(
3132 &self,
3133 lpinterface: *mut windows_core::GUID,
3134 ulflags: u32,
3135 lpulobjtype: *mut u32,
3136 lppentry: *mut Option<IMAPIStatus>,
3137 ) -> windows_core::Result<()> {
3138 unsafe {
3139 (windows_core::Interface::vtable(self).OpenStatusEntry)(
3140 windows_core::Interface::as_raw(self),
3141 lpinterface as _,
3142 ulflags,
3143 lpulobjtype as _,
3144 core::mem::transmute(lppentry),
3145 )
3146 .ok()
3147 }
3148 }
3149 pub unsafe fn OpenTemplateID<P3, P6>(
3150 &self,
3151 cbtemplateid: u32,
3152 lptemplateid: *mut ENTRYID,
3153 ultemplateflags: u32,
3154 lpmapipropdata: P3,
3155 lpinterface: *mut windows_core::GUID,
3156 lppmapipropnew: *mut Option<IMAPIProp>,
3157 lpmapipropsibling: P6,
3158 ) -> windows_core::Result<()>
3159 where
3160 P3: windows_core::Param<IMAPIProp>,
3161 P6: windows_core::Param<IMAPIProp>,
3162 {
3163 unsafe {
3164 (windows_core::Interface::vtable(self).OpenTemplateID)(
3165 windows_core::Interface::as_raw(self),
3166 cbtemplateid,
3167 lptemplateid as _,
3168 ultemplateflags,
3169 lpmapipropdata.param().abi(),
3170 lpinterface as _,
3171 core::mem::transmute(lppmapipropnew),
3172 lpmapipropsibling.param().abi(),
3173 )
3174 .ok()
3175 }
3176 }
3177 pub unsafe fn GetOneOffTable(&self, ulflags: u32) -> windows_core::Result<IMAPITable> {
3178 unsafe {
3179 let mut result__ = core::mem::zeroed();
3180 (windows_core::Interface::vtable(self).GetOneOffTable)(
3181 windows_core::Interface::as_raw(self),
3182 ulflags,
3183 &mut result__,
3184 )
3185 .and_then(|| windows_core::Type::from_abi(result__))
3186 }
3187 }
3188 pub unsafe fn PrepareRecips(
3189 &self,
3190 ulflags: u32,
3191 lpproptagarray: *mut SPropTagArray,
3192 lpreciplist: *mut ADRLIST,
3193 ) -> windows_core::Result<()> {
3194 unsafe {
3195 (windows_core::Interface::vtable(self).PrepareRecips)(
3196 windows_core::Interface::as_raw(self),
3197 ulflags,
3198 lpproptagarray as _,
3199 lpreciplist as _,
3200 )
3201 .ok()
3202 }
3203 }
3204}
3205#[repr(C)]
3206#[doc(hidden)]
3207pub struct IABLogon_Vtbl {
3208 pub base__: windows_core::IUnknown_Vtbl,
3209 pub GetLastError: unsafe extern "system" fn(
3210 *mut core::ffi::c_void,
3211 windows_core::HRESULT,
3212 u32,
3213 *mut *mut MAPIERROR,
3214 ) -> windows_core::HRESULT,
3215 pub Logoff: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
3216 pub OpenEntry: unsafe extern "system" fn(
3217 *mut core::ffi::c_void,
3218 u32,
3219 *mut ENTRYID,
3220 *mut windows_core::GUID,
3221 u32,
3222 *mut u32,
3223 *mut *mut core::ffi::c_void,
3224 ) -> windows_core::HRESULT,
3225 pub CompareEntryIDs: unsafe extern "system" fn(
3226 *mut core::ffi::c_void,
3227 u32,
3228 *mut ENTRYID,
3229 u32,
3230 *mut ENTRYID,
3231 u32,
3232 *mut u32,
3233 ) -> windows_core::HRESULT,
3234 pub Advise: unsafe extern "system" fn(
3235 *mut core::ffi::c_void,
3236 u32,
3237 *mut ENTRYID,
3238 u32,
3239 *mut core::ffi::c_void,
3240 *mut usize,
3241 ) -> windows_core::HRESULT,
3242 pub Unadvise: unsafe extern "system" fn(*mut core::ffi::c_void, usize) -> windows_core::HRESULT,
3243 pub OpenStatusEntry: unsafe extern "system" fn(
3244 *mut core::ffi::c_void,
3245 *mut windows_core::GUID,
3246 u32,
3247 *mut u32,
3248 *mut *mut core::ffi::c_void,
3249 ) -> windows_core::HRESULT,
3250 pub OpenTemplateID: unsafe extern "system" fn(
3251 *mut core::ffi::c_void,
3252 u32,
3253 *mut ENTRYID,
3254 u32,
3255 *mut core::ffi::c_void,
3256 *mut windows_core::GUID,
3257 *mut *mut core::ffi::c_void,
3258 *mut core::ffi::c_void,
3259 ) -> windows_core::HRESULT,
3260 pub GetOneOffTable: unsafe extern "system" fn(
3261 *mut core::ffi::c_void,
3262 u32,
3263 *mut *mut core::ffi::c_void,
3264 ) -> windows_core::HRESULT,
3265 pub PrepareRecips: unsafe extern "system" fn(
3266 *mut core::ffi::c_void,
3267 u32,
3268 *mut SPropTagArray,
3269 *mut ADRLIST,
3270 ) -> windows_core::HRESULT,
3271}
3272pub trait IABLogon_Impl: windows_core::IUnknownImpl {
3273 fn GetLastError(
3274 &self,
3275 hresult: windows_core::HRESULT,
3276 ulflags: u32,
3277 lppmapierror: *mut *mut MAPIERROR,
3278 ) -> windows_core::Result<()>;
3279 fn Logoff(&self, ulflags: u32) -> windows_core::Result<()>;
3280 fn OpenEntry(
3281 &self,
3282 cbentryid: u32,
3283 lpentryid: *mut ENTRYID,
3284 lpinterface: *mut windows_core::GUID,
3285 ulflags: u32,
3286 lpulobjtype: *mut u32,
3287 lppunk: windows_core::OutRef<windows_core::IUnknown>,
3288 ) -> windows_core::Result<()>;
3289 fn CompareEntryIDs(
3290 &self,
3291 cbentryid1: u32,
3292 lpentryid1: *mut ENTRYID,
3293 cbentryid2: u32,
3294 lpentryid2: *mut ENTRYID,
3295 ulflags: u32,
3296 lpulresult: *mut u32,
3297 ) -> windows_core::Result<()>;
3298 fn Advise(
3299 &self,
3300 cbentryid: u32,
3301 lpentryid: *mut ENTRYID,
3302 uleventmask: u32,
3303 lpadvisesink: windows_core::Ref<IMAPIAdviseSink>,
3304 lpulconnection: *mut usize,
3305 ) -> windows_core::Result<()>;
3306 fn Unadvise(&self, ulconnection: usize) -> windows_core::Result<()>;
3307 fn OpenStatusEntry(
3308 &self,
3309 lpinterface: *mut windows_core::GUID,
3310 ulflags: u32,
3311 lpulobjtype: *mut u32,
3312 lppentry: windows_core::OutRef<IMAPIStatus>,
3313 ) -> windows_core::Result<()>;
3314 fn OpenTemplateID(
3315 &self,
3316 cbtemplateid: u32,
3317 lptemplateid: *mut ENTRYID,
3318 ultemplateflags: u32,
3319 lpmapipropdata: windows_core::Ref<IMAPIProp>,
3320 lpinterface: *mut windows_core::GUID,
3321 lppmapipropnew: windows_core::OutRef<IMAPIProp>,
3322 lpmapipropsibling: windows_core::Ref<IMAPIProp>,
3323 ) -> windows_core::Result<()>;
3324 fn GetOneOffTable(&self, ulflags: u32) -> windows_core::Result<IMAPITable>;
3325 fn PrepareRecips(
3326 &self,
3327 ulflags: u32,
3328 lpproptagarray: *mut SPropTagArray,
3329 lpreciplist: *mut ADRLIST,
3330 ) -> windows_core::Result<()>;
3331}
3332impl IABLogon_Vtbl {
3333 pub const fn new<Identity: IABLogon_Impl, const OFFSET: isize>() -> Self {
3334 unsafe extern "system" fn GetLastError<Identity: IABLogon_Impl, const OFFSET: isize>(
3335 this: *mut core::ffi::c_void,
3336 hresult: windows_core::HRESULT,
3337 ulflags: u32,
3338 lppmapierror: *mut *mut MAPIERROR,
3339 ) -> windows_core::HRESULT {
3340 unsafe {
3341 let this: &Identity =
3342 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
3343 IABLogon_Impl::GetLastError(
3344 this,
3345 core::mem::transmute_copy(&hresult),
3346 core::mem::transmute_copy(&ulflags),
3347 core::mem::transmute_copy(&lppmapierror),
3348 )
3349 .into()
3350 }
3351 }
3352 unsafe extern "system" fn Logoff<Identity: IABLogon_Impl, const OFFSET: isize>(
3353 this: *mut core::ffi::c_void,
3354 ulflags: u32,
3355 ) -> windows_core::HRESULT {
3356 unsafe {
3357 let this: &Identity =
3358 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
3359 IABLogon_Impl::Logoff(this, core::mem::transmute_copy(&ulflags)).into()
3360 }
3361 }
3362 unsafe extern "system" fn OpenEntry<Identity: IABLogon_Impl, const OFFSET: isize>(
3363 this: *mut core::ffi::c_void,
3364 cbentryid: u32,
3365 lpentryid: *mut ENTRYID,
3366 lpinterface: *mut windows_core::GUID,
3367 ulflags: u32,
3368 lpulobjtype: *mut u32,
3369 lppunk: *mut *mut core::ffi::c_void,
3370 ) -> windows_core::HRESULT {
3371 unsafe {
3372 let this: &Identity =
3373 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
3374 IABLogon_Impl::OpenEntry(
3375 this,
3376 core::mem::transmute_copy(&cbentryid),
3377 core::mem::transmute_copy(&lpentryid),
3378 core::mem::transmute_copy(&lpinterface),
3379 core::mem::transmute_copy(&ulflags),
3380 core::mem::transmute_copy(&lpulobjtype),
3381 core::mem::transmute_copy(&lppunk),
3382 )
3383 .into()
3384 }
3385 }
3386 unsafe extern "system" fn CompareEntryIDs<Identity: IABLogon_Impl, const OFFSET: isize>(
3387 this: *mut core::ffi::c_void,
3388 cbentryid1: u32,
3389 lpentryid1: *mut ENTRYID,
3390 cbentryid2: u32,
3391 lpentryid2: *mut ENTRYID,
3392 ulflags: u32,
3393 lpulresult: *mut u32,
3394 ) -> windows_core::HRESULT {
3395 unsafe {
3396 let this: &Identity =
3397 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
3398 IABLogon_Impl::CompareEntryIDs(
3399 this,
3400 core::mem::transmute_copy(&cbentryid1),
3401 core::mem::transmute_copy(&lpentryid1),
3402 core::mem::transmute_copy(&cbentryid2),
3403 core::mem::transmute_copy(&lpentryid2),
3404 core::mem::transmute_copy(&ulflags),
3405 core::mem::transmute_copy(&lpulresult),
3406 )
3407 .into()
3408 }
3409 }
3410 unsafe extern "system" fn Advise<Identity: IABLogon_Impl, const OFFSET: isize>(
3411 this: *mut core::ffi::c_void,
3412 cbentryid: u32,
3413 lpentryid: *mut ENTRYID,
3414 uleventmask: u32,
3415 lpadvisesink: *mut core::ffi::c_void,
3416 lpulconnection: *mut usize,
3417 ) -> windows_core::HRESULT {
3418 unsafe {
3419 let this: &Identity =
3420 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
3421 IABLogon_Impl::Advise(
3422 this,
3423 core::mem::transmute_copy(&cbentryid),
3424 core::mem::transmute_copy(&lpentryid),
3425 core::mem::transmute_copy(&uleventmask),
3426 core::mem::transmute_copy(&lpadvisesink),
3427 core::mem::transmute_copy(&lpulconnection),
3428 )
3429 .into()
3430 }
3431 }
3432 unsafe extern "system" fn Unadvise<Identity: IABLogon_Impl, const OFFSET: isize>(
3433 this: *mut core::ffi::c_void,
3434 ulconnection: usize,
3435 ) -> windows_core::HRESULT {
3436 unsafe {
3437 let this: &Identity =
3438 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
3439 IABLogon_Impl::Unadvise(this, core::mem::transmute_copy(&ulconnection)).into()
3440 }
3441 }
3442 unsafe extern "system" fn OpenStatusEntry<Identity: IABLogon_Impl, const OFFSET: isize>(
3443 this: *mut core::ffi::c_void,
3444 lpinterface: *mut windows_core::GUID,
3445 ulflags: u32,
3446 lpulobjtype: *mut u32,
3447 lppentry: *mut *mut core::ffi::c_void,
3448 ) -> windows_core::HRESULT {
3449 unsafe {
3450 let this: &Identity =
3451 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
3452 IABLogon_Impl::OpenStatusEntry(
3453 this,
3454 core::mem::transmute_copy(&lpinterface),
3455 core::mem::transmute_copy(&ulflags),
3456 core::mem::transmute_copy(&lpulobjtype),
3457 core::mem::transmute_copy(&lppentry),
3458 )
3459 .into()
3460 }
3461 }
3462 unsafe extern "system" fn OpenTemplateID<Identity: IABLogon_Impl, const OFFSET: isize>(
3463 this: *mut core::ffi::c_void,
3464 cbtemplateid: u32,
3465 lptemplateid: *mut ENTRYID,
3466 ultemplateflags: u32,
3467 lpmapipropdata: *mut core::ffi::c_void,
3468 lpinterface: *mut windows_core::GUID,
3469 lppmapipropnew: *mut *mut core::ffi::c_void,
3470 lpmapipropsibling: *mut core::ffi::c_void,
3471 ) -> windows_core::HRESULT {
3472 unsafe {
3473 let this: &Identity =
3474 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
3475 IABLogon_Impl::OpenTemplateID(
3476 this,
3477 core::mem::transmute_copy(&cbtemplateid),
3478 core::mem::transmute_copy(&lptemplateid),
3479 core::mem::transmute_copy(&ultemplateflags),
3480 core::mem::transmute_copy(&lpmapipropdata),
3481 core::mem::transmute_copy(&lpinterface),
3482 core::mem::transmute_copy(&lppmapipropnew),
3483 core::mem::transmute_copy(&lpmapipropsibling),
3484 )
3485 .into()
3486 }
3487 }
3488 unsafe extern "system" fn GetOneOffTable<Identity: IABLogon_Impl, const OFFSET: isize>(
3489 this: *mut core::ffi::c_void,
3490 ulflags: u32,
3491 lpptable: *mut *mut core::ffi::c_void,
3492 ) -> windows_core::HRESULT {
3493 unsafe {
3494 let this: &Identity =
3495 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
3496 match IABLogon_Impl::GetOneOffTable(this, core::mem::transmute_copy(&ulflags)) {
3497 Ok(ok__) => {
3498 lpptable.write(core::mem::transmute(ok__));
3499 windows_core::HRESULT(0)
3500 }
3501 Err(err) => err.into(),
3502 }
3503 }
3504 }
3505 unsafe extern "system" fn PrepareRecips<Identity: IABLogon_Impl, const OFFSET: isize>(
3506 this: *mut core::ffi::c_void,
3507 ulflags: u32,
3508 lpproptagarray: *mut SPropTagArray,
3509 lpreciplist: *mut ADRLIST,
3510 ) -> windows_core::HRESULT {
3511 unsafe {
3512 let this: &Identity =
3513 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
3514 IABLogon_Impl::PrepareRecips(
3515 this,
3516 core::mem::transmute_copy(&ulflags),
3517 core::mem::transmute_copy(&lpproptagarray),
3518 core::mem::transmute_copy(&lpreciplist),
3519 )
3520 .into()
3521 }
3522 }
3523 Self {
3524 base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
3525 GetLastError: GetLastError::<Identity, OFFSET>,
3526 Logoff: Logoff::<Identity, OFFSET>,
3527 OpenEntry: OpenEntry::<Identity, OFFSET>,
3528 CompareEntryIDs: CompareEntryIDs::<Identity, OFFSET>,
3529 Advise: Advise::<Identity, OFFSET>,
3530 Unadvise: Unadvise::<Identity, OFFSET>,
3531 OpenStatusEntry: OpenStatusEntry::<Identity, OFFSET>,
3532 OpenTemplateID: OpenTemplateID::<Identity, OFFSET>,
3533 GetOneOffTable: GetOneOffTable::<Identity, OFFSET>,
3534 PrepareRecips: PrepareRecips::<Identity, OFFSET>,
3535 }
3536 }
3537 pub fn matches(iid: &windows_core::GUID) -> bool {
3538 iid == &<IABLogon as windows_core::Interface>::IID
3539 }
3540}
3541impl windows_core::RuntimeName for IABLogon {}
3542pub const IABLogon_Advise: METHODS = METHODS(88i32);
3543pub const IABLogon_CompareEntryIDs: METHODS = METHODS(87i32);
3544pub const IABLogon_GetLastError: METHODS = METHODS(84i32);
3545pub const IABLogon_GetOneOffTable: METHODS = METHODS(92i32);
3546pub const IABLogon_Logoff: METHODS = METHODS(85i32);
3547pub const IABLogon_OpenEntry: METHODS = METHODS(86i32);
3548pub const IABLogon_OpenStatusEntry: METHODS = METHODS(90i32);
3549pub const IABLogon_OpenTemplateID: METHODS = METHODS(91i32);
3550pub const IABLogon_PrepareRecips: METHODS = METHODS(93i32);
3551pub const IABLogon_Unadvise: METHODS = METHODS(89i32);
3552windows_core::imp::define_interface!(
3553 IABProvider,
3554 IABProvider_Vtbl,
3555 0x00020311_0000_0000_c000_000000000046
3556);
3557windows_core::imp::interface_hierarchy!(IABProvider, windows_core::IUnknown);
3558impl IABProvider {
3559 pub unsafe fn Shutdown(&self, lpulflags: *mut u32) -> windows_core::Result<()> {
3560 unsafe {
3561 (windows_core::Interface::vtable(self).Shutdown)(
3562 windows_core::Interface::as_raw(self),
3563 lpulflags as _,
3564 )
3565 .ok()
3566 }
3567 }
3568 pub unsafe fn Logon<P0>(
3569 &self,
3570 lpmapisup: P0,
3571 uluiparam: usize,
3572 lpszprofilename: *mut i8,
3573 ulflags: u32,
3574 lpulpcbsecurity: *mut u32,
3575 lppbsecurity: *mut *mut u8,
3576 lppmapierror: *mut *mut MAPIERROR,
3577 lppablogon: *mut Option<IABLogon>,
3578 ) -> windows_core::Result<()>
3579 where
3580 P0: windows_core::Param<IMAPISupport>,
3581 {
3582 unsafe {
3583 (windows_core::Interface::vtable(self).Logon)(
3584 windows_core::Interface::as_raw(self),
3585 lpmapisup.param().abi(),
3586 uluiparam,
3587 lpszprofilename as _,
3588 ulflags,
3589 lpulpcbsecurity as _,
3590 lppbsecurity as _,
3591 lppmapierror as _,
3592 core::mem::transmute(lppablogon),
3593 )
3594 .ok()
3595 }
3596 }
3597}
3598#[repr(C)]
3599#[doc(hidden)]
3600pub struct IABProvider_Vtbl {
3601 pub base__: windows_core::IUnknown_Vtbl,
3602 pub Shutdown:
3603 unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
3604 pub Logon: unsafe extern "system" fn(
3605 *mut core::ffi::c_void,
3606 *mut core::ffi::c_void,
3607 usize,
3608 *mut i8,
3609 u32,
3610 *mut u32,
3611 *mut *mut u8,
3612 *mut *mut MAPIERROR,
3613 *mut *mut core::ffi::c_void,
3614 ) -> windows_core::HRESULT,
3615}
3616pub trait IABProvider_Impl: windows_core::IUnknownImpl {
3617 fn Shutdown(&self, lpulflags: *mut u32) -> windows_core::Result<()>;
3618 fn Logon(
3619 &self,
3620 lpmapisup: windows_core::Ref<IMAPISupport>,
3621 uluiparam: usize,
3622 lpszprofilename: *mut i8,
3623 ulflags: u32,
3624 lpulpcbsecurity: *mut u32,
3625 lppbsecurity: *mut *mut u8,
3626 lppmapierror: *mut *mut MAPIERROR,
3627 lppablogon: windows_core::OutRef<IABLogon>,
3628 ) -> windows_core::Result<()>;
3629}
3630impl IABProvider_Vtbl {
3631 pub const fn new<Identity: IABProvider_Impl, const OFFSET: isize>() -> Self {
3632 unsafe extern "system" fn Shutdown<Identity: IABProvider_Impl, const OFFSET: isize>(
3633 this: *mut core::ffi::c_void,
3634 lpulflags: *mut u32,
3635 ) -> windows_core::HRESULT {
3636 unsafe {
3637 let this: &Identity =
3638 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
3639 IABProvider_Impl::Shutdown(this, core::mem::transmute_copy(&lpulflags)).into()
3640 }
3641 }
3642 unsafe extern "system" fn Logon<Identity: IABProvider_Impl, const OFFSET: isize>(
3643 this: *mut core::ffi::c_void,
3644 lpmapisup: *mut core::ffi::c_void,
3645 uluiparam: usize,
3646 lpszprofilename: *mut i8,
3647 ulflags: u32,
3648 lpulpcbsecurity: *mut u32,
3649 lppbsecurity: *mut *mut u8,
3650 lppmapierror: *mut *mut MAPIERROR,
3651 lppablogon: *mut *mut core::ffi::c_void,
3652 ) -> windows_core::HRESULT {
3653 unsafe {
3654 let this: &Identity =
3655 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
3656 IABProvider_Impl::Logon(
3657 this,
3658 core::mem::transmute_copy(&lpmapisup),
3659 core::mem::transmute_copy(&uluiparam),
3660 core::mem::transmute_copy(&lpszprofilename),
3661 core::mem::transmute_copy(&ulflags),
3662 core::mem::transmute_copy(&lpulpcbsecurity),
3663 core::mem::transmute_copy(&lppbsecurity),
3664 core::mem::transmute_copy(&lppmapierror),
3665 core::mem::transmute_copy(&lppablogon),
3666 )
3667 .into()
3668 }
3669 }
3670 Self {
3671 base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
3672 Shutdown: Shutdown::<Identity, OFFSET>,
3673 Logon: Logon::<Identity, OFFSET>,
3674 }
3675 }
3676 pub fn matches(iid: &windows_core::GUID) -> bool {
3677 iid == &<IABProvider as windows_core::Interface>::IID
3678 }
3679}
3680impl windows_core::RuntimeName for IABProvider {}
3681pub const IABProvider_Logon: METHODS = METHODS(83i32);
3682pub const IABProvider_Shutdown: METHODS = METHODS(82i32);
3683pub const IAP_ADRTYPE: u32 = 4u32;
3684pub const IAP_ALL: u32 = 4294967295u32;
3685pub const IAP_CERTSTATE: u32 = 256u32;
3686pub const IAP_CHARSET: u32 = 1u32;
3687pub const IAP_COOKIE: u32 = 4096u32;
3688pub const IAP_EMAIL: u32 = 32u32;
3689pub const IAP_ENCODING: u32 = 2048u32;
3690pub const IAP_ENCRYPTION_PRINT: u32 = 1024u32;
3691pub const IAP_FRIENDLY: u32 = 8u32;
3692pub const IAP_HANDLE: u32 = 2u32;
3693pub const IAP_SIGNING_PRINT: u32 = 512u32;
3694pub const IAT_ALL: u32 = 4294967295u32;
3695pub const IAT_APPARTO: u32 = 512u32;
3696pub const IAT_BCC: u32 = 16u32;
3697pub const IAT_CC: u32 = 8u32;
3698pub const IAT_FROM: u32 = 1u32;
3699pub const IAT_REPLYTO: u32 = 32u32;
3700pub const IAT_RETRCPTTO: u32 = 128u32;
3701pub const IAT_RETURNPATH: u32 = 64u32;
3702pub const IAT_RR: u32 = 256u32;
3703pub const IAT_SENDER: u32 = 2u32;
3704pub const IAT_TO: u32 = 4u32;
3705pub const IAT_UNKNOWN: u32 = 0u32;
3706windows_core::imp::define_interface!(
3707 IAddrBook,
3708 IAddrBook_Vtbl,
3709 0x00020309_0000_0000_c000_000000000046
3710);
3711impl core::ops::Deref for IAddrBook {
3712 type Target = IMAPIProp;
3713 fn deref(&self) -> &Self::Target {
3714 unsafe { core::mem::transmute(self) }
3715 }
3716}
3717windows_core::imp::interface_hierarchy!(IAddrBook, windows_core::IUnknown, IMAPIProp);
3718impl IAddrBook {
3719 pub unsafe fn OpenEntry(
3720 &self,
3721 cbentryid: u32,
3722 lpentryid: *mut ENTRYID,
3723 lpinterface: *mut windows_core::GUID,
3724 ulflags: u32,
3725 lpulobjtype: *mut u32,
3726 lppunk: *mut Option<windows_core::IUnknown>,
3727 ) -> windows_core::Result<()> {
3728 unsafe {
3729 (windows_core::Interface::vtable(self).OpenEntry)(
3730 windows_core::Interface::as_raw(self),
3731 cbentryid,
3732 lpentryid as _,
3733 lpinterface as _,
3734 ulflags,
3735 lpulobjtype as _,
3736 core::mem::transmute(lppunk),
3737 )
3738 .ok()
3739 }
3740 }
3741 pub unsafe fn CompareEntryIDs(
3742 &self,
3743 cbentryid1: u32,
3744 lpentryid1: *mut ENTRYID,
3745 cbentryid2: u32,
3746 lpentryid2: *mut ENTRYID,
3747 ulflags: u32,
3748 lpulresult: *mut u32,
3749 ) -> windows_core::Result<()> {
3750 unsafe {
3751 (windows_core::Interface::vtable(self).CompareEntryIDs)(
3752 windows_core::Interface::as_raw(self),
3753 cbentryid1,
3754 lpentryid1 as _,
3755 cbentryid2,
3756 lpentryid2 as _,
3757 ulflags,
3758 lpulresult as _,
3759 )
3760 .ok()
3761 }
3762 }
3763 pub unsafe fn Advise<P3>(
3764 &self,
3765 cbentryid: u32,
3766 lpentryid: *mut ENTRYID,
3767 uleventmask: u32,
3768 lpadvisesink: P3,
3769 lpulconnection: *mut usize,
3770 ) -> windows_core::Result<()>
3771 where
3772 P3: windows_core::Param<IMAPIAdviseSink>,
3773 {
3774 unsafe {
3775 (windows_core::Interface::vtable(self).Advise)(
3776 windows_core::Interface::as_raw(self),
3777 cbentryid,
3778 lpentryid as _,
3779 uleventmask,
3780 lpadvisesink.param().abi(),
3781 lpulconnection as _,
3782 )
3783 .ok()
3784 }
3785 }
3786 pub unsafe fn Unadvise(&self, ulconnection: usize) -> windows_core::Result<()> {
3787 unsafe {
3788 (windows_core::Interface::vtable(self).Unadvise)(
3789 windows_core::Interface::as_raw(self),
3790 ulconnection,
3791 )
3792 .ok()
3793 }
3794 }
3795 pub unsafe fn CreateOneOff(
3796 &self,
3797 lpszname: *mut i8,
3798 lpszadrtype: *mut i8,
3799 lpszaddress: *mut i8,
3800 ulflags: u32,
3801 lpcbentryid: *mut u32,
3802 lppentryid: *mut *mut ENTRYID,
3803 ) -> windows_core::Result<()> {
3804 unsafe {
3805 (windows_core::Interface::vtable(self).CreateOneOff)(
3806 windows_core::Interface::as_raw(self),
3807 lpszname as _,
3808 lpszadrtype as _,
3809 lpszaddress as _,
3810 ulflags,
3811 lpcbentryid as _,
3812 lppentryid as _,
3813 )
3814 .ok()
3815 }
3816 }
3817 pub unsafe fn NewEntry(
3818 &self,
3819 uluiparam: usize,
3820 ulflags: u32,
3821 cbeidcontainer: u32,
3822 lpeidcontainer: *mut ENTRYID,
3823 cbeidnewentrytpl: u32,
3824 lpeidnewentrytpl: *mut ENTRYID,
3825 lpcbeidnewentry: *mut u32,
3826 lppeidnewentry: *mut *mut ENTRYID,
3827 ) -> windows_core::Result<()> {
3828 unsafe {
3829 (windows_core::Interface::vtable(self).NewEntry)(
3830 windows_core::Interface::as_raw(self),
3831 uluiparam,
3832 ulflags,
3833 cbeidcontainer,
3834 lpeidcontainer as _,
3835 cbeidnewentrytpl,
3836 lpeidnewentrytpl as _,
3837 lpcbeidnewentry as _,
3838 lppeidnewentry as _,
3839 )
3840 .ok()
3841 }
3842 }
3843 pub unsafe fn ResolveName(
3844 &self,
3845 uluiparam: usize,
3846 ulflags: u32,
3847 lpsznewentrytitle: *mut i8,
3848 lpadrlist: *mut ADRLIST,
3849 ) -> windows_core::Result<()> {
3850 unsafe {
3851 (windows_core::Interface::vtable(self).ResolveName)(
3852 windows_core::Interface::as_raw(self),
3853 uluiparam,
3854 ulflags,
3855 lpsznewentrytitle as _,
3856 lpadrlist as _,
3857 )
3858 .ok()
3859 }
3860 }
3861 pub unsafe fn Address(
3862 &self,
3863 lpuluiparam: *mut usize,
3864 lpadrparms: *mut ADRPARM,
3865 lppadrlist: *mut *mut ADRLIST,
3866 ) -> windows_core::Result<()> {
3867 unsafe {
3868 (windows_core::Interface::vtable(self).Address)(
3869 windows_core::Interface::as_raw(self),
3870 lpuluiparam as _,
3871 lpadrparms as _,
3872 lppadrlist as _,
3873 )
3874 .ok()
3875 }
3876 }
3877 pub unsafe fn Details(
3878 &self,
3879 lpuluiparam: *mut usize,
3880 lpfndismiss: LPFNDISMISS,
3881 lpvdismisscontext: *mut core::ffi::c_void,
3882 cbentryid: u32,
3883 lpentryid: *mut ENTRYID,
3884 lpfbuttoncallback: windows::Win32::System::AddressBook::LPFNBUTTON,
3885 lpvbuttoncontext: *mut core::ffi::c_void,
3886 lpszbuttontext: *mut i8,
3887 ulflags: u32,
3888 ) -> windows_core::Result<()> {
3889 unsafe {
3890 (windows_core::Interface::vtable(self).Details)(
3891 windows_core::Interface::as_raw(self),
3892 lpuluiparam as _,
3893 lpfndismiss,
3894 lpvdismisscontext as _,
3895 cbentryid,
3896 lpentryid as _,
3897 lpfbuttoncallback,
3898 lpvbuttoncontext as _,
3899 lpszbuttontext as _,
3900 ulflags,
3901 )
3902 .ok()
3903 }
3904 }
3905 pub unsafe fn RecipOptions(
3906 &self,
3907 uluiparam: usize,
3908 ulflags: u32,
3909 lprecip: *mut ADRENTRY,
3910 ) -> windows_core::Result<()> {
3911 unsafe {
3912 (windows_core::Interface::vtable(self).RecipOptions)(
3913 windows_core::Interface::as_raw(self),
3914 uluiparam,
3915 ulflags,
3916 lprecip as _,
3917 )
3918 .ok()
3919 }
3920 }
3921 pub unsafe fn QueryDefaultRecipOpt(
3922 &self,
3923 lpszadrtype: *mut i8,
3924 ulflags: u32,
3925 lpcvalues: *mut u32,
3926 lppoptions: *mut *mut SPropValue,
3927 ) -> windows_core::Result<()> {
3928 unsafe {
3929 (windows_core::Interface::vtable(self).QueryDefaultRecipOpt)(
3930 windows_core::Interface::as_raw(self),
3931 lpszadrtype as _,
3932 ulflags,
3933 lpcvalues as _,
3934 lppoptions as _,
3935 )
3936 .ok()
3937 }
3938 }
3939 pub unsafe fn GetPAB(
3940 &self,
3941 lpcbentryid: *mut u32,
3942 lppentryid: *mut *mut ENTRYID,
3943 ) -> windows_core::Result<()> {
3944 unsafe {
3945 (windows_core::Interface::vtable(self).GetPAB)(
3946 windows_core::Interface::as_raw(self),
3947 lpcbentryid as _,
3948 lppentryid as _,
3949 )
3950 .ok()
3951 }
3952 }
3953 pub unsafe fn SetPAB(
3954 &self,
3955 cbentryid: u32,
3956 lpentryid: *mut ENTRYID,
3957 ) -> windows_core::Result<()> {
3958 unsafe {
3959 (windows_core::Interface::vtable(self).SetPAB)(
3960 windows_core::Interface::as_raw(self),
3961 cbentryid,
3962 lpentryid as _,
3963 )
3964 .ok()
3965 }
3966 }
3967 pub unsafe fn GetDefaultDir(
3968 &self,
3969 lpcbentryid: *mut u32,
3970 lppentryid: *mut *mut ENTRYID,
3971 ) -> windows_core::Result<()> {
3972 unsafe {
3973 (windows_core::Interface::vtable(self).GetDefaultDir)(
3974 windows_core::Interface::as_raw(self),
3975 lpcbentryid as _,
3976 lppentryid as _,
3977 )
3978 .ok()
3979 }
3980 }
3981 pub unsafe fn SetDefaultDir(
3982 &self,
3983 cbentryid: u32,
3984 lpentryid: *mut ENTRYID,
3985 ) -> windows_core::Result<()> {
3986 unsafe {
3987 (windows_core::Interface::vtable(self).SetDefaultDir)(
3988 windows_core::Interface::as_raw(self),
3989 cbentryid,
3990 lpentryid as _,
3991 )
3992 .ok()
3993 }
3994 }
3995 pub unsafe fn GetSearchPath(
3996 &self,
3997 ulflags: u32,
3998 lppsearchpath: *mut *mut SRowSet,
3999 ) -> windows_core::Result<()> {
4000 unsafe {
4001 (windows_core::Interface::vtable(self).GetSearchPath)(
4002 windows_core::Interface::as_raw(self),
4003 ulflags,
4004 lppsearchpath as _,
4005 )
4006 .ok()
4007 }
4008 }
4009 pub unsafe fn SetSearchPath(
4010 &self,
4011 ulflags: u32,
4012 lpsearchpath: *mut SRowSet,
4013 ) -> windows_core::Result<()> {
4014 unsafe {
4015 (windows_core::Interface::vtable(self).SetSearchPath)(
4016 windows_core::Interface::as_raw(self),
4017 ulflags,
4018 lpsearchpath as _,
4019 )
4020 .ok()
4021 }
4022 }
4023 pub unsafe fn PrepareRecips(
4024 &self,
4025 ulflags: u32,
4026 lpproptagarray: *mut SPropTagArray,
4027 lpreciplist: *mut ADRLIST,
4028 ) -> windows_core::Result<()> {
4029 unsafe {
4030 (windows_core::Interface::vtable(self).PrepareRecips)(
4031 windows_core::Interface::as_raw(self),
4032 ulflags,
4033 lpproptagarray as _,
4034 lpreciplist as _,
4035 )
4036 .ok()
4037 }
4038 }
4039}
4040#[repr(C)]
4041#[doc(hidden)]
4042pub struct IAddrBook_Vtbl {
4043 pub base__: IMAPIProp_Vtbl,
4044 pub OpenEntry: unsafe extern "system" fn(
4045 *mut core::ffi::c_void,
4046 u32,
4047 *mut ENTRYID,
4048 *mut windows_core::GUID,
4049 u32,
4050 *mut u32,
4051 *mut *mut core::ffi::c_void,
4052 ) -> windows_core::HRESULT,
4053 pub CompareEntryIDs: unsafe extern "system" fn(
4054 *mut core::ffi::c_void,
4055 u32,
4056 *mut ENTRYID,
4057 u32,
4058 *mut ENTRYID,
4059 u32,
4060 *mut u32,
4061 ) -> windows_core::HRESULT,
4062 pub Advise: unsafe extern "system" fn(
4063 *mut core::ffi::c_void,
4064 u32,
4065 *mut ENTRYID,
4066 u32,
4067 *mut core::ffi::c_void,
4068 *mut usize,
4069 ) -> windows_core::HRESULT,
4070 pub Unadvise: unsafe extern "system" fn(*mut core::ffi::c_void, usize) -> windows_core::HRESULT,
4071 pub CreateOneOff: unsafe extern "system" fn(
4072 *mut core::ffi::c_void,
4073 *mut i8,
4074 *mut i8,
4075 *mut i8,
4076 u32,
4077 *mut u32,
4078 *mut *mut ENTRYID,
4079 ) -> windows_core::HRESULT,
4080 pub NewEntry: unsafe extern "system" fn(
4081 *mut core::ffi::c_void,
4082 usize,
4083 u32,
4084 u32,
4085 *mut ENTRYID,
4086 u32,
4087 *mut ENTRYID,
4088 *mut u32,
4089 *mut *mut ENTRYID,
4090 ) -> windows_core::HRESULT,
4091 pub ResolveName: unsafe extern "system" fn(
4092 *mut core::ffi::c_void,
4093 usize,
4094 u32,
4095 *mut i8,
4096 *mut ADRLIST,
4097 ) -> windows_core::HRESULT,
4098 pub Address: unsafe extern "system" fn(
4099 *mut core::ffi::c_void,
4100 *mut usize,
4101 *mut ADRPARM,
4102 *mut *mut ADRLIST,
4103 ) -> windows_core::HRESULT,
4104 pub Details: unsafe extern "system" fn(
4105 *mut core::ffi::c_void,
4106 *mut usize,
4107 LPFNDISMISS,
4108 *mut core::ffi::c_void,
4109 u32,
4110 *mut ENTRYID,
4111 windows::Win32::System::AddressBook::LPFNBUTTON,
4112 *mut core::ffi::c_void,
4113 *mut i8,
4114 u32,
4115 ) -> windows_core::HRESULT,
4116 pub RecipOptions: unsafe extern "system" fn(
4117 *mut core::ffi::c_void,
4118 usize,
4119 u32,
4120 *mut ADRENTRY,
4121 ) -> windows_core::HRESULT,
4122 pub QueryDefaultRecipOpt: unsafe extern "system" fn(
4123 *mut core::ffi::c_void,
4124 *mut i8,
4125 u32,
4126 *mut u32,
4127 *mut *mut SPropValue,
4128 ) -> windows_core::HRESULT,
4129 pub GetPAB: unsafe extern "system" fn(
4130 *mut core::ffi::c_void,
4131 *mut u32,
4132 *mut *mut ENTRYID,
4133 ) -> windows_core::HRESULT,
4134 pub SetPAB: unsafe extern "system" fn(
4135 *mut core::ffi::c_void,
4136 u32,
4137 *mut ENTRYID,
4138 ) -> windows_core::HRESULT,
4139 pub GetDefaultDir: unsafe extern "system" fn(
4140 *mut core::ffi::c_void,
4141 *mut u32,
4142 *mut *mut ENTRYID,
4143 ) -> windows_core::HRESULT,
4144 pub SetDefaultDir: unsafe extern "system" fn(
4145 *mut core::ffi::c_void,
4146 u32,
4147 *mut ENTRYID,
4148 ) -> windows_core::HRESULT,
4149 pub GetSearchPath: unsafe extern "system" fn(
4150 *mut core::ffi::c_void,
4151 u32,
4152 *mut *mut SRowSet,
4153 ) -> windows_core::HRESULT,
4154 pub SetSearchPath: unsafe extern "system" fn(
4155 *mut core::ffi::c_void,
4156 u32,
4157 *mut SRowSet,
4158 ) -> windows_core::HRESULT,
4159 pub PrepareRecips: unsafe extern "system" fn(
4160 *mut core::ffi::c_void,
4161 u32,
4162 *mut SPropTagArray,
4163 *mut ADRLIST,
4164 ) -> windows_core::HRESULT,
4165}
4166pub trait IAddrBook_Impl: IMAPIProp_Impl {
4167 fn OpenEntry(
4168 &self,
4169 cbentryid: u32,
4170 lpentryid: *mut ENTRYID,
4171 lpinterface: *mut windows_core::GUID,
4172 ulflags: u32,
4173 lpulobjtype: *mut u32,
4174 lppunk: windows_core::OutRef<windows_core::IUnknown>,
4175 ) -> windows_core::Result<()>;
4176 fn CompareEntryIDs(
4177 &self,
4178 cbentryid1: u32,
4179 lpentryid1: *mut ENTRYID,
4180 cbentryid2: u32,
4181 lpentryid2: *mut ENTRYID,
4182 ulflags: u32,
4183 lpulresult: *mut u32,
4184 ) -> windows_core::Result<()>;
4185 fn Advise(
4186 &self,
4187 cbentryid: u32,
4188 lpentryid: *mut ENTRYID,
4189 uleventmask: u32,
4190 lpadvisesink: windows_core::Ref<IMAPIAdviseSink>,
4191 lpulconnection: *mut usize,
4192 ) -> windows_core::Result<()>;
4193 fn Unadvise(&self, ulconnection: usize) -> windows_core::Result<()>;
4194 fn CreateOneOff(
4195 &self,
4196 lpszname: *mut i8,
4197 lpszadrtype: *mut i8,
4198 lpszaddress: *mut i8,
4199 ulflags: u32,
4200 lpcbentryid: *mut u32,
4201 lppentryid: *mut *mut ENTRYID,
4202 ) -> windows_core::Result<()>;
4203 fn NewEntry(
4204 &self,
4205 uluiparam: usize,
4206 ulflags: u32,
4207 cbeidcontainer: u32,
4208 lpeidcontainer: *mut ENTRYID,
4209 cbeidnewentrytpl: u32,
4210 lpeidnewentrytpl: *mut ENTRYID,
4211 lpcbeidnewentry: *mut u32,
4212 lppeidnewentry: *mut *mut ENTRYID,
4213 ) -> windows_core::Result<()>;
4214 fn ResolveName(
4215 &self,
4216 uluiparam: usize,
4217 ulflags: u32,
4218 lpsznewentrytitle: *mut i8,
4219 lpadrlist: *mut ADRLIST,
4220 ) -> windows_core::Result<()>;
4221 fn Address(
4222 &self,
4223 lpuluiparam: *mut usize,
4224 lpadrparms: *mut ADRPARM,
4225 lppadrlist: *mut *mut ADRLIST,
4226 ) -> windows_core::Result<()>;
4227 fn Details(
4228 &self,
4229 lpuluiparam: *mut usize,
4230 lpfndismiss: LPFNDISMISS,
4231 lpvdismisscontext: *mut core::ffi::c_void,
4232 cbentryid: u32,
4233 lpentryid: *mut ENTRYID,
4234 lpfbuttoncallback: windows::Win32::System::AddressBook::LPFNBUTTON,
4235 lpvbuttoncontext: *mut core::ffi::c_void,
4236 lpszbuttontext: *mut i8,
4237 ulflags: u32,
4238 ) -> windows_core::Result<()>;
4239 fn RecipOptions(
4240 &self,
4241 uluiparam: usize,
4242 ulflags: u32,
4243 lprecip: *mut ADRENTRY,
4244 ) -> windows_core::Result<()>;
4245 fn QueryDefaultRecipOpt(
4246 &self,
4247 lpszadrtype: *mut i8,
4248 ulflags: u32,
4249 lpcvalues: *mut u32,
4250 lppoptions: *mut *mut SPropValue,
4251 ) -> windows_core::Result<()>;
4252 fn GetPAB(
4253 &self,
4254 lpcbentryid: *mut u32,
4255 lppentryid: *mut *mut ENTRYID,
4256 ) -> windows_core::Result<()>;
4257 fn SetPAB(&self, cbentryid: u32, lpentryid: *mut ENTRYID) -> windows_core::Result<()>;
4258 fn GetDefaultDir(
4259 &self,
4260 lpcbentryid: *mut u32,
4261 lppentryid: *mut *mut ENTRYID,
4262 ) -> windows_core::Result<()>;
4263 fn SetDefaultDir(&self, cbentryid: u32, lpentryid: *mut ENTRYID) -> windows_core::Result<()>;
4264 fn GetSearchPath(
4265 &self,
4266 ulflags: u32,
4267 lppsearchpath: *mut *mut SRowSet,
4268 ) -> windows_core::Result<()>;
4269 fn SetSearchPath(&self, ulflags: u32, lpsearchpath: *mut SRowSet) -> windows_core::Result<()>;
4270 fn PrepareRecips(
4271 &self,
4272 ulflags: u32,
4273 lpproptagarray: *mut SPropTagArray,
4274 lpreciplist: *mut ADRLIST,
4275 ) -> windows_core::Result<()>;
4276}
4277impl IAddrBook_Vtbl {
4278 pub const fn new<Identity: IAddrBook_Impl, const OFFSET: isize>() -> Self {
4279 unsafe extern "system" fn OpenEntry<Identity: IAddrBook_Impl, const OFFSET: isize>(
4280 this: *mut core::ffi::c_void,
4281 cbentryid: u32,
4282 lpentryid: *mut ENTRYID,
4283 lpinterface: *mut windows_core::GUID,
4284 ulflags: u32,
4285 lpulobjtype: *mut u32,
4286 lppunk: *mut *mut core::ffi::c_void,
4287 ) -> windows_core::HRESULT {
4288 unsafe {
4289 let this: &Identity =
4290 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
4291 IAddrBook_Impl::OpenEntry(
4292 this,
4293 core::mem::transmute_copy(&cbentryid),
4294 core::mem::transmute_copy(&lpentryid),
4295 core::mem::transmute_copy(&lpinterface),
4296 core::mem::transmute_copy(&ulflags),
4297 core::mem::transmute_copy(&lpulobjtype),
4298 core::mem::transmute_copy(&lppunk),
4299 )
4300 .into()
4301 }
4302 }
4303 unsafe extern "system" fn CompareEntryIDs<Identity: IAddrBook_Impl, const OFFSET: isize>(
4304 this: *mut core::ffi::c_void,
4305 cbentryid1: u32,
4306 lpentryid1: *mut ENTRYID,
4307 cbentryid2: u32,
4308 lpentryid2: *mut ENTRYID,
4309 ulflags: u32,
4310 lpulresult: *mut u32,
4311 ) -> windows_core::HRESULT {
4312 unsafe {
4313 let this: &Identity =
4314 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
4315 IAddrBook_Impl::CompareEntryIDs(
4316 this,
4317 core::mem::transmute_copy(&cbentryid1),
4318 core::mem::transmute_copy(&lpentryid1),
4319 core::mem::transmute_copy(&cbentryid2),
4320 core::mem::transmute_copy(&lpentryid2),
4321 core::mem::transmute_copy(&ulflags),
4322 core::mem::transmute_copy(&lpulresult),
4323 )
4324 .into()
4325 }
4326 }
4327 unsafe extern "system" fn Advise<Identity: IAddrBook_Impl, const OFFSET: isize>(
4328 this: *mut core::ffi::c_void,
4329 cbentryid: u32,
4330 lpentryid: *mut ENTRYID,
4331 uleventmask: u32,
4332 lpadvisesink: *mut core::ffi::c_void,
4333 lpulconnection: *mut usize,
4334 ) -> windows_core::HRESULT {
4335 unsafe {
4336 let this: &Identity =
4337 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
4338 IAddrBook_Impl::Advise(
4339 this,
4340 core::mem::transmute_copy(&cbentryid),
4341 core::mem::transmute_copy(&lpentryid),
4342 core::mem::transmute_copy(&uleventmask),
4343 core::mem::transmute_copy(&lpadvisesink),
4344 core::mem::transmute_copy(&lpulconnection),
4345 )
4346 .into()
4347 }
4348 }
4349 unsafe extern "system" fn Unadvise<Identity: IAddrBook_Impl, const OFFSET: isize>(
4350 this: *mut core::ffi::c_void,
4351 ulconnection: usize,
4352 ) -> windows_core::HRESULT {
4353 unsafe {
4354 let this: &Identity =
4355 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
4356 IAddrBook_Impl::Unadvise(this, core::mem::transmute_copy(&ulconnection)).into()
4357 }
4358 }
4359 unsafe extern "system" fn CreateOneOff<Identity: IAddrBook_Impl, const OFFSET: isize>(
4360 this: *mut core::ffi::c_void,
4361 lpszname: *mut i8,
4362 lpszadrtype: *mut i8,
4363 lpszaddress: *mut i8,
4364 ulflags: u32,
4365 lpcbentryid: *mut u32,
4366 lppentryid: *mut *mut ENTRYID,
4367 ) -> windows_core::HRESULT {
4368 unsafe {
4369 let this: &Identity =
4370 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
4371 IAddrBook_Impl::CreateOneOff(
4372 this,
4373 core::mem::transmute_copy(&lpszname),
4374 core::mem::transmute_copy(&lpszadrtype),
4375 core::mem::transmute_copy(&lpszaddress),
4376 core::mem::transmute_copy(&ulflags),
4377 core::mem::transmute_copy(&lpcbentryid),
4378 core::mem::transmute_copy(&lppentryid),
4379 )
4380 .into()
4381 }
4382 }
4383 unsafe extern "system" fn NewEntry<Identity: IAddrBook_Impl, const OFFSET: isize>(
4384 this: *mut core::ffi::c_void,
4385 uluiparam: usize,
4386 ulflags: u32,
4387 cbeidcontainer: u32,
4388 lpeidcontainer: *mut ENTRYID,
4389 cbeidnewentrytpl: u32,
4390 lpeidnewentrytpl: *mut ENTRYID,
4391 lpcbeidnewentry: *mut u32,
4392 lppeidnewentry: *mut *mut ENTRYID,
4393 ) -> windows_core::HRESULT {
4394 unsafe {
4395 let this: &Identity =
4396 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
4397 IAddrBook_Impl::NewEntry(
4398 this,
4399 core::mem::transmute_copy(&uluiparam),
4400 core::mem::transmute_copy(&ulflags),
4401 core::mem::transmute_copy(&cbeidcontainer),
4402 core::mem::transmute_copy(&lpeidcontainer),
4403 core::mem::transmute_copy(&cbeidnewentrytpl),
4404 core::mem::transmute_copy(&lpeidnewentrytpl),
4405 core::mem::transmute_copy(&lpcbeidnewentry),
4406 core::mem::transmute_copy(&lppeidnewentry),
4407 )
4408 .into()
4409 }
4410 }
4411 unsafe extern "system" fn ResolveName<Identity: IAddrBook_Impl, const OFFSET: isize>(
4412 this: *mut core::ffi::c_void,
4413 uluiparam: usize,
4414 ulflags: u32,
4415 lpsznewentrytitle: *mut i8,
4416 lpadrlist: *mut ADRLIST,
4417 ) -> windows_core::HRESULT {
4418 unsafe {
4419 let this: &Identity =
4420 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
4421 IAddrBook_Impl::ResolveName(
4422 this,
4423 core::mem::transmute_copy(&uluiparam),
4424 core::mem::transmute_copy(&ulflags),
4425 core::mem::transmute_copy(&lpsznewentrytitle),
4426 core::mem::transmute_copy(&lpadrlist),
4427 )
4428 .into()
4429 }
4430 }
4431 unsafe extern "system" fn Address<Identity: IAddrBook_Impl, const OFFSET: isize>(
4432 this: *mut core::ffi::c_void,
4433 lpuluiparam: *mut usize,
4434 lpadrparms: *mut ADRPARM,
4435 lppadrlist: *mut *mut ADRLIST,
4436 ) -> windows_core::HRESULT {
4437 unsafe {
4438 let this: &Identity =
4439 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
4440 IAddrBook_Impl::Address(
4441 this,
4442 core::mem::transmute_copy(&lpuluiparam),
4443 core::mem::transmute_copy(&lpadrparms),
4444 core::mem::transmute_copy(&lppadrlist),
4445 )
4446 .into()
4447 }
4448 }
4449 unsafe extern "system" fn Details<Identity: IAddrBook_Impl, const OFFSET: isize>(
4450 this: *mut core::ffi::c_void,
4451 lpuluiparam: *mut usize,
4452 lpfndismiss: LPFNDISMISS,
4453 lpvdismisscontext: *mut core::ffi::c_void,
4454 cbentryid: u32,
4455 lpentryid: *mut ENTRYID,
4456 lpfbuttoncallback: windows::Win32::System::AddressBook::LPFNBUTTON,
4457 lpvbuttoncontext: *mut core::ffi::c_void,
4458 lpszbuttontext: *mut i8,
4459 ulflags: u32,
4460 ) -> windows_core::HRESULT {
4461 unsafe {
4462 let this: &Identity =
4463 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
4464 IAddrBook_Impl::Details(
4465 this,
4466 core::mem::transmute_copy(&lpuluiparam),
4467 core::mem::transmute_copy(&lpfndismiss),
4468 core::mem::transmute_copy(&lpvdismisscontext),
4469 core::mem::transmute_copy(&cbentryid),
4470 core::mem::transmute_copy(&lpentryid),
4471 core::mem::transmute_copy(&lpfbuttoncallback),
4472 core::mem::transmute_copy(&lpvbuttoncontext),
4473 core::mem::transmute_copy(&lpszbuttontext),
4474 core::mem::transmute_copy(&ulflags),
4475 )
4476 .into()
4477 }
4478 }
4479 unsafe extern "system" fn RecipOptions<Identity: IAddrBook_Impl, const OFFSET: isize>(
4480 this: *mut core::ffi::c_void,
4481 uluiparam: usize,
4482 ulflags: u32,
4483 lprecip: *mut ADRENTRY,
4484 ) -> windows_core::HRESULT {
4485 unsafe {
4486 let this: &Identity =
4487 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
4488 IAddrBook_Impl::RecipOptions(
4489 this,
4490 core::mem::transmute_copy(&uluiparam),
4491 core::mem::transmute_copy(&ulflags),
4492 core::mem::transmute_copy(&lprecip),
4493 )
4494 .into()
4495 }
4496 }
4497 unsafe extern "system" fn QueryDefaultRecipOpt<
4498 Identity: IAddrBook_Impl,
4499 const OFFSET: isize,
4500 >(
4501 this: *mut core::ffi::c_void,
4502 lpszadrtype: *mut i8,
4503 ulflags: u32,
4504 lpcvalues: *mut u32,
4505 lppoptions: *mut *mut SPropValue,
4506 ) -> windows_core::HRESULT {
4507 unsafe {
4508 let this: &Identity =
4509 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
4510 IAddrBook_Impl::QueryDefaultRecipOpt(
4511 this,
4512 core::mem::transmute_copy(&lpszadrtype),
4513 core::mem::transmute_copy(&ulflags),
4514 core::mem::transmute_copy(&lpcvalues),
4515 core::mem::transmute_copy(&lppoptions),
4516 )
4517 .into()
4518 }
4519 }
4520 unsafe extern "system" fn GetPAB<Identity: IAddrBook_Impl, const OFFSET: isize>(
4521 this: *mut core::ffi::c_void,
4522 lpcbentryid: *mut u32,
4523 lppentryid: *mut *mut ENTRYID,
4524 ) -> windows_core::HRESULT {
4525 unsafe {
4526 let this: &Identity =
4527 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
4528 IAddrBook_Impl::GetPAB(
4529 this,
4530 core::mem::transmute_copy(&lpcbentryid),
4531 core::mem::transmute_copy(&lppentryid),
4532 )
4533 .into()
4534 }
4535 }
4536 unsafe extern "system" fn SetPAB<Identity: IAddrBook_Impl, const OFFSET: isize>(
4537 this: *mut core::ffi::c_void,
4538 cbentryid: u32,
4539 lpentryid: *mut ENTRYID,
4540 ) -> windows_core::HRESULT {
4541 unsafe {
4542 let this: &Identity =
4543 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
4544 IAddrBook_Impl::SetPAB(
4545 this,
4546 core::mem::transmute_copy(&cbentryid),
4547 core::mem::transmute_copy(&lpentryid),
4548 )
4549 .into()
4550 }
4551 }
4552 unsafe extern "system" fn GetDefaultDir<Identity: IAddrBook_Impl, const OFFSET: isize>(
4553 this: *mut core::ffi::c_void,
4554 lpcbentryid: *mut u32,
4555 lppentryid: *mut *mut ENTRYID,
4556 ) -> windows_core::HRESULT {
4557 unsafe {
4558 let this: &Identity =
4559 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
4560 IAddrBook_Impl::GetDefaultDir(
4561 this,
4562 core::mem::transmute_copy(&lpcbentryid),
4563 core::mem::transmute_copy(&lppentryid),
4564 )
4565 .into()
4566 }
4567 }
4568 unsafe extern "system" fn SetDefaultDir<Identity: IAddrBook_Impl, const OFFSET: isize>(
4569 this: *mut core::ffi::c_void,
4570 cbentryid: u32,
4571 lpentryid: *mut ENTRYID,
4572 ) -> windows_core::HRESULT {
4573 unsafe {
4574 let this: &Identity =
4575 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
4576 IAddrBook_Impl::SetDefaultDir(
4577 this,
4578 core::mem::transmute_copy(&cbentryid),
4579 core::mem::transmute_copy(&lpentryid),
4580 )
4581 .into()
4582 }
4583 }
4584 unsafe extern "system" fn GetSearchPath<Identity: IAddrBook_Impl, const OFFSET: isize>(
4585 this: *mut core::ffi::c_void,
4586 ulflags: u32,
4587 lppsearchpath: *mut *mut SRowSet,
4588 ) -> windows_core::HRESULT {
4589 unsafe {
4590 let this: &Identity =
4591 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
4592 IAddrBook_Impl::GetSearchPath(
4593 this,
4594 core::mem::transmute_copy(&ulflags),
4595 core::mem::transmute_copy(&lppsearchpath),
4596 )
4597 .into()
4598 }
4599 }
4600 unsafe extern "system" fn SetSearchPath<Identity: IAddrBook_Impl, const OFFSET: isize>(
4601 this: *mut core::ffi::c_void,
4602 ulflags: u32,
4603 lpsearchpath: *mut SRowSet,
4604 ) -> windows_core::HRESULT {
4605 unsafe {
4606 let this: &Identity =
4607 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
4608 IAddrBook_Impl::SetSearchPath(
4609 this,
4610 core::mem::transmute_copy(&ulflags),
4611 core::mem::transmute_copy(&lpsearchpath),
4612 )
4613 .into()
4614 }
4615 }
4616 unsafe extern "system" fn PrepareRecips<Identity: IAddrBook_Impl, const OFFSET: isize>(
4617 this: *mut core::ffi::c_void,
4618 ulflags: u32,
4619 lpproptagarray: *mut SPropTagArray,
4620 lpreciplist: *mut ADRLIST,
4621 ) -> windows_core::HRESULT {
4622 unsafe {
4623 let this: &Identity =
4624 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
4625 IAddrBook_Impl::PrepareRecips(
4626 this,
4627 core::mem::transmute_copy(&ulflags),
4628 core::mem::transmute_copy(&lpproptagarray),
4629 core::mem::transmute_copy(&lpreciplist),
4630 )
4631 .into()
4632 }
4633 }
4634 Self {
4635 base__: IMAPIProp_Vtbl::new::<Identity, OFFSET>(),
4636 OpenEntry: OpenEntry::<Identity, OFFSET>,
4637 CompareEntryIDs: CompareEntryIDs::<Identity, OFFSET>,
4638 Advise: Advise::<Identity, OFFSET>,
4639 Unadvise: Unadvise::<Identity, OFFSET>,
4640 CreateOneOff: CreateOneOff::<Identity, OFFSET>,
4641 NewEntry: NewEntry::<Identity, OFFSET>,
4642 ResolveName: ResolveName::<Identity, OFFSET>,
4643 Address: Address::<Identity, OFFSET>,
4644 Details: Details::<Identity, OFFSET>,
4645 RecipOptions: RecipOptions::<Identity, OFFSET>,
4646 QueryDefaultRecipOpt: QueryDefaultRecipOpt::<Identity, OFFSET>,
4647 GetPAB: GetPAB::<Identity, OFFSET>,
4648 SetPAB: SetPAB::<Identity, OFFSET>,
4649 GetDefaultDir: GetDefaultDir::<Identity, OFFSET>,
4650 SetDefaultDir: SetDefaultDir::<Identity, OFFSET>,
4651 GetSearchPath: GetSearchPath::<Identity, OFFSET>,
4652 SetSearchPath: SetSearchPath::<Identity, OFFSET>,
4653 PrepareRecips: PrepareRecips::<Identity, OFFSET>,
4654 }
4655 }
4656 pub fn matches(iid: &windows_core::GUID) -> bool {
4657 iid == &<IAddrBook as windows_core::Interface>::IID
4658 || iid == &<IMAPIProp as windows_core::Interface>::IID
4659 }
4660}
4661impl windows_core::RuntimeName for IAddrBook {}
4662windows_core::imp::define_interface!(IAttach, IAttach_Vtbl, 0);
4663impl core::ops::Deref for IAttach {
4664 type Target = IMAPIProp;
4665 fn deref(&self) -> &Self::Target {
4666 unsafe { core::mem::transmute(self) }
4667 }
4668}
4669windows_core::imp::interface_hierarchy!(IAttach, windows_core::IUnknown, IMAPIProp);
4670#[repr(C)]
4671#[doc(hidden)]
4672pub struct IAttach_Vtbl {
4673 pub base__: IMAPIProp_Vtbl,
4674}
4675pub trait IAttach_Impl: IMAPIProp_Impl {}
4676impl IAttach_Vtbl {
4677 pub const fn new<Identity: IAttach_Impl, const OFFSET: isize>() -> Self {
4678 Self {
4679 base__: IMAPIProp_Vtbl::new::<Identity, OFFSET>(),
4680 }
4681 }
4682 pub fn matches(iid: &windows_core::GUID) -> bool {
4683 iid == &<IAttach as windows_core::Interface>::IID
4684 || iid == &<IMAPIProp as windows_core::Interface>::IID
4685 }
4686}
4687impl windows_core::RuntimeName for IAttach {}
4688pub const IBL_FIRST: BODYLOCATION = BODYLOCATION(2i32);
4689pub const IBL_LAST: BODYLOCATION = BODYLOCATION(3i32);
4690pub const IBL_NEXT: BODYLOCATION = BODYLOCATION(4i32);
4691pub const IBL_PARENT: BODYLOCATION = BODYLOCATION(1i32);
4692pub const IBL_PREVIOUS: BODYLOCATION = BODYLOCATION(5i32);
4693pub const IBL_ROOT: BODYLOCATION = BODYLOCATION(0i32);
4694pub const IBT_ATTACHMENT: IMSGBODYTYPE = IMSGBODYTYPE(1i32);
4695pub const IBT_AUTOATTACH: IMSGBODYTYPE = IMSGBODYTYPE(4i32);
4696pub const IBT_CSETTAGGED: IMSGBODYTYPE = IMSGBODYTYPE(3i32);
4697pub const IBT_EMPTY: IMSGBODYTYPE = IMSGBODYTYPE(2i32);
4698pub const IBT_SECURE: IMSGBODYTYPE = IMSGBODYTYPE(0i32);
4699pub const ICON_INDEX_ACCEPT: u32 = 1029u32;
4700pub const ICON_INDEX_ASSIGNEE_TASK: u32 = 1282u32;
4701pub const ICON_INDEX_ASSIGNER_TASK: u32 = 1283u32;
4702pub const ICON_INDEX_CANCELATION: u32 = 1032u32;
4703pub const ICON_INDEX_CONTACT: u32 = 512u32;
4704pub const ICON_INDEX_DECLINE: u32 = 1030u32;
4705pub const ICON_INDEX_DELIVERY_MAIL: u32 = 264u32;
4706pub const ICON_INDEX_DISTRIBUTION_LIST: u32 = 514u32;
4707pub const ICON_INDEX_FORWARDED_MAIL: u32 = 262u32;
4708pub const ICON_INDEX_INFORMATIONAL_UPDATE: u32 = 1033u32;
4709pub const ICON_INDEX_IRM_COMPOSE_MAIL: u32 = 309u32;
4710pub const ICON_INDEX_IRM_FORWARDED_MAIL: u32 = 307u32;
4711pub const ICON_INDEX_IRM_READ_MAIL: u32 = 305u32;
4712pub const ICON_INDEX_IRM_REPLIED_MAIL: u32 = 308u32;
4713pub const ICON_INDEX_IRM_UNREAD_MAIL: u32 = 306u32;
4714pub const ICON_INDEX_JOURNAL_CONVERSATION: u32 = 1537u32;
4715pub const ICON_INDEX_JOURNAL_DOCUMENT: u32 = 1554u32;
4716pub const ICON_INDEX_JOURNAL_EMAIL_MESSAGE: u32 = 1538u32;
4717pub const ICON_INDEX_JOURNAL_FAX: u32 = 1545u32;
4718pub const ICON_INDEX_JOURNAL_LETTER: u32 = 1548u32;
4719pub const ICON_INDEX_JOURNAL_MEETING: u32 = 1555u32;
4720pub const ICON_INDEX_JOURNAL_MEETING_CANCELLATION: u32 = 1556u32;
4721pub const ICON_INDEX_JOURNAL_MEETING_REQUEST: u32 = 1539u32;
4722pub const ICON_INDEX_JOURNAL_MEETING_RESPONSE: u32 = 1540u32;
4723pub const ICON_INDEX_JOURNAL_MICROSOFT_OFFICE_ACCESS: u32 = 1552u32;
4724pub const ICON_INDEX_JOURNAL_MICROSOFT_OFFICE_EXCEL: u32 = 1550u32;
4725pub const ICON_INDEX_JOURNAL_MICROSOFT_OFFICE_POWER_POINT: u32 = 1551u32;
4726pub const ICON_INDEX_JOURNAL_MICROSOFT_OFFICE_WORD: u32 = 1549u32;
4727pub const ICON_INDEX_JOURNAL_NOTE: u32 = 1544u32;
4728pub const ICON_INDEX_JOURNAL_PHONE_CALL: u32 = 1546u32;
4729pub const ICON_INDEX_JOURNAL_REMOTE_SESSION: u32 = 1557u32;
4730pub const ICON_INDEX_JOURNAL_TASK_REQUEST: u32 = 1542u32;
4731pub const ICON_INDEX_JOURNAL_TASK_RESPONSE: u32 = 1543u32;
4732pub const ICON_INDEX_MAIL_ENCRYPTED: u32 = 272u32;
4733pub const ICON_INDEX_MAIL_ENCRYPTED_FORWARDED: u32 = 277u32;
4734pub const ICON_INDEX_MAIL_ENCRYPTED_READ: u32 = 279u32;
4735pub const ICON_INDEX_MAIL_ENCRYPTED_REPLIED: u32 = 275u32;
4736pub const ICON_INDEX_MAIL_SIGNED: u32 = 271u32;
4737pub const ICON_INDEX_MAIL_SMIME_RECEIPT: u32 = 274u32;
4738pub const ICON_INDEX_MAIL_SMIME_SIGNED: u32 = 273u32;
4739pub const ICON_INDEX_MAIL_SMIME_SIGNED_FORWARDED: u32 = 278u32;
4740pub const ICON_INDEX_MAIL_SMIME_SIGNED_READ: u32 = 280u32;
4741pub const ICON_INDEX_MAIL_SMIME_SIGNED_REPLIED: u32 = 276u32;
4742pub const ICON_INDEX_MEETING_REQUEST: u32 = 1028u32;
4743pub const ICON_INDEX_NEW_MAIL: u32 = 4294967295u32;
4744pub const ICON_INDEX_NONDELIVERY_MAIL: u32 = 266u32;
4745pub const ICON_INDEX_NONREAD_MAIL: u32 = 267u32;
4746pub const ICON_INDEX_OTHER: u32 = 3u32;
4747pub const ICON_INDEX_OUT_OF_OFFICE_MAIL: u32 = 283u32;
4748pub const ICON_INDEX_POST: u32 = 1u32;
4749pub const ICON_INDEX_READ_MAIL: u32 = 256u32;
4750pub const ICON_INDEX_READ_RECEIPT_MAIL: u32 = 265u32;
4751pub const ICON_INDEX_RECALL_F_MAIL: u32 = 269u32;
4752pub const ICON_INDEX_RECALL_MAIL: u32 = 284u32;
4753pub const ICON_INDEX_RECALL_S_MAIL: u32 = 268u32;
4754pub const ICON_INDEX_RECEIPT_MAIL: u32 = 260u32;
4755pub const ICON_INDEX_RECURRING_APPOINTMENT: u32 = 1025u32;
4756pub const ICON_INDEX_RECURRING_MEETING: u32 = 1027u32;
4757pub const ICON_INDEX_REMOTE_MAIL: u32 = 263u32;
4758pub const ICON_INDEX_REPLIED_MAIL: u32 = 261u32;
4759pub const ICON_INDEX_SINGLE_INSTANCE_APPOINTMENT: u32 = 1024u32;
4760pub const ICON_INDEX_SINGLE_INSTANCE_MEETING: u32 = 1026u32;
4761pub const ICON_INDEX_STICKY_NOTE_BLUE: u32 = 768u32;
4762pub const ICON_INDEX_STICKY_NOTE_GREEN: u32 = 769u32;
4763pub const ICON_INDEX_STICKY_NOTE_PINK: u32 = 770u32;
4764pub const ICON_INDEX_STICKY_NOTE_WHITE: u32 = 772u32;
4765pub const ICON_INDEX_STICKY_NOTE_YELLOW: u32 = 771u32;
4766pub const ICON_INDEX_SUBMITTED_MAIL: u32 = 258u32;
4767pub const ICON_INDEX_TASK: u32 = 1280u32;
4768pub const ICON_INDEX_TASK_ACCEPTANCE: u32 = 1285u32;
4769pub const ICON_INDEX_TASK_REJECTION: u32 = 1286u32;
4770pub const ICON_INDEX_TASK_REQUEST: u32 = 1284u32;
4771pub const ICON_INDEX_TENTATIVE: u32 = 1031u32;
4772pub const ICON_INDEX_TRACKED_MAIL: u32 = 304u32;
4773pub const ICON_INDEX_TRACKING_MAIL: u32 = 270u32;
4774pub const ICON_INDEX_UNASSIGNED_RECURRING_TASK: u32 = 1281u32;
4775pub const ICON_INDEX_UNREAD_MAIL: u32 = 257u32;
4776pub const ICON_INDEX_UNSENT_MAIL: u32 = 259u32;
4777windows_core::imp::define_interface!(
4778 IDistList,
4779 IDistList_Vtbl,
4780 0x0002030e_0000_0000_c000_000000000046
4781);
4782impl core::ops::Deref for IDistList {
4783 type Target = IMAPIContainer;
4784 fn deref(&self) -> &Self::Target {
4785 unsafe { core::mem::transmute(self) }
4786 }
4787}
4788windows_core::imp::interface_hierarchy!(
4789 IDistList,
4790 windows_core::IUnknown,
4791 IMAPIProp,
4792 IMAPIContainer
4793);
4794impl IDistList {
4795 pub unsafe fn CreateEntry(
4796 &self,
4797 cbentryid: u32,
4798 lpentryid: *mut ENTRYID,
4799 ulcreateflags: u32,
4800 lppmapipropentry: *mut Option<IMAPIProp>,
4801 ) -> windows_core::Result<()> {
4802 unsafe {
4803 (windows_core::Interface::vtable(self).CreateEntry)(
4804 windows_core::Interface::as_raw(self),
4805 cbentryid,
4806 lpentryid as _,
4807 ulcreateflags,
4808 core::mem::transmute(lppmapipropentry),
4809 )
4810 .ok()
4811 }
4812 }
4813 pub unsafe fn CopyEntries<P2>(
4814 &self,
4815 lpentries: *mut SBinaryArray,
4816 uluiparam: usize,
4817 lpprogress: P2,
4818 ulflags: u32,
4819 ) -> windows_core::Result<()>
4820 where
4821 P2: windows_core::Param<IMAPIProgress>,
4822 {
4823 unsafe {
4824 (windows_core::Interface::vtable(self).CopyEntries)(
4825 windows_core::Interface::as_raw(self),
4826 lpentries as _,
4827 uluiparam,
4828 lpprogress.param().abi(),
4829 ulflags,
4830 )
4831 .ok()
4832 }
4833 }
4834 pub unsafe fn DeleteEntries(
4835 &self,
4836 lpentries: *mut SBinaryArray,
4837 ulflags: u32,
4838 ) -> windows_core::Result<()> {
4839 unsafe {
4840 (windows_core::Interface::vtable(self).DeleteEntries)(
4841 windows_core::Interface::as_raw(self),
4842 lpentries as _,
4843 ulflags,
4844 )
4845 .ok()
4846 }
4847 }
4848 pub unsafe fn ResolveNames(
4849 &self,
4850 lpproptagarray: *mut SPropTagArray,
4851 ulflags: u32,
4852 lpadrlist: *mut ADRLIST,
4853 lpflaglist: *mut FlagList,
4854 ) -> windows_core::Result<()> {
4855 unsafe {
4856 (windows_core::Interface::vtable(self).ResolveNames)(
4857 windows_core::Interface::as_raw(self),
4858 lpproptagarray as _,
4859 ulflags,
4860 lpadrlist as _,
4861 lpflaglist as _,
4862 )
4863 .ok()
4864 }
4865 }
4866}
4867#[repr(C)]
4868#[doc(hidden)]
4869pub struct IDistList_Vtbl {
4870 pub base__: IMAPIContainer_Vtbl,
4871 pub CreateEntry: unsafe extern "system" fn(
4872 *mut core::ffi::c_void,
4873 u32,
4874 *mut ENTRYID,
4875 u32,
4876 *mut *mut core::ffi::c_void,
4877 ) -> windows_core::HRESULT,
4878 pub CopyEntries: unsafe extern "system" fn(
4879 *mut core::ffi::c_void,
4880 *mut SBinaryArray,
4881 usize,
4882 *mut core::ffi::c_void,
4883 u32,
4884 ) -> windows_core::HRESULT,
4885 pub DeleteEntries: unsafe extern "system" fn(
4886 *mut core::ffi::c_void,
4887 *mut SBinaryArray,
4888 u32,
4889 ) -> windows_core::HRESULT,
4890 pub ResolveNames: unsafe extern "system" fn(
4891 *mut core::ffi::c_void,
4892 *mut SPropTagArray,
4893 u32,
4894 *mut ADRLIST,
4895 *mut FlagList,
4896 ) -> windows_core::HRESULT,
4897}
4898pub trait IDistList_Impl: IMAPIContainer_Impl {
4899 fn CreateEntry(
4900 &self,
4901 cbentryid: u32,
4902 lpentryid: *mut ENTRYID,
4903 ulcreateflags: u32,
4904 lppmapipropentry: windows_core::OutRef<IMAPIProp>,
4905 ) -> windows_core::Result<()>;
4906 fn CopyEntries(
4907 &self,
4908 lpentries: *mut SBinaryArray,
4909 uluiparam: usize,
4910 lpprogress: windows_core::Ref<IMAPIProgress>,
4911 ulflags: u32,
4912 ) -> windows_core::Result<()>;
4913 fn DeleteEntries(&self, lpentries: *mut SBinaryArray, ulflags: u32)
4914 -> windows_core::Result<()>;
4915 fn ResolveNames(
4916 &self,
4917 lpproptagarray: *mut SPropTagArray,
4918 ulflags: u32,
4919 lpadrlist: *mut ADRLIST,
4920 lpflaglist: *mut FlagList,
4921 ) -> windows_core::Result<()>;
4922}
4923impl IDistList_Vtbl {
4924 pub const fn new<Identity: IDistList_Impl, const OFFSET: isize>() -> Self {
4925 unsafe extern "system" fn CreateEntry<Identity: IDistList_Impl, const OFFSET: isize>(
4926 this: *mut core::ffi::c_void,
4927 cbentryid: u32,
4928 lpentryid: *mut ENTRYID,
4929 ulcreateflags: u32,
4930 lppmapipropentry: *mut *mut core::ffi::c_void,
4931 ) -> windows_core::HRESULT {
4932 unsafe {
4933 let this: &Identity =
4934 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
4935 IDistList_Impl::CreateEntry(
4936 this,
4937 core::mem::transmute_copy(&cbentryid),
4938 core::mem::transmute_copy(&lpentryid),
4939 core::mem::transmute_copy(&ulcreateflags),
4940 core::mem::transmute_copy(&lppmapipropentry),
4941 )
4942 .into()
4943 }
4944 }
4945 unsafe extern "system" fn CopyEntries<Identity: IDistList_Impl, const OFFSET: isize>(
4946 this: *mut core::ffi::c_void,
4947 lpentries: *mut SBinaryArray,
4948 uluiparam: usize,
4949 lpprogress: *mut core::ffi::c_void,
4950 ulflags: u32,
4951 ) -> windows_core::HRESULT {
4952 unsafe {
4953 let this: &Identity =
4954 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
4955 IDistList_Impl::CopyEntries(
4956 this,
4957 core::mem::transmute_copy(&lpentries),
4958 core::mem::transmute_copy(&uluiparam),
4959 core::mem::transmute_copy(&lpprogress),
4960 core::mem::transmute_copy(&ulflags),
4961 )
4962 .into()
4963 }
4964 }
4965 unsafe extern "system" fn DeleteEntries<Identity: IDistList_Impl, const OFFSET: isize>(
4966 this: *mut core::ffi::c_void,
4967 lpentries: *mut SBinaryArray,
4968 ulflags: u32,
4969 ) -> windows_core::HRESULT {
4970 unsafe {
4971 let this: &Identity =
4972 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
4973 IDistList_Impl::DeleteEntries(
4974 this,
4975 core::mem::transmute_copy(&lpentries),
4976 core::mem::transmute_copy(&ulflags),
4977 )
4978 .into()
4979 }
4980 }
4981 unsafe extern "system" fn ResolveNames<Identity: IDistList_Impl, const OFFSET: isize>(
4982 this: *mut core::ffi::c_void,
4983 lpproptagarray: *mut SPropTagArray,
4984 ulflags: u32,
4985 lpadrlist: *mut ADRLIST,
4986 lpflaglist: *mut FlagList,
4987 ) -> windows_core::HRESULT {
4988 unsafe {
4989 let this: &Identity =
4990 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
4991 IDistList_Impl::ResolveNames(
4992 this,
4993 core::mem::transmute_copy(&lpproptagarray),
4994 core::mem::transmute_copy(&ulflags),
4995 core::mem::transmute_copy(&lpadrlist),
4996 core::mem::transmute_copy(&lpflaglist),
4997 )
4998 .into()
4999 }
5000 }
5001 Self {
5002 base__: IMAPIContainer_Vtbl::new::<Identity, OFFSET>(),
5003 CreateEntry: CreateEntry::<Identity, OFFSET>,
5004 CopyEntries: CopyEntries::<Identity, OFFSET>,
5005 DeleteEntries: DeleteEntries::<Identity, OFFSET>,
5006 ResolveNames: ResolveNames::<Identity, OFFSET>,
5007 }
5008 }
5009 pub fn matches(iid: &windows_core::GUID) -> bool {
5010 iid == &<IDistList as windows_core::Interface>::IID
5011 || iid == &<IMAPIProp as windows_core::Interface>::IID
5012 || iid == &<IMAPIContainer as windows_core::Interface>::IID
5013 }
5014}
5015impl windows_core::RuntimeName for IDistList {}
5016pub const IDistList_CopyEntries: METHODS = METHODS(47i32);
5017pub const IDistList_CreateEntry: METHODS = METHODS(46i32);
5018pub const IDistList_DeleteEntries: METHODS = METHODS(48i32);
5019pub const IDistList_ResolveNames: METHODS = METHODS(49i32);
5020pub const IET_7BIT: ENCODINGTYPE = ENCODINGTYPE(4i32);
5021pub const IET_8BIT: ENCODINGTYPE = ENCODINGTYPE(5i32);
5022pub const IET_BASE64: ENCODINGTYPE = ENCODINGTYPE(1i32);
5023pub const IET_BINARY: ENCODINGTYPE = ENCODINGTYPE(0i32);
5024pub const IET_BINHEX40: ENCODINGTYPE = ENCODINGTYPE(12i32);
5025pub const IET_CURRENT: ENCODINGTYPE = ENCODINGTYPE(10i32);
5026pub const IET_ENCODED: ENCODINGTYPE = ENCODINGTYPE(9i32);
5027pub const IET_INETCSET: ENCODINGTYPE = ENCODINGTYPE(6i32);
5028pub const IET_LAST: ENCODINGTYPE = ENCODINGTYPE(13i32);
5029pub const IET_QP: ENCODINGTYPE = ENCODINGTYPE(3i32);
5030pub const IET_RFC1522: ENCODINGTYPE = ENCODINGTYPE(8i32);
5031pub const IET_UNICODE: ENCODINGTYPE = ENCODINGTYPE(7i32);
5032pub const IET_UNKNOWN: ENCODINGTYPE = ENCODINGTYPE(11i32);
5033pub const IET_UUENCODE: ENCODINGTYPE = ENCODINGTYPE(2i32);
5034windows_core::imp::define_interface!(
5035 IExchangeBadItemCallback,
5036 IExchangeBadItemCallback_Vtbl,
5037 0x1df85ab7_4d20_4a57_b170_2f062136c1d6
5038);
5039windows_core::imp::interface_hierarchy!(IExchangeBadItemCallback, windows_core::IUnknown);
5040impl IExchangeBadItemCallback {
5041 pub unsafe fn BadItem<P2>(
5042 &self,
5043 hresult: windows_core::HRESULT,
5044 ulflags: u32,
5045 lpwszfoldername: P2,
5046 lpsbfoldereid: *mut SBinary,
5047 cvalues: u32,
5048 lpproparray: *mut SPropValue,
5049 ) -> windows_core::Result<()>
5050 where
5051 P2: windows_core::Param<windows_core::PCWSTR>,
5052 {
5053 unsafe {
5054 (windows_core::Interface::vtable(self).BadItem)(
5055 windows_core::Interface::as_raw(self),
5056 hresult,
5057 ulflags,
5058 lpwszfoldername.param().abi(),
5059 lpsbfoldereid as _,
5060 cvalues,
5061 lpproparray as _,
5062 )
5063 .ok()
5064 }
5065 }
5066}
5067#[repr(C)]
5068#[doc(hidden)]
5069pub struct IExchangeBadItemCallback_Vtbl {
5070 pub base__: windows_core::IUnknown_Vtbl,
5071 pub BadItem: unsafe extern "system" fn(
5072 *mut core::ffi::c_void,
5073 windows_core::HRESULT,
5074 u32,
5075 windows_core::PCWSTR,
5076 *mut SBinary,
5077 u32,
5078 *mut SPropValue,
5079 ) -> windows_core::HRESULT,
5080}
5081pub trait IExchangeBadItemCallback_Impl: windows_core::IUnknownImpl {
5082 fn BadItem(
5083 &self,
5084 hresult: windows_core::HRESULT,
5085 ulflags: u32,
5086 lpwszfoldername: &windows_core::PCWSTR,
5087 lpsbfoldereid: *mut SBinary,
5088 cvalues: u32,
5089 lpproparray: *mut SPropValue,
5090 ) -> windows_core::Result<()>;
5091}
5092impl IExchangeBadItemCallback_Vtbl {
5093 pub const fn new<Identity: IExchangeBadItemCallback_Impl, const OFFSET: isize>() -> Self {
5094 unsafe extern "system" fn BadItem<
5095 Identity: IExchangeBadItemCallback_Impl,
5096 const OFFSET: isize,
5097 >(
5098 this: *mut core::ffi::c_void,
5099 hresult: windows_core::HRESULT,
5100 ulflags: u32,
5101 lpwszfoldername: windows_core::PCWSTR,
5102 lpsbfoldereid: *mut SBinary,
5103 cvalues: u32,
5104 lpproparray: *mut SPropValue,
5105 ) -> windows_core::HRESULT {
5106 unsafe {
5107 let this: &Identity =
5108 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
5109 IExchangeBadItemCallback_Impl::BadItem(
5110 this,
5111 core::mem::transmute_copy(&hresult),
5112 core::mem::transmute_copy(&ulflags),
5113 core::mem::transmute(&lpwszfoldername),
5114 core::mem::transmute_copy(&lpsbfoldereid),
5115 core::mem::transmute_copy(&cvalues),
5116 core::mem::transmute_copy(&lpproparray),
5117 )
5118 .into()
5119 }
5120 }
5121 Self {
5122 base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
5123 BadItem: BadItem::<Identity, OFFSET>,
5124 }
5125 }
5126 pub fn matches(iid: &windows_core::GUID) -> bool {
5127 iid == &<IExchangeBadItemCallback as windows_core::Interface>::IID
5128 }
5129}
5130impl windows_core::RuntimeName for IExchangeBadItemCallback {}
5131windows_core::imp::define_interface!(IExchangeChangeAdviseSink, IExchangeChangeAdviseSink_Vtbl, 0);
5132windows_core::imp::interface_hierarchy!(IExchangeChangeAdviseSink, windows_core::IUnknown);
5133impl IExchangeChangeAdviseSink {
5134 pub unsafe fn OnNotify(&self, ulflags: u32, lpentrylist: *mut SBinaryArray) -> u32 {
5135 unsafe {
5136 (windows_core::Interface::vtable(self).OnNotify)(
5137 windows_core::Interface::as_raw(self),
5138 ulflags,
5139 lpentrylist as _,
5140 )
5141 }
5142 }
5143}
5144#[repr(C)]
5145#[doc(hidden)]
5146pub struct IExchangeChangeAdviseSink_Vtbl {
5147 pub base__: windows_core::IUnknown_Vtbl,
5148 pub OnNotify: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut SBinaryArray) -> u32,
5149}
5150pub trait IExchangeChangeAdviseSink_Impl: windows_core::IUnknownImpl {
5151 fn OnNotify(&self, ulflags: u32, lpentrylist: *mut SBinaryArray) -> u32;
5152}
5153impl IExchangeChangeAdviseSink_Vtbl {
5154 pub const fn new<Identity: IExchangeChangeAdviseSink_Impl, const OFFSET: isize>() -> Self {
5155 unsafe extern "system" fn OnNotify<
5156 Identity: IExchangeChangeAdviseSink_Impl,
5157 const OFFSET: isize,
5158 >(
5159 this: *mut core::ffi::c_void,
5160 ulflags: u32,
5161 lpentrylist: *mut SBinaryArray,
5162 ) -> u32 {
5163 unsafe {
5164 let this: &Identity =
5165 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
5166 IExchangeChangeAdviseSink_Impl::OnNotify(
5167 this,
5168 core::mem::transmute_copy(&ulflags),
5169 core::mem::transmute_copy(&lpentrylist),
5170 )
5171 }
5172 }
5173 Self {
5174 base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
5175 OnNotify: OnNotify::<Identity, OFFSET>,
5176 }
5177 }
5178 pub fn matches(iid: &windows_core::GUID) -> bool {
5179 iid == &<IExchangeChangeAdviseSink as windows_core::Interface>::IID
5180 }
5181}
5182impl windows_core::RuntimeName for IExchangeChangeAdviseSink {}
5183windows_core::imp::define_interface!(
5184 IExchangeChangeAdvisor,
5185 IExchangeChangeAdvisor_Vtbl,
5186 0x1e300720_a839_11cf_bde0_00004c7531e3
5187);
5188windows_core::imp::interface_hierarchy!(IExchangeChangeAdvisor, windows_core::IUnknown);
5189impl IExchangeChangeAdvisor {
5190 pub unsafe fn GetLastError(
5191 &self,
5192 hresult: windows_core::HRESULT,
5193 ulflags: u32,
5194 lppmapierror: *mut *mut MAPIERROR,
5195 ) -> windows_core::Result<()> {
5196 unsafe {
5197 (windows_core::Interface::vtable(self).GetLastError)(
5198 windows_core::Interface::as_raw(self),
5199 hresult,
5200 ulflags,
5201 lppmapierror as _,
5202 )
5203 .ok()
5204 }
5205 }
5206 pub unsafe fn Config<P0, P2>(
5207 &self,
5208 lpstream: P0,
5209 lpguid: *mut windows_core::GUID,
5210 lpadvisesink: P2,
5211 ulflags: u32,
5212 ) -> windows_core::Result<()>
5213 where
5214 P0: windows_core::Param<windows::Win32::System::Com::IStream>,
5215 P2: windows_core::Param<IExchangeChangeAdviseSink>,
5216 {
5217 unsafe {
5218 (windows_core::Interface::vtable(self).Config)(
5219 windows_core::Interface::as_raw(self),
5220 lpstream.param().abi(),
5221 lpguid as _,
5222 lpadvisesink.param().abi(),
5223 ulflags,
5224 )
5225 .ok()
5226 }
5227 }
5228 pub unsafe fn UpdateState<P0>(&self, lpstream: P0) -> windows_core::Result<()>
5229 where
5230 P0: windows_core::Param<windows::Win32::System::Com::IStream>,
5231 {
5232 unsafe {
5233 (windows_core::Interface::vtable(self).UpdateState)(
5234 windows_core::Interface::as_raw(self),
5235 lpstream.param().abi(),
5236 )
5237 .ok()
5238 }
5239 }
5240 pub unsafe fn AddKeys(&self, lpentrylist: *mut SBinaryArray) -> windows_core::Result<()> {
5241 unsafe {
5242 (windows_core::Interface::vtable(self).AddKeys)(
5243 windows_core::Interface::as_raw(self),
5244 lpentrylist as _,
5245 )
5246 .ok()
5247 }
5248 }
5249 pub unsafe fn RemoveKeys(&self, lpentrylist: *mut SBinaryArray) -> windows_core::Result<()> {
5250 unsafe {
5251 (windows_core::Interface::vtable(self).RemoveKeys)(
5252 windows_core::Interface::as_raw(self),
5253 lpentrylist as _,
5254 )
5255 .ok()
5256 }
5257 }
5258}
5259#[repr(C)]
5260#[doc(hidden)]
5261pub struct IExchangeChangeAdvisor_Vtbl {
5262 pub base__: windows_core::IUnknown_Vtbl,
5263 pub GetLastError: unsafe extern "system" fn(
5264 *mut core::ffi::c_void,
5265 windows_core::HRESULT,
5266 u32,
5267 *mut *mut MAPIERROR,
5268 ) -> windows_core::HRESULT,
5269 pub Config: unsafe extern "system" fn(
5270 *mut core::ffi::c_void,
5271 *mut core::ffi::c_void,
5272 *mut windows_core::GUID,
5273 *mut core::ffi::c_void,
5274 u32,
5275 ) -> windows_core::HRESULT,
5276 pub UpdateState: unsafe extern "system" fn(
5277 *mut core::ffi::c_void,
5278 *mut core::ffi::c_void,
5279 ) -> windows_core::HRESULT,
5280 pub AddKeys: unsafe extern "system" fn(
5281 *mut core::ffi::c_void,
5282 *mut SBinaryArray,
5283 ) -> windows_core::HRESULT,
5284 pub RemoveKeys: unsafe extern "system" fn(
5285 *mut core::ffi::c_void,
5286 *mut SBinaryArray,
5287 ) -> windows_core::HRESULT,
5288}
5289pub trait IExchangeChangeAdvisor_Impl: windows_core::IUnknownImpl {
5290 fn GetLastError(
5291 &self,
5292 hresult: windows_core::HRESULT,
5293 ulflags: u32,
5294 lppmapierror: *mut *mut MAPIERROR,
5295 ) -> windows_core::Result<()>;
5296 fn Config(
5297 &self,
5298 lpstream: windows_core::Ref<windows::Win32::System::Com::IStream>,
5299 lpguid: *mut windows_core::GUID,
5300 lpadvisesink: windows_core::Ref<IExchangeChangeAdviseSink>,
5301 ulflags: u32,
5302 ) -> windows_core::Result<()>;
5303 fn UpdateState(
5304 &self,
5305 lpstream: windows_core::Ref<windows::Win32::System::Com::IStream>,
5306 ) -> windows_core::Result<()>;
5307 fn AddKeys(&self, lpentrylist: *mut SBinaryArray) -> windows_core::Result<()>;
5308 fn RemoveKeys(&self, lpentrylist: *mut SBinaryArray) -> windows_core::Result<()>;
5309}
5310impl IExchangeChangeAdvisor_Vtbl {
5311 pub const fn new<Identity: IExchangeChangeAdvisor_Impl, const OFFSET: isize>() -> Self {
5312 unsafe extern "system" fn GetLastError<
5313 Identity: IExchangeChangeAdvisor_Impl,
5314 const OFFSET: isize,
5315 >(
5316 this: *mut core::ffi::c_void,
5317 hresult: windows_core::HRESULT,
5318 ulflags: u32,
5319 lppmapierror: *mut *mut MAPIERROR,
5320 ) -> windows_core::HRESULT {
5321 unsafe {
5322 let this: &Identity =
5323 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
5324 IExchangeChangeAdvisor_Impl::GetLastError(
5325 this,
5326 core::mem::transmute_copy(&hresult),
5327 core::mem::transmute_copy(&ulflags),
5328 core::mem::transmute_copy(&lppmapierror),
5329 )
5330 .into()
5331 }
5332 }
5333 unsafe extern "system" fn Config<
5334 Identity: IExchangeChangeAdvisor_Impl,
5335 const OFFSET: isize,
5336 >(
5337 this: *mut core::ffi::c_void,
5338 lpstream: *mut core::ffi::c_void,
5339 lpguid: *mut windows_core::GUID,
5340 lpadvisesink: *mut core::ffi::c_void,
5341 ulflags: u32,
5342 ) -> windows_core::HRESULT {
5343 unsafe {
5344 let this: &Identity =
5345 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
5346 IExchangeChangeAdvisor_Impl::Config(
5347 this,
5348 core::mem::transmute_copy(&lpstream),
5349 core::mem::transmute_copy(&lpguid),
5350 core::mem::transmute_copy(&lpadvisesink),
5351 core::mem::transmute_copy(&ulflags),
5352 )
5353 .into()
5354 }
5355 }
5356 unsafe extern "system" fn UpdateState<
5357 Identity: IExchangeChangeAdvisor_Impl,
5358 const OFFSET: isize,
5359 >(
5360 this: *mut core::ffi::c_void,
5361 lpstream: *mut core::ffi::c_void,
5362 ) -> windows_core::HRESULT {
5363 unsafe {
5364 let this: &Identity =
5365 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
5366 IExchangeChangeAdvisor_Impl::UpdateState(this, core::mem::transmute_copy(&lpstream))
5367 .into()
5368 }
5369 }
5370 unsafe extern "system" fn AddKeys<
5371 Identity: IExchangeChangeAdvisor_Impl,
5372 const OFFSET: isize,
5373 >(
5374 this: *mut core::ffi::c_void,
5375 lpentrylist: *mut SBinaryArray,
5376 ) -> windows_core::HRESULT {
5377 unsafe {
5378 let this: &Identity =
5379 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
5380 IExchangeChangeAdvisor_Impl::AddKeys(this, core::mem::transmute_copy(&lpentrylist))
5381 .into()
5382 }
5383 }
5384 unsafe extern "system" fn RemoveKeys<
5385 Identity: IExchangeChangeAdvisor_Impl,
5386 const OFFSET: isize,
5387 >(
5388 this: *mut core::ffi::c_void,
5389 lpentrylist: *mut SBinaryArray,
5390 ) -> windows_core::HRESULT {
5391 unsafe {
5392 let this: &Identity =
5393 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
5394 IExchangeChangeAdvisor_Impl::RemoveKeys(
5395 this,
5396 core::mem::transmute_copy(&lpentrylist),
5397 )
5398 .into()
5399 }
5400 }
5401 Self {
5402 base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
5403 GetLastError: GetLastError::<Identity, OFFSET>,
5404 Config: Config::<Identity, OFFSET>,
5405 UpdateState: UpdateState::<Identity, OFFSET>,
5406 AddKeys: AddKeys::<Identity, OFFSET>,
5407 RemoveKeys: RemoveKeys::<Identity, OFFSET>,
5408 }
5409 }
5410 pub fn matches(iid: &windows_core::GUID) -> bool {
5411 iid == &<IExchangeChangeAdvisor as windows_core::Interface>::IID
5412 }
5413}
5414impl windows_core::RuntimeName for IExchangeChangeAdvisor {}
5415windows_core::imp::define_interface!(
5416 IExchangeExportChanges,
5417 IExchangeExportChanges_Vtbl,
5418 0xa3ea9cc0_d1b2_11cd_80fc_00aa004bba0b
5419);
5420windows_core::imp::interface_hierarchy!(IExchangeExportChanges, windows_core::IUnknown);
5421impl IExchangeExportChanges {
5422 pub unsafe fn GetLastError(
5423 &self,
5424 hresult: windows_core::HRESULT,
5425 ulflags: u32,
5426 lppmapierror: *mut *mut MAPIERROR,
5427 ) -> windows_core::Result<()> {
5428 unsafe {
5429 (windows_core::Interface::vtable(self).GetLastError)(
5430 windows_core::Interface::as_raw(self),
5431 hresult,
5432 ulflags,
5433 lppmapierror as _,
5434 )
5435 .ok()
5436 }
5437 }
5438 pub unsafe fn Config<P0, P2>(
5439 &self,
5440 lpstream: P0,
5441 ulflags: u32,
5442 lpunk: P2,
5443 lprestriction: *mut SRestriction,
5444 lpincludeprops: *mut SPropTagArray,
5445 lpexcludeprops: *mut SPropTagArray,
5446 ulbuffersize: u32,
5447 ) -> windows_core::Result<()>
5448 where
5449 P0: windows_core::Param<windows::Win32::System::Com::IStream>,
5450 P2: windows_core::Param<windows_core::IUnknown>,
5451 {
5452 unsafe {
5453 (windows_core::Interface::vtable(self).Config)(
5454 windows_core::Interface::as_raw(self),
5455 lpstream.param().abi(),
5456 ulflags,
5457 lpunk.param().abi(),
5458 lprestriction as _,
5459 lpincludeprops as _,
5460 lpexcludeprops as _,
5461 ulbuffersize,
5462 )
5463 .ok()
5464 }
5465 }
5466 pub unsafe fn Synchronize(
5467 &self,
5468 lpulsteps: *mut u32,
5469 lpulprogress: *mut u32,
5470 ) -> windows_core::Result<()> {
5471 unsafe {
5472 (windows_core::Interface::vtable(self).Synchronize)(
5473 windows_core::Interface::as_raw(self),
5474 lpulsteps as _,
5475 lpulprogress as _,
5476 )
5477 .ok()
5478 }
5479 }
5480 pub unsafe fn UpdateState<P0>(&self, lpstream: P0) -> windows_core::Result<()>
5481 where
5482 P0: windows_core::Param<windows::Win32::System::Com::IStream>,
5483 {
5484 unsafe {
5485 (windows_core::Interface::vtable(self).UpdateState)(
5486 windows_core::Interface::as_raw(self),
5487 lpstream.param().abi(),
5488 )
5489 .ok()
5490 }
5491 }
5492}
5493#[repr(C)]
5494#[doc(hidden)]
5495pub struct IExchangeExportChanges_Vtbl {
5496 pub base__: windows_core::IUnknown_Vtbl,
5497 pub GetLastError: unsafe extern "system" fn(
5498 *mut core::ffi::c_void,
5499 windows_core::HRESULT,
5500 u32,
5501 *mut *mut MAPIERROR,
5502 ) -> windows_core::HRESULT,
5503 pub Config: unsafe extern "system" fn(
5504 *mut core::ffi::c_void,
5505 *mut core::ffi::c_void,
5506 u32,
5507 *mut core::ffi::c_void,
5508 *mut SRestriction,
5509 *mut SPropTagArray,
5510 *mut SPropTagArray,
5511 u32,
5512 ) -> windows_core::HRESULT,
5513 pub Synchronize: unsafe extern "system" fn(
5514 *mut core::ffi::c_void,
5515 *mut u32,
5516 *mut u32,
5517 ) -> windows_core::HRESULT,
5518 pub UpdateState: unsafe extern "system" fn(
5519 *mut core::ffi::c_void,
5520 *mut core::ffi::c_void,
5521 ) -> windows_core::HRESULT,
5522}
5523pub trait IExchangeExportChanges_Impl: windows_core::IUnknownImpl {
5524 fn GetLastError(
5525 &self,
5526 hresult: windows_core::HRESULT,
5527 ulflags: u32,
5528 lppmapierror: *mut *mut MAPIERROR,
5529 ) -> windows_core::Result<()>;
5530 fn Config(
5531 &self,
5532 lpstream: windows_core::Ref<windows::Win32::System::Com::IStream>,
5533 ulflags: u32,
5534 lpunk: windows_core::Ref<windows_core::IUnknown>,
5535 lprestriction: *mut SRestriction,
5536 lpincludeprops: *mut SPropTagArray,
5537 lpexcludeprops: *mut SPropTagArray,
5538 ulbuffersize: u32,
5539 ) -> windows_core::Result<()>;
5540 fn Synchronize(&self, lpulsteps: *mut u32, lpulprogress: *mut u32) -> windows_core::Result<()>;
5541 fn UpdateState(
5542 &self,
5543 lpstream: windows_core::Ref<windows::Win32::System::Com::IStream>,
5544 ) -> windows_core::Result<()>;
5545}
5546impl IExchangeExportChanges_Vtbl {
5547 pub const fn new<Identity: IExchangeExportChanges_Impl, const OFFSET: isize>() -> Self {
5548 unsafe extern "system" fn GetLastError<
5549 Identity: IExchangeExportChanges_Impl,
5550 const OFFSET: isize,
5551 >(
5552 this: *mut core::ffi::c_void,
5553 hresult: windows_core::HRESULT,
5554 ulflags: u32,
5555 lppmapierror: *mut *mut MAPIERROR,
5556 ) -> windows_core::HRESULT {
5557 unsafe {
5558 let this: &Identity =
5559 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
5560 IExchangeExportChanges_Impl::GetLastError(
5561 this,
5562 core::mem::transmute_copy(&hresult),
5563 core::mem::transmute_copy(&ulflags),
5564 core::mem::transmute_copy(&lppmapierror),
5565 )
5566 .into()
5567 }
5568 }
5569 unsafe extern "system" fn Config<
5570 Identity: IExchangeExportChanges_Impl,
5571 const OFFSET: isize,
5572 >(
5573 this: *mut core::ffi::c_void,
5574 lpstream: *mut core::ffi::c_void,
5575 ulflags: u32,
5576 lpunk: *mut core::ffi::c_void,
5577 lprestriction: *mut SRestriction,
5578 lpincludeprops: *mut SPropTagArray,
5579 lpexcludeprops: *mut SPropTagArray,
5580 ulbuffersize: u32,
5581 ) -> windows_core::HRESULT {
5582 unsafe {
5583 let this: &Identity =
5584 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
5585 IExchangeExportChanges_Impl::Config(
5586 this,
5587 core::mem::transmute_copy(&lpstream),
5588 core::mem::transmute_copy(&ulflags),
5589 core::mem::transmute_copy(&lpunk),
5590 core::mem::transmute_copy(&lprestriction),
5591 core::mem::transmute_copy(&lpincludeprops),
5592 core::mem::transmute_copy(&lpexcludeprops),
5593 core::mem::transmute_copy(&ulbuffersize),
5594 )
5595 .into()
5596 }
5597 }
5598 unsafe extern "system" fn Synchronize<
5599 Identity: IExchangeExportChanges_Impl,
5600 const OFFSET: isize,
5601 >(
5602 this: *mut core::ffi::c_void,
5603 lpulsteps: *mut u32,
5604 lpulprogress: *mut u32,
5605 ) -> windows_core::HRESULT {
5606 unsafe {
5607 let this: &Identity =
5608 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
5609 IExchangeExportChanges_Impl::Synchronize(
5610 this,
5611 core::mem::transmute_copy(&lpulsteps),
5612 core::mem::transmute_copy(&lpulprogress),
5613 )
5614 .into()
5615 }
5616 }
5617 unsafe extern "system" fn UpdateState<
5618 Identity: IExchangeExportChanges_Impl,
5619 const OFFSET: isize,
5620 >(
5621 this: *mut core::ffi::c_void,
5622 lpstream: *mut core::ffi::c_void,
5623 ) -> windows_core::HRESULT {
5624 unsafe {
5625 let this: &Identity =
5626 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
5627 IExchangeExportChanges_Impl::UpdateState(this, core::mem::transmute_copy(&lpstream))
5628 .into()
5629 }
5630 }
5631 Self {
5632 base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
5633 GetLastError: GetLastError::<Identity, OFFSET>,
5634 Config: Config::<Identity, OFFSET>,
5635 Synchronize: Synchronize::<Identity, OFFSET>,
5636 UpdateState: UpdateState::<Identity, OFFSET>,
5637 }
5638 }
5639 pub fn matches(iid: &windows_core::GUID) -> bool {
5640 iid == &<IExchangeExportChanges as windows_core::Interface>::IID
5641 }
5642}
5643impl windows_core::RuntimeName for IExchangeExportChanges {}
5644windows_core::imp::define_interface!(
5645 IExchangeExportChanges2,
5646 IExchangeExportChanges2_Vtbl,
5647 0x387cebe0_f53f_11cf_a48f_00c04fd65595
5648);
5649impl core::ops::Deref for IExchangeExportChanges2 {
5650 type Target = IExchangeExportChanges;
5651 fn deref(&self) -> &Self::Target {
5652 unsafe { core::mem::transmute(self) }
5653 }
5654}
5655windows_core::imp::interface_hierarchy!(
5656 IExchangeExportChanges2,
5657 windows_core::IUnknown,
5658 IExchangeExportChanges
5659);
5660impl IExchangeExportChanges2 {
5661 pub unsafe fn ConfigForConversionStream<P0, P2>(
5662 &self,
5663 lpstream: P0,
5664 ulflags: u32,
5665 lpunk: P2,
5666 lprestriction: *mut SRestriction,
5667 cvaluesconversion: u32,
5668 lpproparrayconversion: *mut SPropValue,
5669 ulbuffersize: u32,
5670 ) -> windows_core::Result<()>
5671 where
5672 P0: windows_core::Param<windows::Win32::System::Com::IStream>,
5673 P2: windows_core::Param<windows_core::IUnknown>,
5674 {
5675 unsafe {
5676 (windows_core::Interface::vtable(self).ConfigForConversionStream)(
5677 windows_core::Interface::as_raw(self),
5678 lpstream.param().abi(),
5679 ulflags,
5680 lpunk.param().abi(),
5681 lprestriction as _,
5682 cvaluesconversion,
5683 lpproparrayconversion as _,
5684 ulbuffersize,
5685 )
5686 .ok()
5687 }
5688 }
5689}
5690#[repr(C)]
5691#[doc(hidden)]
5692pub struct IExchangeExportChanges2_Vtbl {
5693 pub base__: IExchangeExportChanges_Vtbl,
5694 pub ConfigForConversionStream: unsafe extern "system" fn(
5695 *mut core::ffi::c_void,
5696 *mut core::ffi::c_void,
5697 u32,
5698 *mut core::ffi::c_void,
5699 *mut SRestriction,
5700 u32,
5701 *mut SPropValue,
5702 u32,
5703 ) -> windows_core::HRESULT,
5704}
5705pub trait IExchangeExportChanges2_Impl: IExchangeExportChanges_Impl {
5706 fn ConfigForConversionStream(
5707 &self,
5708 lpstream: windows_core::Ref<windows::Win32::System::Com::IStream>,
5709 ulflags: u32,
5710 lpunk: windows_core::Ref<windows_core::IUnknown>,
5711 lprestriction: *mut SRestriction,
5712 cvaluesconversion: u32,
5713 lpproparrayconversion: *mut SPropValue,
5714 ulbuffersize: u32,
5715 ) -> windows_core::Result<()>;
5716}
5717impl IExchangeExportChanges2_Vtbl {
5718 pub const fn new<Identity: IExchangeExportChanges2_Impl, const OFFSET: isize>() -> Self {
5719 unsafe extern "system" fn ConfigForConversionStream<
5720 Identity: IExchangeExportChanges2_Impl,
5721 const OFFSET: isize,
5722 >(
5723 this: *mut core::ffi::c_void,
5724 lpstream: *mut core::ffi::c_void,
5725 ulflags: u32,
5726 lpunk: *mut core::ffi::c_void,
5727 lprestriction: *mut SRestriction,
5728 cvaluesconversion: u32,
5729 lpproparrayconversion: *mut SPropValue,
5730 ulbuffersize: u32,
5731 ) -> windows_core::HRESULT {
5732 unsafe {
5733 let this: &Identity =
5734 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
5735 IExchangeExportChanges2_Impl::ConfigForConversionStream(
5736 this,
5737 core::mem::transmute_copy(&lpstream),
5738 core::mem::transmute_copy(&ulflags),
5739 core::mem::transmute_copy(&lpunk),
5740 core::mem::transmute_copy(&lprestriction),
5741 core::mem::transmute_copy(&cvaluesconversion),
5742 core::mem::transmute_copy(&lpproparrayconversion),
5743 core::mem::transmute_copy(&ulbuffersize),
5744 )
5745 .into()
5746 }
5747 }
5748 Self {
5749 base__: IExchangeExportChanges_Vtbl::new::<Identity, OFFSET>(),
5750 ConfigForConversionStream: ConfigForConversionStream::<Identity, OFFSET>,
5751 }
5752 }
5753 pub fn matches(iid: &windows_core::GUID) -> bool {
5754 iid == &<IExchangeExportChanges2 as windows_core::Interface>::IID
5755 || iid == &<IExchangeExportChanges as windows_core::Interface>::IID
5756 }
5757}
5758impl windows_core::RuntimeName for IExchangeExportChanges2 {}
5759windows_core::imp::define_interface!(
5760 IExchangeExportChanges3,
5761 IExchangeExportChanges3_Vtbl,
5762 0x702e7f86_50a6_11d1_abd6_00a0c905660a
5763);
5764impl core::ops::Deref for IExchangeExportChanges3 {
5765 type Target = IExchangeExportChanges2;
5766 fn deref(&self) -> &Self::Target {
5767 unsafe { core::mem::transmute(self) }
5768 }
5769}
5770windows_core::imp::interface_hierarchy!(
5771 IExchangeExportChanges3,
5772 windows_core::IUnknown,
5773 IExchangeExportChanges,
5774 IExchangeExportChanges2
5775);
5776impl IExchangeExportChanges3 {
5777 pub unsafe fn ConfigForSelectiveSync<P0, P2>(
5778 &self,
5779 lpstream: P0,
5780 ulflags: u32,
5781 lpunk: P2,
5782 lpmsglist: *mut SBinaryArray,
5783 lprestriction: *mut SRestriction,
5784 lpincludeprops: *mut SPropTagArray,
5785 lpexcludeprops: *mut SPropTagArray,
5786 ulbuffersize: u32,
5787 ) -> windows_core::Result<()>
5788 where
5789 P0: windows_core::Param<windows::Win32::System::Com::IStream>,
5790 P2: windows_core::Param<windows_core::IUnknown>,
5791 {
5792 unsafe {
5793 (windows_core::Interface::vtable(self).ConfigForSelectiveSync)(
5794 windows_core::Interface::as_raw(self),
5795 lpstream.param().abi(),
5796 ulflags,
5797 lpunk.param().abi(),
5798 lpmsglist as _,
5799 lprestriction as _,
5800 lpincludeprops as _,
5801 lpexcludeprops as _,
5802 ulbuffersize,
5803 )
5804 .ok()
5805 }
5806 }
5807}
5808#[repr(C)]
5809#[doc(hidden)]
5810pub struct IExchangeExportChanges3_Vtbl {
5811 pub base__: IExchangeExportChanges2_Vtbl,
5812 pub ConfigForSelectiveSync: unsafe extern "system" fn(
5813 *mut core::ffi::c_void,
5814 *mut core::ffi::c_void,
5815 u32,
5816 *mut core::ffi::c_void,
5817 *mut SBinaryArray,
5818 *mut SRestriction,
5819 *mut SPropTagArray,
5820 *mut SPropTagArray,
5821 u32,
5822 ) -> windows_core::HRESULT,
5823}
5824pub trait IExchangeExportChanges3_Impl: IExchangeExportChanges2_Impl {
5825 fn ConfigForSelectiveSync(
5826 &self,
5827 lpstream: windows_core::Ref<windows::Win32::System::Com::IStream>,
5828 ulflags: u32,
5829 lpunk: windows_core::Ref<windows_core::IUnknown>,
5830 lpmsglist: *mut SBinaryArray,
5831 lprestriction: *mut SRestriction,
5832 lpincludeprops: *mut SPropTagArray,
5833 lpexcludeprops: *mut SPropTagArray,
5834 ulbuffersize: u32,
5835 ) -> windows_core::Result<()>;
5836}
5837impl IExchangeExportChanges3_Vtbl {
5838 pub const fn new<Identity: IExchangeExportChanges3_Impl, const OFFSET: isize>() -> Self {
5839 unsafe extern "system" fn ConfigForSelectiveSync<
5840 Identity: IExchangeExportChanges3_Impl,
5841 const OFFSET: isize,
5842 >(
5843 this: *mut core::ffi::c_void,
5844 lpstream: *mut core::ffi::c_void,
5845 ulflags: u32,
5846 lpunk: *mut core::ffi::c_void,
5847 lpmsglist: *mut SBinaryArray,
5848 lprestriction: *mut SRestriction,
5849 lpincludeprops: *mut SPropTagArray,
5850 lpexcludeprops: *mut SPropTagArray,
5851 ulbuffersize: u32,
5852 ) -> windows_core::HRESULT {
5853 unsafe {
5854 let this: &Identity =
5855 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
5856 IExchangeExportChanges3_Impl::ConfigForSelectiveSync(
5857 this,
5858 core::mem::transmute_copy(&lpstream),
5859 core::mem::transmute_copy(&ulflags),
5860 core::mem::transmute_copy(&lpunk),
5861 core::mem::transmute_copy(&lpmsglist),
5862 core::mem::transmute_copy(&lprestriction),
5863 core::mem::transmute_copy(&lpincludeprops),
5864 core::mem::transmute_copy(&lpexcludeprops),
5865 core::mem::transmute_copy(&ulbuffersize),
5866 )
5867 .into()
5868 }
5869 }
5870 Self {
5871 base__: IExchangeExportChanges2_Vtbl::new::<Identity, OFFSET>(),
5872 ConfigForSelectiveSync: ConfigForSelectiveSync::<Identity, OFFSET>,
5873 }
5874 }
5875 pub fn matches(iid: &windows_core::GUID) -> bool {
5876 iid == &<IExchangeExportChanges3 as windows_core::Interface>::IID
5877 || iid == &<IExchangeExportChanges as windows_core::Interface>::IID
5878 || iid == &<IExchangeExportChanges2 as windows_core::Interface>::IID
5879 }
5880}
5881impl windows_core::RuntimeName for IExchangeExportChanges3 {}
5882windows_core::imp::define_interface!(
5883 IExchangeFastTransfer,
5884 IExchangeFastTransfer_Vtbl,
5885 0xff7db070_a88a_11cd_9bc8_00aa002fc45a
5886);
5887windows_core::imp::interface_hierarchy!(IExchangeFastTransfer, windows_core::IUnknown);
5888impl IExchangeFastTransfer {
5889 pub unsafe fn Config(&self, ulflags: u32, ultransfermethod: u32) -> windows_core::Result<()> {
5890 unsafe {
5891 (windows_core::Interface::vtable(self).Config)(
5892 windows_core::Interface::as_raw(self),
5893 ulflags,
5894 ultransfermethod,
5895 )
5896 .ok()
5897 }
5898 }
5899 pub unsafe fn TransferBuffer(
5900 &self,
5901 cb: u32,
5902 lpb: *mut u8,
5903 lpcbprocessed: *mut u32,
5904 ) -> windows_core::Result<()> {
5905 unsafe {
5906 (windows_core::Interface::vtable(self).TransferBuffer)(
5907 windows_core::Interface::as_raw(self),
5908 cb,
5909 lpb as _,
5910 lpcbprocessed as _,
5911 )
5912 .ok()
5913 }
5914 }
5915 pub unsafe fn IsInterfaceOk(
5916 &self,
5917 ultransfermethod: u32,
5918 refiid: *const windows_core::GUID,
5919 lpptaglist: *mut SPropTagArray,
5920 ulflags: u32,
5921 ) -> windows_core::BOOL {
5922 unsafe {
5923 (windows_core::Interface::vtable(self).IsInterfaceOk)(
5924 windows_core::Interface::as_raw(self),
5925 ultransfermethod,
5926 refiid,
5927 lpptaglist as _,
5928 ulflags,
5929 )
5930 }
5931 }
5932}
5933#[repr(C)]
5934#[doc(hidden)]
5935pub struct IExchangeFastTransfer_Vtbl {
5936 pub base__: windows_core::IUnknown_Vtbl,
5937 pub Config:
5938 unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32) -> windows_core::HRESULT,
5939 pub TransferBuffer: unsafe extern "system" fn(
5940 *mut core::ffi::c_void,
5941 u32,
5942 *mut u8,
5943 *mut u32,
5944 ) -> windows_core::HRESULT,
5945 pub IsInterfaceOk: unsafe extern "system" fn(
5946 *mut core::ffi::c_void,
5947 u32,
5948 *const windows_core::GUID,
5949 *mut SPropTagArray,
5950 u32,
5951 ) -> windows_core::BOOL,
5952}
5953pub trait IExchangeFastTransfer_Impl: windows_core::IUnknownImpl {
5954 fn Config(&self, ulflags: u32, ultransfermethod: u32) -> windows_core::Result<()>;
5955 fn TransferBuffer(
5956 &self,
5957 cb: u32,
5958 lpb: *mut u8,
5959 lpcbprocessed: *mut u32,
5960 ) -> windows_core::Result<()>;
5961 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}
5969impl IExchangeFastTransfer_Vtbl {
5970 pub const fn new<Identity: IExchangeFastTransfer_Impl, const OFFSET: isize>() -> Self {
5971 unsafe extern "system" fn Config<
5972 Identity: IExchangeFastTransfer_Impl,
5973 const OFFSET: isize,
5974 >(
5975 this: *mut core::ffi::c_void,
5976 ulflags: u32,
5977 ultransfermethod: u32,
5978 ) -> windows_core::HRESULT {
5979 unsafe {
5980 let this: &Identity =
5981 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
5982 IExchangeFastTransfer_Impl::Config(
5983 this,
5984 core::mem::transmute_copy(&ulflags),
5985 core::mem::transmute_copy(&ultransfermethod),
5986 )
5987 .into()
5988 }
5989 }
5990 unsafe extern "system" fn TransferBuffer<
5991 Identity: IExchangeFastTransfer_Impl,
5992 const OFFSET: isize,
5993 >(
5994 this: *mut core::ffi::c_void,
5995 cb: u32,
5996 lpb: *mut u8,
5997 lpcbprocessed: *mut u32,
5998 ) -> windows_core::HRESULT {
5999 unsafe {
6000 let this: &Identity =
6001 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
6002 IExchangeFastTransfer_Impl::TransferBuffer(
6003 this,
6004 core::mem::transmute_copy(&cb),
6005 core::mem::transmute_copy(&lpb),
6006 core::mem::transmute_copy(&lpcbprocessed),
6007 )
6008 .into()
6009 }
6010 }
6011 unsafe extern "system" fn IsInterfaceOk<
6012 Identity: IExchangeFastTransfer_Impl,
6013 const OFFSET: isize,
6014 >(
6015 this: *mut core::ffi::c_void,
6016 ultransfermethod: u32,
6017 refiid: *const windows_core::GUID,
6018 lpptaglist: *mut SPropTagArray,
6019 ulflags: u32,
6020 ) -> windows_core::BOOL {
6021 unsafe {
6022 let this: &Identity =
6023 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
6024 IExchangeFastTransfer_Impl::IsInterfaceOk(
6025 this,
6026 core::mem::transmute_copy(&ultransfermethod),
6027 core::mem::transmute_copy(&refiid),
6028 core::mem::transmute_copy(&lpptaglist),
6029 core::mem::transmute_copy(&ulflags),
6030 )
6031 }
6032 }
6033 Self {
6034 base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
6035 Config: Config::<Identity, OFFSET>,
6036 TransferBuffer: TransferBuffer::<Identity, OFFSET>,
6037 IsInterfaceOk: IsInterfaceOk::<Identity, OFFSET>,
6038 }
6039 }
6040 pub fn matches(iid: &windows_core::GUID) -> bool {
6041 iid == &<IExchangeFastTransfer as windows_core::Interface>::IID
6042 }
6043}
6044impl windows_core::RuntimeName for IExchangeFastTransfer {}
6045windows_core::imp::define_interface!(
6046 IExchangeFavorites,
6047 IExchangeFavorites_Vtbl,
6048 0xcf4f3bc0_ec66_11ce_b31c_00aa00574cc6
6049);
6050windows_core::imp::interface_hierarchy!(IExchangeFavorites, windows_core::IUnknown);
6051impl IExchangeFavorites {
6052 pub unsafe fn GetLastError(
6053 &self,
6054 hresult: windows_core::HRESULT,
6055 ulflags: u32,
6056 lppmapierror: *mut *mut MAPIERROR,
6057 ) -> windows_core::Result<()> {
6058 unsafe {
6059 (windows_core::Interface::vtable(self).GetLastError)(
6060 windows_core::Interface::as_raw(self),
6061 hresult,
6062 ulflags,
6063 lppmapierror as _,
6064 )
6065 .ok()
6066 }
6067 }
6068 pub unsafe fn AddFavorites(&self, lpentrylist: *mut SBinaryArray) -> windows_core::Result<()> {
6069 unsafe {
6070 (windows_core::Interface::vtable(self).AddFavorites)(
6071 windows_core::Interface::as_raw(self),
6072 lpentrylist as _,
6073 )
6074 .ok()
6075 }
6076 }
6077 pub unsafe fn DelFavorites(&self, lpentrylist: *mut SBinaryArray) -> windows_core::Result<()> {
6078 unsafe {
6079 (windows_core::Interface::vtable(self).DelFavorites)(
6080 windows_core::Interface::as_raw(self),
6081 lpentrylist as _,
6082 )
6083 .ok()
6084 }
6085 }
6086}
6087#[repr(C)]
6088#[doc(hidden)]
6089pub struct IExchangeFavorites_Vtbl {
6090 pub base__: windows_core::IUnknown_Vtbl,
6091 pub GetLastError: unsafe extern "system" fn(
6092 *mut core::ffi::c_void,
6093 windows_core::HRESULT,
6094 u32,
6095 *mut *mut MAPIERROR,
6096 ) -> windows_core::HRESULT,
6097 pub AddFavorites: unsafe extern "system" fn(
6098 *mut core::ffi::c_void,
6099 *mut SBinaryArray,
6100 ) -> windows_core::HRESULT,
6101 pub DelFavorites: unsafe extern "system" fn(
6102 *mut core::ffi::c_void,
6103 *mut SBinaryArray,
6104 ) -> windows_core::HRESULT,
6105}
6106pub trait IExchangeFavorites_Impl: windows_core::IUnknownImpl {
6107 fn GetLastError(
6108 &self,
6109 hresult: windows_core::HRESULT,
6110 ulflags: u32,
6111 lppmapierror: *mut *mut MAPIERROR,
6112 ) -> windows_core::Result<()>;
6113 fn AddFavorites(&self, lpentrylist: *mut SBinaryArray) -> windows_core::Result<()>;
6114 fn DelFavorites(&self, lpentrylist: *mut SBinaryArray) -> windows_core::Result<()>;
6115}
6116impl IExchangeFavorites_Vtbl {
6117 pub const fn new<Identity: IExchangeFavorites_Impl, const OFFSET: isize>() -> Self {
6118 unsafe extern "system" fn GetLastError<
6119 Identity: IExchangeFavorites_Impl,
6120 const OFFSET: isize,
6121 >(
6122 this: *mut core::ffi::c_void,
6123 hresult: windows_core::HRESULT,
6124 ulflags: u32,
6125 lppmapierror: *mut *mut MAPIERROR,
6126 ) -> windows_core::HRESULT {
6127 unsafe {
6128 let this: &Identity =
6129 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
6130 IExchangeFavorites_Impl::GetLastError(
6131 this,
6132 core::mem::transmute_copy(&hresult),
6133 core::mem::transmute_copy(&ulflags),
6134 core::mem::transmute_copy(&lppmapierror),
6135 )
6136 .into()
6137 }
6138 }
6139 unsafe extern "system" fn AddFavorites<
6140 Identity: IExchangeFavorites_Impl,
6141 const OFFSET: isize,
6142 >(
6143 this: *mut core::ffi::c_void,
6144 lpentrylist: *mut SBinaryArray,
6145 ) -> windows_core::HRESULT {
6146 unsafe {
6147 let this: &Identity =
6148 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
6149 IExchangeFavorites_Impl::AddFavorites(this, core::mem::transmute_copy(&lpentrylist))
6150 .into()
6151 }
6152 }
6153 unsafe extern "system" fn DelFavorites<
6154 Identity: IExchangeFavorites_Impl,
6155 const OFFSET: isize,
6156 >(
6157 this: *mut core::ffi::c_void,
6158 lpentrylist: *mut SBinaryArray,
6159 ) -> windows_core::HRESULT {
6160 unsafe {
6161 let this: &Identity =
6162 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
6163 IExchangeFavorites_Impl::DelFavorites(this, core::mem::transmute_copy(&lpentrylist))
6164 .into()
6165 }
6166 }
6167 Self {
6168 base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
6169 GetLastError: GetLastError::<Identity, OFFSET>,
6170 AddFavorites: AddFavorites::<Identity, OFFSET>,
6171 DelFavorites: DelFavorites::<Identity, OFFSET>,
6172 }
6173 }
6174 pub fn matches(iid: &windows_core::GUID) -> bool {
6175 iid == &<IExchangeFavorites as windows_core::Interface>::IID
6176 }
6177}
6178impl windows_core::RuntimeName for IExchangeFavorites {}
6179windows_core::imp::define_interface!(
6180 IExchangeImportContentsChanges,
6181 IExchangeImportContentsChanges_Vtbl,
6182 0xf75abfa0_d0e0_11cd_80fc_00aa004bba0b
6183);
6184windows_core::imp::interface_hierarchy!(IExchangeImportContentsChanges, windows_core::IUnknown);
6185impl IExchangeImportContentsChanges {
6186 pub unsafe fn GetLastError(
6187 &self,
6188 hresult: windows_core::HRESULT,
6189 ulflags: u32,
6190 lppmapierror: *mut *mut MAPIERROR,
6191 ) -> windows_core::Result<()> {
6192 unsafe {
6193 (windows_core::Interface::vtable(self).GetLastError)(
6194 windows_core::Interface::as_raw(self),
6195 hresult,
6196 ulflags,
6197 lppmapierror as _,
6198 )
6199 .ok()
6200 }
6201 }
6202 pub unsafe fn Config<P0>(&self, lpstream: P0, ulflags: u32) -> windows_core::Result<()>
6203 where
6204 P0: windows_core::Param<windows::Win32::System::Com::IStream>,
6205 {
6206 unsafe {
6207 (windows_core::Interface::vtable(self).Config)(
6208 windows_core::Interface::as_raw(self),
6209 lpstream.param().abi(),
6210 ulflags,
6211 )
6212 .ok()
6213 }
6214 }
6215 pub unsafe fn UpdateState<P0>(&self, lpstream: P0) -> windows_core::Result<()>
6216 where
6217 P0: windows_core::Param<windows::Win32::System::Com::IStream>,
6218 {
6219 unsafe {
6220 (windows_core::Interface::vtable(self).UpdateState)(
6221 windows_core::Interface::as_raw(self),
6222 lpstream.param().abi(),
6223 )
6224 .ok()
6225 }
6226 }
6227 pub unsafe fn ImportMessageChange(
6228 &self,
6229 cpvalchanges: u32,
6230 ppvalchanges: *mut SPropValue,
6231 ulflags: u32,
6232 lppmessage: *mut Option<IMessage>,
6233 ) -> windows_core::Result<()> {
6234 unsafe {
6235 (windows_core::Interface::vtable(self).ImportMessageChange)(
6236 windows_core::Interface::as_raw(self),
6237 cpvalchanges,
6238 ppvalchanges as _,
6239 ulflags,
6240 core::mem::transmute(lppmessage),
6241 )
6242 .ok()
6243 }
6244 }
6245 pub unsafe fn ImportMessageDeletion(
6246 &self,
6247 ulflags: u32,
6248 lpsrcentrylist: *mut SBinaryArray,
6249 ) -> windows_core::Result<()> {
6250 unsafe {
6251 (windows_core::Interface::vtable(self).ImportMessageDeletion)(
6252 windows_core::Interface::as_raw(self),
6253 ulflags,
6254 lpsrcentrylist as _,
6255 )
6256 .ok()
6257 }
6258 }
6259 pub unsafe fn ImportPerUserReadStateChange(
6260 &self,
6261 celements: u32,
6262 lpreadstate: *mut READSTATE,
6263 ) -> windows_core::Result<()> {
6264 unsafe {
6265 (windows_core::Interface::vtable(self).ImportPerUserReadStateChange)(
6266 windows_core::Interface::as_raw(self),
6267 celements,
6268 lpreadstate as _,
6269 )
6270 .ok()
6271 }
6272 }
6273 pub unsafe fn ImportMessageMove(
6274 &self,
6275 cbsourcekeysrcfolder: u32,
6276 pbsourcekeysrcfolder: *mut u8,
6277 cbsourcekeysrcmessage: u32,
6278 pbsourcekeysrcmessage: *mut u8,
6279 cbpclmessage: u32,
6280 pbpclmessage: *mut u8,
6281 cbsourcekeydestmessage: u32,
6282 pbsourcekeydestmessage: *mut u8,
6283 cbchangenumdestmessage: u32,
6284 pbchangenumdestmessage: *mut u8,
6285 ) -> windows_core::Result<()> {
6286 unsafe {
6287 (windows_core::Interface::vtable(self).ImportMessageMove)(
6288 windows_core::Interface::as_raw(self),
6289 cbsourcekeysrcfolder,
6290 pbsourcekeysrcfolder as _,
6291 cbsourcekeysrcmessage,
6292 pbsourcekeysrcmessage as _,
6293 cbpclmessage,
6294 pbpclmessage as _,
6295 cbsourcekeydestmessage,
6296 pbsourcekeydestmessage as _,
6297 cbchangenumdestmessage,
6298 pbchangenumdestmessage as _,
6299 )
6300 .ok()
6301 }
6302 }
6303}
6304#[repr(C)]
6305#[doc(hidden)]
6306pub struct IExchangeImportContentsChanges_Vtbl {
6307 pub base__: windows_core::IUnknown_Vtbl,
6308 pub GetLastError: unsafe extern "system" fn(
6309 *mut core::ffi::c_void,
6310 windows_core::HRESULT,
6311 u32,
6312 *mut *mut MAPIERROR,
6313 ) -> windows_core::HRESULT,
6314 pub Config: unsafe extern "system" fn(
6315 *mut core::ffi::c_void,
6316 *mut core::ffi::c_void,
6317 u32,
6318 ) -> windows_core::HRESULT,
6319 pub UpdateState: unsafe extern "system" fn(
6320 *mut core::ffi::c_void,
6321 *mut core::ffi::c_void,
6322 ) -> windows_core::HRESULT,
6323 pub ImportMessageChange: unsafe extern "system" fn(
6324 *mut core::ffi::c_void,
6325 u32,
6326 *mut SPropValue,
6327 u32,
6328 *mut *mut core::ffi::c_void,
6329 ) -> windows_core::HRESULT,
6330 pub ImportMessageDeletion: unsafe extern "system" fn(
6331 *mut core::ffi::c_void,
6332 u32,
6333 *mut SBinaryArray,
6334 ) -> windows_core::HRESULT,
6335 pub ImportPerUserReadStateChange: unsafe extern "system" fn(
6336 *mut core::ffi::c_void,
6337 u32,
6338 *mut READSTATE,
6339 ) -> windows_core::HRESULT,
6340 pub ImportMessageMove: unsafe extern "system" fn(
6341 *mut core::ffi::c_void,
6342 u32,
6343 *mut u8,
6344 u32,
6345 *mut u8,
6346 u32,
6347 *mut u8,
6348 u32,
6349 *mut u8,
6350 u32,
6351 *mut u8,
6352 ) -> windows_core::HRESULT,
6353}
6354pub trait IExchangeImportContentsChanges_Impl: windows_core::IUnknownImpl {
6355 fn GetLastError(
6356 &self,
6357 hresult: windows_core::HRESULT,
6358 ulflags: u32,
6359 lppmapierror: *mut *mut MAPIERROR,
6360 ) -> windows_core::Result<()>;
6361 fn Config(
6362 &self,
6363 lpstream: windows_core::Ref<windows::Win32::System::Com::IStream>,
6364 ulflags: u32,
6365 ) -> windows_core::Result<()>;
6366 fn UpdateState(
6367 &self,
6368 lpstream: windows_core::Ref<windows::Win32::System::Com::IStream>,
6369 ) -> windows_core::Result<()>;
6370 fn ImportMessageChange(
6371 &self,
6372 cpvalchanges: u32,
6373 ppvalchanges: *mut SPropValue,
6374 ulflags: u32,
6375 lppmessage: windows_core::OutRef<IMessage>,
6376 ) -> windows_core::Result<()>;
6377 fn ImportMessageDeletion(
6378 &self,
6379 ulflags: u32,
6380 lpsrcentrylist: *mut SBinaryArray,
6381 ) -> windows_core::Result<()>;
6382 fn ImportPerUserReadStateChange(
6383 &self,
6384 celements: u32,
6385 lpreadstate: *mut READSTATE,
6386 ) -> windows_core::Result<()>;
6387 fn ImportMessageMove(
6388 &self,
6389 cbsourcekeysrcfolder: u32,
6390 pbsourcekeysrcfolder: *mut u8,
6391 cbsourcekeysrcmessage: u32,
6392 pbsourcekeysrcmessage: *mut u8,
6393 cbpclmessage: u32,
6394 pbpclmessage: *mut u8,
6395 cbsourcekeydestmessage: u32,
6396 pbsourcekeydestmessage: *mut u8,
6397 cbchangenumdestmessage: u32,
6398 pbchangenumdestmessage: *mut u8,
6399 ) -> windows_core::Result<()>;
6400}
6401impl IExchangeImportContentsChanges_Vtbl {
6402 pub const fn new<Identity: IExchangeImportContentsChanges_Impl, const OFFSET: isize>() -> Self {
6403 unsafe extern "system" fn GetLastError<
6404 Identity: IExchangeImportContentsChanges_Impl,
6405 const OFFSET: isize,
6406 >(
6407 this: *mut core::ffi::c_void,
6408 hresult: windows_core::HRESULT,
6409 ulflags: u32,
6410 lppmapierror: *mut *mut MAPIERROR,
6411 ) -> windows_core::HRESULT {
6412 unsafe {
6413 let this: &Identity =
6414 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
6415 IExchangeImportContentsChanges_Impl::GetLastError(
6416 this,
6417 core::mem::transmute_copy(&hresult),
6418 core::mem::transmute_copy(&ulflags),
6419 core::mem::transmute_copy(&lppmapierror),
6420 )
6421 .into()
6422 }
6423 }
6424 unsafe extern "system" fn Config<
6425 Identity: IExchangeImportContentsChanges_Impl,
6426 const OFFSET: isize,
6427 >(
6428 this: *mut core::ffi::c_void,
6429 lpstream: *mut core::ffi::c_void,
6430 ulflags: u32,
6431 ) -> windows_core::HRESULT {
6432 unsafe {
6433 let this: &Identity =
6434 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
6435 IExchangeImportContentsChanges_Impl::Config(
6436 this,
6437 core::mem::transmute_copy(&lpstream),
6438 core::mem::transmute_copy(&ulflags),
6439 )
6440 .into()
6441 }
6442 }
6443 unsafe extern "system" fn UpdateState<
6444 Identity: IExchangeImportContentsChanges_Impl,
6445 const OFFSET: isize,
6446 >(
6447 this: *mut core::ffi::c_void,
6448 lpstream: *mut core::ffi::c_void,
6449 ) -> windows_core::HRESULT {
6450 unsafe {
6451 let this: &Identity =
6452 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
6453 IExchangeImportContentsChanges_Impl::UpdateState(
6454 this,
6455 core::mem::transmute_copy(&lpstream),
6456 )
6457 .into()
6458 }
6459 }
6460 unsafe extern "system" fn ImportMessageChange<
6461 Identity: IExchangeImportContentsChanges_Impl,
6462 const OFFSET: isize,
6463 >(
6464 this: *mut core::ffi::c_void,
6465 cpvalchanges: u32,
6466 ppvalchanges: *mut SPropValue,
6467 ulflags: u32,
6468 lppmessage: *mut *mut core::ffi::c_void,
6469 ) -> windows_core::HRESULT {
6470 unsafe {
6471 let this: &Identity =
6472 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
6473 IExchangeImportContentsChanges_Impl::ImportMessageChange(
6474 this,
6475 core::mem::transmute_copy(&cpvalchanges),
6476 core::mem::transmute_copy(&ppvalchanges),
6477 core::mem::transmute_copy(&ulflags),
6478 core::mem::transmute_copy(&lppmessage),
6479 )
6480 .into()
6481 }
6482 }
6483 unsafe extern "system" fn ImportMessageDeletion<
6484 Identity: IExchangeImportContentsChanges_Impl,
6485 const OFFSET: isize,
6486 >(
6487 this: *mut core::ffi::c_void,
6488 ulflags: u32,
6489 lpsrcentrylist: *mut SBinaryArray,
6490 ) -> windows_core::HRESULT {
6491 unsafe {
6492 let this: &Identity =
6493 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
6494 IExchangeImportContentsChanges_Impl::ImportMessageDeletion(
6495 this,
6496 core::mem::transmute_copy(&ulflags),
6497 core::mem::transmute_copy(&lpsrcentrylist),
6498 )
6499 .into()
6500 }
6501 }
6502 unsafe extern "system" fn ImportPerUserReadStateChange<
6503 Identity: IExchangeImportContentsChanges_Impl,
6504 const OFFSET: isize,
6505 >(
6506 this: *mut core::ffi::c_void,
6507 celements: u32,
6508 lpreadstate: *mut READSTATE,
6509 ) -> windows_core::HRESULT {
6510 unsafe {
6511 let this: &Identity =
6512 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
6513 IExchangeImportContentsChanges_Impl::ImportPerUserReadStateChange(
6514 this,
6515 core::mem::transmute_copy(&celements),
6516 core::mem::transmute_copy(&lpreadstate),
6517 )
6518 .into()
6519 }
6520 }
6521 unsafe extern "system" fn ImportMessageMove<
6522 Identity: IExchangeImportContentsChanges_Impl,
6523 const OFFSET: isize,
6524 >(
6525 this: *mut core::ffi::c_void,
6526 cbsourcekeysrcfolder: u32,
6527 pbsourcekeysrcfolder: *mut u8,
6528 cbsourcekeysrcmessage: u32,
6529 pbsourcekeysrcmessage: *mut u8,
6530 cbpclmessage: u32,
6531 pbpclmessage: *mut u8,
6532 cbsourcekeydestmessage: u32,
6533 pbsourcekeydestmessage: *mut u8,
6534 cbchangenumdestmessage: u32,
6535 pbchangenumdestmessage: *mut u8,
6536 ) -> windows_core::HRESULT {
6537 unsafe {
6538 let this: &Identity =
6539 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
6540 IExchangeImportContentsChanges_Impl::ImportMessageMove(
6541 this,
6542 core::mem::transmute_copy(&cbsourcekeysrcfolder),
6543 core::mem::transmute_copy(&pbsourcekeysrcfolder),
6544 core::mem::transmute_copy(&cbsourcekeysrcmessage),
6545 core::mem::transmute_copy(&pbsourcekeysrcmessage),
6546 core::mem::transmute_copy(&cbpclmessage),
6547 core::mem::transmute_copy(&pbpclmessage),
6548 core::mem::transmute_copy(&cbsourcekeydestmessage),
6549 core::mem::transmute_copy(&pbsourcekeydestmessage),
6550 core::mem::transmute_copy(&cbchangenumdestmessage),
6551 core::mem::transmute_copy(&pbchangenumdestmessage),
6552 )
6553 .into()
6554 }
6555 }
6556 Self {
6557 base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
6558 GetLastError: GetLastError::<Identity, OFFSET>,
6559 Config: Config::<Identity, OFFSET>,
6560 UpdateState: UpdateState::<Identity, OFFSET>,
6561 ImportMessageChange: ImportMessageChange::<Identity, OFFSET>,
6562 ImportMessageDeletion: ImportMessageDeletion::<Identity, OFFSET>,
6563 ImportPerUserReadStateChange: ImportPerUserReadStateChange::<Identity, OFFSET>,
6564 ImportMessageMove: ImportMessageMove::<Identity, OFFSET>,
6565 }
6566 }
6567 pub fn matches(iid: &windows_core::GUID) -> bool {
6568 iid == &<IExchangeImportContentsChanges as windows_core::Interface>::IID
6569 }
6570}
6571impl windows_core::RuntimeName for IExchangeImportContentsChanges {}
6572windows_core::imp::define_interface!(
6573 IExchangeImportContentsChanges2,
6574 IExchangeImportContentsChanges2_Vtbl,
6575 0x7dfdd720_f53f_11cf_a48f_00c04fd65595
6576);
6577impl core::ops::Deref for IExchangeImportContentsChanges2 {
6578 type Target = IExchangeImportContentsChanges;
6579 fn deref(&self) -> &Self::Target {
6580 unsafe { core::mem::transmute(self) }
6581 }
6582}
6583windows_core::imp::interface_hierarchy!(
6584 IExchangeImportContentsChanges2,
6585 windows_core::IUnknown,
6586 IExchangeImportContentsChanges
6587);
6588impl IExchangeImportContentsChanges2 {
6589 pub unsafe fn ConfigForConversionStream<P0>(
6590 &self,
6591 lpstream: P0,
6592 ulflags: u32,
6593 cvaluesconversion: u32,
6594 lpproparrayconversion: *mut SPropValue,
6595 ) -> windows_core::Result<()>
6596 where
6597 P0: windows_core::Param<windows::Win32::System::Com::IStream>,
6598 {
6599 unsafe {
6600 (windows_core::Interface::vtable(self).ConfigForConversionStream)(
6601 windows_core::Interface::as_raw(self),
6602 lpstream.param().abi(),
6603 ulflags,
6604 cvaluesconversion,
6605 lpproparrayconversion as _,
6606 )
6607 .ok()
6608 }
6609 }
6610 pub unsafe fn ImportMessageChangeAsAStream(
6611 &self,
6612 cpvalchanges: u32,
6613 ppvalchanges: *mut SPropValue,
6614 ulflags: u32,
6615 lppstream: *mut Option<windows::Win32::System::Com::IStream>,
6616 ) -> windows_core::Result<()> {
6617 unsafe {
6618 (windows_core::Interface::vtable(self).ImportMessageChangeAsAStream)(
6619 windows_core::Interface::as_raw(self),
6620 cpvalchanges,
6621 ppvalchanges as _,
6622 ulflags,
6623 core::mem::transmute(lppstream),
6624 )
6625 .ok()
6626 }
6627 }
6628}
6629#[repr(C)]
6630#[doc(hidden)]
6631pub struct IExchangeImportContentsChanges2_Vtbl {
6632 pub base__: IExchangeImportContentsChanges_Vtbl,
6633 pub ConfigForConversionStream: unsafe extern "system" fn(
6634 *mut core::ffi::c_void,
6635 *mut core::ffi::c_void,
6636 u32,
6637 u32,
6638 *mut SPropValue,
6639 ) -> windows_core::HRESULT,
6640 pub ImportMessageChangeAsAStream: unsafe extern "system" fn(
6641 *mut core::ffi::c_void,
6642 u32,
6643 *mut SPropValue,
6644 u32,
6645 *mut *mut core::ffi::c_void,
6646 ) -> windows_core::HRESULT,
6647}
6648pub trait IExchangeImportContentsChanges2_Impl: IExchangeImportContentsChanges_Impl {
6649 fn ConfigForConversionStream(
6650 &self,
6651 lpstream: windows_core::Ref<windows::Win32::System::Com::IStream>,
6652 ulflags: u32,
6653 cvaluesconversion: u32,
6654 lpproparrayconversion: *mut SPropValue,
6655 ) -> windows_core::Result<()>;
6656 fn ImportMessageChangeAsAStream(
6657 &self,
6658 cpvalchanges: u32,
6659 ppvalchanges: *mut SPropValue,
6660 ulflags: u32,
6661 lppstream: windows_core::OutRef<windows::Win32::System::Com::IStream>,
6662 ) -> windows_core::Result<()>;
6663}
6664impl IExchangeImportContentsChanges2_Vtbl {
6665 pub const fn new<Identity: IExchangeImportContentsChanges2_Impl, const OFFSET: isize>() -> Self
6666 {
6667 unsafe extern "system" fn ConfigForConversionStream<
6668 Identity: IExchangeImportContentsChanges2_Impl,
6669 const OFFSET: isize,
6670 >(
6671 this: *mut core::ffi::c_void,
6672 lpstream: *mut core::ffi::c_void,
6673 ulflags: u32,
6674 cvaluesconversion: u32,
6675 lpproparrayconversion: *mut SPropValue,
6676 ) -> windows_core::HRESULT {
6677 unsafe {
6678 let this: &Identity =
6679 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
6680 IExchangeImportContentsChanges2_Impl::ConfigForConversionStream(
6681 this,
6682 core::mem::transmute_copy(&lpstream),
6683 core::mem::transmute_copy(&ulflags),
6684 core::mem::transmute_copy(&cvaluesconversion),
6685 core::mem::transmute_copy(&lpproparrayconversion),
6686 )
6687 .into()
6688 }
6689 }
6690 unsafe extern "system" fn ImportMessageChangeAsAStream<
6691 Identity: IExchangeImportContentsChanges2_Impl,
6692 const OFFSET: isize,
6693 >(
6694 this: *mut core::ffi::c_void,
6695 cpvalchanges: u32,
6696 ppvalchanges: *mut SPropValue,
6697 ulflags: u32,
6698 lppstream: *mut *mut core::ffi::c_void,
6699 ) -> windows_core::HRESULT {
6700 unsafe {
6701 let this: &Identity =
6702 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
6703 IExchangeImportContentsChanges2_Impl::ImportMessageChangeAsAStream(
6704 this,
6705 core::mem::transmute_copy(&cpvalchanges),
6706 core::mem::transmute_copy(&ppvalchanges),
6707 core::mem::transmute_copy(&ulflags),
6708 core::mem::transmute_copy(&lppstream),
6709 )
6710 .into()
6711 }
6712 }
6713 Self {
6714 base__: IExchangeImportContentsChanges_Vtbl::new::<Identity, OFFSET>(),
6715 ConfigForConversionStream: ConfigForConversionStream::<Identity, OFFSET>,
6716 ImportMessageChangeAsAStream: ImportMessageChangeAsAStream::<Identity, OFFSET>,
6717 }
6718 }
6719 pub fn matches(iid: &windows_core::GUID) -> bool {
6720 iid == &<IExchangeImportContentsChanges2 as windows_core::Interface>::IID
6721 || iid == &<IExchangeImportContentsChanges as windows_core::Interface>::IID
6722 }
6723}
6724impl windows_core::RuntimeName for IExchangeImportContentsChanges2 {}
6725windows_core::imp::define_interface!(
6726 IExchangeImportHierarchyChanges,
6727 IExchangeImportHierarchyChanges_Vtbl,
6728 0x85a66cf0_d0e0_11cd_80fc_00aa004bba0b
6729);
6730windows_core::imp::interface_hierarchy!(IExchangeImportHierarchyChanges, windows_core::IUnknown);
6731impl IExchangeImportHierarchyChanges {
6732 pub unsafe fn GetLastError(
6733 &self,
6734 hresult: windows_core::HRESULT,
6735 ulflags: u32,
6736 lppmapierror: *mut *mut MAPIERROR,
6737 ) -> windows_core::Result<()> {
6738 unsafe {
6739 (windows_core::Interface::vtable(self).GetLastError)(
6740 windows_core::Interface::as_raw(self),
6741 hresult,
6742 ulflags,
6743 lppmapierror as _,
6744 )
6745 .ok()
6746 }
6747 }
6748 pub unsafe fn Config<P0>(&self, lpstream: P0, ulflags: u32) -> windows_core::Result<()>
6749 where
6750 P0: windows_core::Param<windows::Win32::System::Com::IStream>,
6751 {
6752 unsafe {
6753 (windows_core::Interface::vtable(self).Config)(
6754 windows_core::Interface::as_raw(self),
6755 lpstream.param().abi(),
6756 ulflags,
6757 )
6758 .ok()
6759 }
6760 }
6761 pub unsafe fn UpdateState<P0>(&self, lpstream: P0) -> windows_core::Result<()>
6762 where
6763 P0: windows_core::Param<windows::Win32::System::Com::IStream>,
6764 {
6765 unsafe {
6766 (windows_core::Interface::vtable(self).UpdateState)(
6767 windows_core::Interface::as_raw(self),
6768 lpstream.param().abi(),
6769 )
6770 .ok()
6771 }
6772 }
6773 pub unsafe fn ImportFolderChange(
6774 &self,
6775 cpvalchanges: u32,
6776 ppvalchanges: *mut SPropValue,
6777 ) -> windows_core::Result<()> {
6778 unsafe {
6779 (windows_core::Interface::vtable(self).ImportFolderChange)(
6780 windows_core::Interface::as_raw(self),
6781 cpvalchanges,
6782 ppvalchanges as _,
6783 )
6784 .ok()
6785 }
6786 }
6787 pub unsafe fn ImportFolderDeletion(
6788 &self,
6789 ulflags: u32,
6790 lpsrcentrylist: *mut SBinaryArray,
6791 ) -> windows_core::Result<()> {
6792 unsafe {
6793 (windows_core::Interface::vtable(self).ImportFolderDeletion)(
6794 windows_core::Interface::as_raw(self),
6795 ulflags,
6796 lpsrcentrylist as _,
6797 )
6798 .ok()
6799 }
6800 }
6801}
6802#[repr(C)]
6803#[doc(hidden)]
6804pub struct IExchangeImportHierarchyChanges_Vtbl {
6805 pub base__: windows_core::IUnknown_Vtbl,
6806 pub GetLastError: unsafe extern "system" fn(
6807 *mut core::ffi::c_void,
6808 windows_core::HRESULT,
6809 u32,
6810 *mut *mut MAPIERROR,
6811 ) -> windows_core::HRESULT,
6812 pub Config: unsafe extern "system" fn(
6813 *mut core::ffi::c_void,
6814 *mut core::ffi::c_void,
6815 u32,
6816 ) -> windows_core::HRESULT,
6817 pub UpdateState: unsafe extern "system" fn(
6818 *mut core::ffi::c_void,
6819 *mut core::ffi::c_void,
6820 ) -> windows_core::HRESULT,
6821 pub ImportFolderChange: unsafe extern "system" fn(
6822 *mut core::ffi::c_void,
6823 u32,
6824 *mut SPropValue,
6825 ) -> windows_core::HRESULT,
6826 pub ImportFolderDeletion: unsafe extern "system" fn(
6827 *mut core::ffi::c_void,
6828 u32,
6829 *mut SBinaryArray,
6830 ) -> windows_core::HRESULT,
6831}
6832pub trait IExchangeImportHierarchyChanges_Impl: windows_core::IUnknownImpl {
6833 fn GetLastError(
6834 &self,
6835 hresult: windows_core::HRESULT,
6836 ulflags: u32,
6837 lppmapierror: *mut *mut MAPIERROR,
6838 ) -> windows_core::Result<()>;
6839 fn Config(
6840 &self,
6841 lpstream: windows_core::Ref<windows::Win32::System::Com::IStream>,
6842 ulflags: u32,
6843 ) -> windows_core::Result<()>;
6844 fn UpdateState(
6845 &self,
6846 lpstream: windows_core::Ref<windows::Win32::System::Com::IStream>,
6847 ) -> windows_core::Result<()>;
6848 fn ImportFolderChange(
6849 &self,
6850 cpvalchanges: u32,
6851 ppvalchanges: *mut SPropValue,
6852 ) -> windows_core::Result<()>;
6853 fn ImportFolderDeletion(
6854 &self,
6855 ulflags: u32,
6856 lpsrcentrylist: *mut SBinaryArray,
6857 ) -> windows_core::Result<()>;
6858}
6859impl IExchangeImportHierarchyChanges_Vtbl {
6860 pub const fn new<Identity: IExchangeImportHierarchyChanges_Impl, const OFFSET: isize>() -> Self
6861 {
6862 unsafe extern "system" fn GetLastError<
6863 Identity: IExchangeImportHierarchyChanges_Impl,
6864 const OFFSET: isize,
6865 >(
6866 this: *mut core::ffi::c_void,
6867 hresult: windows_core::HRESULT,
6868 ulflags: u32,
6869 lppmapierror: *mut *mut MAPIERROR,
6870 ) -> windows_core::HRESULT {
6871 unsafe {
6872 let this: &Identity =
6873 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
6874 IExchangeImportHierarchyChanges_Impl::GetLastError(
6875 this,
6876 core::mem::transmute_copy(&hresult),
6877 core::mem::transmute_copy(&ulflags),
6878 core::mem::transmute_copy(&lppmapierror),
6879 )
6880 .into()
6881 }
6882 }
6883 unsafe extern "system" fn Config<
6884 Identity: IExchangeImportHierarchyChanges_Impl,
6885 const OFFSET: isize,
6886 >(
6887 this: *mut core::ffi::c_void,
6888 lpstream: *mut core::ffi::c_void,
6889 ulflags: u32,
6890 ) -> windows_core::HRESULT {
6891 unsafe {
6892 let this: &Identity =
6893 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
6894 IExchangeImportHierarchyChanges_Impl::Config(
6895 this,
6896 core::mem::transmute_copy(&lpstream),
6897 core::mem::transmute_copy(&ulflags),
6898 )
6899 .into()
6900 }
6901 }
6902 unsafe extern "system" fn UpdateState<
6903 Identity: IExchangeImportHierarchyChanges_Impl,
6904 const OFFSET: isize,
6905 >(
6906 this: *mut core::ffi::c_void,
6907 lpstream: *mut core::ffi::c_void,
6908 ) -> windows_core::HRESULT {
6909 unsafe {
6910 let this: &Identity =
6911 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
6912 IExchangeImportHierarchyChanges_Impl::UpdateState(
6913 this,
6914 core::mem::transmute_copy(&lpstream),
6915 )
6916 .into()
6917 }
6918 }
6919 unsafe extern "system" fn ImportFolderChange<
6920 Identity: IExchangeImportHierarchyChanges_Impl,
6921 const OFFSET: isize,
6922 >(
6923 this: *mut core::ffi::c_void,
6924 cpvalchanges: u32,
6925 ppvalchanges: *mut SPropValue,
6926 ) -> windows_core::HRESULT {
6927 unsafe {
6928 let this: &Identity =
6929 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
6930 IExchangeImportHierarchyChanges_Impl::ImportFolderChange(
6931 this,
6932 core::mem::transmute_copy(&cpvalchanges),
6933 core::mem::transmute_copy(&ppvalchanges),
6934 )
6935 .into()
6936 }
6937 }
6938 unsafe extern "system" fn ImportFolderDeletion<
6939 Identity: IExchangeImportHierarchyChanges_Impl,
6940 const OFFSET: isize,
6941 >(
6942 this: *mut core::ffi::c_void,
6943 ulflags: u32,
6944 lpsrcentrylist: *mut SBinaryArray,
6945 ) -> windows_core::HRESULT {
6946 unsafe {
6947 let this: &Identity =
6948 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
6949 IExchangeImportHierarchyChanges_Impl::ImportFolderDeletion(
6950 this,
6951 core::mem::transmute_copy(&ulflags),
6952 core::mem::transmute_copy(&lpsrcentrylist),
6953 )
6954 .into()
6955 }
6956 }
6957 Self {
6958 base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
6959 GetLastError: GetLastError::<Identity, OFFSET>,
6960 Config: Config::<Identity, OFFSET>,
6961 UpdateState: UpdateState::<Identity, OFFSET>,
6962 ImportFolderChange: ImportFolderChange::<Identity, OFFSET>,
6963 ImportFolderDeletion: ImportFolderDeletion::<Identity, OFFSET>,
6964 }
6965 }
6966 pub fn matches(iid: &windows_core::GUID) -> bool {
6967 iid == &<IExchangeImportHierarchyChanges as windows_core::Interface>::IID
6968 }
6969}
6970impl windows_core::RuntimeName for IExchangeImportHierarchyChanges {}
6971windows_core::imp::define_interface!(
6972 IExchangeManageStore,
6973 IExchangeManageStore_Vtbl,
6974 0x559d10b0_a772_11cd_9bc8_00aa002fc45a
6975);
6976windows_core::imp::interface_hierarchy!(IExchangeManageStore, windows_core::IUnknown);
6977impl IExchangeManageStore {
6978 pub unsafe fn CreateStoreEntryID<P0, P1>(
6979 &self,
6980 lpszmsgstoredn: P0,
6981 lpszmailboxdn: P1,
6982 ulflags: u32,
6983 lpcbentryid: *mut u32,
6984 lppentryid: *mut *mut ENTRYID,
6985 ) -> windows_core::Result<()>
6986 where
6987 P0: windows_core::Param<windows_core::PCSTR>,
6988 P1: windows_core::Param<windows_core::PCSTR>,
6989 {
6990 unsafe {
6991 (windows_core::Interface::vtable(self).CreateStoreEntryID)(
6992 windows_core::Interface::as_raw(self),
6993 lpszmsgstoredn.param().abi(),
6994 lpszmailboxdn.param().abi(),
6995 ulflags,
6996 lpcbentryid as _,
6997 lppentryid as _,
6998 )
6999 .ok()
7000 }
7001 }
7002 pub unsafe fn EntryIDFromSourceKey(
7003 &self,
7004 cfolderkeysize: u32,
7005 lpfoldersourcekey: *mut u8,
7006 cmessagekeysize: u32,
7007 lpmessagesourcekey: *mut u8,
7008 lpcbentryid: *mut u32,
7009 lppentryid: *mut *mut ENTRYID,
7010 ) -> windows_core::Result<()> {
7011 unsafe {
7012 (windows_core::Interface::vtable(self).EntryIDFromSourceKey)(
7013 windows_core::Interface::as_raw(self),
7014 cfolderkeysize,
7015 lpfoldersourcekey as _,
7016 cmessagekeysize,
7017 lpmessagesourcekey as _,
7018 lpcbentryid as _,
7019 lppentryid as _,
7020 )
7021 .ok()
7022 }
7023 }
7024 pub unsafe fn GetRights(
7025 &self,
7026 cbuserentryid: u32,
7027 lpuserentryid: *mut ENTRYID,
7028 cbentryid: u32,
7029 lpentryid: *mut ENTRYID,
7030 lpulrights: *mut u32,
7031 ) -> windows_core::Result<()> {
7032 unsafe {
7033 (windows_core::Interface::vtable(self).GetRights)(
7034 windows_core::Interface::as_raw(self),
7035 cbuserentryid,
7036 lpuserentryid as _,
7037 cbentryid,
7038 lpentryid as _,
7039 lpulrights as _,
7040 )
7041 .ok()
7042 }
7043 }
7044 pub unsafe fn GetMailboxTable<P0>(
7045 &self,
7046 lpszservername: P0,
7047 lpptable: *mut Option<IMAPITable>,
7048 ulflags: u32,
7049 ) -> windows_core::Result<()>
7050 where
7051 P0: windows_core::Param<windows_core::PCSTR>,
7052 {
7053 unsafe {
7054 (windows_core::Interface::vtable(self).GetMailboxTable)(
7055 windows_core::Interface::as_raw(self),
7056 lpszservername.param().abi(),
7057 core::mem::transmute(lpptable),
7058 ulflags,
7059 )
7060 .ok()
7061 }
7062 }
7063 pub unsafe fn GetPublicFolderTable<P0>(
7064 &self,
7065 lpszservername: P0,
7066 lpptable: *mut Option<IMAPITable>,
7067 ulflags: u32,
7068 ) -> windows_core::Result<()>
7069 where
7070 P0: windows_core::Param<windows_core::PCSTR>,
7071 {
7072 unsafe {
7073 (windows_core::Interface::vtable(self).GetPublicFolderTable)(
7074 windows_core::Interface::as_raw(self),
7075 lpszservername.param().abi(),
7076 core::mem::transmute(lpptable),
7077 ulflags,
7078 )
7079 .ok()
7080 }
7081 }
7082}
7083#[repr(C)]
7084#[doc(hidden)]
7085pub struct IExchangeManageStore_Vtbl {
7086 pub base__: windows_core::IUnknown_Vtbl,
7087 pub CreateStoreEntryID: unsafe extern "system" fn(
7088 *mut core::ffi::c_void,
7089 windows_core::PCSTR,
7090 windows_core::PCSTR,
7091 u32,
7092 *mut u32,
7093 *mut *mut ENTRYID,
7094 ) -> windows_core::HRESULT,
7095 pub EntryIDFromSourceKey: unsafe extern "system" fn(
7096 *mut core::ffi::c_void,
7097 u32,
7098 *mut u8,
7099 u32,
7100 *mut u8,
7101 *mut u32,
7102 *mut *mut ENTRYID,
7103 ) -> windows_core::HRESULT,
7104 pub GetRights: unsafe extern "system" fn(
7105 *mut core::ffi::c_void,
7106 u32,
7107 *mut ENTRYID,
7108 u32,
7109 *mut ENTRYID,
7110 *mut u32,
7111 ) -> windows_core::HRESULT,
7112 pub GetMailboxTable: unsafe extern "system" fn(
7113 *mut core::ffi::c_void,
7114 windows_core::PCSTR,
7115 *mut *mut core::ffi::c_void,
7116 u32,
7117 ) -> windows_core::HRESULT,
7118 pub GetPublicFolderTable: unsafe extern "system" fn(
7119 *mut core::ffi::c_void,
7120 windows_core::PCSTR,
7121 *mut *mut core::ffi::c_void,
7122 u32,
7123 ) -> windows_core::HRESULT,
7124}
7125pub trait IExchangeManageStore_Impl: windows_core::IUnknownImpl {
7126 fn CreateStoreEntryID(
7127 &self,
7128 lpszmsgstoredn: &windows_core::PCSTR,
7129 lpszmailboxdn: &windows_core::PCSTR,
7130 ulflags: u32,
7131 lpcbentryid: *mut u32,
7132 lppentryid: *mut *mut ENTRYID,
7133 ) -> windows_core::Result<()>;
7134 fn EntryIDFromSourceKey(
7135 &self,
7136 cfolderkeysize: u32,
7137 lpfoldersourcekey: *mut u8,
7138 cmessagekeysize: u32,
7139 lpmessagesourcekey: *mut u8,
7140 lpcbentryid: *mut u32,
7141 lppentryid: *mut *mut ENTRYID,
7142 ) -> windows_core::Result<()>;
7143 fn GetRights(
7144 &self,
7145 cbuserentryid: u32,
7146 lpuserentryid: *mut ENTRYID,
7147 cbentryid: u32,
7148 lpentryid: *mut ENTRYID,
7149 lpulrights: *mut u32,
7150 ) -> windows_core::Result<()>;
7151 fn GetMailboxTable(
7152 &self,
7153 lpszservername: &windows_core::PCSTR,
7154 lpptable: windows_core::OutRef<IMAPITable>,
7155 ulflags: u32,
7156 ) -> windows_core::Result<()>;
7157 fn GetPublicFolderTable(
7158 &self,
7159 lpszservername: &windows_core::PCSTR,
7160 lpptable: windows_core::OutRef<IMAPITable>,
7161 ulflags: u32,
7162 ) -> windows_core::Result<()>;
7163}
7164impl IExchangeManageStore_Vtbl {
7165 pub const fn new<Identity: IExchangeManageStore_Impl, const OFFSET: isize>() -> Self {
7166 unsafe extern "system" fn CreateStoreEntryID<
7167 Identity: IExchangeManageStore_Impl,
7168 const OFFSET: isize,
7169 >(
7170 this: *mut core::ffi::c_void,
7171 lpszmsgstoredn: windows_core::PCSTR,
7172 lpszmailboxdn: windows_core::PCSTR,
7173 ulflags: u32,
7174 lpcbentryid: *mut u32,
7175 lppentryid: *mut *mut ENTRYID,
7176 ) -> windows_core::HRESULT {
7177 unsafe {
7178 let this: &Identity =
7179 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
7180 IExchangeManageStore_Impl::CreateStoreEntryID(
7181 this,
7182 core::mem::transmute(&lpszmsgstoredn),
7183 core::mem::transmute(&lpszmailboxdn),
7184 core::mem::transmute_copy(&ulflags),
7185 core::mem::transmute_copy(&lpcbentryid),
7186 core::mem::transmute_copy(&lppentryid),
7187 )
7188 .into()
7189 }
7190 }
7191 unsafe extern "system" fn EntryIDFromSourceKey<
7192 Identity: IExchangeManageStore_Impl,
7193 const OFFSET: isize,
7194 >(
7195 this: *mut core::ffi::c_void,
7196 cfolderkeysize: u32,
7197 lpfoldersourcekey: *mut u8,
7198 cmessagekeysize: u32,
7199 lpmessagesourcekey: *mut u8,
7200 lpcbentryid: *mut u32,
7201 lppentryid: *mut *mut ENTRYID,
7202 ) -> windows_core::HRESULT {
7203 unsafe {
7204 let this: &Identity =
7205 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
7206 IExchangeManageStore_Impl::EntryIDFromSourceKey(
7207 this,
7208 core::mem::transmute_copy(&cfolderkeysize),
7209 core::mem::transmute_copy(&lpfoldersourcekey),
7210 core::mem::transmute_copy(&cmessagekeysize),
7211 core::mem::transmute_copy(&lpmessagesourcekey),
7212 core::mem::transmute_copy(&lpcbentryid),
7213 core::mem::transmute_copy(&lppentryid),
7214 )
7215 .into()
7216 }
7217 }
7218 unsafe extern "system" fn GetRights<
7219 Identity: IExchangeManageStore_Impl,
7220 const OFFSET: isize,
7221 >(
7222 this: *mut core::ffi::c_void,
7223 cbuserentryid: u32,
7224 lpuserentryid: *mut ENTRYID,
7225 cbentryid: u32,
7226 lpentryid: *mut ENTRYID,
7227 lpulrights: *mut u32,
7228 ) -> windows_core::HRESULT {
7229 unsafe {
7230 let this: &Identity =
7231 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
7232 IExchangeManageStore_Impl::GetRights(
7233 this,
7234 core::mem::transmute_copy(&cbuserentryid),
7235 core::mem::transmute_copy(&lpuserentryid),
7236 core::mem::transmute_copy(&cbentryid),
7237 core::mem::transmute_copy(&lpentryid),
7238 core::mem::transmute_copy(&lpulrights),
7239 )
7240 .into()
7241 }
7242 }
7243 unsafe extern "system" fn GetMailboxTable<
7244 Identity: IExchangeManageStore_Impl,
7245 const OFFSET: isize,
7246 >(
7247 this: *mut core::ffi::c_void,
7248 lpszservername: windows_core::PCSTR,
7249 lpptable: *mut *mut core::ffi::c_void,
7250 ulflags: u32,
7251 ) -> windows_core::HRESULT {
7252 unsafe {
7253 let this: &Identity =
7254 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
7255 IExchangeManageStore_Impl::GetMailboxTable(
7256 this,
7257 core::mem::transmute(&lpszservername),
7258 core::mem::transmute_copy(&lpptable),
7259 core::mem::transmute_copy(&ulflags),
7260 )
7261 .into()
7262 }
7263 }
7264 unsafe extern "system" fn GetPublicFolderTable<
7265 Identity: IExchangeManageStore_Impl,
7266 const OFFSET: isize,
7267 >(
7268 this: *mut core::ffi::c_void,
7269 lpszservername: windows_core::PCSTR,
7270 lpptable: *mut *mut core::ffi::c_void,
7271 ulflags: u32,
7272 ) -> windows_core::HRESULT {
7273 unsafe {
7274 let this: &Identity =
7275 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
7276 IExchangeManageStore_Impl::GetPublicFolderTable(
7277 this,
7278 core::mem::transmute(&lpszservername),
7279 core::mem::transmute_copy(&lpptable),
7280 core::mem::transmute_copy(&ulflags),
7281 )
7282 .into()
7283 }
7284 }
7285 Self {
7286 base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
7287 CreateStoreEntryID: CreateStoreEntryID::<Identity, OFFSET>,
7288 EntryIDFromSourceKey: EntryIDFromSourceKey::<Identity, OFFSET>,
7289 GetRights: GetRights::<Identity, OFFSET>,
7290 GetMailboxTable: GetMailboxTable::<Identity, OFFSET>,
7291 GetPublicFolderTable: GetPublicFolderTable::<Identity, OFFSET>,
7292 }
7293 }
7294 pub fn matches(iid: &windows_core::GUID) -> bool {
7295 iid == &<IExchangeManageStore as windows_core::Interface>::IID
7296 }
7297}
7298impl windows_core::RuntimeName for IExchangeManageStore {}
7299windows_core::imp::define_interface!(
7300 IExchangeManageStore2,
7301 IExchangeManageStore2_Vtbl,
7302 0xb6dca470_0ff3_11d0_a409_00c04fd7bd87
7303);
7304windows_core::imp::interface_hierarchy!(IExchangeManageStore2, windows_core::IUnknown);
7305impl IExchangeManageStore2 {
7306 pub unsafe fn CreateStoreEntryID<P0, P1>(
7307 &self,
7308 lpszmsgstoredn: P0,
7309 lpszmailboxdn: P1,
7310 ulflags: u32,
7311 lpcbentryid: *mut u32,
7312 lppentryid: *mut *mut ENTRYID,
7313 ) -> windows_core::Result<()>
7314 where
7315 P0: windows_core::Param<windows_core::PCSTR>,
7316 P1: windows_core::Param<windows_core::PCSTR>,
7317 {
7318 unsafe {
7319 (windows_core::Interface::vtable(self).CreateStoreEntryID)(
7320 windows_core::Interface::as_raw(self),
7321 lpszmsgstoredn.param().abi(),
7322 lpszmailboxdn.param().abi(),
7323 ulflags,
7324 lpcbentryid as _,
7325 lppentryid as _,
7326 )
7327 .ok()
7328 }
7329 }
7330 pub unsafe fn EntryIDFromSourceKey(
7331 &self,
7332 cfolderkeysize: u32,
7333 lpfoldersourcekey: *mut u8,
7334 cmessagekeysize: u32,
7335 lpmessagesourcekey: *mut u8,
7336 lpcbentryid: *mut u32,
7337 lppentryid: *mut *mut ENTRYID,
7338 ) -> windows_core::Result<()> {
7339 unsafe {
7340 (windows_core::Interface::vtable(self).EntryIDFromSourceKey)(
7341 windows_core::Interface::as_raw(self),
7342 cfolderkeysize,
7343 lpfoldersourcekey as _,
7344 cmessagekeysize,
7345 lpmessagesourcekey as _,
7346 lpcbentryid as _,
7347 lppentryid as _,
7348 )
7349 .ok()
7350 }
7351 }
7352 pub unsafe fn GetRights(
7353 &self,
7354 cbuserentryid: u32,
7355 lpuserentryid: *mut ENTRYID,
7356 cbentryid: u32,
7357 lpentryid: *mut ENTRYID,
7358 lpulrights: *mut u32,
7359 ) -> windows_core::Result<()> {
7360 unsafe {
7361 (windows_core::Interface::vtable(self).GetRights)(
7362 windows_core::Interface::as_raw(self),
7363 cbuserentryid,
7364 lpuserentryid as _,
7365 cbentryid,
7366 lpentryid as _,
7367 lpulrights as _,
7368 )
7369 .ok()
7370 }
7371 }
7372 pub unsafe fn GetMailboxTable<P0>(
7373 &self,
7374 lpszservername: P0,
7375 lpptable: *mut Option<IMAPITable>,
7376 ulflags: u32,
7377 ) -> windows_core::Result<()>
7378 where
7379 P0: windows_core::Param<windows_core::PCSTR>,
7380 {
7381 unsafe {
7382 (windows_core::Interface::vtable(self).GetMailboxTable)(
7383 windows_core::Interface::as_raw(self),
7384 lpszservername.param().abi(),
7385 core::mem::transmute(lpptable),
7386 ulflags,
7387 )
7388 .ok()
7389 }
7390 }
7391 pub unsafe fn GetPublicFolderTable<P0>(
7392 &self,
7393 lpszservername: P0,
7394 lpptable: *mut Option<IMAPITable>,
7395 ulflags: u32,
7396 ) -> windows_core::Result<()>
7397 where
7398 P0: windows_core::Param<windows_core::PCSTR>,
7399 {
7400 unsafe {
7401 (windows_core::Interface::vtable(self).GetPublicFolderTable)(
7402 windows_core::Interface::as_raw(self),
7403 lpszservername.param().abi(),
7404 core::mem::transmute(lpptable),
7405 ulflags,
7406 )
7407 .ok()
7408 }
7409 }
7410 pub unsafe fn CreateNewsgroupNameEntryID<P0>(
7411 &self,
7412 lpsznewsgroupname: P0,
7413 lpcbentryid: *mut u32,
7414 lppentryid: *mut *mut ENTRYID,
7415 ) -> windows_core::Result<()>
7416 where
7417 P0: windows_core::Param<windows_core::PCSTR>,
7418 {
7419 unsafe {
7420 (windows_core::Interface::vtable(self).CreateNewsgroupNameEntryID)(
7421 windows_core::Interface::as_raw(self),
7422 lpsznewsgroupname.param().abi(),
7423 lpcbentryid as _,
7424 lppentryid as _,
7425 )
7426 .ok()
7427 }
7428 }
7429}
7430#[repr(C)]
7431#[doc(hidden)]
7432pub struct IExchangeManageStore2_Vtbl {
7433 pub base__: windows_core::IUnknown_Vtbl,
7434 pub CreateStoreEntryID: unsafe extern "system" fn(
7435 *mut core::ffi::c_void,
7436 windows_core::PCSTR,
7437 windows_core::PCSTR,
7438 u32,
7439 *mut u32,
7440 *mut *mut ENTRYID,
7441 ) -> windows_core::HRESULT,
7442 pub EntryIDFromSourceKey: unsafe extern "system" fn(
7443 *mut core::ffi::c_void,
7444 u32,
7445 *mut u8,
7446 u32,
7447 *mut u8,
7448 *mut u32,
7449 *mut *mut ENTRYID,
7450 ) -> windows_core::HRESULT,
7451 pub GetRights: unsafe extern "system" fn(
7452 *mut core::ffi::c_void,
7453 u32,
7454 *mut ENTRYID,
7455 u32,
7456 *mut ENTRYID,
7457 *mut u32,
7458 ) -> windows_core::HRESULT,
7459 pub GetMailboxTable: unsafe extern "system" fn(
7460 *mut core::ffi::c_void,
7461 windows_core::PCSTR,
7462 *mut *mut core::ffi::c_void,
7463 u32,
7464 ) -> windows_core::HRESULT,
7465 pub GetPublicFolderTable: unsafe extern "system" fn(
7466 *mut core::ffi::c_void,
7467 windows_core::PCSTR,
7468 *mut *mut core::ffi::c_void,
7469 u32,
7470 ) -> windows_core::HRESULT,
7471 pub CreateNewsgroupNameEntryID: unsafe extern "system" fn(
7472 *mut core::ffi::c_void,
7473 windows_core::PCSTR,
7474 *mut u32,
7475 *mut *mut ENTRYID,
7476 ) -> windows_core::HRESULT,
7477}
7478pub trait IExchangeManageStore2_Impl: windows_core::IUnknownImpl {
7479 fn CreateStoreEntryID(
7480 &self,
7481 lpszmsgstoredn: &windows_core::PCSTR,
7482 lpszmailboxdn: &windows_core::PCSTR,
7483 ulflags: u32,
7484 lpcbentryid: *mut u32,
7485 lppentryid: *mut *mut ENTRYID,
7486 ) -> windows_core::Result<()>;
7487 fn EntryIDFromSourceKey(
7488 &self,
7489 cfolderkeysize: u32,
7490 lpfoldersourcekey: *mut u8,
7491 cmessagekeysize: u32,
7492 lpmessagesourcekey: *mut u8,
7493 lpcbentryid: *mut u32,
7494 lppentryid: *mut *mut ENTRYID,
7495 ) -> windows_core::Result<()>;
7496 fn GetRights(
7497 &self,
7498 cbuserentryid: u32,
7499 lpuserentryid: *mut ENTRYID,
7500 cbentryid: u32,
7501 lpentryid: *mut ENTRYID,
7502 lpulrights: *mut u32,
7503 ) -> windows_core::Result<()>;
7504 fn GetMailboxTable(
7505 &self,
7506 lpszservername: &windows_core::PCSTR,
7507 lpptable: windows_core::OutRef<IMAPITable>,
7508 ulflags: u32,
7509 ) -> windows_core::Result<()>;
7510 fn GetPublicFolderTable(
7511 &self,
7512 lpszservername: &windows_core::PCSTR,
7513 lpptable: windows_core::OutRef<IMAPITable>,
7514 ulflags: u32,
7515 ) -> windows_core::Result<()>;
7516 fn CreateNewsgroupNameEntryID(
7517 &self,
7518 lpsznewsgroupname: &windows_core::PCSTR,
7519 lpcbentryid: *mut u32,
7520 lppentryid: *mut *mut ENTRYID,
7521 ) -> windows_core::Result<()>;
7522}
7523impl IExchangeManageStore2_Vtbl {
7524 pub const fn new<Identity: IExchangeManageStore2_Impl, const OFFSET: isize>() -> Self {
7525 unsafe extern "system" fn CreateStoreEntryID<
7526 Identity: IExchangeManageStore2_Impl,
7527 const OFFSET: isize,
7528 >(
7529 this: *mut core::ffi::c_void,
7530 lpszmsgstoredn: windows_core::PCSTR,
7531 lpszmailboxdn: windows_core::PCSTR,
7532 ulflags: u32,
7533 lpcbentryid: *mut u32,
7534 lppentryid: *mut *mut ENTRYID,
7535 ) -> windows_core::HRESULT {
7536 unsafe {
7537 let this: &Identity =
7538 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
7539 IExchangeManageStore2_Impl::CreateStoreEntryID(
7540 this,
7541 core::mem::transmute(&lpszmsgstoredn),
7542 core::mem::transmute(&lpszmailboxdn),
7543 core::mem::transmute_copy(&ulflags),
7544 core::mem::transmute_copy(&lpcbentryid),
7545 core::mem::transmute_copy(&lppentryid),
7546 )
7547 .into()
7548 }
7549 }
7550 unsafe extern "system" fn EntryIDFromSourceKey<
7551 Identity: IExchangeManageStore2_Impl,
7552 const OFFSET: isize,
7553 >(
7554 this: *mut core::ffi::c_void,
7555 cfolderkeysize: u32,
7556 lpfoldersourcekey: *mut u8,
7557 cmessagekeysize: u32,
7558 lpmessagesourcekey: *mut u8,
7559 lpcbentryid: *mut u32,
7560 lppentryid: *mut *mut ENTRYID,
7561 ) -> windows_core::HRESULT {
7562 unsafe {
7563 let this: &Identity =
7564 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
7565 IExchangeManageStore2_Impl::EntryIDFromSourceKey(
7566 this,
7567 core::mem::transmute_copy(&cfolderkeysize),
7568 core::mem::transmute_copy(&lpfoldersourcekey),
7569 core::mem::transmute_copy(&cmessagekeysize),
7570 core::mem::transmute_copy(&lpmessagesourcekey),
7571 core::mem::transmute_copy(&lpcbentryid),
7572 core::mem::transmute_copy(&lppentryid),
7573 )
7574 .into()
7575 }
7576 }
7577 unsafe extern "system" fn GetRights<
7578 Identity: IExchangeManageStore2_Impl,
7579 const OFFSET: isize,
7580 >(
7581 this: *mut core::ffi::c_void,
7582 cbuserentryid: u32,
7583 lpuserentryid: *mut ENTRYID,
7584 cbentryid: u32,
7585 lpentryid: *mut ENTRYID,
7586 lpulrights: *mut u32,
7587 ) -> windows_core::HRESULT {
7588 unsafe {
7589 let this: &Identity =
7590 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
7591 IExchangeManageStore2_Impl::GetRights(
7592 this,
7593 core::mem::transmute_copy(&cbuserentryid),
7594 core::mem::transmute_copy(&lpuserentryid),
7595 core::mem::transmute_copy(&cbentryid),
7596 core::mem::transmute_copy(&lpentryid),
7597 core::mem::transmute_copy(&lpulrights),
7598 )
7599 .into()
7600 }
7601 }
7602 unsafe extern "system" fn GetMailboxTable<
7603 Identity: IExchangeManageStore2_Impl,
7604 const OFFSET: isize,
7605 >(
7606 this: *mut core::ffi::c_void,
7607 lpszservername: windows_core::PCSTR,
7608 lpptable: *mut *mut core::ffi::c_void,
7609 ulflags: u32,
7610 ) -> windows_core::HRESULT {
7611 unsafe {
7612 let this: &Identity =
7613 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
7614 IExchangeManageStore2_Impl::GetMailboxTable(
7615 this,
7616 core::mem::transmute(&lpszservername),
7617 core::mem::transmute_copy(&lpptable),
7618 core::mem::transmute_copy(&ulflags),
7619 )
7620 .into()
7621 }
7622 }
7623 unsafe extern "system" fn GetPublicFolderTable<
7624 Identity: IExchangeManageStore2_Impl,
7625 const OFFSET: isize,
7626 >(
7627 this: *mut core::ffi::c_void,
7628 lpszservername: windows_core::PCSTR,
7629 lpptable: *mut *mut core::ffi::c_void,
7630 ulflags: u32,
7631 ) -> windows_core::HRESULT {
7632 unsafe {
7633 let this: &Identity =
7634 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
7635 IExchangeManageStore2_Impl::GetPublicFolderTable(
7636 this,
7637 core::mem::transmute(&lpszservername),
7638 core::mem::transmute_copy(&lpptable),
7639 core::mem::transmute_copy(&ulflags),
7640 )
7641 .into()
7642 }
7643 }
7644 unsafe extern "system" fn CreateNewsgroupNameEntryID<
7645 Identity: IExchangeManageStore2_Impl,
7646 const OFFSET: isize,
7647 >(
7648 this: *mut core::ffi::c_void,
7649 lpsznewsgroupname: windows_core::PCSTR,
7650 lpcbentryid: *mut u32,
7651 lppentryid: *mut *mut ENTRYID,
7652 ) -> windows_core::HRESULT {
7653 unsafe {
7654 let this: &Identity =
7655 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
7656 IExchangeManageStore2_Impl::CreateNewsgroupNameEntryID(
7657 this,
7658 core::mem::transmute(&lpsznewsgroupname),
7659 core::mem::transmute_copy(&lpcbentryid),
7660 core::mem::transmute_copy(&lppentryid),
7661 )
7662 .into()
7663 }
7664 }
7665 Self {
7666 base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
7667 CreateStoreEntryID: CreateStoreEntryID::<Identity, OFFSET>,
7668 EntryIDFromSourceKey: EntryIDFromSourceKey::<Identity, OFFSET>,
7669 GetRights: GetRights::<Identity, OFFSET>,
7670 GetMailboxTable: GetMailboxTable::<Identity, OFFSET>,
7671 GetPublicFolderTable: GetPublicFolderTable::<Identity, OFFSET>,
7672 CreateNewsgroupNameEntryID: CreateNewsgroupNameEntryID::<Identity, OFFSET>,
7673 }
7674 }
7675 pub fn matches(iid: &windows_core::GUID) -> bool {
7676 iid == &<IExchangeManageStore2 as windows_core::Interface>::IID
7677 }
7678}
7679impl windows_core::RuntimeName for IExchangeManageStore2 {}
7680windows_core::imp::define_interface!(
7681 IExchangeManageStore3,
7682 IExchangeManageStore3_Vtbl,
7683 0x166d9bc2_db75_44a9_8a93_9f3ffc994d76
7684);
7685windows_core::imp::interface_hierarchy!(IExchangeManageStore3, windows_core::IUnknown);
7686impl IExchangeManageStore3 {
7687 pub unsafe fn CreateStoreEntryID<P0, P1>(
7688 &self,
7689 lpszmsgstoredn: P0,
7690 lpszmailboxdn: P1,
7691 ulflags: u32,
7692 lpcbentryid: *mut u32,
7693 lppentryid: *mut *mut ENTRYID,
7694 ) -> windows_core::Result<()>
7695 where
7696 P0: windows_core::Param<windows_core::PCSTR>,
7697 P1: windows_core::Param<windows_core::PCSTR>,
7698 {
7699 unsafe {
7700 (windows_core::Interface::vtable(self).CreateStoreEntryID)(
7701 windows_core::Interface::as_raw(self),
7702 lpszmsgstoredn.param().abi(),
7703 lpszmailboxdn.param().abi(),
7704 ulflags,
7705 lpcbentryid as _,
7706 lppentryid as _,
7707 )
7708 .ok()
7709 }
7710 }
7711 pub unsafe fn EntryIDFromSourceKey(
7712 &self,
7713 cfolderkeysize: u32,
7714 lpfoldersourcekey: *mut u8,
7715 cmessagekeysize: u32,
7716 lpmessagesourcekey: *mut u8,
7717 lpcbentryid: *mut u32,
7718 lppentryid: *mut *mut ENTRYID,
7719 ) -> windows_core::Result<()> {
7720 unsafe {
7721 (windows_core::Interface::vtable(self).EntryIDFromSourceKey)(
7722 windows_core::Interface::as_raw(self),
7723 cfolderkeysize,
7724 lpfoldersourcekey as _,
7725 cmessagekeysize,
7726 lpmessagesourcekey as _,
7727 lpcbentryid as _,
7728 lppentryid as _,
7729 )
7730 .ok()
7731 }
7732 }
7733 pub unsafe fn GetRights(
7734 &self,
7735 cbuserentryid: u32,
7736 lpuserentryid: *mut ENTRYID,
7737 cbentryid: u32,
7738 lpentryid: *mut ENTRYID,
7739 lpulrights: *mut u32,
7740 ) -> windows_core::Result<()> {
7741 unsafe {
7742 (windows_core::Interface::vtable(self).GetRights)(
7743 windows_core::Interface::as_raw(self),
7744 cbuserentryid,
7745 lpuserentryid as _,
7746 cbentryid,
7747 lpentryid as _,
7748 lpulrights as _,
7749 )
7750 .ok()
7751 }
7752 }
7753 pub unsafe fn GetMailboxTable<P0>(
7754 &self,
7755 lpszservername: P0,
7756 lpptable: *mut Option<IMAPITable>,
7757 ulflags: u32,
7758 ) -> windows_core::Result<()>
7759 where
7760 P0: windows_core::Param<windows_core::PCSTR>,
7761 {
7762 unsafe {
7763 (windows_core::Interface::vtable(self).GetMailboxTable)(
7764 windows_core::Interface::as_raw(self),
7765 lpszservername.param().abi(),
7766 core::mem::transmute(lpptable),
7767 ulflags,
7768 )
7769 .ok()
7770 }
7771 }
7772 pub unsafe fn GetPublicFolderTable<P0>(
7773 &self,
7774 lpszservername: P0,
7775 lpptable: *mut Option<IMAPITable>,
7776 ulflags: u32,
7777 ) -> windows_core::Result<()>
7778 where
7779 P0: windows_core::Param<windows_core::PCSTR>,
7780 {
7781 unsafe {
7782 (windows_core::Interface::vtable(self).GetPublicFolderTable)(
7783 windows_core::Interface::as_raw(self),
7784 lpszservername.param().abi(),
7785 core::mem::transmute(lpptable),
7786 ulflags,
7787 )
7788 .ok()
7789 }
7790 }
7791 pub unsafe fn CreateNewsgroupNameEntryID<P0>(
7792 &self,
7793 lpsznewsgroupname: P0,
7794 lpcbentryid: *mut u32,
7795 lppentryid: *mut *mut ENTRYID,
7796 ) -> windows_core::Result<()>
7797 where
7798 P0: windows_core::Param<windows_core::PCSTR>,
7799 {
7800 unsafe {
7801 (windows_core::Interface::vtable(self).CreateNewsgroupNameEntryID)(
7802 windows_core::Interface::as_raw(self),
7803 lpsznewsgroupname.param().abi(),
7804 lpcbentryid as _,
7805 lppentryid as _,
7806 )
7807 .ok()
7808 }
7809 }
7810 pub unsafe fn GetMailboxTableOffset<P0>(
7811 &self,
7812 lpszservername: P0,
7813 lpptable: *mut Option<IMAPITable>,
7814 ulflags: u32,
7815 uoffset: u32,
7816 ) -> windows_core::Result<()>
7817 where
7818 P0: windows_core::Param<windows_core::PCSTR>,
7819 {
7820 unsafe {
7821 (windows_core::Interface::vtable(self).GetMailboxTableOffset)(
7822 windows_core::Interface::as_raw(self),
7823 lpszservername.param().abi(),
7824 core::mem::transmute(lpptable),
7825 ulflags,
7826 uoffset,
7827 )
7828 .ok()
7829 }
7830 }
7831}
7832#[repr(C)]
7833#[doc(hidden)]
7834pub struct IExchangeManageStore3_Vtbl {
7835 pub base__: windows_core::IUnknown_Vtbl,
7836 pub CreateStoreEntryID: unsafe extern "system" fn(
7837 *mut core::ffi::c_void,
7838 windows_core::PCSTR,
7839 windows_core::PCSTR,
7840 u32,
7841 *mut u32,
7842 *mut *mut ENTRYID,
7843 ) -> windows_core::HRESULT,
7844 pub EntryIDFromSourceKey: unsafe extern "system" fn(
7845 *mut core::ffi::c_void,
7846 u32,
7847 *mut u8,
7848 u32,
7849 *mut u8,
7850 *mut u32,
7851 *mut *mut ENTRYID,
7852 ) -> windows_core::HRESULT,
7853 pub GetRights: unsafe extern "system" fn(
7854 *mut core::ffi::c_void,
7855 u32,
7856 *mut ENTRYID,
7857 u32,
7858 *mut ENTRYID,
7859 *mut u32,
7860 ) -> windows_core::HRESULT,
7861 pub GetMailboxTable: unsafe extern "system" fn(
7862 *mut core::ffi::c_void,
7863 windows_core::PCSTR,
7864 *mut *mut core::ffi::c_void,
7865 u32,
7866 ) -> windows_core::HRESULT,
7867 pub GetPublicFolderTable: unsafe extern "system" fn(
7868 *mut core::ffi::c_void,
7869 windows_core::PCSTR,
7870 *mut *mut core::ffi::c_void,
7871 u32,
7872 ) -> windows_core::HRESULT,
7873 pub CreateNewsgroupNameEntryID: unsafe extern "system" fn(
7874 *mut core::ffi::c_void,
7875 windows_core::PCSTR,
7876 *mut u32,
7877 *mut *mut ENTRYID,
7878 ) -> windows_core::HRESULT,
7879 pub GetMailboxTableOffset: unsafe extern "system" fn(
7880 *mut core::ffi::c_void,
7881 windows_core::PCSTR,
7882 *mut *mut core::ffi::c_void,
7883 u32,
7884 u32,
7885 ) -> windows_core::HRESULT,
7886}
7887pub trait IExchangeManageStore3_Impl: windows_core::IUnknownImpl {
7888 fn CreateStoreEntryID(
7889 &self,
7890 lpszmsgstoredn: &windows_core::PCSTR,
7891 lpszmailboxdn: &windows_core::PCSTR,
7892 ulflags: u32,
7893 lpcbentryid: *mut u32,
7894 lppentryid: *mut *mut ENTRYID,
7895 ) -> windows_core::Result<()>;
7896 fn EntryIDFromSourceKey(
7897 &self,
7898 cfolderkeysize: u32,
7899 lpfoldersourcekey: *mut u8,
7900 cmessagekeysize: u32,
7901 lpmessagesourcekey: *mut u8,
7902 lpcbentryid: *mut u32,
7903 lppentryid: *mut *mut ENTRYID,
7904 ) -> windows_core::Result<()>;
7905 fn GetRights(
7906 &self,
7907 cbuserentryid: u32,
7908 lpuserentryid: *mut ENTRYID,
7909 cbentryid: u32,
7910 lpentryid: *mut ENTRYID,
7911 lpulrights: *mut u32,
7912 ) -> windows_core::Result<()>;
7913 fn GetMailboxTable(
7914 &self,
7915 lpszservername: &windows_core::PCSTR,
7916 lpptable: windows_core::OutRef<IMAPITable>,
7917 ulflags: u32,
7918 ) -> windows_core::Result<()>;
7919 fn GetPublicFolderTable(
7920 &self,
7921 lpszservername: &windows_core::PCSTR,
7922 lpptable: windows_core::OutRef<IMAPITable>,
7923 ulflags: u32,
7924 ) -> windows_core::Result<()>;
7925 fn CreateNewsgroupNameEntryID(
7926 &self,
7927 lpsznewsgroupname: &windows_core::PCSTR,
7928 lpcbentryid: *mut u32,
7929 lppentryid: *mut *mut ENTRYID,
7930 ) -> windows_core::Result<()>;
7931 fn GetMailboxTableOffset(
7932 &self,
7933 lpszservername: &windows_core::PCSTR,
7934 lpptable: windows_core::OutRef<IMAPITable>,
7935 ulflags: u32,
7936 uoffset: u32,
7937 ) -> windows_core::Result<()>;
7938}
7939impl IExchangeManageStore3_Vtbl {
7940 pub const fn new<Identity: IExchangeManageStore3_Impl, const OFFSET: isize>() -> Self {
7941 unsafe extern "system" fn CreateStoreEntryID<
7942 Identity: IExchangeManageStore3_Impl,
7943 const OFFSET: isize,
7944 >(
7945 this: *mut core::ffi::c_void,
7946 lpszmsgstoredn: windows_core::PCSTR,
7947 lpszmailboxdn: windows_core::PCSTR,
7948 ulflags: u32,
7949 lpcbentryid: *mut u32,
7950 lppentryid: *mut *mut ENTRYID,
7951 ) -> windows_core::HRESULT {
7952 unsafe {
7953 let this: &Identity =
7954 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
7955 IExchangeManageStore3_Impl::CreateStoreEntryID(
7956 this,
7957 core::mem::transmute(&lpszmsgstoredn),
7958 core::mem::transmute(&lpszmailboxdn),
7959 core::mem::transmute_copy(&ulflags),
7960 core::mem::transmute_copy(&lpcbentryid),
7961 core::mem::transmute_copy(&lppentryid),
7962 )
7963 .into()
7964 }
7965 }
7966 unsafe extern "system" fn EntryIDFromSourceKey<
7967 Identity: IExchangeManageStore3_Impl,
7968 const OFFSET: isize,
7969 >(
7970 this: *mut core::ffi::c_void,
7971 cfolderkeysize: u32,
7972 lpfoldersourcekey: *mut u8,
7973 cmessagekeysize: u32,
7974 lpmessagesourcekey: *mut u8,
7975 lpcbentryid: *mut u32,
7976 lppentryid: *mut *mut ENTRYID,
7977 ) -> windows_core::HRESULT {
7978 unsafe {
7979 let this: &Identity =
7980 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
7981 IExchangeManageStore3_Impl::EntryIDFromSourceKey(
7982 this,
7983 core::mem::transmute_copy(&cfolderkeysize),
7984 core::mem::transmute_copy(&lpfoldersourcekey),
7985 core::mem::transmute_copy(&cmessagekeysize),
7986 core::mem::transmute_copy(&lpmessagesourcekey),
7987 core::mem::transmute_copy(&lpcbentryid),
7988 core::mem::transmute_copy(&lppentryid),
7989 )
7990 .into()
7991 }
7992 }
7993 unsafe extern "system" fn GetRights<
7994 Identity: IExchangeManageStore3_Impl,
7995 const OFFSET: isize,
7996 >(
7997 this: *mut core::ffi::c_void,
7998 cbuserentryid: u32,
7999 lpuserentryid: *mut ENTRYID,
8000 cbentryid: u32,
8001 lpentryid: *mut ENTRYID,
8002 lpulrights: *mut u32,
8003 ) -> windows_core::HRESULT {
8004 unsafe {
8005 let this: &Identity =
8006 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
8007 IExchangeManageStore3_Impl::GetRights(
8008 this,
8009 core::mem::transmute_copy(&cbuserentryid),
8010 core::mem::transmute_copy(&lpuserentryid),
8011 core::mem::transmute_copy(&cbentryid),
8012 core::mem::transmute_copy(&lpentryid),
8013 core::mem::transmute_copy(&lpulrights),
8014 )
8015 .into()
8016 }
8017 }
8018 unsafe extern "system" fn GetMailboxTable<
8019 Identity: IExchangeManageStore3_Impl,
8020 const OFFSET: isize,
8021 >(
8022 this: *mut core::ffi::c_void,
8023 lpszservername: windows_core::PCSTR,
8024 lpptable: *mut *mut core::ffi::c_void,
8025 ulflags: u32,
8026 ) -> windows_core::HRESULT {
8027 unsafe {
8028 let this: &Identity =
8029 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
8030 IExchangeManageStore3_Impl::GetMailboxTable(
8031 this,
8032 core::mem::transmute(&lpszservername),
8033 core::mem::transmute_copy(&lpptable),
8034 core::mem::transmute_copy(&ulflags),
8035 )
8036 .into()
8037 }
8038 }
8039 unsafe extern "system" fn GetPublicFolderTable<
8040 Identity: IExchangeManageStore3_Impl,
8041 const OFFSET: isize,
8042 >(
8043 this: *mut core::ffi::c_void,
8044 lpszservername: windows_core::PCSTR,
8045 lpptable: *mut *mut core::ffi::c_void,
8046 ulflags: u32,
8047 ) -> windows_core::HRESULT {
8048 unsafe {
8049 let this: &Identity =
8050 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
8051 IExchangeManageStore3_Impl::GetPublicFolderTable(
8052 this,
8053 core::mem::transmute(&lpszservername),
8054 core::mem::transmute_copy(&lpptable),
8055 core::mem::transmute_copy(&ulflags),
8056 )
8057 .into()
8058 }
8059 }
8060 unsafe extern "system" fn CreateNewsgroupNameEntryID<
8061 Identity: IExchangeManageStore3_Impl,
8062 const OFFSET: isize,
8063 >(
8064 this: *mut core::ffi::c_void,
8065 lpsznewsgroupname: windows_core::PCSTR,
8066 lpcbentryid: *mut u32,
8067 lppentryid: *mut *mut ENTRYID,
8068 ) -> windows_core::HRESULT {
8069 unsafe {
8070 let this: &Identity =
8071 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
8072 IExchangeManageStore3_Impl::CreateNewsgroupNameEntryID(
8073 this,
8074 core::mem::transmute(&lpsznewsgroupname),
8075 core::mem::transmute_copy(&lpcbentryid),
8076 core::mem::transmute_copy(&lppentryid),
8077 )
8078 .into()
8079 }
8080 }
8081 unsafe extern "system" fn GetMailboxTableOffset<
8082 Identity: IExchangeManageStore3_Impl,
8083 const OFFSET: isize,
8084 >(
8085 this: *mut core::ffi::c_void,
8086 lpszservername: windows_core::PCSTR,
8087 lpptable: *mut *mut core::ffi::c_void,
8088 ulflags: u32,
8089 uoffset: u32,
8090 ) -> windows_core::HRESULT {
8091 unsafe {
8092 let this: &Identity =
8093 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
8094 IExchangeManageStore3_Impl::GetMailboxTableOffset(
8095 this,
8096 core::mem::transmute(&lpszservername),
8097 core::mem::transmute_copy(&lpptable),
8098 core::mem::transmute_copy(&ulflags),
8099 core::mem::transmute_copy(&uoffset),
8100 )
8101 .into()
8102 }
8103 }
8104 Self {
8105 base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
8106 CreateStoreEntryID: CreateStoreEntryID::<Identity, OFFSET>,
8107 EntryIDFromSourceKey: EntryIDFromSourceKey::<Identity, OFFSET>,
8108 GetRights: GetRights::<Identity, OFFSET>,
8109 GetMailboxTable: GetMailboxTable::<Identity, OFFSET>,
8110 GetPublicFolderTable: GetPublicFolderTable::<Identity, OFFSET>,
8111 CreateNewsgroupNameEntryID: CreateNewsgroupNameEntryID::<Identity, OFFSET>,
8112 GetMailboxTableOffset: GetMailboxTableOffset::<Identity, OFFSET>,
8113 }
8114 }
8115 pub fn matches(iid: &windows_core::GUID) -> bool {
8116 iid == &<IExchangeManageStore3 as windows_core::Interface>::IID
8117 }
8118}
8119impl windows_core::RuntimeName for IExchangeManageStore3 {}
8120windows_core::imp::define_interface!(
8121 IExchangeManageStore4,
8122 IExchangeManageStore4_Vtbl,
8123 0x2590ff87_c431_4f9c_b1a8_cd69d760cd10
8124);
8125windows_core::imp::interface_hierarchy!(IExchangeManageStore4, windows_core::IUnknown);
8126impl IExchangeManageStore4 {
8127 pub unsafe fn CreateStoreEntryID<P0, P1>(
8128 &self,
8129 lpszmsgstoredn: P0,
8130 lpszmailboxdn: P1,
8131 ulflags: u32,
8132 lpcbentryid: *mut u32,
8133 lppentryid: *mut *mut ENTRYID,
8134 ) -> windows_core::Result<()>
8135 where
8136 P0: windows_core::Param<windows_core::PCSTR>,
8137 P1: windows_core::Param<windows_core::PCSTR>,
8138 {
8139 unsafe {
8140 (windows_core::Interface::vtable(self).CreateStoreEntryID)(
8141 windows_core::Interface::as_raw(self),
8142 lpszmsgstoredn.param().abi(),
8143 lpszmailboxdn.param().abi(),
8144 ulflags,
8145 lpcbentryid as _,
8146 lppentryid as _,
8147 )
8148 .ok()
8149 }
8150 }
8151 pub unsafe fn EntryIDFromSourceKey(
8152 &self,
8153 cfolderkeysize: u32,
8154 lpfoldersourcekey: *mut u8,
8155 cmessagekeysize: u32,
8156 lpmessagesourcekey: *mut u8,
8157 lpcbentryid: *mut u32,
8158 lppentryid: *mut *mut ENTRYID,
8159 ) -> windows_core::Result<()> {
8160 unsafe {
8161 (windows_core::Interface::vtable(self).EntryIDFromSourceKey)(
8162 windows_core::Interface::as_raw(self),
8163 cfolderkeysize,
8164 lpfoldersourcekey as _,
8165 cmessagekeysize,
8166 lpmessagesourcekey as _,
8167 lpcbentryid as _,
8168 lppentryid as _,
8169 )
8170 .ok()
8171 }
8172 }
8173 pub unsafe fn GetRights(
8174 &self,
8175 cbuserentryid: u32,
8176 lpuserentryid: *mut ENTRYID,
8177 cbentryid: u32,
8178 lpentryid: *mut ENTRYID,
8179 lpulrights: *mut u32,
8180 ) -> windows_core::Result<()> {
8181 unsafe {
8182 (windows_core::Interface::vtable(self).GetRights)(
8183 windows_core::Interface::as_raw(self),
8184 cbuserentryid,
8185 lpuserentryid as _,
8186 cbentryid,
8187 lpentryid as _,
8188 lpulrights as _,
8189 )
8190 .ok()
8191 }
8192 }
8193 pub unsafe fn GetMailboxTable<P0>(
8194 &self,
8195 lpszservername: P0,
8196 lpptable: *mut Option<IMAPITable>,
8197 ulflags: u32,
8198 ) -> windows_core::Result<()>
8199 where
8200 P0: windows_core::Param<windows_core::PCSTR>,
8201 {
8202 unsafe {
8203 (windows_core::Interface::vtable(self).GetMailboxTable)(
8204 windows_core::Interface::as_raw(self),
8205 lpszservername.param().abi(),
8206 core::mem::transmute(lpptable),
8207 ulflags,
8208 )
8209 .ok()
8210 }
8211 }
8212 pub unsafe fn GetPublicFolderTable<P0>(
8213 &self,
8214 lpszservername: P0,
8215 lpptable: *mut Option<IMAPITable>,
8216 ulflags: u32,
8217 ) -> windows_core::Result<()>
8218 where
8219 P0: windows_core::Param<windows_core::PCSTR>,
8220 {
8221 unsafe {
8222 (windows_core::Interface::vtable(self).GetPublicFolderTable)(
8223 windows_core::Interface::as_raw(self),
8224 lpszservername.param().abi(),
8225 core::mem::transmute(lpptable),
8226 ulflags,
8227 )
8228 .ok()
8229 }
8230 }
8231 pub unsafe fn CreateNewsgroupNameEntryID<P0>(
8232 &self,
8233 lpsznewsgroupname: P0,
8234 lpcbentryid: *mut u32,
8235 lppentryid: *mut *mut ENTRYID,
8236 ) -> windows_core::Result<()>
8237 where
8238 P0: windows_core::Param<windows_core::PCSTR>,
8239 {
8240 unsafe {
8241 (windows_core::Interface::vtable(self).CreateNewsgroupNameEntryID)(
8242 windows_core::Interface::as_raw(self),
8243 lpsznewsgroupname.param().abi(),
8244 lpcbentryid as _,
8245 lppentryid as _,
8246 )
8247 .ok()
8248 }
8249 }
8250 pub unsafe fn GetMailboxTableOffset<P0>(
8251 &self,
8252 lpszservername: P0,
8253 lpptable: *mut Option<IMAPITable>,
8254 ulflags: u32,
8255 uoffset: u32,
8256 ) -> windows_core::Result<()>
8257 where
8258 P0: windows_core::Param<windows_core::PCSTR>,
8259 {
8260 unsafe {
8261 (windows_core::Interface::vtable(self).GetMailboxTableOffset)(
8262 windows_core::Interface::as_raw(self),
8263 lpszservername.param().abi(),
8264 core::mem::transmute(lpptable),
8265 ulflags,
8266 uoffset,
8267 )
8268 .ok()
8269 }
8270 }
8271 pub unsafe fn GetPublicFolderTableOffset<P0>(
8272 &self,
8273 lpszservername: P0,
8274 lpptable: *mut Option<IMAPITable>,
8275 ulflags: u32,
8276 uoffset: u32,
8277 ) -> windows_core::Result<()>
8278 where
8279 P0: windows_core::Param<windows_core::PCSTR>,
8280 {
8281 unsafe {
8282 (windows_core::Interface::vtable(self).GetPublicFolderTableOffset)(
8283 windows_core::Interface::as_raw(self),
8284 lpszservername.param().abi(),
8285 core::mem::transmute(lpptable),
8286 ulflags,
8287 uoffset,
8288 )
8289 .ok()
8290 }
8291 }
8292}
8293#[repr(C)]
8294#[doc(hidden)]
8295pub struct IExchangeManageStore4_Vtbl {
8296 pub base__: windows_core::IUnknown_Vtbl,
8297 pub CreateStoreEntryID: unsafe extern "system" fn(
8298 *mut core::ffi::c_void,
8299 windows_core::PCSTR,
8300 windows_core::PCSTR,
8301 u32,
8302 *mut u32,
8303 *mut *mut ENTRYID,
8304 ) -> windows_core::HRESULT,
8305 pub EntryIDFromSourceKey: unsafe extern "system" fn(
8306 *mut core::ffi::c_void,
8307 u32,
8308 *mut u8,
8309 u32,
8310 *mut u8,
8311 *mut u32,
8312 *mut *mut ENTRYID,
8313 ) -> windows_core::HRESULT,
8314 pub GetRights: unsafe extern "system" fn(
8315 *mut core::ffi::c_void,
8316 u32,
8317 *mut ENTRYID,
8318 u32,
8319 *mut ENTRYID,
8320 *mut u32,
8321 ) -> windows_core::HRESULT,
8322 pub GetMailboxTable: unsafe extern "system" fn(
8323 *mut core::ffi::c_void,
8324 windows_core::PCSTR,
8325 *mut *mut core::ffi::c_void,
8326 u32,
8327 ) -> windows_core::HRESULT,
8328 pub GetPublicFolderTable: unsafe extern "system" fn(
8329 *mut core::ffi::c_void,
8330 windows_core::PCSTR,
8331 *mut *mut core::ffi::c_void,
8332 u32,
8333 ) -> windows_core::HRESULT,
8334 pub CreateNewsgroupNameEntryID: unsafe extern "system" fn(
8335 *mut core::ffi::c_void,
8336 windows_core::PCSTR,
8337 *mut u32,
8338 *mut *mut ENTRYID,
8339 ) -> windows_core::HRESULT,
8340 pub GetMailboxTableOffset: unsafe extern "system" fn(
8341 *mut core::ffi::c_void,
8342 windows_core::PCSTR,
8343 *mut *mut core::ffi::c_void,
8344 u32,
8345 u32,
8346 ) -> windows_core::HRESULT,
8347 pub GetPublicFolderTableOffset: unsafe extern "system" fn(
8348 *mut core::ffi::c_void,
8349 windows_core::PCSTR,
8350 *mut *mut core::ffi::c_void,
8351 u32,
8352 u32,
8353 ) -> windows_core::HRESULT,
8354}
8355pub trait IExchangeManageStore4_Impl: windows_core::IUnknownImpl {
8356 fn CreateStoreEntryID(
8357 &self,
8358 lpszmsgstoredn: &windows_core::PCSTR,
8359 lpszmailboxdn: &windows_core::PCSTR,
8360 ulflags: u32,
8361 lpcbentryid: *mut u32,
8362 lppentryid: *mut *mut ENTRYID,
8363 ) -> windows_core::Result<()>;
8364 fn EntryIDFromSourceKey(
8365 &self,
8366 cfolderkeysize: u32,
8367 lpfoldersourcekey: *mut u8,
8368 cmessagekeysize: u32,
8369 lpmessagesourcekey: *mut u8,
8370 lpcbentryid: *mut u32,
8371 lppentryid: *mut *mut ENTRYID,
8372 ) -> windows_core::Result<()>;
8373 fn GetRights(
8374 &self,
8375 cbuserentryid: u32,
8376 lpuserentryid: *mut ENTRYID,
8377 cbentryid: u32,
8378 lpentryid: *mut ENTRYID,
8379 lpulrights: *mut u32,
8380 ) -> windows_core::Result<()>;
8381 fn GetMailboxTable(
8382 &self,
8383 lpszservername: &windows_core::PCSTR,
8384 lpptable: windows_core::OutRef<IMAPITable>,
8385 ulflags: u32,
8386 ) -> windows_core::Result<()>;
8387 fn GetPublicFolderTable(
8388 &self,
8389 lpszservername: &windows_core::PCSTR,
8390 lpptable: windows_core::OutRef<IMAPITable>,
8391 ulflags: u32,
8392 ) -> windows_core::Result<()>;
8393 fn CreateNewsgroupNameEntryID(
8394 &self,
8395 lpsznewsgroupname: &windows_core::PCSTR,
8396 lpcbentryid: *mut u32,
8397 lppentryid: *mut *mut ENTRYID,
8398 ) -> windows_core::Result<()>;
8399 fn GetMailboxTableOffset(
8400 &self,
8401 lpszservername: &windows_core::PCSTR,
8402 lpptable: windows_core::OutRef<IMAPITable>,
8403 ulflags: u32,
8404 uoffset: u32,
8405 ) -> windows_core::Result<()>;
8406 fn GetPublicFolderTableOffset(
8407 &self,
8408 lpszservername: &windows_core::PCSTR,
8409 lpptable: windows_core::OutRef<IMAPITable>,
8410 ulflags: u32,
8411 uoffset: u32,
8412 ) -> windows_core::Result<()>;
8413}
8414impl IExchangeManageStore4_Vtbl {
8415 pub const fn new<Identity: IExchangeManageStore4_Impl, const OFFSET: isize>() -> Self {
8416 unsafe extern "system" fn CreateStoreEntryID<
8417 Identity: IExchangeManageStore4_Impl,
8418 const OFFSET: isize,
8419 >(
8420 this: *mut core::ffi::c_void,
8421 lpszmsgstoredn: windows_core::PCSTR,
8422 lpszmailboxdn: windows_core::PCSTR,
8423 ulflags: u32,
8424 lpcbentryid: *mut u32,
8425 lppentryid: *mut *mut ENTRYID,
8426 ) -> windows_core::HRESULT {
8427 unsafe {
8428 let this: &Identity =
8429 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
8430 IExchangeManageStore4_Impl::CreateStoreEntryID(
8431 this,
8432 core::mem::transmute(&lpszmsgstoredn),
8433 core::mem::transmute(&lpszmailboxdn),
8434 core::mem::transmute_copy(&ulflags),
8435 core::mem::transmute_copy(&lpcbentryid),
8436 core::mem::transmute_copy(&lppentryid),
8437 )
8438 .into()
8439 }
8440 }
8441 unsafe extern "system" fn EntryIDFromSourceKey<
8442 Identity: IExchangeManageStore4_Impl,
8443 const OFFSET: isize,
8444 >(
8445 this: *mut core::ffi::c_void,
8446 cfolderkeysize: u32,
8447 lpfoldersourcekey: *mut u8,
8448 cmessagekeysize: u32,
8449 lpmessagesourcekey: *mut u8,
8450 lpcbentryid: *mut u32,
8451 lppentryid: *mut *mut ENTRYID,
8452 ) -> windows_core::HRESULT {
8453 unsafe {
8454 let this: &Identity =
8455 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
8456 IExchangeManageStore4_Impl::EntryIDFromSourceKey(
8457 this,
8458 core::mem::transmute_copy(&cfolderkeysize),
8459 core::mem::transmute_copy(&lpfoldersourcekey),
8460 core::mem::transmute_copy(&cmessagekeysize),
8461 core::mem::transmute_copy(&lpmessagesourcekey),
8462 core::mem::transmute_copy(&lpcbentryid),
8463 core::mem::transmute_copy(&lppentryid),
8464 )
8465 .into()
8466 }
8467 }
8468 unsafe extern "system" fn GetRights<
8469 Identity: IExchangeManageStore4_Impl,
8470 const OFFSET: isize,
8471 >(
8472 this: *mut core::ffi::c_void,
8473 cbuserentryid: u32,
8474 lpuserentryid: *mut ENTRYID,
8475 cbentryid: u32,
8476 lpentryid: *mut ENTRYID,
8477 lpulrights: *mut u32,
8478 ) -> windows_core::HRESULT {
8479 unsafe {
8480 let this: &Identity =
8481 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
8482 IExchangeManageStore4_Impl::GetRights(
8483 this,
8484 core::mem::transmute_copy(&cbuserentryid),
8485 core::mem::transmute_copy(&lpuserentryid),
8486 core::mem::transmute_copy(&cbentryid),
8487 core::mem::transmute_copy(&lpentryid),
8488 core::mem::transmute_copy(&lpulrights),
8489 )
8490 .into()
8491 }
8492 }
8493 unsafe extern "system" fn GetMailboxTable<
8494 Identity: IExchangeManageStore4_Impl,
8495 const OFFSET: isize,
8496 >(
8497 this: *mut core::ffi::c_void,
8498 lpszservername: windows_core::PCSTR,
8499 lpptable: *mut *mut core::ffi::c_void,
8500 ulflags: u32,
8501 ) -> windows_core::HRESULT {
8502 unsafe {
8503 let this: &Identity =
8504 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
8505 IExchangeManageStore4_Impl::GetMailboxTable(
8506 this,
8507 core::mem::transmute(&lpszservername),
8508 core::mem::transmute_copy(&lpptable),
8509 core::mem::transmute_copy(&ulflags),
8510 )
8511 .into()
8512 }
8513 }
8514 unsafe extern "system" fn GetPublicFolderTable<
8515 Identity: IExchangeManageStore4_Impl,
8516 const OFFSET: isize,
8517 >(
8518 this: *mut core::ffi::c_void,
8519 lpszservername: windows_core::PCSTR,
8520 lpptable: *mut *mut core::ffi::c_void,
8521 ulflags: u32,
8522 ) -> windows_core::HRESULT {
8523 unsafe {
8524 let this: &Identity =
8525 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
8526 IExchangeManageStore4_Impl::GetPublicFolderTable(
8527 this,
8528 core::mem::transmute(&lpszservername),
8529 core::mem::transmute_copy(&lpptable),
8530 core::mem::transmute_copy(&ulflags),
8531 )
8532 .into()
8533 }
8534 }
8535 unsafe extern "system" fn CreateNewsgroupNameEntryID<
8536 Identity: IExchangeManageStore4_Impl,
8537 const OFFSET: isize,
8538 >(
8539 this: *mut core::ffi::c_void,
8540 lpsznewsgroupname: windows_core::PCSTR,
8541 lpcbentryid: *mut u32,
8542 lppentryid: *mut *mut ENTRYID,
8543 ) -> windows_core::HRESULT {
8544 unsafe {
8545 let this: &Identity =
8546 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
8547 IExchangeManageStore4_Impl::CreateNewsgroupNameEntryID(
8548 this,
8549 core::mem::transmute(&lpsznewsgroupname),
8550 core::mem::transmute_copy(&lpcbentryid),
8551 core::mem::transmute_copy(&lppentryid),
8552 )
8553 .into()
8554 }
8555 }
8556 unsafe extern "system" fn GetMailboxTableOffset<
8557 Identity: IExchangeManageStore4_Impl,
8558 const OFFSET: isize,
8559 >(
8560 this: *mut core::ffi::c_void,
8561 lpszservername: windows_core::PCSTR,
8562 lpptable: *mut *mut core::ffi::c_void,
8563 ulflags: u32,
8564 uoffset: u32,
8565 ) -> windows_core::HRESULT {
8566 unsafe {
8567 let this: &Identity =
8568 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
8569 IExchangeManageStore4_Impl::GetMailboxTableOffset(
8570 this,
8571 core::mem::transmute(&lpszservername),
8572 core::mem::transmute_copy(&lpptable),
8573 core::mem::transmute_copy(&ulflags),
8574 core::mem::transmute_copy(&uoffset),
8575 )
8576 .into()
8577 }
8578 }
8579 unsafe extern "system" fn GetPublicFolderTableOffset<
8580 Identity: IExchangeManageStore4_Impl,
8581 const OFFSET: isize,
8582 >(
8583 this: *mut core::ffi::c_void,
8584 lpszservername: windows_core::PCSTR,
8585 lpptable: *mut *mut core::ffi::c_void,
8586 ulflags: u32,
8587 uoffset: u32,
8588 ) -> windows_core::HRESULT {
8589 unsafe {
8590 let this: &Identity =
8591 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
8592 IExchangeManageStore4_Impl::GetPublicFolderTableOffset(
8593 this,
8594 core::mem::transmute(&lpszservername),
8595 core::mem::transmute_copy(&lpptable),
8596 core::mem::transmute_copy(&ulflags),
8597 core::mem::transmute_copy(&uoffset),
8598 )
8599 .into()
8600 }
8601 }
8602 Self {
8603 base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
8604 CreateStoreEntryID: CreateStoreEntryID::<Identity, OFFSET>,
8605 EntryIDFromSourceKey: EntryIDFromSourceKey::<Identity, OFFSET>,
8606 GetRights: GetRights::<Identity, OFFSET>,
8607 GetMailboxTable: GetMailboxTable::<Identity, OFFSET>,
8608 GetPublicFolderTable: GetPublicFolderTable::<Identity, OFFSET>,
8609 CreateNewsgroupNameEntryID: CreateNewsgroupNameEntryID::<Identity, OFFSET>,
8610 GetMailboxTableOffset: GetMailboxTableOffset::<Identity, OFFSET>,
8611 GetPublicFolderTableOffset: GetPublicFolderTableOffset::<Identity, OFFSET>,
8612 }
8613 }
8614 pub fn matches(iid: &windows_core::GUID) -> bool {
8615 iid == &<IExchangeManageStore4 as windows_core::Interface>::IID
8616 }
8617}
8618impl windows_core::RuntimeName for IExchangeManageStore4 {}
8619windows_core::imp::define_interface!(
8620 IExchangeMessageConversion,
8621 IExchangeMessageConversion_Vtbl,
8622 0x3532b360_d114_11cf_a83b_00c04fd65597
8623);
8624windows_core::imp::interface_hierarchy!(IExchangeMessageConversion, windows_core::IUnknown);
8625impl IExchangeMessageConversion {
8626 pub unsafe fn OpenStream(
8627 &self,
8628 cvalues: u32,
8629 lpproparray: *mut SPropValue,
8630 lppstream: *mut Option<windows::Win32::System::Com::IStream>,
8631 ) -> windows_core::Result<()> {
8632 unsafe {
8633 (windows_core::Interface::vtable(self).OpenStream)(
8634 windows_core::Interface::as_raw(self),
8635 cvalues,
8636 lpproparray as _,
8637 core::mem::transmute(lppstream),
8638 )
8639 .ok()
8640 }
8641 }
8642}
8643#[repr(C)]
8644#[doc(hidden)]
8645pub struct IExchangeMessageConversion_Vtbl {
8646 pub base__: windows_core::IUnknown_Vtbl,
8647 pub OpenStream: unsafe extern "system" fn(
8648 *mut core::ffi::c_void,
8649 u32,
8650 *mut SPropValue,
8651 *mut *mut core::ffi::c_void,
8652 ) -> windows_core::HRESULT,
8653}
8654pub trait IExchangeMessageConversion_Impl: windows_core::IUnknownImpl {
8655 fn OpenStream(
8656 &self,
8657 cvalues: u32,
8658 lpproparray: *mut SPropValue,
8659 lppstream: windows_core::OutRef<windows::Win32::System::Com::IStream>,
8660 ) -> windows_core::Result<()>;
8661}
8662impl IExchangeMessageConversion_Vtbl {
8663 pub const fn new<Identity: IExchangeMessageConversion_Impl, const OFFSET: isize>() -> Self {
8664 unsafe extern "system" fn OpenStream<
8665 Identity: IExchangeMessageConversion_Impl,
8666 const OFFSET: isize,
8667 >(
8668 this: *mut core::ffi::c_void,
8669 cvalues: u32,
8670 lpproparray: *mut SPropValue,
8671 lppstream: *mut *mut core::ffi::c_void,
8672 ) -> windows_core::HRESULT {
8673 unsafe {
8674 let this: &Identity =
8675 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
8676 IExchangeMessageConversion_Impl::OpenStream(
8677 this,
8678 core::mem::transmute_copy(&cvalues),
8679 core::mem::transmute_copy(&lpproparray),
8680 core::mem::transmute_copy(&lppstream),
8681 )
8682 .into()
8683 }
8684 }
8685 Self {
8686 base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
8687 OpenStream: OpenStream::<Identity, OFFSET>,
8688 }
8689 }
8690 pub fn matches(iid: &windows_core::GUID) -> bool {
8691 iid == &<IExchangeMessageConversion as windows_core::Interface>::IID
8692 }
8693}
8694impl windows_core::RuntimeName for IExchangeMessageConversion {}
8695windows_core::imp::define_interface!(
8696 IExchangeModifyTable,
8697 IExchangeModifyTable_Vtbl,
8698 0x2d734cb0_53fd_101b_b19d_08002b3056e3
8699);
8700windows_core::imp::interface_hierarchy!(IExchangeModifyTable, windows_core::IUnknown);
8701impl IExchangeModifyTable {
8702 pub unsafe fn GetLastError(
8703 &self,
8704 hresult: windows_core::HRESULT,
8705 ulflags: u32,
8706 lppmapierror: *mut *mut MAPIERROR,
8707 ) -> windows_core::Result<()> {
8708 unsafe {
8709 (windows_core::Interface::vtable(self).GetLastError)(
8710 windows_core::Interface::as_raw(self),
8711 hresult,
8712 ulflags,
8713 lppmapierror as _,
8714 )
8715 .ok()
8716 }
8717 }
8718 pub unsafe fn GetTable(&self, ulflags: u32) -> windows_core::Result<IMAPITable> {
8719 unsafe {
8720 let mut result__ = core::mem::zeroed();
8721 (windows_core::Interface::vtable(self).GetTable)(
8722 windows_core::Interface::as_raw(self),
8723 ulflags,
8724 &mut result__,
8725 )
8726 .and_then(|| windows_core::Type::from_abi(result__))
8727 }
8728 }
8729 pub unsafe fn ModifyTable(
8730 &self,
8731 ulflags: u32,
8732 lpmods: *mut ROWLIST,
8733 ) -> windows_core::Result<()> {
8734 unsafe {
8735 (windows_core::Interface::vtable(self).ModifyTable)(
8736 windows_core::Interface::as_raw(self),
8737 ulflags,
8738 lpmods as _,
8739 )
8740 .ok()
8741 }
8742 }
8743}
8744#[repr(C)]
8745#[doc(hidden)]
8746pub struct IExchangeModifyTable_Vtbl {
8747 pub base__: windows_core::IUnknown_Vtbl,
8748 pub GetLastError: unsafe extern "system" fn(
8749 *mut core::ffi::c_void,
8750 windows_core::HRESULT,
8751 u32,
8752 *mut *mut MAPIERROR,
8753 ) -> windows_core::HRESULT,
8754 pub GetTable: unsafe extern "system" fn(
8755 *mut core::ffi::c_void,
8756 u32,
8757 *mut *mut core::ffi::c_void,
8758 ) -> windows_core::HRESULT,
8759 pub ModifyTable: unsafe extern "system" fn(
8760 *mut core::ffi::c_void,
8761 u32,
8762 *mut ROWLIST,
8763 ) -> windows_core::HRESULT,
8764}
8765pub trait IExchangeModifyTable_Impl: windows_core::IUnknownImpl {
8766 fn GetLastError(
8767 &self,
8768 hresult: windows_core::HRESULT,
8769 ulflags: u32,
8770 lppmapierror: *mut *mut MAPIERROR,
8771 ) -> windows_core::Result<()>;
8772 fn GetTable(&self, ulflags: u32) -> windows_core::Result<IMAPITable>;
8773 fn ModifyTable(&self, ulflags: u32, lpmods: *mut ROWLIST) -> windows_core::Result<()>;
8774}
8775impl IExchangeModifyTable_Vtbl {
8776 pub const fn new<Identity: IExchangeModifyTable_Impl, const OFFSET: isize>() -> Self {
8777 unsafe extern "system" fn GetLastError<
8778 Identity: IExchangeModifyTable_Impl,
8779 const OFFSET: isize,
8780 >(
8781 this: *mut core::ffi::c_void,
8782 hresult: windows_core::HRESULT,
8783 ulflags: u32,
8784 lppmapierror: *mut *mut MAPIERROR,
8785 ) -> windows_core::HRESULT {
8786 unsafe {
8787 let this: &Identity =
8788 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
8789 IExchangeModifyTable_Impl::GetLastError(
8790 this,
8791 core::mem::transmute_copy(&hresult),
8792 core::mem::transmute_copy(&ulflags),
8793 core::mem::transmute_copy(&lppmapierror),
8794 )
8795 .into()
8796 }
8797 }
8798 unsafe extern "system" fn GetTable<
8799 Identity: IExchangeModifyTable_Impl,
8800 const OFFSET: isize,
8801 >(
8802 this: *mut core::ffi::c_void,
8803 ulflags: u32,
8804 lpptable: *mut *mut core::ffi::c_void,
8805 ) -> windows_core::HRESULT {
8806 unsafe {
8807 let this: &Identity =
8808 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
8809 match IExchangeModifyTable_Impl::GetTable(this, core::mem::transmute_copy(&ulflags))
8810 {
8811 Ok(ok__) => {
8812 lpptable.write(core::mem::transmute(ok__));
8813 windows_core::HRESULT(0)
8814 }
8815 Err(err) => err.into(),
8816 }
8817 }
8818 }
8819 unsafe extern "system" fn ModifyTable<
8820 Identity: IExchangeModifyTable_Impl,
8821 const OFFSET: isize,
8822 >(
8823 this: *mut core::ffi::c_void,
8824 ulflags: u32,
8825 lpmods: *mut ROWLIST,
8826 ) -> windows_core::HRESULT {
8827 unsafe {
8828 let this: &Identity =
8829 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
8830 IExchangeModifyTable_Impl::ModifyTable(
8831 this,
8832 core::mem::transmute_copy(&ulflags),
8833 core::mem::transmute_copy(&lpmods),
8834 )
8835 .into()
8836 }
8837 }
8838 Self {
8839 base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
8840 GetLastError: GetLastError::<Identity, OFFSET>,
8841 GetTable: GetTable::<Identity, OFFSET>,
8842 ModifyTable: ModifyTable::<Identity, OFFSET>,
8843 }
8844 }
8845 pub fn matches(iid: &windows_core::GUID) -> bool {
8846 iid == &<IExchangeModifyTable as windows_core::Interface>::IID
8847 }
8848}
8849impl windows_core::RuntimeName for IExchangeModifyTable {}
8850windows_core::imp::define_interface!(
8851 IExchangeMoveUserProgress,
8852 IExchangeMoveUserProgress_Vtbl,
8853 0xef2fb44a_8dac_4e4e_b1e3_a3b926355617
8854);
8855windows_core::imp::interface_hierarchy!(IExchangeMoveUserProgress, windows_core::IUnknown);
8856impl IExchangeMoveUserProgress {
8857 pub unsafe fn NextFolder<P1>(
8858 &self,
8859 ulflags: u32,
8860 lpwszfoldername: P1,
8861 ) -> windows_core::Result<()>
8862 where
8863 P1: windows_core::Param<windows_core::PCWSTR>,
8864 {
8865 unsafe {
8866 (windows_core::Interface::vtable(self).NextFolder)(
8867 windows_core::Interface::as_raw(self),
8868 ulflags,
8869 lpwszfoldername.param().abi(),
8870 )
8871 .ok()
8872 }
8873 }
8874 pub unsafe fn Progress(
8875 &self,
8876 ulflags: u32,
8877 ulcount: u32,
8878 ultotal: u32,
8879 ) -> windows_core::Result<()> {
8880 unsafe {
8881 (windows_core::Interface::vtable(self).Progress)(
8882 windows_core::Interface::as_raw(self),
8883 ulflags,
8884 ulcount,
8885 ultotal,
8886 )
8887 .ok()
8888 }
8889 }
8890 pub unsafe fn Restart(&self, ulflags: u32) -> windows_core::Result<()> {
8891 unsafe {
8892 (windows_core::Interface::vtable(self).Restart)(
8893 windows_core::Interface::as_raw(self),
8894 ulflags,
8895 )
8896 .ok()
8897 }
8898 }
8899}
8900#[repr(C)]
8901#[doc(hidden)]
8902pub struct IExchangeMoveUserProgress_Vtbl {
8903 pub base__: windows_core::IUnknown_Vtbl,
8904 pub NextFolder: unsafe extern "system" fn(
8905 *mut core::ffi::c_void,
8906 u32,
8907 windows_core::PCWSTR,
8908 ) -> windows_core::HRESULT,
8909 pub Progress:
8910 unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, u32) -> windows_core::HRESULT,
8911 pub Restart: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
8912}
8913pub trait IExchangeMoveUserProgress_Impl: windows_core::IUnknownImpl {
8914 fn NextFolder(
8915 &self,
8916 ulflags: u32,
8917 lpwszfoldername: &windows_core::PCWSTR,
8918 ) -> windows_core::Result<()>;
8919 fn Progress(&self, ulflags: u32, ulcount: u32, ultotal: u32) -> windows_core::Result<()>;
8920 fn Restart(&self, ulflags: u32) -> windows_core::Result<()>;
8921}
8922impl IExchangeMoveUserProgress_Vtbl {
8923 pub const fn new<Identity: IExchangeMoveUserProgress_Impl, const OFFSET: isize>() -> Self {
8924 unsafe extern "system" fn NextFolder<
8925 Identity: IExchangeMoveUserProgress_Impl,
8926 const OFFSET: isize,
8927 >(
8928 this: *mut core::ffi::c_void,
8929 ulflags: u32,
8930 lpwszfoldername: windows_core::PCWSTR,
8931 ) -> windows_core::HRESULT {
8932 unsafe {
8933 let this: &Identity =
8934 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
8935 IExchangeMoveUserProgress_Impl::NextFolder(
8936 this,
8937 core::mem::transmute_copy(&ulflags),
8938 core::mem::transmute(&lpwszfoldername),
8939 )
8940 .into()
8941 }
8942 }
8943 unsafe extern "system" fn Progress<
8944 Identity: IExchangeMoveUserProgress_Impl,
8945 const OFFSET: isize,
8946 >(
8947 this: *mut core::ffi::c_void,
8948 ulflags: u32,
8949 ulcount: u32,
8950 ultotal: u32,
8951 ) -> windows_core::HRESULT {
8952 unsafe {
8953 let this: &Identity =
8954 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
8955 IExchangeMoveUserProgress_Impl::Progress(
8956 this,
8957 core::mem::transmute_copy(&ulflags),
8958 core::mem::transmute_copy(&ulcount),
8959 core::mem::transmute_copy(&ultotal),
8960 )
8961 .into()
8962 }
8963 }
8964 unsafe extern "system" fn Restart<
8965 Identity: IExchangeMoveUserProgress_Impl,
8966 const OFFSET: isize,
8967 >(
8968 this: *mut core::ffi::c_void,
8969 ulflags: u32,
8970 ) -> windows_core::HRESULT {
8971 unsafe {
8972 let this: &Identity =
8973 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
8974 IExchangeMoveUserProgress_Impl::Restart(this, core::mem::transmute_copy(&ulflags))
8975 .into()
8976 }
8977 }
8978 Self {
8979 base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
8980 NextFolder: NextFolder::<Identity, OFFSET>,
8981 Progress: Progress::<Identity, OFFSET>,
8982 Restart: Restart::<Identity, OFFSET>,
8983 }
8984 }
8985 pub fn matches(iid: &windows_core::GUID) -> bool {
8986 iid == &<IExchangeMoveUserProgress as windows_core::Interface>::IID
8987 }
8988}
8989impl windows_core::RuntimeName for IExchangeMoveUserProgress {}
8990windows_core::imp::define_interface!(
8991 IExchangeNntpNewsfeed,
8992 IExchangeNntpNewsfeed_Vtbl,
8993 0x380f41c0_3cdc_11d0_9792_00c04fd6551d
8994);
8995windows_core::imp::interface_hierarchy!(IExchangeNntpNewsfeed, windows_core::IUnknown);
8996impl IExchangeNntpNewsfeed {
8997 pub unsafe fn Configure<P0>(
8998 &self,
8999 lpsznewsfeeddn: P0,
9000 cvalues: u32,
9001 lpimailproparray: *mut SPropValue,
9002 ) -> windows_core::Result<()>
9003 where
9004 P0: windows_core::Param<windows_core::PCSTR>,
9005 {
9006 unsafe {
9007 (windows_core::Interface::vtable(self).Configure)(
9008 windows_core::Interface::as_raw(self),
9009 lpsznewsfeeddn.param().abi(),
9010 cvalues,
9011 lpimailproparray as _,
9012 )
9013 .ok()
9014 }
9015 }
9016 pub unsafe fn CheckMsgIds<P0>(
9017 &self,
9018 lpszmsgids: P0,
9019 lpcfwanted: *mut u32,
9020 lppfwanted: *mut *mut u8,
9021 ) -> windows_core::Result<()>
9022 where
9023 P0: windows_core::Param<windows_core::PCSTR>,
9024 {
9025 unsafe {
9026 (windows_core::Interface::vtable(self).CheckMsgIds)(
9027 windows_core::Interface::as_raw(self),
9028 lpszmsgids.param().abi(),
9029 lpcfwanted as _,
9030 lppfwanted as _,
9031 )
9032 .ok()
9033 }
9034 }
9035 pub unsafe fn OpenArticleStream(
9036 &self,
9037 ) -> windows_core::Result<windows::Win32::System::Com::IStream> {
9038 unsafe {
9039 let mut result__ = core::mem::zeroed();
9040 (windows_core::Interface::vtable(self).OpenArticleStream)(
9041 windows_core::Interface::as_raw(self),
9042 &mut result__,
9043 )
9044 .and_then(|| windows_core::Type::from_abi(result__))
9045 }
9046 }
9047}
9048#[repr(C)]
9049#[doc(hidden)]
9050pub struct IExchangeNntpNewsfeed_Vtbl {
9051 pub base__: windows_core::IUnknown_Vtbl,
9052 pub Configure: unsafe extern "system" fn(
9053 *mut core::ffi::c_void,
9054 windows_core::PCSTR,
9055 u32,
9056 *mut SPropValue,
9057 ) -> windows_core::HRESULT,
9058 pub CheckMsgIds: unsafe extern "system" fn(
9059 *mut core::ffi::c_void,
9060 windows_core::PCSTR,
9061 *mut u32,
9062 *mut *mut u8,
9063 ) -> windows_core::HRESULT,
9064 pub OpenArticleStream: unsafe extern "system" fn(
9065 *mut core::ffi::c_void,
9066 *mut *mut core::ffi::c_void,
9067 ) -> windows_core::HRESULT,
9068}
9069pub trait IExchangeNntpNewsfeed_Impl: windows_core::IUnknownImpl {
9070 fn Configure(
9071 &self,
9072 lpsznewsfeeddn: &windows_core::PCSTR,
9073 cvalues: u32,
9074 lpimailproparray: *mut SPropValue,
9075 ) -> windows_core::Result<()>;
9076 fn CheckMsgIds(
9077 &self,
9078 lpszmsgids: &windows_core::PCSTR,
9079 lpcfwanted: *mut u32,
9080 lppfwanted: *mut *mut u8,
9081 ) -> windows_core::Result<()>;
9082 fn OpenArticleStream(&self) -> windows_core::Result<windows::Win32::System::Com::IStream>;
9083}
9084impl IExchangeNntpNewsfeed_Vtbl {
9085 pub const fn new<Identity: IExchangeNntpNewsfeed_Impl, const OFFSET: isize>() -> Self {
9086 unsafe extern "system" fn Configure<
9087 Identity: IExchangeNntpNewsfeed_Impl,
9088 const OFFSET: isize,
9089 >(
9090 this: *mut core::ffi::c_void,
9091 lpsznewsfeeddn: windows_core::PCSTR,
9092 cvalues: u32,
9093 lpimailproparray: *mut SPropValue,
9094 ) -> windows_core::HRESULT {
9095 unsafe {
9096 let this: &Identity =
9097 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
9098 IExchangeNntpNewsfeed_Impl::Configure(
9099 this,
9100 core::mem::transmute(&lpsznewsfeeddn),
9101 core::mem::transmute_copy(&cvalues),
9102 core::mem::transmute_copy(&lpimailproparray),
9103 )
9104 .into()
9105 }
9106 }
9107 unsafe extern "system" fn CheckMsgIds<
9108 Identity: IExchangeNntpNewsfeed_Impl,
9109 const OFFSET: isize,
9110 >(
9111 this: *mut core::ffi::c_void,
9112 lpszmsgids: windows_core::PCSTR,
9113 lpcfwanted: *mut u32,
9114 lppfwanted: *mut *mut u8,
9115 ) -> windows_core::HRESULT {
9116 unsafe {
9117 let this: &Identity =
9118 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
9119 IExchangeNntpNewsfeed_Impl::CheckMsgIds(
9120 this,
9121 core::mem::transmute(&lpszmsgids),
9122 core::mem::transmute_copy(&lpcfwanted),
9123 core::mem::transmute_copy(&lppfwanted),
9124 )
9125 .into()
9126 }
9127 }
9128 unsafe extern "system" fn OpenArticleStream<
9129 Identity: IExchangeNntpNewsfeed_Impl,
9130 const OFFSET: isize,
9131 >(
9132 this: *mut core::ffi::c_void,
9133 lppstream: *mut *mut core::ffi::c_void,
9134 ) -> windows_core::HRESULT {
9135 unsafe {
9136 let this: &Identity =
9137 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
9138 match IExchangeNntpNewsfeed_Impl::OpenArticleStream(this) {
9139 Ok(ok__) => {
9140 lppstream.write(core::mem::transmute(ok__));
9141 windows_core::HRESULT(0)
9142 }
9143 Err(err) => err.into(),
9144 }
9145 }
9146 }
9147 Self {
9148 base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
9149 Configure: Configure::<Identity, OFFSET>,
9150 CheckMsgIds: CheckMsgIds::<Identity, OFFSET>,
9151 OpenArticleStream: OpenArticleStream::<Identity, OFFSET>,
9152 }
9153 }
9154 pub fn matches(iid: &windows_core::GUID) -> bool {
9155 iid == &<IExchangeNntpNewsfeed as windows_core::Interface>::IID
9156 }
9157}
9158impl windows_core::RuntimeName for IExchangeNntpNewsfeed {}
9159windows_core::imp::define_interface!(
9160 IExchangeRuleAction,
9161 IExchangeRuleAction_Vtbl,
9162 0x74bba840_c93a_11ce_9581_00aa005742f7
9163);
9164windows_core::imp::interface_hierarchy!(IExchangeRuleAction, windows_core::IUnknown);
9165impl IExchangeRuleAction {
9166 pub unsafe fn ActionCount(&self, lpcactions: *mut u32) -> windows_core::Result<()> {
9167 unsafe {
9168 (windows_core::Interface::vtable(self).ActionCount)(
9169 windows_core::Interface::as_raw(self),
9170 lpcactions as _,
9171 )
9172 .ok()
9173 }
9174 }
9175 pub unsafe fn GetAction(
9176 &self,
9177 ulactionnumber: u32,
9178 lpruleid: *mut i64,
9179 lppaction: *mut *mut ACTION,
9180 ) -> windows_core::Result<()> {
9181 unsafe {
9182 (windows_core::Interface::vtable(self).GetAction)(
9183 windows_core::Interface::as_raw(self),
9184 ulactionnumber,
9185 lpruleid as _,
9186 lppaction as _,
9187 )
9188 .ok()
9189 }
9190 }
9191}
9192#[repr(C)]
9193#[doc(hidden)]
9194pub struct IExchangeRuleAction_Vtbl {
9195 pub base__: windows_core::IUnknown_Vtbl,
9196 pub ActionCount:
9197 unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
9198 pub GetAction: unsafe extern "system" fn(
9199 *mut core::ffi::c_void,
9200 u32,
9201 *mut i64,
9202 *mut *mut ACTION,
9203 ) -> windows_core::HRESULT,
9204}
9205pub trait IExchangeRuleAction_Impl: windows_core::IUnknownImpl {
9206 fn ActionCount(&self, lpcactions: *mut u32) -> windows_core::Result<()>;
9207 fn GetAction(
9208 &self,
9209 ulactionnumber: u32,
9210 lpruleid: *mut i64,
9211 lppaction: *mut *mut ACTION,
9212 ) -> windows_core::Result<()>;
9213}
9214impl IExchangeRuleAction_Vtbl {
9215 pub const fn new<Identity: IExchangeRuleAction_Impl, const OFFSET: isize>() -> Self {
9216 unsafe extern "system" fn ActionCount<
9217 Identity: IExchangeRuleAction_Impl,
9218 const OFFSET: isize,
9219 >(
9220 this: *mut core::ffi::c_void,
9221 lpcactions: *mut u32,
9222 ) -> windows_core::HRESULT {
9223 unsafe {
9224 let this: &Identity =
9225 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
9226 IExchangeRuleAction_Impl::ActionCount(this, core::mem::transmute_copy(&lpcactions))
9227 .into()
9228 }
9229 }
9230 unsafe extern "system" fn GetAction<
9231 Identity: IExchangeRuleAction_Impl,
9232 const OFFSET: isize,
9233 >(
9234 this: *mut core::ffi::c_void,
9235 ulactionnumber: u32,
9236 lpruleid: *mut i64,
9237 lppaction: *mut *mut ACTION,
9238 ) -> windows_core::HRESULT {
9239 unsafe {
9240 let this: &Identity =
9241 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
9242 IExchangeRuleAction_Impl::GetAction(
9243 this,
9244 core::mem::transmute_copy(&ulactionnumber),
9245 core::mem::transmute_copy(&lpruleid),
9246 core::mem::transmute_copy(&lppaction),
9247 )
9248 .into()
9249 }
9250 }
9251 Self {
9252 base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
9253 ActionCount: ActionCount::<Identity, OFFSET>,
9254 GetAction: GetAction::<Identity, OFFSET>,
9255 }
9256 }
9257 pub fn matches(iid: &windows_core::GUID) -> bool {
9258 iid == &<IExchangeRuleAction as windows_core::Interface>::IID
9259 }
9260}
9261impl windows_core::RuntimeName for IExchangeRuleAction {}
9262windows_core::imp::define_interface!(
9263 IFontCache,
9264 IFontCache_Vtbl,
9265 0xb0d17fc2_7bc4_11d1_bdfa_00c04fa31009
9266);
9267windows_core::imp::interface_hierarchy!(IFontCache, windows_core::IUnknown);
9268impl IFontCache {
9269 pub unsafe fn Init<P1>(
9270 &self,
9271 hkey: windows::Win32::System::Registry::HKEY,
9272 pszintlkey: P1,
9273 dwflags: u32,
9274 ) -> windows_core::Result<()>
9275 where
9276 P1: windows_core::Param<windows_core::PCSTR>,
9277 {
9278 unsafe {
9279 (windows_core::Interface::vtable(self).Init)(
9280 windows_core::Interface::as_raw(self),
9281 hkey,
9282 pszintlkey.param().abi(),
9283 dwflags,
9284 )
9285 .ok()
9286 }
9287 }
9288 pub unsafe fn GetFont(
9289 &self,
9290 fnttype: FNTSYSTYPE,
9291 hcharset: *mut HCHARSET__,
9292 phfont: *mut windows::Win32::Graphics::Gdi::HFONT,
9293 ) -> windows_core::Result<()> {
9294 unsafe {
9295 (windows_core::Interface::vtable(self).GetFont)(
9296 windows_core::Interface::as_raw(self),
9297 fnttype,
9298 hcharset as _,
9299 phfont as _,
9300 )
9301 .ok()
9302 }
9303 }
9304 pub unsafe fn OnOptionChange(&self) -> windows_core::Result<()> {
9305 unsafe {
9306 (windows_core::Interface::vtable(self).OnOptionChange)(windows_core::Interface::as_raw(
9307 self,
9308 ))
9309 .ok()
9310 }
9311 }
9312 pub unsafe fn GetJP_ISOControl(
9313 &self,
9314 pfusesio: *mut windows_core::BOOL,
9315 ) -> windows_core::Result<()> {
9316 unsafe {
9317 (windows_core::Interface::vtable(self).GetJP_ISOControl)(
9318 windows_core::Interface::as_raw(self),
9319 pfusesio as _,
9320 )
9321 .ok()
9322 }
9323 }
9324}
9325#[repr(C)]
9326#[doc(hidden)]
9327pub struct IFontCache_Vtbl {
9328 pub base__: windows_core::IUnknown_Vtbl,
9329 pub Init: unsafe extern "system" fn(
9330 *mut core::ffi::c_void,
9331 windows::Win32::System::Registry::HKEY,
9332 windows_core::PCSTR,
9333 u32,
9334 ) -> windows_core::HRESULT,
9335 pub GetFont: unsafe extern "system" fn(
9336 *mut core::ffi::c_void,
9337 FNTSYSTYPE,
9338 *mut HCHARSET__,
9339 *mut windows::Win32::Graphics::Gdi::HFONT,
9340 ) -> windows_core::HRESULT,
9341 pub OnOptionChange: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
9342 pub GetJP_ISOControl: unsafe extern "system" fn(
9343 *mut core::ffi::c_void,
9344 *mut windows_core::BOOL,
9345 ) -> windows_core::HRESULT,
9346}
9347pub trait IFontCache_Impl: windows_core::IUnknownImpl {
9348 fn Init(
9349 &self,
9350 hkey: windows::Win32::System::Registry::HKEY,
9351 pszintlkey: &windows_core::PCSTR,
9352 dwflags: u32,
9353 ) -> windows_core::Result<()>;
9354 fn GetFont(
9355 &self,
9356 fnttype: FNTSYSTYPE,
9357 hcharset: *mut HCHARSET__,
9358 phfont: *mut windows::Win32::Graphics::Gdi::HFONT,
9359 ) -> windows_core::Result<()>;
9360 fn OnOptionChange(&self) -> windows_core::Result<()>;
9361 fn GetJP_ISOControl(&self, pfusesio: *mut windows_core::BOOL) -> windows_core::Result<()>;
9362}
9363impl IFontCache_Vtbl {
9364 pub const fn new<Identity: IFontCache_Impl, const OFFSET: isize>() -> Self {
9365 unsafe extern "system" fn Init<Identity: IFontCache_Impl, const OFFSET: isize>(
9366 this: *mut core::ffi::c_void,
9367 hkey: windows::Win32::System::Registry::HKEY,
9368 pszintlkey: windows_core::PCSTR,
9369 dwflags: u32,
9370 ) -> windows_core::HRESULT {
9371 unsafe {
9372 let this: &Identity =
9373 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
9374 IFontCache_Impl::Init(
9375 this,
9376 core::mem::transmute_copy(&hkey),
9377 core::mem::transmute(&pszintlkey),
9378 core::mem::transmute_copy(&dwflags),
9379 )
9380 .into()
9381 }
9382 }
9383 unsafe extern "system" fn GetFont<Identity: IFontCache_Impl, const OFFSET: isize>(
9384 this: *mut core::ffi::c_void,
9385 fnttype: FNTSYSTYPE,
9386 hcharset: *mut HCHARSET__,
9387 phfont: *mut windows::Win32::Graphics::Gdi::HFONT,
9388 ) -> windows_core::HRESULT {
9389 unsafe {
9390 let this: &Identity =
9391 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
9392 IFontCache_Impl::GetFont(
9393 this,
9394 core::mem::transmute_copy(&fnttype),
9395 core::mem::transmute_copy(&hcharset),
9396 core::mem::transmute_copy(&phfont),
9397 )
9398 .into()
9399 }
9400 }
9401 unsafe extern "system" fn OnOptionChange<Identity: IFontCache_Impl, const OFFSET: isize>(
9402 this: *mut core::ffi::c_void,
9403 ) -> windows_core::HRESULT {
9404 unsafe {
9405 let this: &Identity =
9406 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
9407 IFontCache_Impl::OnOptionChange(this).into()
9408 }
9409 }
9410 unsafe extern "system" fn GetJP_ISOControl<
9411 Identity: IFontCache_Impl,
9412 const OFFSET: isize,
9413 >(
9414 this: *mut core::ffi::c_void,
9415 pfusesio: *mut windows_core::BOOL,
9416 ) -> windows_core::HRESULT {
9417 unsafe {
9418 let this: &Identity =
9419 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
9420 IFontCache_Impl::GetJP_ISOControl(this, core::mem::transmute_copy(&pfusesio)).into()
9421 }
9422 }
9423 Self {
9424 base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
9425 Init: Init::<Identity, OFFSET>,
9426 GetFont: GetFont::<Identity, OFFSET>,
9427 OnOptionChange: OnOptionChange::<Identity, OFFSET>,
9428 GetJP_ISOControl: GetJP_ISOControl::<Identity, OFFSET>,
9429 }
9430 }
9431 pub fn matches(iid: &windows_core::GUID) -> bool {
9432 iid == &<IFontCache as windows_core::Interface>::IID
9433 }
9434}
9435impl windows_core::RuntimeName for IFontCache {}
9436windows_core::imp::define_interface!(
9437 IFontCacheNotify,
9438 IFontCacheNotify_Vtbl,
9439 0xb0d17fc5_7bc4_11d1_bdfa_00c04fa31009
9440);
9441windows_core::imp::interface_hierarchy!(IFontCacheNotify, windows_core::IUnknown);
9442impl IFontCacheNotify {
9443 pub unsafe fn OnPreFontChange(&self) -> windows_core::Result<()> {
9444 unsafe {
9445 (windows_core::Interface::vtable(self).OnPreFontChange)(
9446 windows_core::Interface::as_raw(self),
9447 )
9448 .ok()
9449 }
9450 }
9451 pub unsafe fn OnPostFontChange(&self) -> windows_core::Result<()> {
9452 unsafe {
9453 (windows_core::Interface::vtable(self).OnPostFontChange)(
9454 windows_core::Interface::as_raw(self),
9455 )
9456 .ok()
9457 }
9458 }
9459}
9460#[repr(C)]
9461#[doc(hidden)]
9462pub struct IFontCacheNotify_Vtbl {
9463 pub base__: windows_core::IUnknown_Vtbl,
9464 pub OnPreFontChange: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
9465 pub OnPostFontChange:
9466 unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
9467}
9468pub trait IFontCacheNotify_Impl: windows_core::IUnknownImpl {
9469 fn OnPreFontChange(&self) -> windows_core::Result<()>;
9470 fn OnPostFontChange(&self) -> windows_core::Result<()>;
9471}
9472impl IFontCacheNotify_Vtbl {
9473 pub const fn new<Identity: IFontCacheNotify_Impl, const OFFSET: isize>() -> Self {
9474 unsafe extern "system" fn OnPreFontChange<
9475 Identity: IFontCacheNotify_Impl,
9476 const OFFSET: isize,
9477 >(
9478 this: *mut core::ffi::c_void,
9479 ) -> windows_core::HRESULT {
9480 unsafe {
9481 let this: &Identity =
9482 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
9483 IFontCacheNotify_Impl::OnPreFontChange(this).into()
9484 }
9485 }
9486 unsafe extern "system" fn OnPostFontChange<
9487 Identity: IFontCacheNotify_Impl,
9488 const OFFSET: isize,
9489 >(
9490 this: *mut core::ffi::c_void,
9491 ) -> windows_core::HRESULT {
9492 unsafe {
9493 let this: &Identity =
9494 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
9495 IFontCacheNotify_Impl::OnPostFontChange(this).into()
9496 }
9497 }
9498 Self {
9499 base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
9500 OnPreFontChange: OnPreFontChange::<Identity, OFFSET>,
9501 OnPostFontChange: OnPostFontChange::<Identity, OFFSET>,
9502 }
9503 }
9504 pub fn matches(iid: &windows_core::GUID) -> bool {
9505 iid == &<IFontCacheNotify as windows_core::Interface>::IID
9506 }
9507}
9508impl windows_core::RuntimeName for IFontCacheNotify {}
9509windows_core::imp::define_interface!(
9510 IHashTable,
9511 IHashTable_Vtbl,
9512 0x64577981_86d7_11d1_bdfc_00c04fa31009
9513);
9514windows_core::imp::interface_hierarchy!(IHashTable, windows_core::IUnknown);
9515impl IHashTable {
9516 pub unsafe fn Init(&self, dwsize: u32, fdupekeys: bool) -> windows_core::Result<()> {
9517 unsafe {
9518 (windows_core::Interface::vtable(self).Init)(
9519 windows_core::Interface::as_raw(self),
9520 dwsize,
9521 fdupekeys.into(),
9522 )
9523 .ok()
9524 }
9525 }
9526 pub unsafe fn Insert<P0>(
9527 &self,
9528 psz: P0,
9529 pv: *mut core::ffi::c_void,
9530 dwflags: u32,
9531 ) -> windows_core::Result<()>
9532 where
9533 P0: windows_core::Param<windows_core::PCSTR>,
9534 {
9535 unsafe {
9536 (windows_core::Interface::vtable(self).Insert)(
9537 windows_core::Interface::as_raw(self),
9538 psz.param().abi(),
9539 pv as _,
9540 dwflags,
9541 )
9542 .ok()
9543 }
9544 }
9545 pub unsafe fn Replace<P0>(
9546 &self,
9547 psz: P0,
9548 pv: *mut core::ffi::c_void,
9549 ) -> windows_core::Result<()>
9550 where
9551 P0: windows_core::Param<windows_core::PCSTR>,
9552 {
9553 unsafe {
9554 (windows_core::Interface::vtable(self).Replace)(
9555 windows_core::Interface::as_raw(self),
9556 psz.param().abi(),
9557 pv as _,
9558 )
9559 .ok()
9560 }
9561 }
9562 pub unsafe fn Find<P0>(
9563 &self,
9564 psz: P0,
9565 fremove: bool,
9566 ppv: *mut *mut core::ffi::c_void,
9567 ) -> windows_core::Result<()>
9568 where
9569 P0: windows_core::Param<windows_core::PCSTR>,
9570 {
9571 unsafe {
9572 (windows_core::Interface::vtable(self).Find)(
9573 windows_core::Interface::as_raw(self),
9574 psz.param().abi(),
9575 fremove.into(),
9576 ppv as _,
9577 )
9578 .ok()
9579 }
9580 }
9581 pub unsafe fn Reset(&self) -> windows_core::Result<()> {
9582 unsafe {
9583 (windows_core::Interface::vtable(self).Reset)(windows_core::Interface::as_raw(self))
9584 .ok()
9585 }
9586 }
9587 pub unsafe fn Next(
9588 &self,
9589 cfetch: u32,
9590 prgpv: *mut *mut *mut core::ffi::c_void,
9591 pcfetched: *mut u32,
9592 ) -> windows_core::Result<()> {
9593 unsafe {
9594 (windows_core::Interface::vtable(self).Next)(
9595 windows_core::Interface::as_raw(self),
9596 cfetch,
9597 prgpv as _,
9598 pcfetched as _,
9599 )
9600 .ok()
9601 }
9602 }
9603}
9604#[repr(C)]
9605#[doc(hidden)]
9606pub struct IHashTable_Vtbl {
9607 pub base__: windows_core::IUnknown_Vtbl,
9608 pub Init: unsafe extern "system" fn(
9609 *mut core::ffi::c_void,
9610 u32,
9611 windows_core::BOOL,
9612 ) -> windows_core::HRESULT,
9613 pub Insert: unsafe extern "system" fn(
9614 *mut core::ffi::c_void,
9615 windows_core::PCSTR,
9616 *mut core::ffi::c_void,
9617 u32,
9618 ) -> windows_core::HRESULT,
9619 pub Replace: unsafe extern "system" fn(
9620 *mut core::ffi::c_void,
9621 windows_core::PCSTR,
9622 *mut core::ffi::c_void,
9623 ) -> windows_core::HRESULT,
9624 pub Find: unsafe extern "system" fn(
9625 *mut core::ffi::c_void,
9626 windows_core::PCSTR,
9627 windows_core::BOOL,
9628 *mut *mut core::ffi::c_void,
9629 ) -> windows_core::HRESULT,
9630 pub Reset: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
9631 pub Next: unsafe extern "system" fn(
9632 *mut core::ffi::c_void,
9633 u32,
9634 *mut *mut *mut core::ffi::c_void,
9635 *mut u32,
9636 ) -> windows_core::HRESULT,
9637}
9638pub trait IHashTable_Impl: windows_core::IUnknownImpl {
9639 fn Init(&self, dwsize: u32, fdupekeys: windows_core::BOOL) -> windows_core::Result<()>;
9640 fn Insert(
9641 &self,
9642 psz: &windows_core::PCSTR,
9643 pv: *mut core::ffi::c_void,
9644 dwflags: u32,
9645 ) -> windows_core::Result<()>;
9646 fn Replace(
9647 &self,
9648 psz: &windows_core::PCSTR,
9649 pv: *mut core::ffi::c_void,
9650 ) -> windows_core::Result<()>;
9651 fn Find(
9652 &self,
9653 psz: &windows_core::PCSTR,
9654 fremove: windows_core::BOOL,
9655 ppv: *mut *mut core::ffi::c_void,
9656 ) -> windows_core::Result<()>;
9657 fn Reset(&self) -> windows_core::Result<()>;
9658 fn Next(
9659 &self,
9660 cfetch: u32,
9661 prgpv: *mut *mut *mut core::ffi::c_void,
9662 pcfetched: *mut u32,
9663 ) -> windows_core::Result<()>;
9664}
9665impl IHashTable_Vtbl {
9666 pub const fn new<Identity: IHashTable_Impl, const OFFSET: isize>() -> Self {
9667 unsafe extern "system" fn Init<Identity: IHashTable_Impl, const OFFSET: isize>(
9668 this: *mut core::ffi::c_void,
9669 dwsize: u32,
9670 fdupekeys: windows_core::BOOL,
9671 ) -> windows_core::HRESULT {
9672 unsafe {
9673 let this: &Identity =
9674 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
9675 IHashTable_Impl::Init(
9676 this,
9677 core::mem::transmute_copy(&dwsize),
9678 core::mem::transmute_copy(&fdupekeys),
9679 )
9680 .into()
9681 }
9682 }
9683 unsafe extern "system" fn Insert<Identity: IHashTable_Impl, const OFFSET: isize>(
9684 this: *mut core::ffi::c_void,
9685 psz: windows_core::PCSTR,
9686 pv: *mut core::ffi::c_void,
9687 dwflags: u32,
9688 ) -> windows_core::HRESULT {
9689 unsafe {
9690 let this: &Identity =
9691 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
9692 IHashTable_Impl::Insert(
9693 this,
9694 core::mem::transmute(&psz),
9695 core::mem::transmute_copy(&pv),
9696 core::mem::transmute_copy(&dwflags),
9697 )
9698 .into()
9699 }
9700 }
9701 unsafe extern "system" fn Replace<Identity: IHashTable_Impl, const OFFSET: isize>(
9702 this: *mut core::ffi::c_void,
9703 psz: windows_core::PCSTR,
9704 pv: *mut core::ffi::c_void,
9705 ) -> windows_core::HRESULT {
9706 unsafe {
9707 let this: &Identity =
9708 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
9709 IHashTable_Impl::Replace(
9710 this,
9711 core::mem::transmute(&psz),
9712 core::mem::transmute_copy(&pv),
9713 )
9714 .into()
9715 }
9716 }
9717 unsafe extern "system" fn Find<Identity: IHashTable_Impl, const OFFSET: isize>(
9718 this: *mut core::ffi::c_void,
9719 psz: windows_core::PCSTR,
9720 fremove: windows_core::BOOL,
9721 ppv: *mut *mut core::ffi::c_void,
9722 ) -> windows_core::HRESULT {
9723 unsafe {
9724 let this: &Identity =
9725 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
9726 IHashTable_Impl::Find(
9727 this,
9728 core::mem::transmute(&psz),
9729 core::mem::transmute_copy(&fremove),
9730 core::mem::transmute_copy(&ppv),
9731 )
9732 .into()
9733 }
9734 }
9735 unsafe extern "system" fn Reset<Identity: IHashTable_Impl, const OFFSET: isize>(
9736 this: *mut core::ffi::c_void,
9737 ) -> windows_core::HRESULT {
9738 unsafe {
9739 let this: &Identity =
9740 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
9741 IHashTable_Impl::Reset(this).into()
9742 }
9743 }
9744 unsafe extern "system" fn Next<Identity: IHashTable_Impl, const OFFSET: isize>(
9745 this: *mut core::ffi::c_void,
9746 cfetch: u32,
9747 prgpv: *mut *mut *mut core::ffi::c_void,
9748 pcfetched: *mut u32,
9749 ) -> windows_core::HRESULT {
9750 unsafe {
9751 let this: &Identity =
9752 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
9753 IHashTable_Impl::Next(
9754 this,
9755 core::mem::transmute_copy(&cfetch),
9756 core::mem::transmute_copy(&prgpv),
9757 core::mem::transmute_copy(&pcfetched),
9758 )
9759 .into()
9760 }
9761 }
9762 Self {
9763 base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
9764 Init: Init::<Identity, OFFSET>,
9765 Insert: Insert::<Identity, OFFSET>,
9766 Replace: Replace::<Identity, OFFSET>,
9767 Find: Find::<Identity, OFFSET>,
9768 Reset: Reset::<Identity, OFFSET>,
9769 Next: Next::<Identity, OFFSET>,
9770 }
9771 }
9772 pub fn matches(iid: &windows_core::GUID) -> bool {
9773 iid == &<IHashTable as windows_core::Interface>::IID
9774 }
9775}
9776impl windows_core::RuntimeName for IHashTable {}
9777pub const ILM_BODYCSET: INETLANGMASK = INETLANGMASK(4i32);
9778pub const ILM_FAMILY: INETLANGMASK = INETLANGMASK(1i32);
9779pub const ILM_FIXEDFONT: INETLANGMASK = INETLANGMASK(32i32);
9780pub const ILM_HEADERCSET: INETLANGMASK = INETLANGMASK(8i32);
9781pub const ILM_NAME: INETLANGMASK = INETLANGMASK(2i32);
9782pub const ILM_VARIABLEFONT: INETLANGMASK = INETLANGMASK(64i32);
9783pub const ILM_WEBCSET: INETLANGMASK = INETLANGMASK(16i32);
9784windows_core::imp::define_interface!(
9785 IMAPIAdviseSink,
9786 IMAPIAdviseSink_Vtbl,
9787 0x00020302_0000_0000_c000_000000000046
9788);
9789windows_core::imp::interface_hierarchy!(IMAPIAdviseSink, windows_core::IUnknown);
9790impl IMAPIAdviseSink {
9791 pub unsafe fn OnNotify(&self, cnotif: u32, lpnotifications: *mut NOTIFICATION) -> u32 {
9792 unsafe {
9793 (windows_core::Interface::vtable(self).OnNotify)(
9794 windows_core::Interface::as_raw(self),
9795 cnotif,
9796 lpnotifications as _,
9797 )
9798 }
9799 }
9800}
9801#[repr(C)]
9802#[doc(hidden)]
9803pub struct IMAPIAdviseSink_Vtbl {
9804 pub base__: windows_core::IUnknown_Vtbl,
9805 pub OnNotify: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut NOTIFICATION) -> u32,
9806}
9807pub trait IMAPIAdviseSink_Impl: windows_core::IUnknownImpl {
9808 fn OnNotify(&self, cnotif: u32, lpnotifications: *mut NOTIFICATION) -> u32;
9809}
9810impl IMAPIAdviseSink_Vtbl {
9811 pub const fn new<Identity: IMAPIAdviseSink_Impl, const OFFSET: isize>() -> Self {
9812 unsafe extern "system" fn OnNotify<Identity: IMAPIAdviseSink_Impl, const OFFSET: isize>(
9813 this: *mut core::ffi::c_void,
9814 cnotif: u32,
9815 lpnotifications: *mut NOTIFICATION,
9816 ) -> u32 {
9817 unsafe {
9818 let this: &Identity =
9819 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
9820 IMAPIAdviseSink_Impl::OnNotify(
9821 this,
9822 core::mem::transmute_copy(&cnotif),
9823 core::mem::transmute_copy(&lpnotifications),
9824 )
9825 }
9826 }
9827 Self {
9828 base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
9829 OnNotify: OnNotify::<Identity, OFFSET>,
9830 }
9831 }
9832 pub fn matches(iid: &windows_core::GUID) -> bool {
9833 iid == &<IMAPIAdviseSink as windows_core::Interface>::IID
9834 }
9835}
9836impl windows_core::RuntimeName for IMAPIAdviseSink {}
9837pub const IMAPIAdviseSink_OnNotify: METHODS = METHODS(137i32);
9838windows_core::imp::define_interface!(
9839 IMAPIClientShutdown,
9840 IMAPIClientShutdown_Vtbl,
9841 0x00020397_0000_0000_c000_000000000046
9842);
9843windows_core::imp::interface_hierarchy!(IMAPIClientShutdown, windows_core::IUnknown);
9844impl IMAPIClientShutdown {
9845 pub unsafe fn QueryFastShutdown(&self) -> windows_core::Result<()> {
9846 unsafe {
9847 (windows_core::Interface::vtable(self).QueryFastShutdown)(
9848 windows_core::Interface::as_raw(self),
9849 )
9850 .ok()
9851 }
9852 }
9853 pub unsafe fn NotifyProcessShutdown(&self) -> windows_core::Result<()> {
9854 unsafe {
9855 (windows_core::Interface::vtable(self).NotifyProcessShutdown)(
9856 windows_core::Interface::as_raw(self),
9857 )
9858 .ok()
9859 }
9860 }
9861 pub unsafe fn DoFastShutdown(&self) -> windows_core::Result<()> {
9862 unsafe {
9863 (windows_core::Interface::vtable(self).DoFastShutdown)(windows_core::Interface::as_raw(
9864 self,
9865 ))
9866 .ok()
9867 }
9868 }
9869}
9870#[repr(C)]
9871#[doc(hidden)]
9872pub struct IMAPIClientShutdown_Vtbl {
9873 pub base__: windows_core::IUnknown_Vtbl,
9874 pub QueryFastShutdown:
9875 unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
9876 pub NotifyProcessShutdown:
9877 unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
9878 pub DoFastShutdown: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
9879}
9880pub trait IMAPIClientShutdown_Impl: windows_core::IUnknownImpl {
9881 fn QueryFastShutdown(&self) -> windows_core::Result<()>;
9882 fn NotifyProcessShutdown(&self) -> windows_core::Result<()>;
9883 fn DoFastShutdown(&self) -> windows_core::Result<()>;
9884}
9885impl IMAPIClientShutdown_Vtbl {
9886 pub const fn new<Identity: IMAPIClientShutdown_Impl, const OFFSET: isize>() -> Self {
9887 unsafe extern "system" fn QueryFastShutdown<
9888 Identity: IMAPIClientShutdown_Impl,
9889 const OFFSET: isize,
9890 >(
9891 this: *mut core::ffi::c_void,
9892 ) -> windows_core::HRESULT {
9893 unsafe {
9894 let this: &Identity =
9895 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
9896 IMAPIClientShutdown_Impl::QueryFastShutdown(this).into()
9897 }
9898 }
9899 unsafe extern "system" fn NotifyProcessShutdown<
9900 Identity: IMAPIClientShutdown_Impl,
9901 const OFFSET: isize,
9902 >(
9903 this: *mut core::ffi::c_void,
9904 ) -> windows_core::HRESULT {
9905 unsafe {
9906 let this: &Identity =
9907 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
9908 IMAPIClientShutdown_Impl::NotifyProcessShutdown(this).into()
9909 }
9910 }
9911 unsafe extern "system" fn DoFastShutdown<
9912 Identity: IMAPIClientShutdown_Impl,
9913 const OFFSET: isize,
9914 >(
9915 this: *mut core::ffi::c_void,
9916 ) -> windows_core::HRESULT {
9917 unsafe {
9918 let this: &Identity =
9919 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
9920 IMAPIClientShutdown_Impl::DoFastShutdown(this).into()
9921 }
9922 }
9923 Self {
9924 base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
9925 QueryFastShutdown: QueryFastShutdown::<Identity, OFFSET>,
9926 NotifyProcessShutdown: NotifyProcessShutdown::<Identity, OFFSET>,
9927 DoFastShutdown: DoFastShutdown::<Identity, OFFSET>,
9928 }
9929 }
9930 pub fn matches(iid: &windows_core::GUID) -> bool {
9931 iid == &<IMAPIClientShutdown as windows_core::Interface>::IID
9932 }
9933}
9934impl windows_core::RuntimeName for IMAPIClientShutdown {}
9935windows_core::imp::define_interface!(
9936 IMAPIContainer,
9937 IMAPIContainer_Vtbl,
9938 0x0002030b_0000_0000_c000_000000000046
9939);
9940impl core::ops::Deref for IMAPIContainer {
9941 type Target = IMAPIProp;
9942 fn deref(&self) -> &Self::Target {
9943 unsafe { core::mem::transmute(self) }
9944 }
9945}
9946windows_core::imp::interface_hierarchy!(IMAPIContainer, windows_core::IUnknown, IMAPIProp);
9947impl IMAPIContainer {
9948 pub unsafe fn GetContentsTable(&self, ulflags: u32) -> windows_core::Result<IMAPITable> {
9949 unsafe {
9950 let mut result__ = core::mem::zeroed();
9951 (windows_core::Interface::vtable(self).GetContentsTable)(
9952 windows_core::Interface::as_raw(self),
9953 ulflags,
9954 &mut result__,
9955 )
9956 .and_then(|| windows_core::Type::from_abi(result__))
9957 }
9958 }
9959 pub unsafe fn GetHierarchyTable(&self, ulflags: u32) -> windows_core::Result<IMAPITable> {
9960 unsafe {
9961 let mut result__ = core::mem::zeroed();
9962 (windows_core::Interface::vtable(self).GetHierarchyTable)(
9963 windows_core::Interface::as_raw(self),
9964 ulflags,
9965 &mut result__,
9966 )
9967 .and_then(|| windows_core::Type::from_abi(result__))
9968 }
9969 }
9970 pub unsafe fn OpenEntry(
9971 &self,
9972 cbentryid: u32,
9973 lpentryid: *mut ENTRYID,
9974 lpinterface: *mut windows_core::GUID,
9975 ulflags: u32,
9976 lpulobjtype: *mut u32,
9977 lppunk: *mut Option<windows_core::IUnknown>,
9978 ) -> windows_core::Result<()> {
9979 unsafe {
9980 (windows_core::Interface::vtable(self).OpenEntry)(
9981 windows_core::Interface::as_raw(self),
9982 cbentryid,
9983 lpentryid as _,
9984 lpinterface as _,
9985 ulflags,
9986 lpulobjtype as _,
9987 core::mem::transmute(lppunk),
9988 )
9989 .ok()
9990 }
9991 }
9992 pub unsafe fn SetSearchCriteria(
9993 &self,
9994 lprestriction: *mut SRestriction,
9995 lpcontainerlist: *mut SBinaryArray,
9996 ulsearchflags: u32,
9997 ) -> windows_core::Result<()> {
9998 unsafe {
9999 (windows_core::Interface::vtable(self).SetSearchCriteria)(
10000 windows_core::Interface::as_raw(self),
10001 lprestriction as _,
10002 lpcontainerlist as _,
10003 ulsearchflags,
10004 )
10005 .ok()
10006 }
10007 }
10008 pub unsafe fn GetSearchCriteria(
10009 &self,
10010 ulflags: u32,
10011 lpprestriction: *mut *mut SRestriction,
10012 lppcontainerlist: *mut *mut SBinaryArray,
10013 lpulsearchstate: *mut u32,
10014 ) -> windows_core::Result<()> {
10015 unsafe {
10016 (windows_core::Interface::vtable(self).GetSearchCriteria)(
10017 windows_core::Interface::as_raw(self),
10018 ulflags,
10019 lpprestriction as _,
10020 lppcontainerlist as _,
10021 lpulsearchstate as _,
10022 )
10023 .ok()
10024 }
10025 }
10026}
10027#[repr(C)]
10028#[doc(hidden)]
10029pub struct IMAPIContainer_Vtbl {
10030 pub base__: IMAPIProp_Vtbl,
10031 pub GetContentsTable: unsafe extern "system" fn(
10032 *mut core::ffi::c_void,
10033 u32,
10034 *mut *mut core::ffi::c_void,
10035 ) -> windows_core::HRESULT,
10036 pub GetHierarchyTable: unsafe extern "system" fn(
10037 *mut core::ffi::c_void,
10038 u32,
10039 *mut *mut core::ffi::c_void,
10040 ) -> windows_core::HRESULT,
10041 pub OpenEntry: unsafe extern "system" fn(
10042 *mut core::ffi::c_void,
10043 u32,
10044 *mut ENTRYID,
10045 *mut windows_core::GUID,
10046 u32,
10047 *mut u32,
10048 *mut *mut core::ffi::c_void,
10049 ) -> windows_core::HRESULT,
10050 pub SetSearchCriteria: unsafe extern "system" fn(
10051 *mut core::ffi::c_void,
10052 *mut SRestriction,
10053 *mut SBinaryArray,
10054 u32,
10055 ) -> windows_core::HRESULT,
10056 pub GetSearchCriteria: unsafe extern "system" fn(
10057 *mut core::ffi::c_void,
10058 u32,
10059 *mut *mut SRestriction,
10060 *mut *mut SBinaryArray,
10061 *mut u32,
10062 ) -> windows_core::HRESULT,
10063}
10064pub trait IMAPIContainer_Impl: IMAPIProp_Impl {
10065 fn GetContentsTable(&self, ulflags: u32) -> windows_core::Result<IMAPITable>;
10066 fn GetHierarchyTable(&self, ulflags: u32) -> windows_core::Result<IMAPITable>;
10067 fn OpenEntry(
10068 &self,
10069 cbentryid: u32,
10070 lpentryid: *mut ENTRYID,
10071 lpinterface: *mut windows_core::GUID,
10072 ulflags: u32,
10073 lpulobjtype: *mut u32,
10074 lppunk: windows_core::OutRef<windows_core::IUnknown>,
10075 ) -> windows_core::Result<()>;
10076 fn SetSearchCriteria(
10077 &self,
10078 lprestriction: *mut SRestriction,
10079 lpcontainerlist: *mut SBinaryArray,
10080 ulsearchflags: u32,
10081 ) -> windows_core::Result<()>;
10082 fn GetSearchCriteria(
10083 &self,
10084 ulflags: u32,
10085 lpprestriction: *mut *mut SRestriction,
10086 lppcontainerlist: *mut *mut SBinaryArray,
10087 lpulsearchstate: *mut u32,
10088 ) -> windows_core::Result<()>;
10089}
10090impl IMAPIContainer_Vtbl {
10091 pub const fn new<Identity: IMAPIContainer_Impl, const OFFSET: isize>() -> Self {
10092 unsafe extern "system" fn GetContentsTable<
10093 Identity: IMAPIContainer_Impl,
10094 const OFFSET: isize,
10095 >(
10096 this: *mut core::ffi::c_void,
10097 ulflags: u32,
10098 lpptable: *mut *mut core::ffi::c_void,
10099 ) -> windows_core::HRESULT {
10100 unsafe {
10101 let this: &Identity =
10102 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
10103 match IMAPIContainer_Impl::GetContentsTable(
10104 this,
10105 core::mem::transmute_copy(&ulflags),
10106 ) {
10107 Ok(ok__) => {
10108 lpptable.write(core::mem::transmute(ok__));
10109 windows_core::HRESULT(0)
10110 }
10111 Err(err) => err.into(),
10112 }
10113 }
10114 }
10115 unsafe extern "system" fn GetHierarchyTable<
10116 Identity: IMAPIContainer_Impl,
10117 const OFFSET: isize,
10118 >(
10119 this: *mut core::ffi::c_void,
10120 ulflags: u32,
10121 lpptable: *mut *mut core::ffi::c_void,
10122 ) -> windows_core::HRESULT {
10123 unsafe {
10124 let this: &Identity =
10125 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
10126 match IMAPIContainer_Impl::GetHierarchyTable(
10127 this,
10128 core::mem::transmute_copy(&ulflags),
10129 ) {
10130 Ok(ok__) => {
10131 lpptable.write(core::mem::transmute(ok__));
10132 windows_core::HRESULT(0)
10133 }
10134 Err(err) => err.into(),
10135 }
10136 }
10137 }
10138 unsafe extern "system" fn OpenEntry<Identity: IMAPIContainer_Impl, const OFFSET: isize>(
10139 this: *mut core::ffi::c_void,
10140 cbentryid: u32,
10141 lpentryid: *mut ENTRYID,
10142 lpinterface: *mut windows_core::GUID,
10143 ulflags: u32,
10144 lpulobjtype: *mut u32,
10145 lppunk: *mut *mut core::ffi::c_void,
10146 ) -> windows_core::HRESULT {
10147 unsafe {
10148 let this: &Identity =
10149 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
10150 IMAPIContainer_Impl::OpenEntry(
10151 this,
10152 core::mem::transmute_copy(&cbentryid),
10153 core::mem::transmute_copy(&lpentryid),
10154 core::mem::transmute_copy(&lpinterface),
10155 core::mem::transmute_copy(&ulflags),
10156 core::mem::transmute_copy(&lpulobjtype),
10157 core::mem::transmute_copy(&lppunk),
10158 )
10159 .into()
10160 }
10161 }
10162 unsafe extern "system" fn SetSearchCriteria<
10163 Identity: IMAPIContainer_Impl,
10164 const OFFSET: isize,
10165 >(
10166 this: *mut core::ffi::c_void,
10167 lprestriction: *mut SRestriction,
10168 lpcontainerlist: *mut SBinaryArray,
10169 ulsearchflags: u32,
10170 ) -> windows_core::HRESULT {
10171 unsafe {
10172 let this: &Identity =
10173 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
10174 IMAPIContainer_Impl::SetSearchCriteria(
10175 this,
10176 core::mem::transmute_copy(&lprestriction),
10177 core::mem::transmute_copy(&lpcontainerlist),
10178 core::mem::transmute_copy(&ulsearchflags),
10179 )
10180 .into()
10181 }
10182 }
10183 unsafe extern "system" fn GetSearchCriteria<
10184 Identity: IMAPIContainer_Impl,
10185 const OFFSET: isize,
10186 >(
10187 this: *mut core::ffi::c_void,
10188 ulflags: u32,
10189 lpprestriction: *mut *mut SRestriction,
10190 lppcontainerlist: *mut *mut SBinaryArray,
10191 lpulsearchstate: *mut u32,
10192 ) -> windows_core::HRESULT {
10193 unsafe {
10194 let this: &Identity =
10195 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
10196 IMAPIContainer_Impl::GetSearchCriteria(
10197 this,
10198 core::mem::transmute_copy(&ulflags),
10199 core::mem::transmute_copy(&lpprestriction),
10200 core::mem::transmute_copy(&lppcontainerlist),
10201 core::mem::transmute_copy(&lpulsearchstate),
10202 )
10203 .into()
10204 }
10205 }
10206 Self {
10207 base__: IMAPIProp_Vtbl::new::<Identity, OFFSET>(),
10208 GetContentsTable: GetContentsTable::<Identity, OFFSET>,
10209 GetHierarchyTable: GetHierarchyTable::<Identity, OFFSET>,
10210 OpenEntry: OpenEntry::<Identity, OFFSET>,
10211 SetSearchCriteria: SetSearchCriteria::<Identity, OFFSET>,
10212 GetSearchCriteria: GetSearchCriteria::<Identity, OFFSET>,
10213 }
10214 }
10215 pub fn matches(iid: &windows_core::GUID) -> bool {
10216 iid == &<IMAPIContainer as windows_core::Interface>::IID
10217 || iid == &<IMAPIProp as windows_core::Interface>::IID
10218 }
10219}
10220impl windows_core::RuntimeName for IMAPIContainer {}
10221pub const IMAPIContainer_GetContentsTable: METHODS = METHODS(37i32);
10222pub const IMAPIContainer_GetHierarchyTable: METHODS = METHODS(38i32);
10223pub const IMAPIContainer_GetSearchCriteria: METHODS = METHODS(41i32);
10224pub const IMAPIContainer_OpenEntry: METHODS = METHODS(39i32);
10225pub const IMAPIContainer_SetSearchCriteria: METHODS = METHODS(40i32);
10226windows_core::imp::define_interface!(
10227 IMAPIControl,
10228 IMAPIControl_Vtbl,
10229 0x0002031b_0000_0000_c000_000000000046
10230);
10231windows_core::imp::interface_hierarchy!(IMAPIControl, windows_core::IUnknown);
10232impl IMAPIControl {
10233 pub unsafe fn GetLastError(
10234 &self,
10235 hresult: windows_core::HRESULT,
10236 ulflags: u32,
10237 lppmapierror: *mut *mut MAPIERROR,
10238 ) -> windows_core::Result<()> {
10239 unsafe {
10240 (windows_core::Interface::vtable(self).GetLastError)(
10241 windows_core::Interface::as_raw(self),
10242 hresult,
10243 ulflags,
10244 lppmapierror as _,
10245 )
10246 .ok()
10247 }
10248 }
10249 pub unsafe fn Activate(&self, ulflags: u32, uluiparam: usize) -> windows_core::Result<()> {
10250 unsafe {
10251 (windows_core::Interface::vtable(self).Activate)(
10252 windows_core::Interface::as_raw(self),
10253 ulflags,
10254 uluiparam,
10255 )
10256 .ok()
10257 }
10258 }
10259 pub unsafe fn GetState(&self, ulflags: u32, lpulstate: *mut u32) -> windows_core::Result<()> {
10260 unsafe {
10261 (windows_core::Interface::vtable(self).GetState)(
10262 windows_core::Interface::as_raw(self),
10263 ulflags,
10264 lpulstate as _,
10265 )
10266 .ok()
10267 }
10268 }
10269}
10270#[repr(C)]
10271#[doc(hidden)]
10272pub struct IMAPIControl_Vtbl {
10273 pub base__: windows_core::IUnknown_Vtbl,
10274 pub GetLastError: unsafe extern "system" fn(
10275 *mut core::ffi::c_void,
10276 windows_core::HRESULT,
10277 u32,
10278 *mut *mut MAPIERROR,
10279 ) -> windows_core::HRESULT,
10280 pub Activate:
10281 unsafe extern "system" fn(*mut core::ffi::c_void, u32, usize) -> windows_core::HRESULT,
10282 pub GetState:
10283 unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
10284}
10285pub trait IMAPIControl_Impl: windows_core::IUnknownImpl {
10286 fn GetLastError(
10287 &self,
10288 hresult: windows_core::HRESULT,
10289 ulflags: u32,
10290 lppmapierror: *mut *mut MAPIERROR,
10291 ) -> windows_core::Result<()>;
10292 fn Activate(&self, ulflags: u32, uluiparam: usize) -> windows_core::Result<()>;
10293 fn GetState(&self, ulflags: u32, lpulstate: *mut u32) -> windows_core::Result<()>;
10294}
10295impl IMAPIControl_Vtbl {
10296 pub const fn new<Identity: IMAPIControl_Impl, const OFFSET: isize>() -> Self {
10297 unsafe extern "system" fn GetLastError<Identity: IMAPIControl_Impl, const OFFSET: isize>(
10298 this: *mut core::ffi::c_void,
10299 hresult: windows_core::HRESULT,
10300 ulflags: u32,
10301 lppmapierror: *mut *mut MAPIERROR,
10302 ) -> windows_core::HRESULT {
10303 unsafe {
10304 let this: &Identity =
10305 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
10306 IMAPIControl_Impl::GetLastError(
10307 this,
10308 core::mem::transmute_copy(&hresult),
10309 core::mem::transmute_copy(&ulflags),
10310 core::mem::transmute_copy(&lppmapierror),
10311 )
10312 .into()
10313 }
10314 }
10315 unsafe extern "system" fn Activate<Identity: IMAPIControl_Impl, const OFFSET: isize>(
10316 this: *mut core::ffi::c_void,
10317 ulflags: u32,
10318 uluiparam: usize,
10319 ) -> windows_core::HRESULT {
10320 unsafe {
10321 let this: &Identity =
10322 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
10323 IMAPIControl_Impl::Activate(
10324 this,
10325 core::mem::transmute_copy(&ulflags),
10326 core::mem::transmute_copy(&uluiparam),
10327 )
10328 .into()
10329 }
10330 }
10331 unsafe extern "system" fn GetState<Identity: IMAPIControl_Impl, const OFFSET: isize>(
10332 this: *mut core::ffi::c_void,
10333 ulflags: u32,
10334 lpulstate: *mut u32,
10335 ) -> windows_core::HRESULT {
10336 unsafe {
10337 let this: &Identity =
10338 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
10339 IMAPIControl_Impl::GetState(
10340 this,
10341 core::mem::transmute_copy(&ulflags),
10342 core::mem::transmute_copy(&lpulstate),
10343 )
10344 .into()
10345 }
10346 }
10347 Self {
10348 base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
10349 GetLastError: GetLastError::<Identity, OFFSET>,
10350 Activate: Activate::<Identity, OFFSET>,
10351 GetState: GetState::<Identity, OFFSET>,
10352 }
10353 }
10354 pub fn matches(iid: &windows_core::GUID) -> bool {
10355 iid == &<IMAPIControl as windows_core::Interface>::IID
10356 }
10357}
10358impl windows_core::RuntimeName for IMAPIControl {}
10359pub const IMAPIControl_Activate: METHODS = METHODS(120i32);
10360pub const IMAPIControl_GetLastError: METHODS = METHODS(119i32);
10361pub const IMAPIControl_GetState: METHODS = METHODS(121i32);
10362windows_core::imp::define_interface!(
10363 IMAPIFolder,
10364 IMAPIFolder_Vtbl,
10365 0x0002030c_0000_0000_c000_000000000046
10366);
10367impl core::ops::Deref for IMAPIFolder {
10368 type Target = IMAPIContainer;
10369 fn deref(&self) -> &Self::Target {
10370 unsafe { core::mem::transmute(self) }
10371 }
10372}
10373windows_core::imp::interface_hierarchy!(
10374 IMAPIFolder,
10375 windows_core::IUnknown,
10376 IMAPIProp,
10377 IMAPIContainer
10378);
10379impl IMAPIFolder {
10380 pub unsafe fn CreateMessage(
10381 &self,
10382 lpinterface: *mut windows_core::GUID,
10383 ulflags: u32,
10384 lppmessage: *mut Option<IMessage>,
10385 ) -> windows_core::Result<()> {
10386 unsafe {
10387 (windows_core::Interface::vtable(self).CreateMessage)(
10388 windows_core::Interface::as_raw(self),
10389 lpinterface as _,
10390 ulflags,
10391 core::mem::transmute(lppmessage),
10392 )
10393 .ok()
10394 }
10395 }
10396 pub unsafe fn CopyMessages<P4>(
10397 &self,
10398 lpmsglist: *mut SBinaryArray,
10399 lpinterface: *mut windows_core::GUID,
10400 lpdestfolder: *mut core::ffi::c_void,
10401 uluiparam: usize,
10402 lpprogress: P4,
10403 ulflags: u32,
10404 ) -> windows_core::Result<()>
10405 where
10406 P4: windows_core::Param<IMAPIProgress>,
10407 {
10408 unsafe {
10409 (windows_core::Interface::vtable(self).CopyMessages)(
10410 windows_core::Interface::as_raw(self),
10411 lpmsglist as _,
10412 lpinterface as _,
10413 lpdestfolder as _,
10414 uluiparam,
10415 lpprogress.param().abi(),
10416 ulflags,
10417 )
10418 .ok()
10419 }
10420 }
10421 pub unsafe fn DeleteMessages<P2>(
10422 &self,
10423 lpmsglist: *mut SBinaryArray,
10424 uluiparam: usize,
10425 lpprogress: P2,
10426 ulflags: u32,
10427 ) -> windows_core::Result<()>
10428 where
10429 P2: windows_core::Param<IMAPIProgress>,
10430 {
10431 unsafe {
10432 (windows_core::Interface::vtable(self).DeleteMessages)(
10433 windows_core::Interface::as_raw(self),
10434 lpmsglist as _,
10435 uluiparam,
10436 lpprogress.param().abi(),
10437 ulflags,
10438 )
10439 .ok()
10440 }
10441 }
10442 pub unsafe fn CreateFolder(
10443 &self,
10444 ulfoldertype: u32,
10445 lpszfoldername: *mut i8,
10446 lpszfoldercomment: *mut i8,
10447 lpinterface: *mut windows_core::GUID,
10448 ulflags: u32,
10449 lppfolder: *mut Option<IMAPIFolder>,
10450 ) -> windows_core::Result<()> {
10451 unsafe {
10452 (windows_core::Interface::vtable(self).CreateFolder)(
10453 windows_core::Interface::as_raw(self),
10454 ulfoldertype,
10455 lpszfoldername as _,
10456 lpszfoldercomment as _,
10457 lpinterface as _,
10458 ulflags,
10459 core::mem::transmute(lppfolder),
10460 )
10461 .ok()
10462 }
10463 }
10464 pub unsafe fn CopyFolder<P6>(
10465 &self,
10466 cbentryid: u32,
10467 lpentryid: *mut ENTRYID,
10468 lpinterface: *mut windows_core::GUID,
10469 lpdestfolder: *mut core::ffi::c_void,
10470 lpsznewfoldername: *mut i8,
10471 uluiparam: usize,
10472 lpprogress: P6,
10473 ulflags: u32,
10474 ) -> windows_core::Result<()>
10475 where
10476 P6: windows_core::Param<IMAPIProgress>,
10477 {
10478 unsafe {
10479 (windows_core::Interface::vtable(self).CopyFolder)(
10480 windows_core::Interface::as_raw(self),
10481 cbentryid,
10482 lpentryid as _,
10483 lpinterface as _,
10484 lpdestfolder as _,
10485 lpsznewfoldername as _,
10486 uluiparam,
10487 lpprogress.param().abi(),
10488 ulflags,
10489 )
10490 .ok()
10491 }
10492 }
10493 pub unsafe fn DeleteFolder<P3>(
10494 &self,
10495 cbentryid: u32,
10496 lpentryid: *mut ENTRYID,
10497 uluiparam: usize,
10498 lpprogress: P3,
10499 ulflags: u32,
10500 ) -> windows_core::Result<()>
10501 where
10502 P3: windows_core::Param<IMAPIProgress>,
10503 {
10504 unsafe {
10505 (windows_core::Interface::vtable(self).DeleteFolder)(
10506 windows_core::Interface::as_raw(self),
10507 cbentryid,
10508 lpentryid as _,
10509 uluiparam,
10510 lpprogress.param().abi(),
10511 ulflags,
10512 )
10513 .ok()
10514 }
10515 }
10516 pub unsafe fn SetReadFlags<P2>(
10517 &self,
10518 lpmsglist: *mut SBinaryArray,
10519 uluiparam: usize,
10520 lpprogress: P2,
10521 ulflags: u32,
10522 ) -> windows_core::Result<()>
10523 where
10524 P2: windows_core::Param<IMAPIProgress>,
10525 {
10526 unsafe {
10527 (windows_core::Interface::vtable(self).SetReadFlags)(
10528 windows_core::Interface::as_raw(self),
10529 lpmsglist as _,
10530 uluiparam,
10531 lpprogress.param().abi(),
10532 ulflags,
10533 )
10534 .ok()
10535 }
10536 }
10537 pub unsafe fn GetMessageStatus(
10538 &self,
10539 cbentryid: u32,
10540 lpentryid: *mut ENTRYID,
10541 ulflags: u32,
10542 lpulmessagestatus: *mut u32,
10543 ) -> windows_core::Result<()> {
10544 unsafe {
10545 (windows_core::Interface::vtable(self).GetMessageStatus)(
10546 windows_core::Interface::as_raw(self),
10547 cbentryid,
10548 lpentryid as _,
10549 ulflags,
10550 lpulmessagestatus as _,
10551 )
10552 .ok()
10553 }
10554 }
10555 pub unsafe fn SetMessageStatus(
10556 &self,
10557 cbentryid: u32,
10558 lpentryid: *mut ENTRYID,
10559 ulnewstatus: u32,
10560 ulnewstatusmask: u32,
10561 lpuloldstatus: *mut u32,
10562 ) -> windows_core::Result<()> {
10563 unsafe {
10564 (windows_core::Interface::vtable(self).SetMessageStatus)(
10565 windows_core::Interface::as_raw(self),
10566 cbentryid,
10567 lpentryid as _,
10568 ulnewstatus,
10569 ulnewstatusmask,
10570 lpuloldstatus as _,
10571 )
10572 .ok()
10573 }
10574 }
10575 pub unsafe fn SaveContentsSort(
10576 &self,
10577 lpsortcriteria: *mut SSortOrderSet,
10578 ulflags: u32,
10579 ) -> windows_core::Result<()> {
10580 unsafe {
10581 (windows_core::Interface::vtable(self).SaveContentsSort)(
10582 windows_core::Interface::as_raw(self),
10583 lpsortcriteria as _,
10584 ulflags,
10585 )
10586 .ok()
10587 }
10588 }
10589 pub unsafe fn EmptyFolder<P1>(
10590 &self,
10591 uluiparam: usize,
10592 lpprogress: P1,
10593 ulflags: u32,
10594 ) -> windows_core::Result<()>
10595 where
10596 P1: windows_core::Param<IMAPIProgress>,
10597 {
10598 unsafe {
10599 (windows_core::Interface::vtable(self).EmptyFolder)(
10600 windows_core::Interface::as_raw(self),
10601 uluiparam,
10602 lpprogress.param().abi(),
10603 ulflags,
10604 )
10605 .ok()
10606 }
10607 }
10608}
10609#[repr(C)]
10610#[doc(hidden)]
10611pub struct IMAPIFolder_Vtbl {
10612 pub base__: IMAPIContainer_Vtbl,
10613 pub CreateMessage: unsafe extern "system" fn(
10614 *mut core::ffi::c_void,
10615 *mut windows_core::GUID,
10616 u32,
10617 *mut *mut core::ffi::c_void,
10618 ) -> windows_core::HRESULT,
10619 pub CopyMessages: unsafe extern "system" fn(
10620 *mut core::ffi::c_void,
10621 *mut SBinaryArray,
10622 *mut windows_core::GUID,
10623 *mut core::ffi::c_void,
10624 usize,
10625 *mut core::ffi::c_void,
10626 u32,
10627 ) -> windows_core::HRESULT,
10628 pub DeleteMessages: unsafe extern "system" fn(
10629 *mut core::ffi::c_void,
10630 *mut SBinaryArray,
10631 usize,
10632 *mut core::ffi::c_void,
10633 u32,
10634 ) -> windows_core::HRESULT,
10635 pub CreateFolder: unsafe extern "system" fn(
10636 *mut core::ffi::c_void,
10637 u32,
10638 *mut i8,
10639 *mut i8,
10640 *mut windows_core::GUID,
10641 u32,
10642 *mut *mut core::ffi::c_void,
10643 ) -> windows_core::HRESULT,
10644 pub CopyFolder: unsafe extern "system" fn(
10645 *mut core::ffi::c_void,
10646 u32,
10647 *mut ENTRYID,
10648 *mut windows_core::GUID,
10649 *mut core::ffi::c_void,
10650 *mut i8,
10651 usize,
10652 *mut core::ffi::c_void,
10653 u32,
10654 ) -> windows_core::HRESULT,
10655 pub DeleteFolder: unsafe extern "system" fn(
10656 *mut core::ffi::c_void,
10657 u32,
10658 *mut ENTRYID,
10659 usize,
10660 *mut core::ffi::c_void,
10661 u32,
10662 ) -> windows_core::HRESULT,
10663 pub SetReadFlags: unsafe extern "system" fn(
10664 *mut core::ffi::c_void,
10665 *mut SBinaryArray,
10666 usize,
10667 *mut core::ffi::c_void,
10668 u32,
10669 ) -> windows_core::HRESULT,
10670 pub GetMessageStatus: unsafe extern "system" fn(
10671 *mut core::ffi::c_void,
10672 u32,
10673 *mut ENTRYID,
10674 u32,
10675 *mut u32,
10676 ) -> windows_core::HRESULT,
10677 pub SetMessageStatus: unsafe extern "system" fn(
10678 *mut core::ffi::c_void,
10679 u32,
10680 *mut ENTRYID,
10681 u32,
10682 u32,
10683 *mut u32,
10684 ) -> windows_core::HRESULT,
10685 pub SaveContentsSort: unsafe extern "system" fn(
10686 *mut core::ffi::c_void,
10687 *mut SSortOrderSet,
10688 u32,
10689 ) -> windows_core::HRESULT,
10690 pub EmptyFolder: unsafe extern "system" fn(
10691 *mut core::ffi::c_void,
10692 usize,
10693 *mut core::ffi::c_void,
10694 u32,
10695 ) -> windows_core::HRESULT,
10696}
10697pub trait IMAPIFolder_Impl: IMAPIContainer_Impl {
10698 fn CreateMessage(
10699 &self,
10700 lpinterface: *mut windows_core::GUID,
10701 ulflags: u32,
10702 lppmessage: windows_core::OutRef<IMessage>,
10703 ) -> windows_core::Result<()>;
10704 fn CopyMessages(
10705 &self,
10706 lpmsglist: *mut SBinaryArray,
10707 lpinterface: *mut windows_core::GUID,
10708 lpdestfolder: *mut core::ffi::c_void,
10709 uluiparam: usize,
10710 lpprogress: windows_core::Ref<IMAPIProgress>,
10711 ulflags: u32,
10712 ) -> windows_core::Result<()>;
10713 fn DeleteMessages(
10714 &self,
10715 lpmsglist: *mut SBinaryArray,
10716 uluiparam: usize,
10717 lpprogress: windows_core::Ref<IMAPIProgress>,
10718 ulflags: u32,
10719 ) -> windows_core::Result<()>;
10720 fn CreateFolder(
10721 &self,
10722 ulfoldertype: u32,
10723 lpszfoldername: *mut i8,
10724 lpszfoldercomment: *mut i8,
10725 lpinterface: *mut windows_core::GUID,
10726 ulflags: u32,
10727 lppfolder: windows_core::OutRef<IMAPIFolder>,
10728 ) -> windows_core::Result<()>;
10729 fn CopyFolder(
10730 &self,
10731 cbentryid: u32,
10732 lpentryid: *mut ENTRYID,
10733 lpinterface: *mut windows_core::GUID,
10734 lpdestfolder: *mut core::ffi::c_void,
10735 lpsznewfoldername: *mut i8,
10736 uluiparam: usize,
10737 lpprogress: windows_core::Ref<IMAPIProgress>,
10738 ulflags: u32,
10739 ) -> windows_core::Result<()>;
10740 fn DeleteFolder(
10741 &self,
10742 cbentryid: u32,
10743 lpentryid: *mut ENTRYID,
10744 uluiparam: usize,
10745 lpprogress: windows_core::Ref<IMAPIProgress>,
10746 ulflags: u32,
10747 ) -> windows_core::Result<()>;
10748 fn SetReadFlags(
10749 &self,
10750 lpmsglist: *mut SBinaryArray,
10751 uluiparam: usize,
10752 lpprogress: windows_core::Ref<IMAPIProgress>,
10753 ulflags: u32,
10754 ) -> windows_core::Result<()>;
10755 fn GetMessageStatus(
10756 &self,
10757 cbentryid: u32,
10758 lpentryid: *mut ENTRYID,
10759 ulflags: u32,
10760 lpulmessagestatus: *mut u32,
10761 ) -> windows_core::Result<()>;
10762 fn SetMessageStatus(
10763 &self,
10764 cbentryid: u32,
10765 lpentryid: *mut ENTRYID,
10766 ulnewstatus: u32,
10767 ulnewstatusmask: u32,
10768 lpuloldstatus: *mut u32,
10769 ) -> windows_core::Result<()>;
10770 fn SaveContentsSort(
10771 &self,
10772 lpsortcriteria: *mut SSortOrderSet,
10773 ulflags: u32,
10774 ) -> windows_core::Result<()>;
10775 fn EmptyFolder(
10776 &self,
10777 uluiparam: usize,
10778 lpprogress: windows_core::Ref<IMAPIProgress>,
10779 ulflags: u32,
10780 ) -> windows_core::Result<()>;
10781}
10782impl IMAPIFolder_Vtbl {
10783 pub const fn new<Identity: IMAPIFolder_Impl, const OFFSET: isize>() -> Self {
10784 unsafe extern "system" fn CreateMessage<Identity: IMAPIFolder_Impl, const OFFSET: isize>(
10785 this: *mut core::ffi::c_void,
10786 lpinterface: *mut windows_core::GUID,
10787 ulflags: u32,
10788 lppmessage: *mut *mut core::ffi::c_void,
10789 ) -> windows_core::HRESULT {
10790 unsafe {
10791 let this: &Identity =
10792 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
10793 IMAPIFolder_Impl::CreateMessage(
10794 this,
10795 core::mem::transmute_copy(&lpinterface),
10796 core::mem::transmute_copy(&ulflags),
10797 core::mem::transmute_copy(&lppmessage),
10798 )
10799 .into()
10800 }
10801 }
10802 unsafe extern "system" fn CopyMessages<Identity: IMAPIFolder_Impl, const OFFSET: isize>(
10803 this: *mut core::ffi::c_void,
10804 lpmsglist: *mut SBinaryArray,
10805 lpinterface: *mut windows_core::GUID,
10806 lpdestfolder: *mut core::ffi::c_void,
10807 uluiparam: usize,
10808 lpprogress: *mut core::ffi::c_void,
10809 ulflags: u32,
10810 ) -> windows_core::HRESULT {
10811 unsafe {
10812 let this: &Identity =
10813 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
10814 IMAPIFolder_Impl::CopyMessages(
10815 this,
10816 core::mem::transmute_copy(&lpmsglist),
10817 core::mem::transmute_copy(&lpinterface),
10818 core::mem::transmute_copy(&lpdestfolder),
10819 core::mem::transmute_copy(&uluiparam),
10820 core::mem::transmute_copy(&lpprogress),
10821 core::mem::transmute_copy(&ulflags),
10822 )
10823 .into()
10824 }
10825 }
10826 unsafe extern "system" fn DeleteMessages<
10827 Identity: IMAPIFolder_Impl,
10828 const OFFSET: isize,
10829 >(
10830 this: *mut core::ffi::c_void,
10831 lpmsglist: *mut SBinaryArray,
10832 uluiparam: usize,
10833 lpprogress: *mut core::ffi::c_void,
10834 ulflags: u32,
10835 ) -> windows_core::HRESULT {
10836 unsafe {
10837 let this: &Identity =
10838 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
10839 IMAPIFolder_Impl::DeleteMessages(
10840 this,
10841 core::mem::transmute_copy(&lpmsglist),
10842 core::mem::transmute_copy(&uluiparam),
10843 core::mem::transmute_copy(&lpprogress),
10844 core::mem::transmute_copy(&ulflags),
10845 )
10846 .into()
10847 }
10848 }
10849 unsafe extern "system" fn CreateFolder<Identity: IMAPIFolder_Impl, const OFFSET: isize>(
10850 this: *mut core::ffi::c_void,
10851 ulfoldertype: u32,
10852 lpszfoldername: *mut i8,
10853 lpszfoldercomment: *mut i8,
10854 lpinterface: *mut windows_core::GUID,
10855 ulflags: u32,
10856 lppfolder: *mut *mut core::ffi::c_void,
10857 ) -> windows_core::HRESULT {
10858 unsafe {
10859 let this: &Identity =
10860 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
10861 IMAPIFolder_Impl::CreateFolder(
10862 this,
10863 core::mem::transmute_copy(&ulfoldertype),
10864 core::mem::transmute_copy(&lpszfoldername),
10865 core::mem::transmute_copy(&lpszfoldercomment),
10866 core::mem::transmute_copy(&lpinterface),
10867 core::mem::transmute_copy(&ulflags),
10868 core::mem::transmute_copy(&lppfolder),
10869 )
10870 .into()
10871 }
10872 }
10873 unsafe extern "system" fn CopyFolder<Identity: IMAPIFolder_Impl, const OFFSET: isize>(
10874 this: *mut core::ffi::c_void,
10875 cbentryid: u32,
10876 lpentryid: *mut ENTRYID,
10877 lpinterface: *mut windows_core::GUID,
10878 lpdestfolder: *mut core::ffi::c_void,
10879 lpsznewfoldername: *mut i8,
10880 uluiparam: usize,
10881 lpprogress: *mut core::ffi::c_void,
10882 ulflags: u32,
10883 ) -> windows_core::HRESULT {
10884 unsafe {
10885 let this: &Identity =
10886 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
10887 IMAPIFolder_Impl::CopyFolder(
10888 this,
10889 core::mem::transmute_copy(&cbentryid),
10890 core::mem::transmute_copy(&lpentryid),
10891 core::mem::transmute_copy(&lpinterface),
10892 core::mem::transmute_copy(&lpdestfolder),
10893 core::mem::transmute_copy(&lpsznewfoldername),
10894 core::mem::transmute_copy(&uluiparam),
10895 core::mem::transmute_copy(&lpprogress),
10896 core::mem::transmute_copy(&ulflags),
10897 )
10898 .into()
10899 }
10900 }
10901 unsafe extern "system" fn DeleteFolder<Identity: IMAPIFolder_Impl, const OFFSET: isize>(
10902 this: *mut core::ffi::c_void,
10903 cbentryid: u32,
10904 lpentryid: *mut ENTRYID,
10905 uluiparam: usize,
10906 lpprogress: *mut core::ffi::c_void,
10907 ulflags: u32,
10908 ) -> windows_core::HRESULT {
10909 unsafe {
10910 let this: &Identity =
10911 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
10912 IMAPIFolder_Impl::DeleteFolder(
10913 this,
10914 core::mem::transmute_copy(&cbentryid),
10915 core::mem::transmute_copy(&lpentryid),
10916 core::mem::transmute_copy(&uluiparam),
10917 core::mem::transmute_copy(&lpprogress),
10918 core::mem::transmute_copy(&ulflags),
10919 )
10920 .into()
10921 }
10922 }
10923 unsafe extern "system" fn SetReadFlags<Identity: IMAPIFolder_Impl, const OFFSET: isize>(
10924 this: *mut core::ffi::c_void,
10925 lpmsglist: *mut SBinaryArray,
10926 uluiparam: usize,
10927 lpprogress: *mut core::ffi::c_void,
10928 ulflags: u32,
10929 ) -> windows_core::HRESULT {
10930 unsafe {
10931 let this: &Identity =
10932 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
10933 IMAPIFolder_Impl::SetReadFlags(
10934 this,
10935 core::mem::transmute_copy(&lpmsglist),
10936 core::mem::transmute_copy(&uluiparam),
10937 core::mem::transmute_copy(&lpprogress),
10938 core::mem::transmute_copy(&ulflags),
10939 )
10940 .into()
10941 }
10942 }
10943 unsafe extern "system" fn GetMessageStatus<
10944 Identity: IMAPIFolder_Impl,
10945 const OFFSET: isize,
10946 >(
10947 this: *mut core::ffi::c_void,
10948 cbentryid: u32,
10949 lpentryid: *mut ENTRYID,
10950 ulflags: u32,
10951 lpulmessagestatus: *mut u32,
10952 ) -> windows_core::HRESULT {
10953 unsafe {
10954 let this: &Identity =
10955 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
10956 IMAPIFolder_Impl::GetMessageStatus(
10957 this,
10958 core::mem::transmute_copy(&cbentryid),
10959 core::mem::transmute_copy(&lpentryid),
10960 core::mem::transmute_copy(&ulflags),
10961 core::mem::transmute_copy(&lpulmessagestatus),
10962 )
10963 .into()
10964 }
10965 }
10966 unsafe extern "system" fn SetMessageStatus<
10967 Identity: IMAPIFolder_Impl,
10968 const OFFSET: isize,
10969 >(
10970 this: *mut core::ffi::c_void,
10971 cbentryid: u32,
10972 lpentryid: *mut ENTRYID,
10973 ulnewstatus: u32,
10974 ulnewstatusmask: u32,
10975 lpuloldstatus: *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::SetMessageStatus(
10981 this,
10982 core::mem::transmute_copy(&cbentryid),
10983 core::mem::transmute_copy(&lpentryid),
10984 core::mem::transmute_copy(&ulnewstatus),
10985 core::mem::transmute_copy(&ulnewstatusmask),
10986 core::mem::transmute_copy(&lpuloldstatus),
10987 )
10988 .into()
10989 }
10990 }
10991 unsafe extern "system" fn SaveContentsSort<
10992 Identity: IMAPIFolder_Impl,
10993 const OFFSET: isize,
10994 >(
10995 this: *mut core::ffi::c_void,
10996 lpsortcriteria: *mut SSortOrderSet,
10997 ulflags: u32,
10998 ) -> windows_core::HRESULT {
10999 unsafe {
11000 let this: &Identity =
11001 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
11002 IMAPIFolder_Impl::SaveContentsSort(
11003 this,
11004 core::mem::transmute_copy(&lpsortcriteria),
11005 core::mem::transmute_copy(&ulflags),
11006 )
11007 .into()
11008 }
11009 }
11010 unsafe extern "system" fn EmptyFolder<Identity: IMAPIFolder_Impl, const OFFSET: isize>(
11011 this: *mut core::ffi::c_void,
11012 uluiparam: usize,
11013 lpprogress: *mut core::ffi::c_void,
11014 ulflags: u32,
11015 ) -> windows_core::HRESULT {
11016 unsafe {
11017 let this: &Identity =
11018 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
11019 IMAPIFolder_Impl::EmptyFolder(
11020 this,
11021 core::mem::transmute_copy(&uluiparam),
11022 core::mem::transmute_copy(&lpprogress),
11023 core::mem::transmute_copy(&ulflags),
11024 )
11025 .into()
11026 }
11027 }
11028 Self {
11029 base__: IMAPIContainer_Vtbl::new::<Identity, OFFSET>(),
11030 CreateMessage: CreateMessage::<Identity, OFFSET>,
11031 CopyMessages: CopyMessages::<Identity, OFFSET>,
11032 DeleteMessages: DeleteMessages::<Identity, OFFSET>,
11033 CreateFolder: CreateFolder::<Identity, OFFSET>,
11034 CopyFolder: CopyFolder::<Identity, OFFSET>,
11035 DeleteFolder: DeleteFolder::<Identity, OFFSET>,
11036 SetReadFlags: SetReadFlags::<Identity, OFFSET>,
11037 GetMessageStatus: GetMessageStatus::<Identity, OFFSET>,
11038 SetMessageStatus: SetMessageStatus::<Identity, OFFSET>,
11039 SaveContentsSort: SaveContentsSort::<Identity, OFFSET>,
11040 EmptyFolder: EmptyFolder::<Identity, OFFSET>,
11041 }
11042 }
11043 pub fn matches(iid: &windows_core::GUID) -> bool {
11044 iid == &<IMAPIFolder as windows_core::Interface>::IID
11045 || iid == &<IMAPIProp as windows_core::Interface>::IID
11046 || iid == &<IMAPIContainer as windows_core::Interface>::IID
11047 }
11048}
11049impl windows_core::RuntimeName for IMAPIFolder {}
11050pub const IMAPIFolder_CopyFolder: METHODS = METHODS(54i32);
11051pub const IMAPIFolder_CopyMessages: METHODS = METHODS(51i32);
11052pub const IMAPIFolder_CreateFolder: METHODS = METHODS(53i32);
11053pub const IMAPIFolder_CreateMessage: METHODS = METHODS(50i32);
11054pub const IMAPIFolder_DeleteFolder: METHODS = METHODS(55i32);
11055pub const IMAPIFolder_DeleteMessages: METHODS = METHODS(52i32);
11056pub const IMAPIFolder_EmptyFolder: METHODS = METHODS(60i32);
11057pub const IMAPIFolder_GetMessageStatus: METHODS = METHODS(57i32);
11058pub const IMAPIFolder_SaveContentsSort: METHODS = METHODS(59i32);
11059pub const IMAPIFolder_SetMessageStatus: METHODS = METHODS(58i32);
11060pub const IMAPIFolder_SetReadFlags: METHODS = METHODS(56i32);
11061windows_core::imp::define_interface!(
11062 IMAPIForm,
11063 IMAPIForm_Vtbl,
11064 0x00020327_0000_0000_c000_000000000046
11065);
11066windows_core::imp::interface_hierarchy!(IMAPIForm, windows_core::IUnknown);
11067impl IMAPIForm {
11068 pub unsafe fn GetLastError(
11069 &self,
11070 hresult: windows_core::HRESULT,
11071 ulflags: u32,
11072 lppmapierror: *mut *mut MAPIERROR,
11073 ) -> windows_core::Result<()> {
11074 unsafe {
11075 (windows_core::Interface::vtable(self).GetLastError)(
11076 windows_core::Interface::as_raw(self),
11077 hresult,
11078 ulflags,
11079 lppmapierror as _,
11080 )
11081 .ok()
11082 }
11083 }
11084 pub unsafe fn SetViewContext<P0>(&self, pviewcontext: P0) -> windows_core::Result<()>
11085 where
11086 P0: windows_core::Param<IMAPIViewContext>,
11087 {
11088 unsafe {
11089 (windows_core::Interface::vtable(self).SetViewContext)(
11090 windows_core::Interface::as_raw(self),
11091 pviewcontext.param().abi(),
11092 )
11093 .ok()
11094 }
11095 }
11096 pub unsafe fn GetViewContext(&self) -> windows_core::Result<IMAPIViewContext> {
11097 unsafe {
11098 let mut result__ = core::mem::zeroed();
11099 (windows_core::Interface::vtable(self).GetViewContext)(
11100 windows_core::Interface::as_raw(self),
11101 &mut result__,
11102 )
11103 .and_then(|| windows_core::Type::from_abi(result__))
11104 }
11105 }
11106 pub unsafe fn ShutdownForm(&self, ulsaveoptions: u32) -> windows_core::Result<()> {
11107 unsafe {
11108 (windows_core::Interface::vtable(self).ShutdownForm)(
11109 windows_core::Interface::as_raw(self),
11110 ulsaveoptions,
11111 )
11112 .ok()
11113 }
11114 }
11115 pub unsafe fn DoVerb<P1>(
11116 &self,
11117 iverb: i32,
11118 lpviewcontext: P1,
11119 hwndparent: usize,
11120 lprcposrect: *mut windows::Win32::Foundation::RECT,
11121 ) -> windows_core::Result<()>
11122 where
11123 P1: windows_core::Param<IMAPIViewContext>,
11124 {
11125 unsafe {
11126 (windows_core::Interface::vtable(self).DoVerb)(
11127 windows_core::Interface::as_raw(self),
11128 iverb,
11129 lpviewcontext.param().abi(),
11130 hwndparent,
11131 lprcposrect as _,
11132 )
11133 .ok()
11134 }
11135 }
11136 pub unsafe fn Advise<P0>(&self, padvise: P0, pdwstatus: *mut usize) -> windows_core::Result<()>
11137 where
11138 P0: windows_core::Param<IMAPIViewAdviseSink>,
11139 {
11140 unsafe {
11141 (windows_core::Interface::vtable(self).Advise)(
11142 windows_core::Interface::as_raw(self),
11143 padvise.param().abi(),
11144 pdwstatus as _,
11145 )
11146 .ok()
11147 }
11148 }
11149 pub unsafe fn Unadvise(&self, ulconnection: usize) -> windows_core::Result<()> {
11150 unsafe {
11151 (windows_core::Interface::vtable(self).Unadvise)(
11152 windows_core::Interface::as_raw(self),
11153 ulconnection,
11154 )
11155 .ok()
11156 }
11157 }
11158}
11159#[repr(C)]
11160#[doc(hidden)]
11161pub struct IMAPIForm_Vtbl {
11162 pub base__: windows_core::IUnknown_Vtbl,
11163 pub GetLastError: unsafe extern "system" fn(
11164 *mut core::ffi::c_void,
11165 windows_core::HRESULT,
11166 u32,
11167 *mut *mut MAPIERROR,
11168 ) -> windows_core::HRESULT,
11169 pub SetViewContext: unsafe extern "system" fn(
11170 *mut core::ffi::c_void,
11171 *mut core::ffi::c_void,
11172 ) -> windows_core::HRESULT,
11173 pub GetViewContext: unsafe extern "system" fn(
11174 *mut core::ffi::c_void,
11175 *mut *mut core::ffi::c_void,
11176 ) -> windows_core::HRESULT,
11177 pub ShutdownForm:
11178 unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
11179 pub DoVerb: unsafe extern "system" fn(
11180 *mut core::ffi::c_void,
11181 i32,
11182 *mut core::ffi::c_void,
11183 usize,
11184 *mut windows::Win32::Foundation::RECT,
11185 ) -> windows_core::HRESULT,
11186 pub Advise: unsafe extern "system" fn(
11187 *mut core::ffi::c_void,
11188 *mut core::ffi::c_void,
11189 *mut usize,
11190 ) -> windows_core::HRESULT,
11191 pub Unadvise: unsafe extern "system" fn(*mut core::ffi::c_void, usize) -> windows_core::HRESULT,
11192}
11193pub trait IMAPIForm_Impl: windows_core::IUnknownImpl {
11194 fn GetLastError(
11195 &self,
11196 hresult: windows_core::HRESULT,
11197 ulflags: u32,
11198 lppmapierror: *mut *mut MAPIERROR,
11199 ) -> windows_core::Result<()>;
11200 fn SetViewContext(
11201 &self,
11202 pviewcontext: windows_core::Ref<IMAPIViewContext>,
11203 ) -> windows_core::Result<()>;
11204 fn GetViewContext(&self) -> windows_core::Result<IMAPIViewContext>;
11205 fn ShutdownForm(&self, ulsaveoptions: u32) -> windows_core::Result<()>;
11206 fn DoVerb(
11207 &self,
11208 iverb: i32,
11209 lpviewcontext: windows_core::Ref<IMAPIViewContext>,
11210 hwndparent: usize,
11211 lprcposrect: *mut windows::Win32::Foundation::RECT,
11212 ) -> windows_core::Result<()>;
11213 fn Advise(
11214 &self,
11215 padvise: windows_core::Ref<IMAPIViewAdviseSink>,
11216 pdwstatus: *mut usize,
11217 ) -> windows_core::Result<()>;
11218 fn Unadvise(&self, ulconnection: usize) -> windows_core::Result<()>;
11219}
11220impl IMAPIForm_Vtbl {
11221 pub const fn new<Identity: IMAPIForm_Impl, const OFFSET: isize>() -> Self {
11222 unsafe extern "system" fn GetLastError<Identity: IMAPIForm_Impl, const OFFSET: isize>(
11223 this: *mut core::ffi::c_void,
11224 hresult: windows_core::HRESULT,
11225 ulflags: u32,
11226 lppmapierror: *mut *mut MAPIERROR,
11227 ) -> windows_core::HRESULT {
11228 unsafe {
11229 let this: &Identity =
11230 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
11231 IMAPIForm_Impl::GetLastError(
11232 this,
11233 core::mem::transmute_copy(&hresult),
11234 core::mem::transmute_copy(&ulflags),
11235 core::mem::transmute_copy(&lppmapierror),
11236 )
11237 .into()
11238 }
11239 }
11240 unsafe extern "system" fn SetViewContext<Identity: IMAPIForm_Impl, const OFFSET: isize>(
11241 this: *mut core::ffi::c_void,
11242 pviewcontext: *mut core::ffi::c_void,
11243 ) -> windows_core::HRESULT {
11244 unsafe {
11245 let this: &Identity =
11246 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
11247 IMAPIForm_Impl::SetViewContext(this, core::mem::transmute_copy(&pviewcontext))
11248 .into()
11249 }
11250 }
11251 unsafe extern "system" fn GetViewContext<Identity: IMAPIForm_Impl, const OFFSET: isize>(
11252 this: *mut core::ffi::c_void,
11253 ppviewcontext: *mut *mut core::ffi::c_void,
11254 ) -> windows_core::HRESULT {
11255 unsafe {
11256 let this: &Identity =
11257 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
11258 match IMAPIForm_Impl::GetViewContext(this) {
11259 Ok(ok__) => {
11260 ppviewcontext.write(core::mem::transmute(ok__));
11261 windows_core::HRESULT(0)
11262 }
11263 Err(err) => err.into(),
11264 }
11265 }
11266 }
11267 unsafe extern "system" fn ShutdownForm<Identity: IMAPIForm_Impl, const OFFSET: isize>(
11268 this: *mut core::ffi::c_void,
11269 ulsaveoptions: u32,
11270 ) -> windows_core::HRESULT {
11271 unsafe {
11272 let this: &Identity =
11273 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
11274 IMAPIForm_Impl::ShutdownForm(this, core::mem::transmute_copy(&ulsaveoptions)).into()
11275 }
11276 }
11277 unsafe extern "system" fn DoVerb<Identity: IMAPIForm_Impl, const OFFSET: isize>(
11278 this: *mut core::ffi::c_void,
11279 iverb: i32,
11280 lpviewcontext: *mut core::ffi::c_void,
11281 hwndparent: usize,
11282 lprcposrect: *mut windows::Win32::Foundation::RECT,
11283 ) -> windows_core::HRESULT {
11284 unsafe {
11285 let this: &Identity =
11286 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
11287 IMAPIForm_Impl::DoVerb(
11288 this,
11289 core::mem::transmute_copy(&iverb),
11290 core::mem::transmute_copy(&lpviewcontext),
11291 core::mem::transmute_copy(&hwndparent),
11292 core::mem::transmute_copy(&lprcposrect),
11293 )
11294 .into()
11295 }
11296 }
11297 unsafe extern "system" fn Advise<Identity: IMAPIForm_Impl, const OFFSET: isize>(
11298 this: *mut core::ffi::c_void,
11299 padvise: *mut core::ffi::c_void,
11300 pdwstatus: *mut usize,
11301 ) -> windows_core::HRESULT {
11302 unsafe {
11303 let this: &Identity =
11304 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
11305 IMAPIForm_Impl::Advise(
11306 this,
11307 core::mem::transmute_copy(&padvise),
11308 core::mem::transmute_copy(&pdwstatus),
11309 )
11310 .into()
11311 }
11312 }
11313 unsafe extern "system" fn Unadvise<Identity: IMAPIForm_Impl, const OFFSET: isize>(
11314 this: *mut core::ffi::c_void,
11315 ulconnection: usize,
11316 ) -> windows_core::HRESULT {
11317 unsafe {
11318 let this: &Identity =
11319 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
11320 IMAPIForm_Impl::Unadvise(this, core::mem::transmute_copy(&ulconnection)).into()
11321 }
11322 }
11323 Self {
11324 base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
11325 GetLastError: GetLastError::<Identity, OFFSET>,
11326 SetViewContext: SetViewContext::<Identity, OFFSET>,
11327 GetViewContext: GetViewContext::<Identity, OFFSET>,
11328 ShutdownForm: ShutdownForm::<Identity, OFFSET>,
11329 DoVerb: DoVerb::<Identity, OFFSET>,
11330 Advise: Advise::<Identity, OFFSET>,
11331 Unadvise: Unadvise::<Identity, OFFSET>,
11332 }
11333 }
11334 pub fn matches(iid: &windows_core::GUID) -> bool {
11335 iid == &<IMAPIForm as windows_core::Interface>::IID
11336 }
11337}
11338impl windows_core::RuntimeName for IMAPIForm {}
11339windows_core::imp::define_interface!(
11340 IMAPIFormAdviseSink,
11341 IMAPIFormAdviseSink_Vtbl,
11342 0x0002032f_0000_0000_c000_000000000046
11343);
11344windows_core::imp::interface_hierarchy!(IMAPIFormAdviseSink, windows_core::IUnknown);
11345impl IMAPIFormAdviseSink {
11346 pub unsafe fn OnChange(&self, uldir: u32) -> windows_core::Result<()> {
11347 unsafe {
11348 (windows_core::Interface::vtable(self).OnChange)(
11349 windows_core::Interface::as_raw(self),
11350 uldir,
11351 )
11352 .ok()
11353 }
11354 }
11355 pub unsafe fn OnActivateNext<P0>(
11356 &self,
11357 lpszmessageclass: P0,
11358 ulmessagestatus: u32,
11359 ulmessageflags: u32,
11360 ) -> windows_core::Result<IPersistMessage>
11361 where
11362 P0: windows_core::Param<windows_core::PCSTR>,
11363 {
11364 unsafe {
11365 let mut result__ = core::mem::zeroed();
11366 (windows_core::Interface::vtable(self).OnActivateNext)(
11367 windows_core::Interface::as_raw(self),
11368 lpszmessageclass.param().abi(),
11369 ulmessagestatus,
11370 ulmessageflags,
11371 &mut result__,
11372 )
11373 .and_then(|| windows_core::Type::from_abi(result__))
11374 }
11375 }
11376}
11377#[repr(C)]
11378#[doc(hidden)]
11379pub struct IMAPIFormAdviseSink_Vtbl {
11380 pub base__: windows_core::IUnknown_Vtbl,
11381 pub OnChange: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
11382 pub OnActivateNext: unsafe extern "system" fn(
11383 *mut core::ffi::c_void,
11384 windows_core::PCSTR,
11385 u32,
11386 u32,
11387 *mut *mut core::ffi::c_void,
11388 ) -> windows_core::HRESULT,
11389}
11390pub trait IMAPIFormAdviseSink_Impl: windows_core::IUnknownImpl {
11391 fn OnChange(&self, uldir: u32) -> windows_core::Result<()>;
11392 fn OnActivateNext(
11393 &self,
11394 lpszmessageclass: &windows_core::PCSTR,
11395 ulmessagestatus: u32,
11396 ulmessageflags: u32,
11397 ) -> windows_core::Result<IPersistMessage>;
11398}
11399impl IMAPIFormAdviseSink_Vtbl {
11400 pub const fn new<Identity: IMAPIFormAdviseSink_Impl, const OFFSET: isize>() -> Self {
11401 unsafe extern "system" fn OnChange<
11402 Identity: IMAPIFormAdviseSink_Impl,
11403 const OFFSET: isize,
11404 >(
11405 this: *mut core::ffi::c_void,
11406 uldir: u32,
11407 ) -> windows_core::HRESULT {
11408 unsafe {
11409 let this: &Identity =
11410 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
11411 IMAPIFormAdviseSink_Impl::OnChange(this, core::mem::transmute_copy(&uldir)).into()
11412 }
11413 }
11414 unsafe extern "system" fn OnActivateNext<
11415 Identity: IMAPIFormAdviseSink_Impl,
11416 const OFFSET: isize,
11417 >(
11418 this: *mut core::ffi::c_void,
11419 lpszmessageclass: windows_core::PCSTR,
11420 ulmessagestatus: u32,
11421 ulmessageflags: u32,
11422 pppersistmessage: *mut *mut core::ffi::c_void,
11423 ) -> windows_core::HRESULT {
11424 unsafe {
11425 let this: &Identity =
11426 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
11427 match IMAPIFormAdviseSink_Impl::OnActivateNext(
11428 this,
11429 core::mem::transmute(&lpszmessageclass),
11430 core::mem::transmute_copy(&ulmessagestatus),
11431 core::mem::transmute_copy(&ulmessageflags),
11432 ) {
11433 Ok(ok__) => {
11434 pppersistmessage.write(core::mem::transmute(ok__));
11435 windows_core::HRESULT(0)
11436 }
11437 Err(err) => err.into(),
11438 }
11439 }
11440 }
11441 Self {
11442 base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
11443 OnChange: OnChange::<Identity, OFFSET>,
11444 OnActivateNext: OnActivateNext::<Identity, OFFSET>,
11445 }
11446 }
11447 pub fn matches(iid: &windows_core::GUID) -> bool {
11448 iid == &<IMAPIFormAdviseSink as windows_core::Interface>::IID
11449 }
11450}
11451impl windows_core::RuntimeName for IMAPIFormAdviseSink {}
11452windows_core::imp::define_interface!(
11453 IMAPIFormContainer,
11454 IMAPIFormContainer_Vtbl,
11455 0x0002032e_0000_0000_c000_000000000046
11456);
11457windows_core::imp::interface_hierarchy!(IMAPIFormContainer, windows_core::IUnknown);
11458impl IMAPIFormContainer {
11459 pub unsafe fn GetLastError(
11460 &self,
11461 hresult: windows_core::HRESULT,
11462 ulflags: u32,
11463 lppmapierror: *mut *mut MAPIERROR,
11464 ) -> windows_core::Result<()> {
11465 unsafe {
11466 (windows_core::Interface::vtable(self).GetLastError)(
11467 windows_core::Interface::as_raw(self),
11468 hresult,
11469 ulflags,
11470 lppmapierror as _,
11471 )
11472 .ok()
11473 }
11474 }
11475 pub unsafe fn InstallForm(
11476 &self,
11477 uluiparam: usize,
11478 ulflags: u32,
11479 szcfgpathname: *mut i8,
11480 ) -> windows_core::Result<()> {
11481 unsafe {
11482 (windows_core::Interface::vtable(self).InstallForm)(
11483 windows_core::Interface::as_raw(self),
11484 uluiparam,
11485 ulflags,
11486 szcfgpathname as _,
11487 )
11488 .ok()
11489 }
11490 }
11491 pub unsafe fn RemoveForm<P0>(&self, szmessageclass: P0) -> windows_core::Result<()>
11492 where
11493 P0: windows_core::Param<windows_core::PCSTR>,
11494 {
11495 unsafe {
11496 (windows_core::Interface::vtable(self).RemoveForm)(
11497 windows_core::Interface::as_raw(self),
11498 szmessageclass.param().abi(),
11499 )
11500 .ok()
11501 }
11502 }
11503 pub unsafe fn ResolveMessageClass<P0>(
11504 &self,
11505 szmessageclass: P0,
11506 ulflags: u32,
11507 ) -> windows_core::Result<IMAPIFormInfo>
11508 where
11509 P0: windows_core::Param<windows_core::PCSTR>,
11510 {
11511 unsafe {
11512 let mut result__ = core::mem::zeroed();
11513 (windows_core::Interface::vtable(self).ResolveMessageClass)(
11514 windows_core::Interface::as_raw(self),
11515 szmessageclass.param().abi(),
11516 ulflags,
11517 &mut result__,
11518 )
11519 .and_then(|| windows_core::Type::from_abi(result__))
11520 }
11521 }
11522 pub unsafe fn ResolveMultipleMessageClasses(
11523 &self,
11524 pmsgclassarray: *mut SMessageClassArray,
11525 ulflags: u32,
11526 ppfrminfoarray: *mut *mut SMAPIFormInfoArray,
11527 ) -> windows_core::Result<()> {
11528 unsafe {
11529 (windows_core::Interface::vtable(self).ResolveMultipleMessageClasses)(
11530 windows_core::Interface::as_raw(self),
11531 pmsgclassarray as _,
11532 ulflags,
11533 ppfrminfoarray as _,
11534 )
11535 .ok()
11536 }
11537 }
11538 pub unsafe fn CalcFormPropSet(
11539 &self,
11540 ulflags: u32,
11541 ppresults: *mut *mut SMAPIFormPropArray,
11542 ) -> windows_core::Result<()> {
11543 unsafe {
11544 (windows_core::Interface::vtable(self).CalcFormPropSet)(
11545 windows_core::Interface::as_raw(self),
11546 ulflags,
11547 ppresults as _,
11548 )
11549 .ok()
11550 }
11551 }
11552 pub unsafe fn GetDisplay(
11553 &self,
11554 ulflags: u32,
11555 pszdisplayname: *mut *mut i8,
11556 ) -> windows_core::Result<()> {
11557 unsafe {
11558 (windows_core::Interface::vtable(self).GetDisplay)(
11559 windows_core::Interface::as_raw(self),
11560 ulflags,
11561 pszdisplayname as _,
11562 )
11563 .ok()
11564 }
11565 }
11566}
11567#[repr(C)]
11568#[doc(hidden)]
11569pub struct IMAPIFormContainer_Vtbl {
11570 pub base__: windows_core::IUnknown_Vtbl,
11571 pub GetLastError: unsafe extern "system" fn(
11572 *mut core::ffi::c_void,
11573 windows_core::HRESULT,
11574 u32,
11575 *mut *mut MAPIERROR,
11576 ) -> windows_core::HRESULT,
11577 pub InstallForm: unsafe extern "system" fn(
11578 *mut core::ffi::c_void,
11579 usize,
11580 u32,
11581 *mut i8,
11582 ) -> windows_core::HRESULT,
11583 pub RemoveForm: unsafe extern "system" fn(
11584 *mut core::ffi::c_void,
11585 windows_core::PCSTR,
11586 ) -> windows_core::HRESULT,
11587 pub ResolveMessageClass: unsafe extern "system" fn(
11588 *mut core::ffi::c_void,
11589 windows_core::PCSTR,
11590 u32,
11591 *mut *mut core::ffi::c_void,
11592 ) -> windows_core::HRESULT,
11593 pub ResolveMultipleMessageClasses: unsafe extern "system" fn(
11594 *mut core::ffi::c_void,
11595 *mut SMessageClassArray,
11596 u32,
11597 *mut *mut SMAPIFormInfoArray,
11598 ) -> windows_core::HRESULT,
11599 pub CalcFormPropSet: unsafe extern "system" fn(
11600 *mut core::ffi::c_void,
11601 u32,
11602 *mut *mut SMAPIFormPropArray,
11603 ) -> windows_core::HRESULT,
11604 pub GetDisplay: unsafe extern "system" fn(
11605 *mut core::ffi::c_void,
11606 u32,
11607 *mut *mut i8,
11608 ) -> windows_core::HRESULT,
11609}
11610pub trait IMAPIFormContainer_Impl: windows_core::IUnknownImpl {
11611 fn GetLastError(
11612 &self,
11613 hresult: windows_core::HRESULT,
11614 ulflags: u32,
11615 lppmapierror: *mut *mut MAPIERROR,
11616 ) -> windows_core::Result<()>;
11617 fn InstallForm(
11618 &self,
11619 uluiparam: usize,
11620 ulflags: u32,
11621 szcfgpathname: *mut i8,
11622 ) -> windows_core::Result<()>;
11623 fn RemoveForm(&self, szmessageclass: &windows_core::PCSTR) -> windows_core::Result<()>;
11624 fn ResolveMessageClass(
11625 &self,
11626 szmessageclass: &windows_core::PCSTR,
11627 ulflags: u32,
11628 ) -> windows_core::Result<IMAPIFormInfo>;
11629 fn ResolveMultipleMessageClasses(
11630 &self,
11631 pmsgclassarray: *mut SMessageClassArray,
11632 ulflags: u32,
11633 ppfrminfoarray: *mut *mut SMAPIFormInfoArray,
11634 ) -> windows_core::Result<()>;
11635 fn CalcFormPropSet(
11636 &self,
11637 ulflags: u32,
11638 ppresults: *mut *mut SMAPIFormPropArray,
11639 ) -> windows_core::Result<()>;
11640 fn GetDisplay(&self, ulflags: u32, pszdisplayname: *mut *mut i8) -> windows_core::Result<()>;
11641}
11642impl IMAPIFormContainer_Vtbl {
11643 pub const fn new<Identity: IMAPIFormContainer_Impl, const OFFSET: isize>() -> Self {
11644 unsafe extern "system" fn GetLastError<
11645 Identity: IMAPIFormContainer_Impl,
11646 const OFFSET: isize,
11647 >(
11648 this: *mut core::ffi::c_void,
11649 hresult: windows_core::HRESULT,
11650 ulflags: u32,
11651 lppmapierror: *mut *mut MAPIERROR,
11652 ) -> windows_core::HRESULT {
11653 unsafe {
11654 let this: &Identity =
11655 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
11656 IMAPIFormContainer_Impl::GetLastError(
11657 this,
11658 core::mem::transmute_copy(&hresult),
11659 core::mem::transmute_copy(&ulflags),
11660 core::mem::transmute_copy(&lppmapierror),
11661 )
11662 .into()
11663 }
11664 }
11665 unsafe extern "system" fn InstallForm<
11666 Identity: IMAPIFormContainer_Impl,
11667 const OFFSET: isize,
11668 >(
11669 this: *mut core::ffi::c_void,
11670 uluiparam: usize,
11671 ulflags: u32,
11672 szcfgpathname: *mut i8,
11673 ) -> windows_core::HRESULT {
11674 unsafe {
11675 let this: &Identity =
11676 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
11677 IMAPIFormContainer_Impl::InstallForm(
11678 this,
11679 core::mem::transmute_copy(&uluiparam),
11680 core::mem::transmute_copy(&ulflags),
11681 core::mem::transmute_copy(&szcfgpathname),
11682 )
11683 .into()
11684 }
11685 }
11686 unsafe extern "system" fn RemoveForm<
11687 Identity: IMAPIFormContainer_Impl,
11688 const OFFSET: isize,
11689 >(
11690 this: *mut core::ffi::c_void,
11691 szmessageclass: windows_core::PCSTR,
11692 ) -> windows_core::HRESULT {
11693 unsafe {
11694 let this: &Identity =
11695 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
11696 IMAPIFormContainer_Impl::RemoveForm(this, core::mem::transmute(&szmessageclass))
11697 .into()
11698 }
11699 }
11700 unsafe extern "system" fn ResolveMessageClass<
11701 Identity: IMAPIFormContainer_Impl,
11702 const OFFSET: isize,
11703 >(
11704 this: *mut core::ffi::c_void,
11705 szmessageclass: windows_core::PCSTR,
11706 ulflags: u32,
11707 pforminfo: *mut *mut core::ffi::c_void,
11708 ) -> windows_core::HRESULT {
11709 unsafe {
11710 let this: &Identity =
11711 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
11712 match IMAPIFormContainer_Impl::ResolveMessageClass(
11713 this,
11714 core::mem::transmute(&szmessageclass),
11715 core::mem::transmute_copy(&ulflags),
11716 ) {
11717 Ok(ok__) => {
11718 pforminfo.write(core::mem::transmute(ok__));
11719 windows_core::HRESULT(0)
11720 }
11721 Err(err) => err.into(),
11722 }
11723 }
11724 }
11725 unsafe extern "system" fn ResolveMultipleMessageClasses<
11726 Identity: IMAPIFormContainer_Impl,
11727 const OFFSET: isize,
11728 >(
11729 this: *mut core::ffi::c_void,
11730 pmsgclassarray: *mut SMessageClassArray,
11731 ulflags: u32,
11732 ppfrminfoarray: *mut *mut SMAPIFormInfoArray,
11733 ) -> windows_core::HRESULT {
11734 unsafe {
11735 let this: &Identity =
11736 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
11737 IMAPIFormContainer_Impl::ResolveMultipleMessageClasses(
11738 this,
11739 core::mem::transmute_copy(&pmsgclassarray),
11740 core::mem::transmute_copy(&ulflags),
11741 core::mem::transmute_copy(&ppfrminfoarray),
11742 )
11743 .into()
11744 }
11745 }
11746 unsafe extern "system" fn CalcFormPropSet<
11747 Identity: IMAPIFormContainer_Impl,
11748 const OFFSET: isize,
11749 >(
11750 this: *mut core::ffi::c_void,
11751 ulflags: u32,
11752 ppresults: *mut *mut SMAPIFormPropArray,
11753 ) -> windows_core::HRESULT {
11754 unsafe {
11755 let this: &Identity =
11756 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
11757 IMAPIFormContainer_Impl::CalcFormPropSet(
11758 this,
11759 core::mem::transmute_copy(&ulflags),
11760 core::mem::transmute_copy(&ppresults),
11761 )
11762 .into()
11763 }
11764 }
11765 unsafe extern "system" fn GetDisplay<
11766 Identity: IMAPIFormContainer_Impl,
11767 const OFFSET: isize,
11768 >(
11769 this: *mut core::ffi::c_void,
11770 ulflags: u32,
11771 pszdisplayname: *mut *mut i8,
11772 ) -> windows_core::HRESULT {
11773 unsafe {
11774 let this: &Identity =
11775 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
11776 IMAPIFormContainer_Impl::GetDisplay(
11777 this,
11778 core::mem::transmute_copy(&ulflags),
11779 core::mem::transmute_copy(&pszdisplayname),
11780 )
11781 .into()
11782 }
11783 }
11784 Self {
11785 base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
11786 GetLastError: GetLastError::<Identity, OFFSET>,
11787 InstallForm: InstallForm::<Identity, OFFSET>,
11788 RemoveForm: RemoveForm::<Identity, OFFSET>,
11789 ResolveMessageClass: ResolveMessageClass::<Identity, OFFSET>,
11790 ResolveMultipleMessageClasses: ResolveMultipleMessageClasses::<Identity, OFFSET>,
11791 CalcFormPropSet: CalcFormPropSet::<Identity, OFFSET>,
11792 GetDisplay: GetDisplay::<Identity, OFFSET>,
11793 }
11794 }
11795 pub fn matches(iid: &windows_core::GUID) -> bool {
11796 iid == &<IMAPIFormContainer as windows_core::Interface>::IID
11797 }
11798}
11799impl windows_core::RuntimeName for IMAPIFormContainer {}
11800windows_core::imp::define_interface!(
11801 IMAPIFormFactory,
11802 IMAPIFormFactory_Vtbl,
11803 0x00020350_0000_0000_c000_000000000046
11804);
11805windows_core::imp::interface_hierarchy!(IMAPIFormFactory, windows_core::IUnknown);
11806impl IMAPIFormFactory {
11807 pub unsafe fn GetLastError(
11808 &self,
11809 hresult: windows_core::HRESULT,
11810 ulflags: u32,
11811 lppmapierror: *mut *mut MAPIERROR,
11812 ) -> windows_core::Result<()> {
11813 unsafe {
11814 (windows_core::Interface::vtable(self).GetLastError)(
11815 windows_core::Interface::as_raw(self),
11816 hresult,
11817 ulflags,
11818 lppmapierror as _,
11819 )
11820 .ok()
11821 }
11822 }
11823 pub unsafe fn CreateClassFactory(
11824 &self,
11825 clsidform: *const windows_core::GUID,
11826 ulflags: u32,
11827 ) -> windows_core::Result<windows::Win32::System::Com::IClassFactory> {
11828 unsafe {
11829 let mut result__ = core::mem::zeroed();
11830 (windows_core::Interface::vtable(self).CreateClassFactory)(
11831 windows_core::Interface::as_raw(self),
11832 clsidform,
11833 ulflags,
11834 &mut result__,
11835 )
11836 .and_then(|| windows_core::Type::from_abi(result__))
11837 }
11838 }
11839 pub unsafe fn LockServer(&self, ulflags: u32, flockserver: u32) -> windows_core::Result<()> {
11840 unsafe {
11841 (windows_core::Interface::vtable(self).LockServer)(
11842 windows_core::Interface::as_raw(self),
11843 ulflags,
11844 flockserver,
11845 )
11846 .ok()
11847 }
11848 }
11849}
11850#[repr(C)]
11851#[doc(hidden)]
11852pub struct IMAPIFormFactory_Vtbl {
11853 pub base__: windows_core::IUnknown_Vtbl,
11854 pub GetLastError: unsafe extern "system" fn(
11855 *mut core::ffi::c_void,
11856 windows_core::HRESULT,
11857 u32,
11858 *mut *mut MAPIERROR,
11859 ) -> windows_core::HRESULT,
11860 pub CreateClassFactory: unsafe extern "system" fn(
11861 *mut core::ffi::c_void,
11862 *const windows_core::GUID,
11863 u32,
11864 *mut *mut core::ffi::c_void,
11865 ) -> windows_core::HRESULT,
11866 pub LockServer:
11867 unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32) -> windows_core::HRESULT,
11868}
11869pub trait IMAPIFormFactory_Impl: windows_core::IUnknownImpl {
11870 fn GetLastError(
11871 &self,
11872 hresult: windows_core::HRESULT,
11873 ulflags: u32,
11874 lppmapierror: *mut *mut MAPIERROR,
11875 ) -> windows_core::Result<()>;
11876 fn CreateClassFactory(
11877 &self,
11878 clsidform: *const windows_core::GUID,
11879 ulflags: u32,
11880 ) -> windows_core::Result<windows::Win32::System::Com::IClassFactory>;
11881 fn LockServer(&self, ulflags: u32, flockserver: u32) -> windows_core::Result<()>;
11882}
11883impl IMAPIFormFactory_Vtbl {
11884 pub const fn new<Identity: IMAPIFormFactory_Impl, const OFFSET: isize>() -> Self {
11885 unsafe extern "system" fn GetLastError<
11886 Identity: IMAPIFormFactory_Impl,
11887 const OFFSET: isize,
11888 >(
11889 this: *mut core::ffi::c_void,
11890 hresult: windows_core::HRESULT,
11891 ulflags: u32,
11892 lppmapierror: *mut *mut MAPIERROR,
11893 ) -> windows_core::HRESULT {
11894 unsafe {
11895 let this: &Identity =
11896 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
11897 IMAPIFormFactory_Impl::GetLastError(
11898 this,
11899 core::mem::transmute_copy(&hresult),
11900 core::mem::transmute_copy(&ulflags),
11901 core::mem::transmute_copy(&lppmapierror),
11902 )
11903 .into()
11904 }
11905 }
11906 unsafe extern "system" fn CreateClassFactory<
11907 Identity: IMAPIFormFactory_Impl,
11908 const OFFSET: isize,
11909 >(
11910 this: *mut core::ffi::c_void,
11911 clsidform: *const windows_core::GUID,
11912 ulflags: u32,
11913 lppclassfactory: *mut *mut core::ffi::c_void,
11914 ) -> windows_core::HRESULT {
11915 unsafe {
11916 let this: &Identity =
11917 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
11918 match IMAPIFormFactory_Impl::CreateClassFactory(
11919 this,
11920 core::mem::transmute_copy(&clsidform),
11921 core::mem::transmute_copy(&ulflags),
11922 ) {
11923 Ok(ok__) => {
11924 lppclassfactory.write(core::mem::transmute(ok__));
11925 windows_core::HRESULT(0)
11926 }
11927 Err(err) => err.into(),
11928 }
11929 }
11930 }
11931 unsafe extern "system" fn LockServer<
11932 Identity: IMAPIFormFactory_Impl,
11933 const OFFSET: isize,
11934 >(
11935 this: *mut core::ffi::c_void,
11936 ulflags: u32,
11937 flockserver: u32,
11938 ) -> windows_core::HRESULT {
11939 unsafe {
11940 let this: &Identity =
11941 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
11942 IMAPIFormFactory_Impl::LockServer(
11943 this,
11944 core::mem::transmute_copy(&ulflags),
11945 core::mem::transmute_copy(&flockserver),
11946 )
11947 .into()
11948 }
11949 }
11950 Self {
11951 base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
11952 GetLastError: GetLastError::<Identity, OFFSET>,
11953 CreateClassFactory: CreateClassFactory::<Identity, OFFSET>,
11954 LockServer: LockServer::<Identity, OFFSET>,
11955 }
11956 }
11957 pub fn matches(iid: &windows_core::GUID) -> bool {
11958 iid == &<IMAPIFormFactory as windows_core::Interface>::IID
11959 }
11960}
11961impl windows_core::RuntimeName for IMAPIFormFactory {}
11962windows_core::imp::define_interface!(
11963 IMAPIFormInfo,
11964 IMAPIFormInfo_Vtbl,
11965 0x00020324_0000_0000_c000_000000000046
11966);
11967impl core::ops::Deref for IMAPIFormInfo {
11968 type Target = IMAPIProp;
11969 fn deref(&self) -> &Self::Target {
11970 unsafe { core::mem::transmute(self) }
11971 }
11972}
11973windows_core::imp::interface_hierarchy!(IMAPIFormInfo, windows_core::IUnknown, IMAPIProp);
11974impl IMAPIFormInfo {
11975 pub unsafe fn CalcFormPropSet(
11976 &self,
11977 ulflags: u32,
11978 ppformproparray: *mut *mut SMAPIFormPropArray,
11979 ) -> windows_core::Result<()> {
11980 unsafe {
11981 (windows_core::Interface::vtable(self).CalcFormPropSet)(
11982 windows_core::Interface::as_raw(self),
11983 ulflags,
11984 ppformproparray as _,
11985 )
11986 .ok()
11987 }
11988 }
11989 pub unsafe fn CalcVerbSet(
11990 &self,
11991 ulflags: u32,
11992 ppmapiverbarray: *mut *mut SMAPIVerbArray,
11993 ) -> windows_core::Result<()> {
11994 unsafe {
11995 (windows_core::Interface::vtable(self).CalcVerbSet)(
11996 windows_core::Interface::as_raw(self),
11997 ulflags,
11998 ppmapiverbarray as _,
11999 )
12000 .ok()
12001 }
12002 }
12003 pub unsafe fn MakeIconFromBinary(
12004 &self,
12005 npropid: u32,
12006 phicon: *mut windows::Win32::UI::WindowsAndMessaging::HICON,
12007 ) -> windows_core::Result<()> {
12008 unsafe {
12009 (windows_core::Interface::vtable(self).MakeIconFromBinary)(
12010 windows_core::Interface::as_raw(self),
12011 npropid,
12012 phicon as _,
12013 )
12014 .ok()
12015 }
12016 }
12017 pub unsafe fn SaveForm(&self, szfilename: *mut i8) -> windows_core::Result<()> {
12018 unsafe {
12019 (windows_core::Interface::vtable(self).SaveForm)(
12020 windows_core::Interface::as_raw(self),
12021 szfilename as _,
12022 )
12023 .ok()
12024 }
12025 }
12026 pub unsafe fn OpenFormContainer(&self) -> windows_core::Result<IMAPIFormContainer> {
12027 unsafe {
12028 let mut result__ = core::mem::zeroed();
12029 (windows_core::Interface::vtable(self).OpenFormContainer)(
12030 windows_core::Interface::as_raw(self),
12031 &mut result__,
12032 )
12033 .and_then(|| windows_core::Type::from_abi(result__))
12034 }
12035 }
12036}
12037#[repr(C)]
12038#[doc(hidden)]
12039pub struct IMAPIFormInfo_Vtbl {
12040 pub base__: IMAPIProp_Vtbl,
12041 pub CalcFormPropSet: unsafe extern "system" fn(
12042 *mut core::ffi::c_void,
12043 u32,
12044 *mut *mut SMAPIFormPropArray,
12045 ) -> windows_core::HRESULT,
12046 pub CalcVerbSet: unsafe extern "system" fn(
12047 *mut core::ffi::c_void,
12048 u32,
12049 *mut *mut SMAPIVerbArray,
12050 ) -> windows_core::HRESULT,
12051 pub MakeIconFromBinary: unsafe extern "system" fn(
12052 *mut core::ffi::c_void,
12053 u32,
12054 *mut windows::Win32::UI::WindowsAndMessaging::HICON,
12055 ) -> windows_core::HRESULT,
12056 pub SaveForm:
12057 unsafe extern "system" fn(*mut core::ffi::c_void, *mut i8) -> windows_core::HRESULT,
12058 pub OpenFormContainer: unsafe extern "system" fn(
12059 *mut core::ffi::c_void,
12060 *mut *mut core::ffi::c_void,
12061 ) -> windows_core::HRESULT,
12062}
12063pub trait IMAPIFormInfo_Impl: IMAPIProp_Impl {
12064 fn CalcFormPropSet(
12065 &self,
12066 ulflags: u32,
12067 ppformproparray: *mut *mut SMAPIFormPropArray,
12068 ) -> windows_core::Result<()>;
12069 fn CalcVerbSet(
12070 &self,
12071 ulflags: u32,
12072 ppmapiverbarray: *mut *mut SMAPIVerbArray,
12073 ) -> windows_core::Result<()>;
12074 fn MakeIconFromBinary(
12075 &self,
12076 npropid: u32,
12077 phicon: *mut windows::Win32::UI::WindowsAndMessaging::HICON,
12078 ) -> windows_core::Result<()>;
12079 fn SaveForm(&self, szfilename: *mut i8) -> windows_core::Result<()>;
12080 fn OpenFormContainer(&self) -> windows_core::Result<IMAPIFormContainer>;
12081}
12082impl IMAPIFormInfo_Vtbl {
12083 pub const fn new<Identity: IMAPIFormInfo_Impl, const OFFSET: isize>() -> Self {
12084 unsafe extern "system" fn CalcFormPropSet<
12085 Identity: IMAPIFormInfo_Impl,
12086 const OFFSET: isize,
12087 >(
12088 this: *mut core::ffi::c_void,
12089 ulflags: u32,
12090 ppformproparray: *mut *mut SMAPIFormPropArray,
12091 ) -> windows_core::HRESULT {
12092 unsafe {
12093 let this: &Identity =
12094 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
12095 IMAPIFormInfo_Impl::CalcFormPropSet(
12096 this,
12097 core::mem::transmute_copy(&ulflags),
12098 core::mem::transmute_copy(&ppformproparray),
12099 )
12100 .into()
12101 }
12102 }
12103 unsafe extern "system" fn CalcVerbSet<Identity: IMAPIFormInfo_Impl, const OFFSET: isize>(
12104 this: *mut core::ffi::c_void,
12105 ulflags: u32,
12106 ppmapiverbarray: *mut *mut SMAPIVerbArray,
12107 ) -> windows_core::HRESULT {
12108 unsafe {
12109 let this: &Identity =
12110 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
12111 IMAPIFormInfo_Impl::CalcVerbSet(
12112 this,
12113 core::mem::transmute_copy(&ulflags),
12114 core::mem::transmute_copy(&ppmapiverbarray),
12115 )
12116 .into()
12117 }
12118 }
12119 unsafe extern "system" fn MakeIconFromBinary<
12120 Identity: IMAPIFormInfo_Impl,
12121 const OFFSET: isize,
12122 >(
12123 this: *mut core::ffi::c_void,
12124 npropid: u32,
12125 phicon: *mut windows::Win32::UI::WindowsAndMessaging::HICON,
12126 ) -> windows_core::HRESULT {
12127 unsafe {
12128 let this: &Identity =
12129 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
12130 IMAPIFormInfo_Impl::MakeIconFromBinary(
12131 this,
12132 core::mem::transmute_copy(&npropid),
12133 core::mem::transmute_copy(&phicon),
12134 )
12135 .into()
12136 }
12137 }
12138 unsafe extern "system" fn SaveForm<Identity: IMAPIFormInfo_Impl, const OFFSET: isize>(
12139 this: *mut core::ffi::c_void,
12140 szfilename: *mut i8,
12141 ) -> windows_core::HRESULT {
12142 unsafe {
12143 let this: &Identity =
12144 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
12145 IMAPIFormInfo_Impl::SaveForm(this, core::mem::transmute_copy(&szfilename)).into()
12146 }
12147 }
12148 unsafe extern "system" fn OpenFormContainer<
12149 Identity: IMAPIFormInfo_Impl,
12150 const OFFSET: isize,
12151 >(
12152 this: *mut core::ffi::c_void,
12153 ppformcontainer: *mut *mut core::ffi::c_void,
12154 ) -> windows_core::HRESULT {
12155 unsafe {
12156 let this: &Identity =
12157 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
12158 match IMAPIFormInfo_Impl::OpenFormContainer(this) {
12159 Ok(ok__) => {
12160 ppformcontainer.write(core::mem::transmute(ok__));
12161 windows_core::HRESULT(0)
12162 }
12163 Err(err) => err.into(),
12164 }
12165 }
12166 }
12167 Self {
12168 base__: IMAPIProp_Vtbl::new::<Identity, OFFSET>(),
12169 CalcFormPropSet: CalcFormPropSet::<Identity, OFFSET>,
12170 CalcVerbSet: CalcVerbSet::<Identity, OFFSET>,
12171 MakeIconFromBinary: MakeIconFromBinary::<Identity, OFFSET>,
12172 SaveForm: SaveForm::<Identity, OFFSET>,
12173 OpenFormContainer: OpenFormContainer::<Identity, OFFSET>,
12174 }
12175 }
12176 pub fn matches(iid: &windows_core::GUID) -> bool {
12177 iid == &<IMAPIFormInfo as windows_core::Interface>::IID
12178 || iid == &<IMAPIProp as windows_core::Interface>::IID
12179 }
12180}
12181impl windows_core::RuntimeName for IMAPIFormInfo {}
12182windows_core::imp::define_interface!(
12183 IMAPIFormMgr,
12184 IMAPIFormMgr_Vtbl,
12185 0x00020322_0000_0000_c000_000000000046
12186);
12187windows_core::imp::interface_hierarchy!(IMAPIFormMgr, windows_core::IUnknown);
12188impl IMAPIFormMgr {
12189 pub unsafe fn GetLastError(
12190 &self,
12191 hresult: windows_core::HRESULT,
12192 ulflags: u32,
12193 lppmapierror: *mut *mut MAPIERROR,
12194 ) -> windows_core::Result<()> {
12195 unsafe {
12196 (windows_core::Interface::vtable(self).GetLastError)(
12197 windows_core::Interface::as_raw(self),
12198 hresult,
12199 ulflags,
12200 lppmapierror as _,
12201 )
12202 .ok()
12203 }
12204 }
12205 pub unsafe fn LoadForm<P2, P5, P6, P7, P8>(
12206 &self,
12207 uluiparam: usize,
12208 ulflags: u32,
12209 lpszmessageclass: P2,
12210 ulmessagestatus: u32,
12211 ulmessageflags: u32,
12212 pfolderfocus: P5,
12213 pmessagesite: P6,
12214 pmsg: P7,
12215 pviewcontext: P8,
12216 riid: *const windows_core::GUID,
12217 ppvobj: *mut *mut core::ffi::c_void,
12218 ) -> windows_core::Result<()>
12219 where
12220 P2: windows_core::Param<windows_core::PCSTR>,
12221 P5: windows_core::Param<IMAPIFolder>,
12222 P6: windows_core::Param<IMAPIMessageSite>,
12223 P7: windows_core::Param<IMessage>,
12224 P8: windows_core::Param<IMAPIViewContext>,
12225 {
12226 unsafe {
12227 (windows_core::Interface::vtable(self).LoadForm)(
12228 windows_core::Interface::as_raw(self),
12229 uluiparam,
12230 ulflags,
12231 lpszmessageclass.param().abi(),
12232 ulmessagestatus,
12233 ulmessageflags,
12234 pfolderfocus.param().abi(),
12235 pmessagesite.param().abi(),
12236 pmsg.param().abi(),
12237 pviewcontext.param().abi(),
12238 riid,
12239 ppvobj as _,
12240 )
12241 .ok()
12242 }
12243 }
12244 pub unsafe fn ResolveMessageClass<P0, P2>(
12245 &self,
12246 szmsgclass: P0,
12247 ulflags: u32,
12248 pfolderfocus: P2,
12249 ) -> windows_core::Result<IMAPIFormInfo>
12250 where
12251 P0: windows_core::Param<windows_core::PCSTR>,
12252 P2: windows_core::Param<IMAPIFolder>,
12253 {
12254 unsafe {
12255 let mut result__ = core::mem::zeroed();
12256 (windows_core::Interface::vtable(self).ResolveMessageClass)(
12257 windows_core::Interface::as_raw(self),
12258 szmsgclass.param().abi(),
12259 ulflags,
12260 pfolderfocus.param().abi(),
12261 &mut result__,
12262 )
12263 .and_then(|| windows_core::Type::from_abi(result__))
12264 }
12265 }
12266 pub unsafe fn ResolveMultipleMessageClasses<P2>(
12267 &self,
12268 pmsgclasses: *mut SMessageClassArray,
12269 ulflags: u32,
12270 pfolderfocus: P2,
12271 pfrminfoarray: *mut *mut SMAPIFormInfoArray,
12272 ) -> windows_core::Result<()>
12273 where
12274 P2: windows_core::Param<IMAPIFolder>,
12275 {
12276 unsafe {
12277 (windows_core::Interface::vtable(self).ResolveMultipleMessageClasses)(
12278 windows_core::Interface::as_raw(self),
12279 pmsgclasses as _,
12280 ulflags,
12281 pfolderfocus.param().abi(),
12282 pfrminfoarray as _,
12283 )
12284 .ok()
12285 }
12286 }
12287 pub unsafe fn CalcFormPropSet(
12288 &self,
12289 pfrminfoarray: *mut SMAPIFormInfoArray,
12290 ulflags: u32,
12291 ppresults: *mut *mut SMAPIFormPropArray,
12292 ) -> windows_core::Result<()> {
12293 unsafe {
12294 (windows_core::Interface::vtable(self).CalcFormPropSet)(
12295 windows_core::Interface::as_raw(self),
12296 core::mem::transmute(pfrminfoarray),
12297 ulflags,
12298 ppresults as _,
12299 )
12300 .ok()
12301 }
12302 }
12303 pub unsafe fn CreateForm<P2>(
12304 &self,
12305 uluiparam: usize,
12306 ulflags: u32,
12307 pfrminfotoactivate: P2,
12308 refiidtoask: *const windows_core::GUID,
12309 ppvobj: *mut *mut core::ffi::c_void,
12310 ) -> windows_core::Result<()>
12311 where
12312 P2: windows_core::Param<IMAPIFormInfo>,
12313 {
12314 unsafe {
12315 (windows_core::Interface::vtable(self).CreateForm)(
12316 windows_core::Interface::as_raw(self),
12317 uluiparam,
12318 ulflags,
12319 pfrminfotoactivate.param().abi(),
12320 refiidtoask,
12321 ppvobj as _,
12322 )
12323 .ok()
12324 }
12325 }
12326 pub unsafe fn SelectForm<P3>(
12327 &self,
12328 uluiparam: usize,
12329 ulflags: u32,
12330 psztitle: *mut i8,
12331 pfld: P3,
12332 ppfrminforeturned: *mut Option<IMAPIFormInfo>,
12333 ) -> windows_core::Result<()>
12334 where
12335 P3: windows_core::Param<IMAPIFolder>,
12336 {
12337 unsafe {
12338 (windows_core::Interface::vtable(self).SelectForm)(
12339 windows_core::Interface::as_raw(self),
12340 uluiparam,
12341 ulflags,
12342 psztitle as _,
12343 pfld.param().abi(),
12344 core::mem::transmute(ppfrminforeturned),
12345 )
12346 .ok()
12347 }
12348 }
12349 pub unsafe fn SelectMultipleForms<P3>(
12350 &self,
12351 uluiparam: usize,
12352 ulflags: u32,
12353 psztitle: *mut i8,
12354 pfld: P3,
12355 pfrminfoarray: *mut SMAPIFormInfoArray,
12356 ppfrminfoarray: *mut *mut SMAPIFormInfoArray,
12357 ) -> windows_core::Result<()>
12358 where
12359 P3: windows_core::Param<IMAPIFolder>,
12360 {
12361 unsafe {
12362 (windows_core::Interface::vtable(self).SelectMultipleForms)(
12363 windows_core::Interface::as_raw(self),
12364 uluiparam,
12365 ulflags,
12366 psztitle as _,
12367 pfld.param().abi(),
12368 core::mem::transmute(pfrminfoarray),
12369 ppfrminfoarray as _,
12370 )
12371 .ok()
12372 }
12373 }
12374 pub unsafe fn SelectFormContainer(
12375 &self,
12376 uluiparam: usize,
12377 ulflags: u32,
12378 ) -> windows_core::Result<IMAPIFormContainer> {
12379 unsafe {
12380 let mut result__ = core::mem::zeroed();
12381 (windows_core::Interface::vtable(self).SelectFormContainer)(
12382 windows_core::Interface::as_raw(self),
12383 uluiparam,
12384 ulflags,
12385 &mut result__,
12386 )
12387 .and_then(|| windows_core::Type::from_abi(result__))
12388 }
12389 }
12390 pub unsafe fn OpenFormContainer<P1>(
12391 &self,
12392 hfrmreg: u32,
12393 lpunk: P1,
12394 ) -> windows_core::Result<IMAPIFormContainer>
12395 where
12396 P1: windows_core::Param<windows_core::IUnknown>,
12397 {
12398 unsafe {
12399 let mut result__ = core::mem::zeroed();
12400 (windows_core::Interface::vtable(self).OpenFormContainer)(
12401 windows_core::Interface::as_raw(self),
12402 hfrmreg,
12403 lpunk.param().abi(),
12404 &mut result__,
12405 )
12406 .and_then(|| windows_core::Type::from_abi(result__))
12407 }
12408 }
12409 pub unsafe fn PrepareForm<P2>(
12410 &self,
12411 uluiparam: usize,
12412 ulflags: u32,
12413 pfrminfo: P2,
12414 ) -> windows_core::Result<()>
12415 where
12416 P2: windows_core::Param<IMAPIFormInfo>,
12417 {
12418 unsafe {
12419 (windows_core::Interface::vtable(self).PrepareForm)(
12420 windows_core::Interface::as_raw(self),
12421 uluiparam,
12422 ulflags,
12423 pfrminfo.param().abi(),
12424 )
12425 .ok()
12426 }
12427 }
12428 pub unsafe fn IsInConflict<P2, P3>(
12429 &self,
12430 ulmessageflags: u32,
12431 ulmessagestatus: u32,
12432 szmessageclass: P2,
12433 pfolderfocus: P3,
12434 ) -> windows_core::Result<()>
12435 where
12436 P2: windows_core::Param<windows_core::PCSTR>,
12437 P3: windows_core::Param<IMAPIFolder>,
12438 {
12439 unsafe {
12440 (windows_core::Interface::vtable(self).IsInConflict)(
12441 windows_core::Interface::as_raw(self),
12442 ulmessageflags,
12443 ulmessagestatus,
12444 szmessageclass.param().abi(),
12445 pfolderfocus.param().abi(),
12446 )
12447 .ok()
12448 }
12449 }
12450}
12451#[repr(C)]
12452#[doc(hidden)]
12453pub struct IMAPIFormMgr_Vtbl {
12454 pub base__: windows_core::IUnknown_Vtbl,
12455 pub GetLastError: unsafe extern "system" fn(
12456 *mut core::ffi::c_void,
12457 windows_core::HRESULT,
12458 u32,
12459 *mut *mut MAPIERROR,
12460 ) -> windows_core::HRESULT,
12461 pub LoadForm: unsafe extern "system" fn(
12462 *mut core::ffi::c_void,
12463 usize,
12464 u32,
12465 windows_core::PCSTR,
12466 u32,
12467 u32,
12468 *mut core::ffi::c_void,
12469 *mut core::ffi::c_void,
12470 *mut core::ffi::c_void,
12471 *mut core::ffi::c_void,
12472 *const windows_core::GUID,
12473 *mut *mut core::ffi::c_void,
12474 ) -> windows_core::HRESULT,
12475 pub ResolveMessageClass: unsafe extern "system" fn(
12476 *mut core::ffi::c_void,
12477 windows_core::PCSTR,
12478 u32,
12479 *mut core::ffi::c_void,
12480 *mut *mut core::ffi::c_void,
12481 ) -> windows_core::HRESULT,
12482 pub ResolveMultipleMessageClasses: unsafe extern "system" fn(
12483 *mut core::ffi::c_void,
12484 *mut SMessageClassArray,
12485 u32,
12486 *mut core::ffi::c_void,
12487 *mut *mut SMAPIFormInfoArray,
12488 ) -> windows_core::HRESULT,
12489 pub CalcFormPropSet: unsafe extern "system" fn(
12490 *mut core::ffi::c_void,
12491 *mut SMAPIFormInfoArray,
12492 u32,
12493 *mut *mut SMAPIFormPropArray,
12494 ) -> windows_core::HRESULT,
12495 pub CreateForm: unsafe extern "system" fn(
12496 *mut core::ffi::c_void,
12497 usize,
12498 u32,
12499 *mut core::ffi::c_void,
12500 *const windows_core::GUID,
12501 *mut *mut core::ffi::c_void,
12502 ) -> windows_core::HRESULT,
12503 pub SelectForm: unsafe extern "system" fn(
12504 *mut core::ffi::c_void,
12505 usize,
12506 u32,
12507 *mut i8,
12508 *mut core::ffi::c_void,
12509 *mut *mut core::ffi::c_void,
12510 ) -> windows_core::HRESULT,
12511 pub SelectMultipleForms: unsafe extern "system" fn(
12512 *mut core::ffi::c_void,
12513 usize,
12514 u32,
12515 *mut i8,
12516 *mut core::ffi::c_void,
12517 *mut SMAPIFormInfoArray,
12518 *mut *mut SMAPIFormInfoArray,
12519 ) -> windows_core::HRESULT,
12520 pub SelectFormContainer: unsafe extern "system" fn(
12521 *mut core::ffi::c_void,
12522 usize,
12523 u32,
12524 *mut *mut core::ffi::c_void,
12525 ) -> windows_core::HRESULT,
12526 pub OpenFormContainer: unsafe extern "system" fn(
12527 *mut core::ffi::c_void,
12528 u32,
12529 *mut core::ffi::c_void,
12530 *mut *mut core::ffi::c_void,
12531 ) -> windows_core::HRESULT,
12532 pub PrepareForm: unsafe extern "system" fn(
12533 *mut core::ffi::c_void,
12534 usize,
12535 u32,
12536 *mut core::ffi::c_void,
12537 ) -> windows_core::HRESULT,
12538 pub IsInConflict: unsafe extern "system" fn(
12539 *mut core::ffi::c_void,
12540 u32,
12541 u32,
12542 windows_core::PCSTR,
12543 *mut core::ffi::c_void,
12544 ) -> windows_core::HRESULT,
12545}
12546pub trait IMAPIFormMgr_Impl: windows_core::IUnknownImpl {
12547 fn GetLastError(
12548 &self,
12549 hresult: windows_core::HRESULT,
12550 ulflags: u32,
12551 lppmapierror: *mut *mut MAPIERROR,
12552 ) -> windows_core::Result<()>;
12553 fn LoadForm(
12554 &self,
12555 uluiparam: usize,
12556 ulflags: u32,
12557 lpszmessageclass: &windows_core::PCSTR,
12558 ulmessagestatus: u32,
12559 ulmessageflags: u32,
12560 pfolderfocus: windows_core::Ref<IMAPIFolder>,
12561 pmessagesite: windows_core::Ref<IMAPIMessageSite>,
12562 pmsg: windows_core::Ref<IMessage>,
12563 pviewcontext: windows_core::Ref<IMAPIViewContext>,
12564 riid: *const windows_core::GUID,
12565 ppvobj: *mut *mut core::ffi::c_void,
12566 ) -> windows_core::Result<()>;
12567 fn ResolveMessageClass(
12568 &self,
12569 szmsgclass: &windows_core::PCSTR,
12570 ulflags: u32,
12571 pfolderfocus: windows_core::Ref<IMAPIFolder>,
12572 ) -> windows_core::Result<IMAPIFormInfo>;
12573 fn ResolveMultipleMessageClasses(
12574 &self,
12575 pmsgclasses: *mut SMessageClassArray,
12576 ulflags: u32,
12577 pfolderfocus: windows_core::Ref<IMAPIFolder>,
12578 pfrminfoarray: *mut *mut SMAPIFormInfoArray,
12579 ) -> windows_core::Result<()>;
12580 fn CalcFormPropSet(
12581 &self,
12582 pfrminfoarray: *mut SMAPIFormInfoArray,
12583 ulflags: u32,
12584 ppresults: *mut *mut SMAPIFormPropArray,
12585 ) -> windows_core::Result<()>;
12586 fn CreateForm(
12587 &self,
12588 uluiparam: usize,
12589 ulflags: u32,
12590 pfrminfotoactivate: windows_core::Ref<IMAPIFormInfo>,
12591 refiidtoask: *const windows_core::GUID,
12592 ppvobj: *mut *mut core::ffi::c_void,
12593 ) -> windows_core::Result<()>;
12594 fn SelectForm(
12595 &self,
12596 uluiparam: usize,
12597 ulflags: u32,
12598 psztitle: *mut i8,
12599 pfld: windows_core::Ref<IMAPIFolder>,
12600 ppfrminforeturned: windows_core::OutRef<IMAPIFormInfo>,
12601 ) -> windows_core::Result<()>;
12602 fn SelectMultipleForms(
12603 &self,
12604 uluiparam: usize,
12605 ulflags: u32,
12606 psztitle: *mut i8,
12607 pfld: windows_core::Ref<IMAPIFolder>,
12608 pfrminfoarray: *mut SMAPIFormInfoArray,
12609 ppfrminfoarray: *mut *mut SMAPIFormInfoArray,
12610 ) -> windows_core::Result<()>;
12611 fn SelectFormContainer(
12612 &self,
12613 uluiparam: usize,
12614 ulflags: u32,
12615 ) -> windows_core::Result<IMAPIFormContainer>;
12616 fn OpenFormContainer(
12617 &self,
12618 hfrmreg: u32,
12619 lpunk: windows_core::Ref<windows_core::IUnknown>,
12620 ) -> windows_core::Result<IMAPIFormContainer>;
12621 fn PrepareForm(
12622 &self,
12623 uluiparam: usize,
12624 ulflags: u32,
12625 pfrminfo: windows_core::Ref<IMAPIFormInfo>,
12626 ) -> windows_core::Result<()>;
12627 fn IsInConflict(
12628 &self,
12629 ulmessageflags: u32,
12630 ulmessagestatus: u32,
12631 szmessageclass: &windows_core::PCSTR,
12632 pfolderfocus: windows_core::Ref<IMAPIFolder>,
12633 ) -> windows_core::Result<()>;
12634}
12635impl IMAPIFormMgr_Vtbl {
12636 pub const fn new<Identity: IMAPIFormMgr_Impl, const OFFSET: isize>() -> Self {
12637 unsafe extern "system" fn GetLastError<Identity: IMAPIFormMgr_Impl, const OFFSET: isize>(
12638 this: *mut core::ffi::c_void,
12639 hresult: windows_core::HRESULT,
12640 ulflags: u32,
12641 lppmapierror: *mut *mut MAPIERROR,
12642 ) -> windows_core::HRESULT {
12643 unsafe {
12644 let this: &Identity =
12645 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
12646 IMAPIFormMgr_Impl::GetLastError(
12647 this,
12648 core::mem::transmute_copy(&hresult),
12649 core::mem::transmute_copy(&ulflags),
12650 core::mem::transmute_copy(&lppmapierror),
12651 )
12652 .into()
12653 }
12654 }
12655 unsafe extern "system" fn LoadForm<Identity: IMAPIFormMgr_Impl, const OFFSET: isize>(
12656 this: *mut core::ffi::c_void,
12657 uluiparam: usize,
12658 ulflags: u32,
12659 lpszmessageclass: windows_core::PCSTR,
12660 ulmessagestatus: u32,
12661 ulmessageflags: u32,
12662 pfolderfocus: *mut core::ffi::c_void,
12663 pmessagesite: *mut core::ffi::c_void,
12664 pmsg: *mut core::ffi::c_void,
12665 pviewcontext: *mut core::ffi::c_void,
12666 riid: *const windows_core::GUID,
12667 ppvobj: *mut *mut core::ffi::c_void,
12668 ) -> windows_core::HRESULT {
12669 unsafe {
12670 let this: &Identity =
12671 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
12672 IMAPIFormMgr_Impl::LoadForm(
12673 this,
12674 core::mem::transmute_copy(&uluiparam),
12675 core::mem::transmute_copy(&ulflags),
12676 core::mem::transmute(&lpszmessageclass),
12677 core::mem::transmute_copy(&ulmessagestatus),
12678 core::mem::transmute_copy(&ulmessageflags),
12679 core::mem::transmute_copy(&pfolderfocus),
12680 core::mem::transmute_copy(&pmessagesite),
12681 core::mem::transmute_copy(&pmsg),
12682 core::mem::transmute_copy(&pviewcontext),
12683 core::mem::transmute_copy(&riid),
12684 core::mem::transmute_copy(&ppvobj),
12685 )
12686 .into()
12687 }
12688 }
12689 unsafe extern "system" fn ResolveMessageClass<
12690 Identity: IMAPIFormMgr_Impl,
12691 const OFFSET: isize,
12692 >(
12693 this: *mut core::ffi::c_void,
12694 szmsgclass: windows_core::PCSTR,
12695 ulflags: u32,
12696 pfolderfocus: *mut core::ffi::c_void,
12697 ppresult: *mut *mut core::ffi::c_void,
12698 ) -> windows_core::HRESULT {
12699 unsafe {
12700 let this: &Identity =
12701 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
12702 match IMAPIFormMgr_Impl::ResolveMessageClass(
12703 this,
12704 core::mem::transmute(&szmsgclass),
12705 core::mem::transmute_copy(&ulflags),
12706 core::mem::transmute_copy(&pfolderfocus),
12707 ) {
12708 Ok(ok__) => {
12709 ppresult.write(core::mem::transmute(ok__));
12710 windows_core::HRESULT(0)
12711 }
12712 Err(err) => err.into(),
12713 }
12714 }
12715 }
12716 unsafe extern "system" fn ResolveMultipleMessageClasses<
12717 Identity: IMAPIFormMgr_Impl,
12718 const OFFSET: isize,
12719 >(
12720 this: *mut core::ffi::c_void,
12721 pmsgclasses: *mut SMessageClassArray,
12722 ulflags: u32,
12723 pfolderfocus: *mut core::ffi::c_void,
12724 pfrminfoarray: *mut *mut SMAPIFormInfoArray,
12725 ) -> windows_core::HRESULT {
12726 unsafe {
12727 let this: &Identity =
12728 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
12729 IMAPIFormMgr_Impl::ResolveMultipleMessageClasses(
12730 this,
12731 core::mem::transmute_copy(&pmsgclasses),
12732 core::mem::transmute_copy(&ulflags),
12733 core::mem::transmute_copy(&pfolderfocus),
12734 core::mem::transmute_copy(&pfrminfoarray),
12735 )
12736 .into()
12737 }
12738 }
12739 unsafe extern "system" fn CalcFormPropSet<
12740 Identity: IMAPIFormMgr_Impl,
12741 const OFFSET: isize,
12742 >(
12743 this: *mut core::ffi::c_void,
12744 pfrminfoarray: *mut SMAPIFormInfoArray,
12745 ulflags: u32,
12746 ppresults: *mut *mut SMAPIFormPropArray,
12747 ) -> windows_core::HRESULT {
12748 unsafe {
12749 let this: &Identity =
12750 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
12751 IMAPIFormMgr_Impl::CalcFormPropSet(
12752 this,
12753 core::mem::transmute_copy(&pfrminfoarray),
12754 core::mem::transmute_copy(&ulflags),
12755 core::mem::transmute_copy(&ppresults),
12756 )
12757 .into()
12758 }
12759 }
12760 unsafe extern "system" fn CreateForm<Identity: IMAPIFormMgr_Impl, const OFFSET: isize>(
12761 this: *mut core::ffi::c_void,
12762 uluiparam: usize,
12763 ulflags: u32,
12764 pfrminfotoactivate: *mut core::ffi::c_void,
12765 refiidtoask: *const windows_core::GUID,
12766 ppvobj: *mut *mut core::ffi::c_void,
12767 ) -> windows_core::HRESULT {
12768 unsafe {
12769 let this: &Identity =
12770 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
12771 IMAPIFormMgr_Impl::CreateForm(
12772 this,
12773 core::mem::transmute_copy(&uluiparam),
12774 core::mem::transmute_copy(&ulflags),
12775 core::mem::transmute_copy(&pfrminfotoactivate),
12776 core::mem::transmute_copy(&refiidtoask),
12777 core::mem::transmute_copy(&ppvobj),
12778 )
12779 .into()
12780 }
12781 }
12782 unsafe extern "system" fn SelectForm<Identity: IMAPIFormMgr_Impl, const OFFSET: isize>(
12783 this: *mut core::ffi::c_void,
12784 uluiparam: usize,
12785 ulflags: u32,
12786 psztitle: *mut i8,
12787 pfld: *mut core::ffi::c_void,
12788 ppfrminforeturned: *mut *mut core::ffi::c_void,
12789 ) -> windows_core::HRESULT {
12790 unsafe {
12791 let this: &Identity =
12792 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
12793 IMAPIFormMgr_Impl::SelectForm(
12794 this,
12795 core::mem::transmute_copy(&uluiparam),
12796 core::mem::transmute_copy(&ulflags),
12797 core::mem::transmute_copy(&psztitle),
12798 core::mem::transmute_copy(&pfld),
12799 core::mem::transmute_copy(&ppfrminforeturned),
12800 )
12801 .into()
12802 }
12803 }
12804 unsafe extern "system" fn SelectMultipleForms<
12805 Identity: IMAPIFormMgr_Impl,
12806 const OFFSET: isize,
12807 >(
12808 this: *mut core::ffi::c_void,
12809 uluiparam: usize,
12810 ulflags: u32,
12811 psztitle: *mut i8,
12812 pfld: *mut core::ffi::c_void,
12813 pfrminfoarray: *mut SMAPIFormInfoArray,
12814 ppfrminfoarray: *mut *mut SMAPIFormInfoArray,
12815 ) -> windows_core::HRESULT {
12816 unsafe {
12817 let this: &Identity =
12818 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
12819 IMAPIFormMgr_Impl::SelectMultipleForms(
12820 this,
12821 core::mem::transmute_copy(&uluiparam),
12822 core::mem::transmute_copy(&ulflags),
12823 core::mem::transmute_copy(&psztitle),
12824 core::mem::transmute_copy(&pfld),
12825 core::mem::transmute_copy(&pfrminfoarray),
12826 core::mem::transmute_copy(&ppfrminfoarray),
12827 )
12828 .into()
12829 }
12830 }
12831 unsafe extern "system" fn SelectFormContainer<
12832 Identity: IMAPIFormMgr_Impl,
12833 const OFFSET: isize,
12834 >(
12835 this: *mut core::ffi::c_void,
12836 uluiparam: usize,
12837 ulflags: u32,
12838 lppfcnt: *mut *mut core::ffi::c_void,
12839 ) -> windows_core::HRESULT {
12840 unsafe {
12841 let this: &Identity =
12842 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
12843 match IMAPIFormMgr_Impl::SelectFormContainer(
12844 this,
12845 core::mem::transmute_copy(&uluiparam),
12846 core::mem::transmute_copy(&ulflags),
12847 ) {
12848 Ok(ok__) => {
12849 lppfcnt.write(core::mem::transmute(ok__));
12850 windows_core::HRESULT(0)
12851 }
12852 Err(err) => err.into(),
12853 }
12854 }
12855 }
12856 unsafe extern "system" fn OpenFormContainer<
12857 Identity: IMAPIFormMgr_Impl,
12858 const OFFSET: isize,
12859 >(
12860 this: *mut core::ffi::c_void,
12861 hfrmreg: u32,
12862 lpunk: *mut core::ffi::c_void,
12863 lppfcnt: *mut *mut core::ffi::c_void,
12864 ) -> windows_core::HRESULT {
12865 unsafe {
12866 let this: &Identity =
12867 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
12868 match IMAPIFormMgr_Impl::OpenFormContainer(
12869 this,
12870 core::mem::transmute_copy(&hfrmreg),
12871 core::mem::transmute_copy(&lpunk),
12872 ) {
12873 Ok(ok__) => {
12874 lppfcnt.write(core::mem::transmute(ok__));
12875 windows_core::HRESULT(0)
12876 }
12877 Err(err) => err.into(),
12878 }
12879 }
12880 }
12881 unsafe extern "system" fn PrepareForm<Identity: IMAPIFormMgr_Impl, const OFFSET: isize>(
12882 this: *mut core::ffi::c_void,
12883 uluiparam: usize,
12884 ulflags: u32,
12885 pfrminfo: *mut core::ffi::c_void,
12886 ) -> windows_core::HRESULT {
12887 unsafe {
12888 let this: &Identity =
12889 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
12890 IMAPIFormMgr_Impl::PrepareForm(
12891 this,
12892 core::mem::transmute_copy(&uluiparam),
12893 core::mem::transmute_copy(&ulflags),
12894 core::mem::transmute_copy(&pfrminfo),
12895 )
12896 .into()
12897 }
12898 }
12899 unsafe extern "system" fn IsInConflict<Identity: IMAPIFormMgr_Impl, const OFFSET: isize>(
12900 this: *mut core::ffi::c_void,
12901 ulmessageflags: u32,
12902 ulmessagestatus: u32,
12903 szmessageclass: windows_core::PCSTR,
12904 pfolderfocus: *mut core::ffi::c_void,
12905 ) -> windows_core::HRESULT {
12906 unsafe {
12907 let this: &Identity =
12908 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
12909 IMAPIFormMgr_Impl::IsInConflict(
12910 this,
12911 core::mem::transmute_copy(&ulmessageflags),
12912 core::mem::transmute_copy(&ulmessagestatus),
12913 core::mem::transmute(&szmessageclass),
12914 core::mem::transmute_copy(&pfolderfocus),
12915 )
12916 .into()
12917 }
12918 }
12919 Self {
12920 base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
12921 GetLastError: GetLastError::<Identity, OFFSET>,
12922 LoadForm: LoadForm::<Identity, OFFSET>,
12923 ResolveMessageClass: ResolveMessageClass::<Identity, OFFSET>,
12924 ResolveMultipleMessageClasses: ResolveMultipleMessageClasses::<Identity, OFFSET>,
12925 CalcFormPropSet: CalcFormPropSet::<Identity, OFFSET>,
12926 CreateForm: CreateForm::<Identity, OFFSET>,
12927 SelectForm: SelectForm::<Identity, OFFSET>,
12928 SelectMultipleForms: SelectMultipleForms::<Identity, OFFSET>,
12929 SelectFormContainer: SelectFormContainer::<Identity, OFFSET>,
12930 OpenFormContainer: OpenFormContainer::<Identity, OFFSET>,
12931 PrepareForm: PrepareForm::<Identity, OFFSET>,
12932 IsInConflict: IsInConflict::<Identity, OFFSET>,
12933 }
12934 }
12935 pub fn matches(iid: &windows_core::GUID) -> bool {
12936 iid == &<IMAPIFormMgr as windows_core::Interface>::IID
12937 }
12938}
12939impl windows_core::RuntimeName for IMAPIFormMgr {}
12940windows_core::imp::define_interface!(
12941 IMAPIMessageSite,
12942 IMAPIMessageSite_Vtbl,
12943 0x00020370_0000_0000_c000_000000000046
12944);
12945windows_core::imp::interface_hierarchy!(IMAPIMessageSite, windows_core::IUnknown);
12946impl IMAPIMessageSite {
12947 pub unsafe fn GetLastError(
12948 &self,
12949 hresult: windows_core::HRESULT,
12950 ulflags: u32,
12951 lppmapierror: *mut *mut MAPIERROR,
12952 ) -> windows_core::Result<()> {
12953 unsafe {
12954 (windows_core::Interface::vtable(self).GetLastError)(
12955 windows_core::Interface::as_raw(self),
12956 hresult,
12957 ulflags,
12958 lppmapierror as _,
12959 )
12960 .ok()
12961 }
12962 }
12963 pub unsafe fn GetSession(&self) -> windows_core::Result<IMAPISession> {
12964 unsafe {
12965 let mut result__ = core::mem::zeroed();
12966 (windows_core::Interface::vtable(self).GetSession)(
12967 windows_core::Interface::as_raw(self),
12968 &mut result__,
12969 )
12970 .and_then(|| windows_core::Type::from_abi(result__))
12971 }
12972 }
12973 pub unsafe fn GetStore(&self) -> windows_core::Result<IMsgStore> {
12974 unsafe {
12975 let mut result__ = core::mem::zeroed();
12976 (windows_core::Interface::vtable(self).GetStore)(
12977 windows_core::Interface::as_raw(self),
12978 &mut result__,
12979 )
12980 .and_then(|| windows_core::Type::from_abi(result__))
12981 }
12982 }
12983 pub unsafe fn GetFolder(&self) -> windows_core::Result<IMAPIFolder> {
12984 unsafe {
12985 let mut result__ = core::mem::zeroed();
12986 (windows_core::Interface::vtable(self).GetFolder)(
12987 windows_core::Interface::as_raw(self),
12988 &mut result__,
12989 )
12990 .and_then(|| windows_core::Type::from_abi(result__))
12991 }
12992 }
12993 pub unsafe fn GetMessageA(&self) -> windows_core::Result<IMessage> {
12994 unsafe {
12995 let mut result__ = core::mem::zeroed();
12996 (windows_core::Interface::vtable(self).GetMessageA)(
12997 windows_core::Interface::as_raw(self),
12998 &mut result__,
12999 )
13000 .and_then(|| windows_core::Type::from_abi(result__))
13001 }
13002 }
13003 pub unsafe fn GetFormManager(&self) -> windows_core::Result<IMAPIFormMgr> {
13004 unsafe {
13005 let mut result__ = core::mem::zeroed();
13006 (windows_core::Interface::vtable(self).GetFormManager)(
13007 windows_core::Interface::as_raw(self),
13008 &mut result__,
13009 )
13010 .and_then(|| windows_core::Type::from_abi(result__))
13011 }
13012 }
13013 pub unsafe fn NewMessage<P1, P2>(
13014 &self,
13015 fcomposeinfolder: u32,
13016 pfolderfocus: P1,
13017 ppersistmessage: P2,
13018 ppmessage: *mut Option<IMessage>,
13019 ppmessagesite: *mut Option<IMAPIMessageSite>,
13020 ppviewcontext: *mut Option<IMAPIViewContext>,
13021 ) -> windows_core::Result<()>
13022 where
13023 P1: windows_core::Param<IMAPIFolder>,
13024 P2: windows_core::Param<IPersistMessage>,
13025 {
13026 unsafe {
13027 (windows_core::Interface::vtable(self).NewMessage)(
13028 windows_core::Interface::as_raw(self),
13029 fcomposeinfolder,
13030 pfolderfocus.param().abi(),
13031 ppersistmessage.param().abi(),
13032 core::mem::transmute(ppmessage),
13033 core::mem::transmute(ppmessagesite),
13034 core::mem::transmute(ppviewcontext),
13035 )
13036 .ok()
13037 }
13038 }
13039 pub unsafe fn CopyMessage<P0>(&self, pfolderdestination: P0) -> windows_core::Result<()>
13040 where
13041 P0: windows_core::Param<IMAPIFolder>,
13042 {
13043 unsafe {
13044 (windows_core::Interface::vtable(self).CopyMessage)(
13045 windows_core::Interface::as_raw(self),
13046 pfolderdestination.param().abi(),
13047 )
13048 .ok()
13049 }
13050 }
13051 pub unsafe fn MoveMessage<P0, P1>(
13052 &self,
13053 pfolderdestination: P0,
13054 pviewcontext: P1,
13055 prcposrect: *mut windows::Win32::Foundation::RECT,
13056 ) -> windows_core::Result<()>
13057 where
13058 P0: windows_core::Param<IMAPIFolder>,
13059 P1: windows_core::Param<IMAPIViewContext>,
13060 {
13061 unsafe {
13062 (windows_core::Interface::vtable(self).MoveMessage)(
13063 windows_core::Interface::as_raw(self),
13064 pfolderdestination.param().abi(),
13065 pviewcontext.param().abi(),
13066 prcposrect as _,
13067 )
13068 .ok()
13069 }
13070 }
13071 pub unsafe fn DeleteMessage<P0>(
13072 &self,
13073 pviewcontext: P0,
13074 prcposrect: *mut windows::Win32::Foundation::RECT,
13075 ) -> windows_core::Result<()>
13076 where
13077 P0: windows_core::Param<IMAPIViewContext>,
13078 {
13079 unsafe {
13080 (windows_core::Interface::vtable(self).DeleteMessage)(
13081 windows_core::Interface::as_raw(self),
13082 pviewcontext.param().abi(),
13083 prcposrect as _,
13084 )
13085 .ok()
13086 }
13087 }
13088 pub unsafe fn SaveMessage(&self) -> windows_core::Result<()> {
13089 unsafe {
13090 (windows_core::Interface::vtable(self).SaveMessage)(windows_core::Interface::as_raw(
13091 self,
13092 ))
13093 .ok()
13094 }
13095 }
13096 pub unsafe fn SubmitMessage(&self, ulflags: u32) -> windows_core::Result<()> {
13097 unsafe {
13098 (windows_core::Interface::vtable(self).SubmitMessage)(
13099 windows_core::Interface::as_raw(self),
13100 ulflags,
13101 )
13102 .ok()
13103 }
13104 }
13105 pub unsafe fn GetSiteStatus(&self, lpulstatus: *mut u32) -> windows_core::Result<()> {
13106 unsafe {
13107 (windows_core::Interface::vtable(self).GetSiteStatus)(
13108 windows_core::Interface::as_raw(self),
13109 lpulstatus as _,
13110 )
13111 .ok()
13112 }
13113 }
13114}
13115#[repr(C)]
13116#[doc(hidden)]
13117pub struct IMAPIMessageSite_Vtbl {
13118 pub base__: windows_core::IUnknown_Vtbl,
13119 pub GetLastError: unsafe extern "system" fn(
13120 *mut core::ffi::c_void,
13121 windows_core::HRESULT,
13122 u32,
13123 *mut *mut MAPIERROR,
13124 ) -> windows_core::HRESULT,
13125 pub GetSession: unsafe extern "system" fn(
13126 *mut core::ffi::c_void,
13127 *mut *mut core::ffi::c_void,
13128 ) -> windows_core::HRESULT,
13129 pub GetStore: unsafe extern "system" fn(
13130 *mut core::ffi::c_void,
13131 *mut *mut core::ffi::c_void,
13132 ) -> windows_core::HRESULT,
13133 pub GetFolder: unsafe extern "system" fn(
13134 *mut core::ffi::c_void,
13135 *mut *mut core::ffi::c_void,
13136 ) -> windows_core::HRESULT,
13137 pub GetMessageA: unsafe extern "system" fn(
13138 *mut core::ffi::c_void,
13139 *mut *mut core::ffi::c_void,
13140 ) -> windows_core::HRESULT,
13141 pub GetFormManager: unsafe extern "system" fn(
13142 *mut core::ffi::c_void,
13143 *mut *mut core::ffi::c_void,
13144 ) -> windows_core::HRESULT,
13145 pub NewMessage: unsafe extern "system" fn(
13146 *mut core::ffi::c_void,
13147 u32,
13148 *mut core::ffi::c_void,
13149 *mut core::ffi::c_void,
13150 *mut *mut core::ffi::c_void,
13151 *mut *mut core::ffi::c_void,
13152 *mut *mut core::ffi::c_void,
13153 ) -> windows_core::HRESULT,
13154 pub CopyMessage: unsafe extern "system" fn(
13155 *mut core::ffi::c_void,
13156 *mut core::ffi::c_void,
13157 ) -> windows_core::HRESULT,
13158 pub MoveMessage: unsafe extern "system" fn(
13159 *mut core::ffi::c_void,
13160 *mut core::ffi::c_void,
13161 *mut core::ffi::c_void,
13162 *mut windows::Win32::Foundation::RECT,
13163 ) -> windows_core::HRESULT,
13164 pub DeleteMessage: unsafe extern "system" fn(
13165 *mut core::ffi::c_void,
13166 *mut core::ffi::c_void,
13167 *mut windows::Win32::Foundation::RECT,
13168 ) -> windows_core::HRESULT,
13169 pub SaveMessage: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
13170 pub SubmitMessage:
13171 unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
13172 pub GetSiteStatus:
13173 unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
13174}
13175pub trait IMAPIMessageSite_Impl: windows_core::IUnknownImpl {
13176 fn GetLastError(
13177 &self,
13178 hresult: windows_core::HRESULT,
13179 ulflags: u32,
13180 lppmapierror: *mut *mut MAPIERROR,
13181 ) -> windows_core::Result<()>;
13182 fn GetSession(&self) -> windows_core::Result<IMAPISession>;
13183 fn GetStore(&self) -> windows_core::Result<IMsgStore>;
13184 fn GetFolder(&self) -> windows_core::Result<IMAPIFolder>;
13185 fn GetMessageA(&self) -> windows_core::Result<IMessage>;
13186 fn GetFormManager(&self) -> windows_core::Result<IMAPIFormMgr>;
13187 fn NewMessage(
13188 &self,
13189 fcomposeinfolder: u32,
13190 pfolderfocus: windows_core::Ref<IMAPIFolder>,
13191 ppersistmessage: windows_core::Ref<IPersistMessage>,
13192 ppmessage: windows_core::OutRef<IMessage>,
13193 ppmessagesite: windows_core::OutRef<IMAPIMessageSite>,
13194 ppviewcontext: windows_core::OutRef<IMAPIViewContext>,
13195 ) -> windows_core::Result<()>;
13196 fn CopyMessage(
13197 &self,
13198 pfolderdestination: windows_core::Ref<IMAPIFolder>,
13199 ) -> windows_core::Result<()>;
13200 fn MoveMessage(
13201 &self,
13202 pfolderdestination: windows_core::Ref<IMAPIFolder>,
13203 pviewcontext: windows_core::Ref<IMAPIViewContext>,
13204 prcposrect: *mut windows::Win32::Foundation::RECT,
13205 ) -> windows_core::Result<()>;
13206 fn DeleteMessage(
13207 &self,
13208 pviewcontext: windows_core::Ref<IMAPIViewContext>,
13209 prcposrect: *mut windows::Win32::Foundation::RECT,
13210 ) -> windows_core::Result<()>;
13211 fn SaveMessage(&self) -> windows_core::Result<()>;
13212 fn SubmitMessage(&self, ulflags: u32) -> windows_core::Result<()>;
13213 fn GetSiteStatus(&self, lpulstatus: *mut u32) -> windows_core::Result<()>;
13214}
13215impl IMAPIMessageSite_Vtbl {
13216 pub const fn new<Identity: IMAPIMessageSite_Impl, const OFFSET: isize>() -> Self {
13217 unsafe extern "system" fn GetLastError<
13218 Identity: IMAPIMessageSite_Impl,
13219 const OFFSET: isize,
13220 >(
13221 this: *mut core::ffi::c_void,
13222 hresult: windows_core::HRESULT,
13223 ulflags: u32,
13224 lppmapierror: *mut *mut MAPIERROR,
13225 ) -> windows_core::HRESULT {
13226 unsafe {
13227 let this: &Identity =
13228 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
13229 IMAPIMessageSite_Impl::GetLastError(
13230 this,
13231 core::mem::transmute_copy(&hresult),
13232 core::mem::transmute_copy(&ulflags),
13233 core::mem::transmute_copy(&lppmapierror),
13234 )
13235 .into()
13236 }
13237 }
13238 unsafe extern "system" fn GetSession<
13239 Identity: IMAPIMessageSite_Impl,
13240 const OFFSET: isize,
13241 >(
13242 this: *mut core::ffi::c_void,
13243 ppsession: *mut *mut core::ffi::c_void,
13244 ) -> windows_core::HRESULT {
13245 unsafe {
13246 let this: &Identity =
13247 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
13248 match IMAPIMessageSite_Impl::GetSession(this) {
13249 Ok(ok__) => {
13250 ppsession.write(core::mem::transmute(ok__));
13251 windows_core::HRESULT(0)
13252 }
13253 Err(err) => err.into(),
13254 }
13255 }
13256 }
13257 unsafe extern "system" fn GetStore<Identity: IMAPIMessageSite_Impl, const OFFSET: isize>(
13258 this: *mut core::ffi::c_void,
13259 ppstore: *mut *mut core::ffi::c_void,
13260 ) -> windows_core::HRESULT {
13261 unsafe {
13262 let this: &Identity =
13263 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
13264 match IMAPIMessageSite_Impl::GetStore(this) {
13265 Ok(ok__) => {
13266 ppstore.write(core::mem::transmute(ok__));
13267 windows_core::HRESULT(0)
13268 }
13269 Err(err) => err.into(),
13270 }
13271 }
13272 }
13273 unsafe extern "system" fn GetFolder<
13274 Identity: IMAPIMessageSite_Impl,
13275 const OFFSET: isize,
13276 >(
13277 this: *mut core::ffi::c_void,
13278 ppfolder: *mut *mut core::ffi::c_void,
13279 ) -> windows_core::HRESULT {
13280 unsafe {
13281 let this: &Identity =
13282 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
13283 match IMAPIMessageSite_Impl::GetFolder(this) {
13284 Ok(ok__) => {
13285 ppfolder.write(core::mem::transmute(ok__));
13286 windows_core::HRESULT(0)
13287 }
13288 Err(err) => err.into(),
13289 }
13290 }
13291 }
13292 unsafe extern "system" fn GetMessageA<
13293 Identity: IMAPIMessageSite_Impl,
13294 const OFFSET: isize,
13295 >(
13296 this: *mut core::ffi::c_void,
13297 ppmsg: *mut *mut core::ffi::c_void,
13298 ) -> windows_core::HRESULT {
13299 unsafe {
13300 let this: &Identity =
13301 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
13302 match IMAPIMessageSite_Impl::GetMessageA(this) {
13303 Ok(ok__) => {
13304 ppmsg.write(core::mem::transmute(ok__));
13305 windows_core::HRESULT(0)
13306 }
13307 Err(err) => err.into(),
13308 }
13309 }
13310 }
13311 unsafe extern "system" fn GetFormManager<
13312 Identity: IMAPIMessageSite_Impl,
13313 const OFFSET: isize,
13314 >(
13315 this: *mut core::ffi::c_void,
13316 ppformmgr: *mut *mut core::ffi::c_void,
13317 ) -> windows_core::HRESULT {
13318 unsafe {
13319 let this: &Identity =
13320 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
13321 match IMAPIMessageSite_Impl::GetFormManager(this) {
13322 Ok(ok__) => {
13323 ppformmgr.write(core::mem::transmute(ok__));
13324 windows_core::HRESULT(0)
13325 }
13326 Err(err) => err.into(),
13327 }
13328 }
13329 }
13330 unsafe extern "system" fn NewMessage<
13331 Identity: IMAPIMessageSite_Impl,
13332 const OFFSET: isize,
13333 >(
13334 this: *mut core::ffi::c_void,
13335 fcomposeinfolder: u32,
13336 pfolderfocus: *mut core::ffi::c_void,
13337 ppersistmessage: *mut core::ffi::c_void,
13338 ppmessage: *mut *mut core::ffi::c_void,
13339 ppmessagesite: *mut *mut core::ffi::c_void,
13340 ppviewcontext: *mut *mut core::ffi::c_void,
13341 ) -> windows_core::HRESULT {
13342 unsafe {
13343 let this: &Identity =
13344 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
13345 IMAPIMessageSite_Impl::NewMessage(
13346 this,
13347 core::mem::transmute_copy(&fcomposeinfolder),
13348 core::mem::transmute_copy(&pfolderfocus),
13349 core::mem::transmute_copy(&ppersistmessage),
13350 core::mem::transmute_copy(&ppmessage),
13351 core::mem::transmute_copy(&ppmessagesite),
13352 core::mem::transmute_copy(&ppviewcontext),
13353 )
13354 .into()
13355 }
13356 }
13357 unsafe extern "system" fn CopyMessage<
13358 Identity: IMAPIMessageSite_Impl,
13359 const OFFSET: isize,
13360 >(
13361 this: *mut core::ffi::c_void,
13362 pfolderdestination: *mut core::ffi::c_void,
13363 ) -> windows_core::HRESULT {
13364 unsafe {
13365 let this: &Identity =
13366 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
13367 IMAPIMessageSite_Impl::CopyMessage(
13368 this,
13369 core::mem::transmute_copy(&pfolderdestination),
13370 )
13371 .into()
13372 }
13373 }
13374 unsafe extern "system" fn MoveMessage<
13375 Identity: IMAPIMessageSite_Impl,
13376 const OFFSET: isize,
13377 >(
13378 this: *mut core::ffi::c_void,
13379 pfolderdestination: *mut core::ffi::c_void,
13380 pviewcontext: *mut core::ffi::c_void,
13381 prcposrect: *mut windows::Win32::Foundation::RECT,
13382 ) -> windows_core::HRESULT {
13383 unsafe {
13384 let this: &Identity =
13385 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
13386 IMAPIMessageSite_Impl::MoveMessage(
13387 this,
13388 core::mem::transmute_copy(&pfolderdestination),
13389 core::mem::transmute_copy(&pviewcontext),
13390 core::mem::transmute_copy(&prcposrect),
13391 )
13392 .into()
13393 }
13394 }
13395 unsafe extern "system" fn DeleteMessage<
13396 Identity: IMAPIMessageSite_Impl,
13397 const OFFSET: isize,
13398 >(
13399 this: *mut core::ffi::c_void,
13400 pviewcontext: *mut core::ffi::c_void,
13401 prcposrect: *mut windows::Win32::Foundation::RECT,
13402 ) -> windows_core::HRESULT {
13403 unsafe {
13404 let this: &Identity =
13405 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
13406 IMAPIMessageSite_Impl::DeleteMessage(
13407 this,
13408 core::mem::transmute_copy(&pviewcontext),
13409 core::mem::transmute_copy(&prcposrect),
13410 )
13411 .into()
13412 }
13413 }
13414 unsafe extern "system" fn SaveMessage<
13415 Identity: IMAPIMessageSite_Impl,
13416 const OFFSET: isize,
13417 >(
13418 this: *mut core::ffi::c_void,
13419 ) -> windows_core::HRESULT {
13420 unsafe {
13421 let this: &Identity =
13422 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
13423 IMAPIMessageSite_Impl::SaveMessage(this).into()
13424 }
13425 }
13426 unsafe extern "system" fn SubmitMessage<
13427 Identity: IMAPIMessageSite_Impl,
13428 const OFFSET: isize,
13429 >(
13430 this: *mut core::ffi::c_void,
13431 ulflags: u32,
13432 ) -> windows_core::HRESULT {
13433 unsafe {
13434 let this: &Identity =
13435 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
13436 IMAPIMessageSite_Impl::SubmitMessage(this, core::mem::transmute_copy(&ulflags))
13437 .into()
13438 }
13439 }
13440 unsafe extern "system" fn GetSiteStatus<
13441 Identity: IMAPIMessageSite_Impl,
13442 const OFFSET: isize,
13443 >(
13444 this: *mut core::ffi::c_void,
13445 lpulstatus: *mut u32,
13446 ) -> windows_core::HRESULT {
13447 unsafe {
13448 let this: &Identity =
13449 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
13450 IMAPIMessageSite_Impl::GetSiteStatus(this, core::mem::transmute_copy(&lpulstatus))
13451 .into()
13452 }
13453 }
13454 Self {
13455 base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
13456 GetLastError: GetLastError::<Identity, OFFSET>,
13457 GetSession: GetSession::<Identity, OFFSET>,
13458 GetStore: GetStore::<Identity, OFFSET>,
13459 GetFolder: GetFolder::<Identity, OFFSET>,
13460 GetMessageA: GetMessageA::<Identity, OFFSET>,
13461 GetFormManager: GetFormManager::<Identity, OFFSET>,
13462 NewMessage: NewMessage::<Identity, OFFSET>,
13463 CopyMessage: CopyMessage::<Identity, OFFSET>,
13464 MoveMessage: MoveMessage::<Identity, OFFSET>,
13465 DeleteMessage: DeleteMessage::<Identity, OFFSET>,
13466 SaveMessage: SaveMessage::<Identity, OFFSET>,
13467 SubmitMessage: SubmitMessage::<Identity, OFFSET>,
13468 GetSiteStatus: GetSiteStatus::<Identity, OFFSET>,
13469 }
13470 }
13471 pub fn matches(iid: &windows_core::GUID) -> bool {
13472 iid == &<IMAPIMessageSite as windows_core::Interface>::IID
13473 }
13474}
13475impl windows_core::RuntimeName for IMAPIMessageSite {}
13476windows_core::imp::define_interface!(
13477 IMAPIProgress,
13478 IMAPIProgress_Vtbl,
13479 0x0002031f_0000_0000_c000_000000000046
13480);
13481windows_core::imp::interface_hierarchy!(IMAPIProgress, windows_core::IUnknown);
13482impl IMAPIProgress {
13483 pub unsafe fn Progress(
13484 &self,
13485 ulvalue: u32,
13486 ulcount: u32,
13487 ultotal: u32,
13488 ) -> windows_core::Result<()> {
13489 unsafe {
13490 (windows_core::Interface::vtable(self).Progress)(
13491 windows_core::Interface::as_raw(self),
13492 ulvalue,
13493 ulcount,
13494 ultotal,
13495 )
13496 .ok()
13497 }
13498 }
13499 pub unsafe fn GetFlags(&self, lpulflags: *mut u32) -> windows_core::Result<()> {
13500 unsafe {
13501 (windows_core::Interface::vtable(self).GetFlags)(
13502 windows_core::Interface::as_raw(self),
13503 lpulflags as _,
13504 )
13505 .ok()
13506 }
13507 }
13508 pub unsafe fn GetMax(&self, lpulmax: *mut u32) -> windows_core::Result<()> {
13509 unsafe {
13510 (windows_core::Interface::vtable(self).GetMax)(
13511 windows_core::Interface::as_raw(self),
13512 lpulmax as _,
13513 )
13514 .ok()
13515 }
13516 }
13517 pub unsafe fn GetMin(&self, lpulmin: *mut u32) -> windows_core::Result<()> {
13518 unsafe {
13519 (windows_core::Interface::vtable(self).GetMin)(
13520 windows_core::Interface::as_raw(self),
13521 lpulmin as _,
13522 )
13523 .ok()
13524 }
13525 }
13526 pub unsafe fn SetLimits(
13527 &self,
13528 lpulmin: *mut u32,
13529 lpulmax: *mut u32,
13530 lpulflags: *mut u32,
13531 ) -> windows_core::Result<()> {
13532 unsafe {
13533 (windows_core::Interface::vtable(self).SetLimits)(
13534 windows_core::Interface::as_raw(self),
13535 lpulmin as _,
13536 lpulmax as _,
13537 lpulflags as _,
13538 )
13539 .ok()
13540 }
13541 }
13542}
13543#[repr(C)]
13544#[doc(hidden)]
13545pub struct IMAPIProgress_Vtbl {
13546 pub base__: windows_core::IUnknown_Vtbl,
13547 pub Progress:
13548 unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, u32) -> windows_core::HRESULT,
13549 pub GetFlags:
13550 unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
13551 pub GetMax:
13552 unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
13553 pub GetMin:
13554 unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
13555 pub SetLimits: unsafe extern "system" fn(
13556 *mut core::ffi::c_void,
13557 *mut u32,
13558 *mut u32,
13559 *mut u32,
13560 ) -> windows_core::HRESULT,
13561}
13562pub trait IMAPIProgress_Impl: windows_core::IUnknownImpl {
13563 fn Progress(&self, ulvalue: u32, ulcount: u32, ultotal: u32) -> windows_core::Result<()>;
13564 fn GetFlags(&self, lpulflags: *mut u32) -> windows_core::Result<()>;
13565 fn GetMax(&self, lpulmax: *mut u32) -> windows_core::Result<()>;
13566 fn GetMin(&self, lpulmin: *mut u32) -> windows_core::Result<()>;
13567 fn SetLimits(
13568 &self,
13569 lpulmin: *mut u32,
13570 lpulmax: *mut u32,
13571 lpulflags: *mut u32,
13572 ) -> windows_core::Result<()>;
13573}
13574impl IMAPIProgress_Vtbl {
13575 pub const fn new<Identity: IMAPIProgress_Impl, const OFFSET: isize>() -> Self {
13576 unsafe extern "system" fn Progress<Identity: IMAPIProgress_Impl, const OFFSET: isize>(
13577 this: *mut core::ffi::c_void,
13578 ulvalue: u32,
13579 ulcount: u32,
13580 ultotal: u32,
13581 ) -> windows_core::HRESULT {
13582 unsafe {
13583 let this: &Identity =
13584 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
13585 IMAPIProgress_Impl::Progress(
13586 this,
13587 core::mem::transmute_copy(&ulvalue),
13588 core::mem::transmute_copy(&ulcount),
13589 core::mem::transmute_copy(&ultotal),
13590 )
13591 .into()
13592 }
13593 }
13594 unsafe extern "system" fn GetFlags<Identity: IMAPIProgress_Impl, const OFFSET: isize>(
13595 this: *mut core::ffi::c_void,
13596 lpulflags: *mut u32,
13597 ) -> windows_core::HRESULT {
13598 unsafe {
13599 let this: &Identity =
13600 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
13601 IMAPIProgress_Impl::GetFlags(this, core::mem::transmute_copy(&lpulflags)).into()
13602 }
13603 }
13604 unsafe extern "system" fn GetMax<Identity: IMAPIProgress_Impl, const OFFSET: isize>(
13605 this: *mut core::ffi::c_void,
13606 lpulmax: *mut u32,
13607 ) -> windows_core::HRESULT {
13608 unsafe {
13609 let this: &Identity =
13610 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
13611 IMAPIProgress_Impl::GetMax(this, core::mem::transmute_copy(&lpulmax)).into()
13612 }
13613 }
13614 unsafe extern "system" fn GetMin<Identity: IMAPIProgress_Impl, const OFFSET: isize>(
13615 this: *mut core::ffi::c_void,
13616 lpulmin: *mut u32,
13617 ) -> windows_core::HRESULT {
13618 unsafe {
13619 let this: &Identity =
13620 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
13621 IMAPIProgress_Impl::GetMin(this, core::mem::transmute_copy(&lpulmin)).into()
13622 }
13623 }
13624 unsafe extern "system" fn SetLimits<Identity: IMAPIProgress_Impl, const OFFSET: isize>(
13625 this: *mut core::ffi::c_void,
13626 lpulmin: *mut u32,
13627 lpulmax: *mut u32,
13628 lpulflags: *mut u32,
13629 ) -> windows_core::HRESULT {
13630 unsafe {
13631 let this: &Identity =
13632 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
13633 IMAPIProgress_Impl::SetLimits(
13634 this,
13635 core::mem::transmute_copy(&lpulmin),
13636 core::mem::transmute_copy(&lpulmax),
13637 core::mem::transmute_copy(&lpulflags),
13638 )
13639 .into()
13640 }
13641 }
13642 Self {
13643 base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
13644 Progress: Progress::<Identity, OFFSET>,
13645 GetFlags: GetFlags::<Identity, OFFSET>,
13646 GetMax: GetMax::<Identity, OFFSET>,
13647 GetMin: GetMin::<Identity, OFFSET>,
13648 SetLimits: SetLimits::<Identity, OFFSET>,
13649 }
13650 }
13651 pub fn matches(iid: &windows_core::GUID) -> bool {
13652 iid == &<IMAPIProgress as windows_core::Interface>::IID
13653 }
13654}
13655impl windows_core::RuntimeName for IMAPIProgress {}
13656windows_core::imp::define_interface!(
13657 IMAPIProp,
13658 IMAPIProp_Vtbl,
13659 0x00020303_0000_0000_c000_000000000046
13660);
13661windows_core::imp::interface_hierarchy!(IMAPIProp, windows_core::IUnknown);
13662impl IMAPIProp {
13663 pub unsafe fn GetLastError(
13664 &self,
13665 hresult: windows_core::HRESULT,
13666 ulflags: u32,
13667 lppmapierror: *mut *mut MAPIERROR,
13668 ) -> windows_core::Result<()> {
13669 unsafe {
13670 (windows_core::Interface::vtable(self).GetLastError)(
13671 windows_core::Interface::as_raw(self),
13672 hresult,
13673 ulflags,
13674 lppmapierror as _,
13675 )
13676 .ok()
13677 }
13678 }
13679 pub unsafe fn SaveChanges(&self, ulflags: u32) -> windows_core::Result<()> {
13680 unsafe {
13681 (windows_core::Interface::vtable(self).SaveChanges)(
13682 windows_core::Interface::as_raw(self),
13683 ulflags,
13684 )
13685 .ok()
13686 }
13687 }
13688 pub unsafe fn GetProps(
13689 &self,
13690 lpproptagarray: *mut SPropTagArray,
13691 ulflags: u32,
13692 lpcvalues: *mut u32,
13693 lppproparray: *mut *mut SPropValue,
13694 ) -> windows_core::Result<()> {
13695 unsafe {
13696 (windows_core::Interface::vtable(self).GetProps)(
13697 windows_core::Interface::as_raw(self),
13698 lpproptagarray as _,
13699 ulflags,
13700 lpcvalues as _,
13701 lppproparray as _,
13702 )
13703 .ok()
13704 }
13705 }
13706 pub unsafe fn GetPropList(
13707 &self,
13708 ulflags: u32,
13709 lppproptagarray: *mut *mut SPropTagArray,
13710 ) -> windows_core::Result<()> {
13711 unsafe {
13712 (windows_core::Interface::vtable(self).GetPropList)(
13713 windows_core::Interface::as_raw(self),
13714 ulflags,
13715 lppproptagarray as _,
13716 )
13717 .ok()
13718 }
13719 }
13720 pub unsafe fn OpenProperty(
13721 &self,
13722 ulproptag: u32,
13723 lpiid: *mut windows_core::GUID,
13724 ulinterfaceoptions: u32,
13725 ulflags: u32,
13726 lppunk: *mut Option<windows_core::IUnknown>,
13727 ) -> windows_core::Result<()> {
13728 unsafe {
13729 (windows_core::Interface::vtable(self).OpenProperty)(
13730 windows_core::Interface::as_raw(self),
13731 ulproptag,
13732 lpiid as _,
13733 ulinterfaceoptions,
13734 ulflags,
13735 core::mem::transmute(lppunk),
13736 )
13737 .ok()
13738 }
13739 }
13740 pub unsafe fn SetProps(
13741 &self,
13742 cvalues: u32,
13743 lpproparray: *mut SPropValue,
13744 lppproblems: *mut *mut SPropProblemArray,
13745 ) -> windows_core::Result<()> {
13746 unsafe {
13747 (windows_core::Interface::vtable(self).SetProps)(
13748 windows_core::Interface::as_raw(self),
13749 cvalues,
13750 lpproparray as _,
13751 lppproblems as _,
13752 )
13753 .ok()
13754 }
13755 }
13756 pub unsafe fn DeleteProps(
13757 &self,
13758 lpproptagarray: *mut SPropTagArray,
13759 lppproblems: *mut *mut SPropProblemArray,
13760 ) -> windows_core::Result<()> {
13761 unsafe {
13762 (windows_core::Interface::vtable(self).DeleteProps)(
13763 windows_core::Interface::as_raw(self),
13764 lpproptagarray as _,
13765 lppproblems as _,
13766 )
13767 .ok()
13768 }
13769 }
13770 pub unsafe fn CopyTo<P4>(
13771 &self,
13772 ciidexclude: u32,
13773 rgiidexclude: *mut windows_core::GUID,
13774 lpexcludeprops: *mut SPropTagArray,
13775 uluiparam: usize,
13776 lpprogress: P4,
13777 lpinterface: *mut windows_core::GUID,
13778 lpdestobj: *mut core::ffi::c_void,
13779 ulflags: u32,
13780 lppproblems: *mut *mut SPropProblemArray,
13781 ) -> windows_core::Result<()>
13782 where
13783 P4: windows_core::Param<IMAPIProgress>,
13784 {
13785 unsafe {
13786 (windows_core::Interface::vtable(self).CopyTo)(
13787 windows_core::Interface::as_raw(self),
13788 ciidexclude,
13789 rgiidexclude as _,
13790 lpexcludeprops as _,
13791 uluiparam,
13792 lpprogress.param().abi(),
13793 lpinterface as _,
13794 lpdestobj as _,
13795 ulflags,
13796 lppproblems as _,
13797 )
13798 .ok()
13799 }
13800 }
13801 pub unsafe fn CopyProps<P2>(
13802 &self,
13803 lpincludeprops: *mut SPropTagArray,
13804 uluiparam: usize,
13805 lpprogress: P2,
13806 lpinterface: *mut windows_core::GUID,
13807 lpdestobj: *mut core::ffi::c_void,
13808 ulflags: u32,
13809 lppproblems: *mut *mut SPropProblemArray,
13810 ) -> windows_core::Result<()>
13811 where
13812 P2: windows_core::Param<IMAPIProgress>,
13813 {
13814 unsafe {
13815 (windows_core::Interface::vtable(self).CopyProps)(
13816 windows_core::Interface::as_raw(self),
13817 lpincludeprops as _,
13818 uluiparam,
13819 lpprogress.param().abi(),
13820 lpinterface as _,
13821 lpdestobj as _,
13822 ulflags,
13823 lppproblems as _,
13824 )
13825 .ok()
13826 }
13827 }
13828 pub unsafe fn GetNamesFromIDs(
13829 &self,
13830 lppproptags: *mut *mut SPropTagArray,
13831 lppropsetguid: *mut windows_core::GUID,
13832 ulflags: u32,
13833 lpcpropnames: *mut u32,
13834 lppppropnames: *mut *mut *mut MAPINAMEID,
13835 ) -> windows_core::Result<()> {
13836 unsafe {
13837 (windows_core::Interface::vtable(self).GetNamesFromIDs)(
13838 windows_core::Interface::as_raw(self),
13839 lppproptags as _,
13840 lppropsetguid as _,
13841 ulflags,
13842 lpcpropnames as _,
13843 lppppropnames as _,
13844 )
13845 .ok()
13846 }
13847 }
13848 pub unsafe fn GetIDsFromNames(
13849 &self,
13850 cpropnames: u32,
13851 lpppropnames: *mut *mut MAPINAMEID,
13852 ulflags: u32,
13853 lppproptags: *mut *mut SPropTagArray,
13854 ) -> windows_core::Result<()> {
13855 unsafe {
13856 (windows_core::Interface::vtable(self).GetIDsFromNames)(
13857 windows_core::Interface::as_raw(self),
13858 cpropnames,
13859 lpppropnames as _,
13860 ulflags,
13861 lppproptags as _,
13862 )
13863 .ok()
13864 }
13865 }
13866}
13867#[repr(C)]
13868#[doc(hidden)]
13869pub struct IMAPIProp_Vtbl {
13870 pub base__: windows_core::IUnknown_Vtbl,
13871 pub GetLastError: unsafe extern "system" fn(
13872 *mut core::ffi::c_void,
13873 windows_core::HRESULT,
13874 u32,
13875 *mut *mut MAPIERROR,
13876 ) -> windows_core::HRESULT,
13877 pub SaveChanges:
13878 unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
13879 pub GetProps: unsafe extern "system" fn(
13880 *mut core::ffi::c_void,
13881 *mut SPropTagArray,
13882 u32,
13883 *mut u32,
13884 *mut *mut SPropValue,
13885 ) -> windows_core::HRESULT,
13886 pub GetPropList: unsafe extern "system" fn(
13887 *mut core::ffi::c_void,
13888 u32,
13889 *mut *mut SPropTagArray,
13890 ) -> windows_core::HRESULT,
13891 pub OpenProperty: unsafe extern "system" fn(
13892 *mut core::ffi::c_void,
13893 u32,
13894 *mut windows_core::GUID,
13895 u32,
13896 u32,
13897 *mut *mut core::ffi::c_void,
13898 ) -> windows_core::HRESULT,
13899 pub SetProps: unsafe extern "system" fn(
13900 *mut core::ffi::c_void,
13901 u32,
13902 *mut SPropValue,
13903 *mut *mut SPropProblemArray,
13904 ) -> windows_core::HRESULT,
13905 pub DeleteProps: unsafe extern "system" fn(
13906 *mut core::ffi::c_void,
13907 *mut SPropTagArray,
13908 *mut *mut SPropProblemArray,
13909 ) -> windows_core::HRESULT,
13910 pub CopyTo: unsafe extern "system" fn(
13911 *mut core::ffi::c_void,
13912 u32,
13913 *mut windows_core::GUID,
13914 *mut SPropTagArray,
13915 usize,
13916 *mut core::ffi::c_void,
13917 *mut windows_core::GUID,
13918 *mut core::ffi::c_void,
13919 u32,
13920 *mut *mut SPropProblemArray,
13921 ) -> windows_core::HRESULT,
13922 pub CopyProps: unsafe extern "system" fn(
13923 *mut core::ffi::c_void,
13924 *mut SPropTagArray,
13925 usize,
13926 *mut core::ffi::c_void,
13927 *mut windows_core::GUID,
13928 *mut core::ffi::c_void,
13929 u32,
13930 *mut *mut SPropProblemArray,
13931 ) -> windows_core::HRESULT,
13932 pub GetNamesFromIDs: unsafe extern "system" fn(
13933 *mut core::ffi::c_void,
13934 *mut *mut SPropTagArray,
13935 *mut windows_core::GUID,
13936 u32,
13937 *mut u32,
13938 *mut *mut *mut MAPINAMEID,
13939 ) -> windows_core::HRESULT,
13940 pub GetIDsFromNames: unsafe extern "system" fn(
13941 *mut core::ffi::c_void,
13942 u32,
13943 *mut *mut MAPINAMEID,
13944 u32,
13945 *mut *mut SPropTagArray,
13946 ) -> windows_core::HRESULT,
13947}
13948pub trait IMAPIProp_Impl: windows_core::IUnknownImpl {
13949 fn GetLastError(
13950 &self,
13951 hresult: windows_core::HRESULT,
13952 ulflags: u32,
13953 lppmapierror: *mut *mut MAPIERROR,
13954 ) -> windows_core::Result<()>;
13955 fn SaveChanges(&self, ulflags: u32) -> windows_core::Result<()>;
13956 fn GetProps(
13957 &self,
13958 lpproptagarray: *mut SPropTagArray,
13959 ulflags: u32,
13960 lpcvalues: *mut u32,
13961 lppproparray: *mut *mut SPropValue,
13962 ) -> windows_core::Result<()>;
13963 fn GetPropList(
13964 &self,
13965 ulflags: u32,
13966 lppproptagarray: *mut *mut SPropTagArray,
13967 ) -> windows_core::Result<()>;
13968 fn OpenProperty(
13969 &self,
13970 ulproptag: u32,
13971 lpiid: *mut windows_core::GUID,
13972 ulinterfaceoptions: u32,
13973 ulflags: u32,
13974 lppunk: windows_core::OutRef<windows_core::IUnknown>,
13975 ) -> windows_core::Result<()>;
13976 fn SetProps(
13977 &self,
13978 cvalues: u32,
13979 lpproparray: *mut SPropValue,
13980 lppproblems: *mut *mut SPropProblemArray,
13981 ) -> windows_core::Result<()>;
13982 fn DeleteProps(
13983 &self,
13984 lpproptagarray: *mut SPropTagArray,
13985 lppproblems: *mut *mut SPropProblemArray,
13986 ) -> windows_core::Result<()>;
13987 fn CopyTo(
13988 &self,
13989 ciidexclude: u32,
13990 rgiidexclude: *mut windows_core::GUID,
13991 lpexcludeprops: *mut SPropTagArray,
13992 uluiparam: usize,
13993 lpprogress: windows_core::Ref<IMAPIProgress>,
13994 lpinterface: *mut windows_core::GUID,
13995 lpdestobj: *mut core::ffi::c_void,
13996 ulflags: u32,
13997 lppproblems: *mut *mut SPropProblemArray,
13998 ) -> windows_core::Result<()>;
13999 fn CopyProps(
14000 &self,
14001 lpincludeprops: *mut SPropTagArray,
14002 uluiparam: usize,
14003 lpprogress: windows_core::Ref<IMAPIProgress>,
14004 lpinterface: *mut windows_core::GUID,
14005 lpdestobj: *mut core::ffi::c_void,
14006 ulflags: u32,
14007 lppproblems: *mut *mut SPropProblemArray,
14008 ) -> windows_core::Result<()>;
14009 fn GetNamesFromIDs(
14010 &self,
14011 lppproptags: *mut *mut SPropTagArray,
14012 lppropsetguid: *mut windows_core::GUID,
14013 ulflags: u32,
14014 lpcpropnames: *mut u32,
14015 lppppropnames: *mut *mut *mut MAPINAMEID,
14016 ) -> windows_core::Result<()>;
14017 fn GetIDsFromNames(
14018 &self,
14019 cpropnames: u32,
14020 lpppropnames: *mut *mut MAPINAMEID,
14021 ulflags: u32,
14022 lppproptags: *mut *mut SPropTagArray,
14023 ) -> windows_core::Result<()>;
14024}
14025impl IMAPIProp_Vtbl {
14026 pub const fn new<Identity: IMAPIProp_Impl, const OFFSET: isize>() -> Self {
14027 unsafe extern "system" fn GetLastError<Identity: IMAPIProp_Impl, const OFFSET: isize>(
14028 this: *mut core::ffi::c_void,
14029 hresult: windows_core::HRESULT,
14030 ulflags: u32,
14031 lppmapierror: *mut *mut MAPIERROR,
14032 ) -> windows_core::HRESULT {
14033 unsafe {
14034 let this: &Identity =
14035 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
14036 IMAPIProp_Impl::GetLastError(
14037 this,
14038 core::mem::transmute_copy(&hresult),
14039 core::mem::transmute_copy(&ulflags),
14040 core::mem::transmute_copy(&lppmapierror),
14041 )
14042 .into()
14043 }
14044 }
14045 unsafe extern "system" fn SaveChanges<Identity: IMAPIProp_Impl, const OFFSET: isize>(
14046 this: *mut core::ffi::c_void,
14047 ulflags: u32,
14048 ) -> windows_core::HRESULT {
14049 unsafe {
14050 let this: &Identity =
14051 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
14052 IMAPIProp_Impl::SaveChanges(this, core::mem::transmute_copy(&ulflags)).into()
14053 }
14054 }
14055 unsafe extern "system" fn GetProps<Identity: IMAPIProp_Impl, const OFFSET: isize>(
14056 this: *mut core::ffi::c_void,
14057 lpproptagarray: *mut SPropTagArray,
14058 ulflags: u32,
14059 lpcvalues: *mut u32,
14060 lppproparray: *mut *mut SPropValue,
14061 ) -> windows_core::HRESULT {
14062 unsafe {
14063 let this: &Identity =
14064 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
14065 IMAPIProp_Impl::GetProps(
14066 this,
14067 core::mem::transmute_copy(&lpproptagarray),
14068 core::mem::transmute_copy(&ulflags),
14069 core::mem::transmute_copy(&lpcvalues),
14070 core::mem::transmute_copy(&lppproparray),
14071 )
14072 .into()
14073 }
14074 }
14075 unsafe extern "system" fn GetPropList<Identity: IMAPIProp_Impl, const OFFSET: isize>(
14076 this: *mut core::ffi::c_void,
14077 ulflags: u32,
14078 lppproptagarray: *mut *mut SPropTagArray,
14079 ) -> windows_core::HRESULT {
14080 unsafe {
14081 let this: &Identity =
14082 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
14083 IMAPIProp_Impl::GetPropList(
14084 this,
14085 core::mem::transmute_copy(&ulflags),
14086 core::mem::transmute_copy(&lppproptagarray),
14087 )
14088 .into()
14089 }
14090 }
14091 unsafe extern "system" fn OpenProperty<Identity: IMAPIProp_Impl, const OFFSET: isize>(
14092 this: *mut core::ffi::c_void,
14093 ulproptag: u32,
14094 lpiid: *mut windows_core::GUID,
14095 ulinterfaceoptions: u32,
14096 ulflags: u32,
14097 lppunk: *mut *mut core::ffi::c_void,
14098 ) -> windows_core::HRESULT {
14099 unsafe {
14100 let this: &Identity =
14101 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
14102 IMAPIProp_Impl::OpenProperty(
14103 this,
14104 core::mem::transmute_copy(&ulproptag),
14105 core::mem::transmute_copy(&lpiid),
14106 core::mem::transmute_copy(&ulinterfaceoptions),
14107 core::mem::transmute_copy(&ulflags),
14108 core::mem::transmute_copy(&lppunk),
14109 )
14110 .into()
14111 }
14112 }
14113 unsafe extern "system" fn SetProps<Identity: IMAPIProp_Impl, const OFFSET: isize>(
14114 this: *mut core::ffi::c_void,
14115 cvalues: u32,
14116 lpproparray: *mut SPropValue,
14117 lppproblems: *mut *mut SPropProblemArray,
14118 ) -> windows_core::HRESULT {
14119 unsafe {
14120 let this: &Identity =
14121 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
14122 IMAPIProp_Impl::SetProps(
14123 this,
14124 core::mem::transmute_copy(&cvalues),
14125 core::mem::transmute_copy(&lpproparray),
14126 core::mem::transmute_copy(&lppproblems),
14127 )
14128 .into()
14129 }
14130 }
14131 unsafe extern "system" fn DeleteProps<Identity: IMAPIProp_Impl, const OFFSET: isize>(
14132 this: *mut core::ffi::c_void,
14133 lpproptagarray: *mut SPropTagArray,
14134 lppproblems: *mut *mut SPropProblemArray,
14135 ) -> windows_core::HRESULT {
14136 unsafe {
14137 let this: &Identity =
14138 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
14139 IMAPIProp_Impl::DeleteProps(
14140 this,
14141 core::mem::transmute_copy(&lpproptagarray),
14142 core::mem::transmute_copy(&lppproblems),
14143 )
14144 .into()
14145 }
14146 }
14147 unsafe extern "system" fn CopyTo<Identity: IMAPIProp_Impl, const OFFSET: isize>(
14148 this: *mut core::ffi::c_void,
14149 ciidexclude: u32,
14150 rgiidexclude: *mut windows_core::GUID,
14151 lpexcludeprops: *mut SPropTagArray,
14152 uluiparam: usize,
14153 lpprogress: *mut core::ffi::c_void,
14154 lpinterface: *mut windows_core::GUID,
14155 lpdestobj: *mut core::ffi::c_void,
14156 ulflags: u32,
14157 lppproblems: *mut *mut SPropProblemArray,
14158 ) -> windows_core::HRESULT {
14159 unsafe {
14160 let this: &Identity =
14161 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
14162 IMAPIProp_Impl::CopyTo(
14163 this,
14164 core::mem::transmute_copy(&ciidexclude),
14165 core::mem::transmute_copy(&rgiidexclude),
14166 core::mem::transmute_copy(&lpexcludeprops),
14167 core::mem::transmute_copy(&uluiparam),
14168 core::mem::transmute_copy(&lpprogress),
14169 core::mem::transmute_copy(&lpinterface),
14170 core::mem::transmute_copy(&lpdestobj),
14171 core::mem::transmute_copy(&ulflags),
14172 core::mem::transmute_copy(&lppproblems),
14173 )
14174 .into()
14175 }
14176 }
14177 unsafe extern "system" fn CopyProps<Identity: IMAPIProp_Impl, const OFFSET: isize>(
14178 this: *mut core::ffi::c_void,
14179 lpincludeprops: *mut SPropTagArray,
14180 uluiparam: usize,
14181 lpprogress: *mut core::ffi::c_void,
14182 lpinterface: *mut windows_core::GUID,
14183 lpdestobj: *mut core::ffi::c_void,
14184 ulflags: u32,
14185 lppproblems: *mut *mut SPropProblemArray,
14186 ) -> windows_core::HRESULT {
14187 unsafe {
14188 let this: &Identity =
14189 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
14190 IMAPIProp_Impl::CopyProps(
14191 this,
14192 core::mem::transmute_copy(&lpincludeprops),
14193 core::mem::transmute_copy(&uluiparam),
14194 core::mem::transmute_copy(&lpprogress),
14195 core::mem::transmute_copy(&lpinterface),
14196 core::mem::transmute_copy(&lpdestobj),
14197 core::mem::transmute_copy(&ulflags),
14198 core::mem::transmute_copy(&lppproblems),
14199 )
14200 .into()
14201 }
14202 }
14203 unsafe extern "system" fn GetNamesFromIDs<Identity: IMAPIProp_Impl, const OFFSET: isize>(
14204 this: *mut core::ffi::c_void,
14205 lppproptags: *mut *mut SPropTagArray,
14206 lppropsetguid: *mut windows_core::GUID,
14207 ulflags: u32,
14208 lpcpropnames: *mut u32,
14209 lppppropnames: *mut *mut *mut MAPINAMEID,
14210 ) -> windows_core::HRESULT {
14211 unsafe {
14212 let this: &Identity =
14213 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
14214 IMAPIProp_Impl::GetNamesFromIDs(
14215 this,
14216 core::mem::transmute_copy(&lppproptags),
14217 core::mem::transmute_copy(&lppropsetguid),
14218 core::mem::transmute_copy(&ulflags),
14219 core::mem::transmute_copy(&lpcpropnames),
14220 core::mem::transmute_copy(&lppppropnames),
14221 )
14222 .into()
14223 }
14224 }
14225 unsafe extern "system" fn GetIDsFromNames<Identity: IMAPIProp_Impl, const OFFSET: isize>(
14226 this: *mut core::ffi::c_void,
14227 cpropnames: u32,
14228 lpppropnames: *mut *mut MAPINAMEID,
14229 ulflags: u32,
14230 lppproptags: *mut *mut SPropTagArray,
14231 ) -> windows_core::HRESULT {
14232 unsafe {
14233 let this: &Identity =
14234 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
14235 IMAPIProp_Impl::GetIDsFromNames(
14236 this,
14237 core::mem::transmute_copy(&cpropnames),
14238 core::mem::transmute_copy(&lpppropnames),
14239 core::mem::transmute_copy(&ulflags),
14240 core::mem::transmute_copy(&lppproptags),
14241 )
14242 .into()
14243 }
14244 }
14245 Self {
14246 base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
14247 GetLastError: GetLastError::<Identity, OFFSET>,
14248 SaveChanges: SaveChanges::<Identity, OFFSET>,
14249 GetProps: GetProps::<Identity, OFFSET>,
14250 GetPropList: GetPropList::<Identity, OFFSET>,
14251 OpenProperty: OpenProperty::<Identity, OFFSET>,
14252 SetProps: SetProps::<Identity, OFFSET>,
14253 DeleteProps: DeleteProps::<Identity, OFFSET>,
14254 CopyTo: CopyTo::<Identity, OFFSET>,
14255 CopyProps: CopyProps::<Identity, OFFSET>,
14256 GetNamesFromIDs: GetNamesFromIDs::<Identity, OFFSET>,
14257 GetIDsFromNames: GetIDsFromNames::<Identity, OFFSET>,
14258 }
14259 }
14260 pub fn matches(iid: &windows_core::GUID) -> bool {
14261 iid == &<IMAPIProp as windows_core::Interface>::IID
14262 }
14263}
14264impl windows_core::RuntimeName for IMAPIProp {}
14265pub const IMAPIProp_CopyProps: METHODS = METHODS(11i32);
14266pub const IMAPIProp_CopyTo: METHODS = METHODS(10i32);
14267pub const IMAPIProp_DeleteProps: METHODS = METHODS(9i32);
14268pub const IMAPIProp_GetIDsFromNames: METHODS = METHODS(13i32);
14269pub const IMAPIProp_GetLastError: METHODS = METHODS(3i32);
14270pub const IMAPIProp_GetNamesFromIDs: METHODS = METHODS(12i32);
14271pub const IMAPIProp_GetPropList: METHODS = METHODS(6i32);
14272pub const IMAPIProp_GetProps: METHODS = METHODS(5i32);
14273pub const IMAPIProp_OpenProperty: METHODS = METHODS(7i32);
14274pub const IMAPIProp_SaveChanges: METHODS = METHODS(4i32);
14275pub const IMAPIProp_SetProps: METHODS = METHODS(8i32);
14276windows_core::imp::define_interface!(
14277 IMAPIProviderShutdown,
14278 IMAPIProviderShutdown_Vtbl,
14279 0x00020398_0000_0000_c000_000000000046
14280);
14281windows_core::imp::interface_hierarchy!(IMAPIProviderShutdown, windows_core::IUnknown);
14282impl IMAPIProviderShutdown {
14283 pub unsafe fn QueryFastShutdown(&self) -> windows_core::Result<()> {
14284 unsafe {
14285 (windows_core::Interface::vtable(self).QueryFastShutdown)(
14286 windows_core::Interface::as_raw(self),
14287 )
14288 .ok()
14289 }
14290 }
14291 pub unsafe fn NotifyProcessShutdown(&self) -> windows_core::Result<()> {
14292 unsafe {
14293 (windows_core::Interface::vtable(self).NotifyProcessShutdown)(
14294 windows_core::Interface::as_raw(self),
14295 )
14296 .ok()
14297 }
14298 }
14299 pub unsafe fn DoFastShutdown(&self) -> windows_core::Result<()> {
14300 unsafe {
14301 (windows_core::Interface::vtable(self).DoFastShutdown)(windows_core::Interface::as_raw(
14302 self,
14303 ))
14304 .ok()
14305 }
14306 }
14307}
14308#[repr(C)]
14309#[doc(hidden)]
14310pub struct IMAPIProviderShutdown_Vtbl {
14311 pub base__: windows_core::IUnknown_Vtbl,
14312 pub QueryFastShutdown:
14313 unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
14314 pub NotifyProcessShutdown:
14315 unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
14316 pub DoFastShutdown: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
14317}
14318pub trait IMAPIProviderShutdown_Impl: windows_core::IUnknownImpl {
14319 fn QueryFastShutdown(&self) -> windows_core::Result<()>;
14320 fn NotifyProcessShutdown(&self) -> windows_core::Result<()>;
14321 fn DoFastShutdown(&self) -> windows_core::Result<()>;
14322}
14323impl IMAPIProviderShutdown_Vtbl {
14324 pub const fn new<Identity: IMAPIProviderShutdown_Impl, const OFFSET: isize>() -> Self {
14325 unsafe extern "system" fn QueryFastShutdown<
14326 Identity: IMAPIProviderShutdown_Impl,
14327 const OFFSET: isize,
14328 >(
14329 this: *mut core::ffi::c_void,
14330 ) -> windows_core::HRESULT {
14331 unsafe {
14332 let this: &Identity =
14333 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
14334 IMAPIProviderShutdown_Impl::QueryFastShutdown(this).into()
14335 }
14336 }
14337 unsafe extern "system" fn NotifyProcessShutdown<
14338 Identity: IMAPIProviderShutdown_Impl,
14339 const OFFSET: isize,
14340 >(
14341 this: *mut core::ffi::c_void,
14342 ) -> windows_core::HRESULT {
14343 unsafe {
14344 let this: &Identity =
14345 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
14346 IMAPIProviderShutdown_Impl::NotifyProcessShutdown(this).into()
14347 }
14348 }
14349 unsafe extern "system" fn DoFastShutdown<
14350 Identity: IMAPIProviderShutdown_Impl,
14351 const OFFSET: isize,
14352 >(
14353 this: *mut core::ffi::c_void,
14354 ) -> windows_core::HRESULT {
14355 unsafe {
14356 let this: &Identity =
14357 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
14358 IMAPIProviderShutdown_Impl::DoFastShutdown(this).into()
14359 }
14360 }
14361 Self {
14362 base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
14363 QueryFastShutdown: QueryFastShutdown::<Identity, OFFSET>,
14364 NotifyProcessShutdown: NotifyProcessShutdown::<Identity, OFFSET>,
14365 DoFastShutdown: DoFastShutdown::<Identity, OFFSET>,
14366 }
14367 }
14368 pub fn matches(iid: &windows_core::GUID) -> bool {
14369 iid == &<IMAPIProviderShutdown as windows_core::Interface>::IID
14370 }
14371}
14372impl windows_core::RuntimeName for IMAPIProviderShutdown {}
14373windows_core::imp::define_interface!(
14374 IMAPISession,
14375 IMAPISession_Vtbl,
14376 0x00020300_0000_0000_c000_000000000046
14377);
14378windows_core::imp::interface_hierarchy!(IMAPISession, windows_core::IUnknown);
14379impl IMAPISession {
14380 pub unsafe fn GetLastError(
14381 &self,
14382 hresult: windows_core::HRESULT,
14383 ulflags: u32,
14384 lppmapierror: *mut *mut MAPIERROR,
14385 ) -> windows_core::Result<()> {
14386 unsafe {
14387 (windows_core::Interface::vtable(self).GetLastError)(
14388 windows_core::Interface::as_raw(self),
14389 hresult,
14390 ulflags,
14391 lppmapierror as _,
14392 )
14393 .ok()
14394 }
14395 }
14396 pub unsafe fn GetMsgStoresTable(&self, ulflags: u32) -> windows_core::Result<IMAPITable> {
14397 unsafe {
14398 let mut result__ = core::mem::zeroed();
14399 (windows_core::Interface::vtable(self).GetMsgStoresTable)(
14400 windows_core::Interface::as_raw(self),
14401 ulflags,
14402 &mut result__,
14403 )
14404 .and_then(|| windows_core::Type::from_abi(result__))
14405 }
14406 }
14407 pub unsafe fn OpenMsgStore(
14408 &self,
14409 uluiparam: usize,
14410 cbentryid: u32,
14411 lpentryid: *mut ENTRYID,
14412 lpinterface: *mut windows_core::GUID,
14413 ulflags: u32,
14414 lppmdb: *mut Option<IMsgStore>,
14415 ) -> windows_core::Result<()> {
14416 unsafe {
14417 (windows_core::Interface::vtable(self).OpenMsgStore)(
14418 windows_core::Interface::as_raw(self),
14419 uluiparam,
14420 cbentryid,
14421 lpentryid as _,
14422 lpinterface as _,
14423 ulflags,
14424 core::mem::transmute(lppmdb),
14425 )
14426 .ok()
14427 }
14428 }
14429 pub unsafe fn OpenAddressBook(
14430 &self,
14431 uluiparam: usize,
14432 lpinterface: *mut windows_core::GUID,
14433 ulflags: u32,
14434 lppadrbook: *mut Option<IAddrBook>,
14435 ) -> windows_core::Result<()> {
14436 unsafe {
14437 (windows_core::Interface::vtable(self).OpenAddressBook)(
14438 windows_core::Interface::as_raw(self),
14439 uluiparam,
14440 lpinterface as _,
14441 ulflags,
14442 core::mem::transmute(lppadrbook),
14443 )
14444 .ok()
14445 }
14446 }
14447 pub unsafe fn OpenProfileSection(
14448 &self,
14449 lpuid: *mut MAPIUID,
14450 lpinterface: *mut windows_core::GUID,
14451 ulflags: u32,
14452 lppprofsect: *mut Option<IProfSect>,
14453 ) -> windows_core::Result<()> {
14454 unsafe {
14455 (windows_core::Interface::vtable(self).OpenProfileSection)(
14456 windows_core::Interface::as_raw(self),
14457 lpuid as _,
14458 lpinterface as _,
14459 ulflags,
14460 core::mem::transmute(lppprofsect),
14461 )
14462 .ok()
14463 }
14464 }
14465 pub unsafe fn GetStatusTable(&self, ulflags: u32) -> windows_core::Result<IMAPITable> {
14466 unsafe {
14467 let mut result__ = core::mem::zeroed();
14468 (windows_core::Interface::vtable(self).GetStatusTable)(
14469 windows_core::Interface::as_raw(self),
14470 ulflags,
14471 &mut result__,
14472 )
14473 .and_then(|| windows_core::Type::from_abi(result__))
14474 }
14475 }
14476 pub unsafe fn OpenEntry(
14477 &self,
14478 cbentryid: u32,
14479 lpentryid: *mut ENTRYID,
14480 lpinterface: *mut windows_core::GUID,
14481 ulflags: u32,
14482 lpulobjtype: *mut u32,
14483 lppunk: *mut Option<windows_core::IUnknown>,
14484 ) -> windows_core::Result<()> {
14485 unsafe {
14486 (windows_core::Interface::vtable(self).OpenEntry)(
14487 windows_core::Interface::as_raw(self),
14488 cbentryid,
14489 lpentryid as _,
14490 lpinterface as _,
14491 ulflags,
14492 lpulobjtype as _,
14493 core::mem::transmute(lppunk),
14494 )
14495 .ok()
14496 }
14497 }
14498 pub unsafe fn CompareEntryIDs(
14499 &self,
14500 cbentryid1: u32,
14501 lpentryid1: *mut ENTRYID,
14502 cbentryid2: u32,
14503 lpentryid2: *mut ENTRYID,
14504 ulflags: u32,
14505 lpulresult: *mut u32,
14506 ) -> windows_core::Result<()> {
14507 unsafe {
14508 (windows_core::Interface::vtable(self).CompareEntryIDs)(
14509 windows_core::Interface::as_raw(self),
14510 cbentryid1,
14511 lpentryid1 as _,
14512 cbentryid2,
14513 lpentryid2 as _,
14514 ulflags,
14515 lpulresult as _,
14516 )
14517 .ok()
14518 }
14519 }
14520 pub unsafe fn Advise<P3>(
14521 &self,
14522 cbentryid: u32,
14523 lpentryid: *mut ENTRYID,
14524 uleventmask: u32,
14525 lpadvisesink: P3,
14526 lpulconnection: *mut usize,
14527 ) -> windows_core::Result<()>
14528 where
14529 P3: windows_core::Param<IMAPIAdviseSink>,
14530 {
14531 unsafe {
14532 (windows_core::Interface::vtable(self).Advise)(
14533 windows_core::Interface::as_raw(self),
14534 cbentryid,
14535 lpentryid as _,
14536 uleventmask,
14537 lpadvisesink.param().abi(),
14538 lpulconnection as _,
14539 )
14540 .ok()
14541 }
14542 }
14543 pub unsafe fn Unadvise(&self, ulconnection: usize) -> windows_core::Result<()> {
14544 unsafe {
14545 (windows_core::Interface::vtable(self).Unadvise)(
14546 windows_core::Interface::as_raw(self),
14547 ulconnection,
14548 )
14549 .ok()
14550 }
14551 }
14552 pub unsafe fn MessageOptions<P3>(
14553 &self,
14554 uluiparam: usize,
14555 ulflags: u32,
14556 lpszadrtype: *mut i8,
14557 lpmessage: P3,
14558 ) -> windows_core::Result<()>
14559 where
14560 P3: windows_core::Param<IMessage>,
14561 {
14562 unsafe {
14563 (windows_core::Interface::vtable(self).MessageOptions)(
14564 windows_core::Interface::as_raw(self),
14565 uluiparam,
14566 ulflags,
14567 lpszadrtype as _,
14568 lpmessage.param().abi(),
14569 )
14570 .ok()
14571 }
14572 }
14573 pub unsafe fn QueryDefaultMessageOpt(
14574 &self,
14575 lpszadrtype: *mut i8,
14576 ulflags: u32,
14577 lpcvalues: *mut u32,
14578 lppoptions: *mut *mut SPropValue,
14579 ) -> windows_core::Result<()> {
14580 unsafe {
14581 (windows_core::Interface::vtable(self).QueryDefaultMessageOpt)(
14582 windows_core::Interface::as_raw(self),
14583 lpszadrtype as _,
14584 ulflags,
14585 lpcvalues as _,
14586 lppoptions as _,
14587 )
14588 .ok()
14589 }
14590 }
14591 pub unsafe fn EnumAdrTypes(
14592 &self,
14593 ulflags: u32,
14594 lpcadrtypes: *mut u32,
14595 lpppszadrtypes: *mut *mut *mut i8,
14596 ) -> windows_core::Result<()> {
14597 unsafe {
14598 (windows_core::Interface::vtable(self).EnumAdrTypes)(
14599 windows_core::Interface::as_raw(self),
14600 ulflags,
14601 lpcadrtypes as _,
14602 lpppszadrtypes as _,
14603 )
14604 .ok()
14605 }
14606 }
14607 pub unsafe fn QueryIdentity(
14608 &self,
14609 lpcbentryid: *mut u32,
14610 lppentryid: *mut *mut ENTRYID,
14611 ) -> windows_core::Result<()> {
14612 unsafe {
14613 (windows_core::Interface::vtable(self).QueryIdentity)(
14614 windows_core::Interface::as_raw(self),
14615 lpcbentryid as _,
14616 lppentryid as _,
14617 )
14618 .ok()
14619 }
14620 }
14621 pub unsafe fn Logoff(
14622 &self,
14623 uluiparam: usize,
14624 ulflags: u32,
14625 ulreserved: u32,
14626 ) -> windows_core::Result<()> {
14627 unsafe {
14628 (windows_core::Interface::vtable(self).Logoff)(
14629 windows_core::Interface::as_raw(self),
14630 uluiparam,
14631 ulflags,
14632 ulreserved,
14633 )
14634 .ok()
14635 }
14636 }
14637 pub unsafe fn SetDefaultStore(
14638 &self,
14639 ulflags: u32,
14640 cbentryid: u32,
14641 lpentryid: *mut ENTRYID,
14642 ) -> windows_core::Result<()> {
14643 unsafe {
14644 (windows_core::Interface::vtable(self).SetDefaultStore)(
14645 windows_core::Interface::as_raw(self),
14646 ulflags,
14647 cbentryid,
14648 lpentryid as _,
14649 )
14650 .ok()
14651 }
14652 }
14653 pub unsafe fn AdminServices(&self, ulflags: u32) -> windows_core::Result<IMsgServiceAdmin> {
14654 unsafe {
14655 let mut result__ = core::mem::zeroed();
14656 (windows_core::Interface::vtable(self).AdminServices)(
14657 windows_core::Interface::as_raw(self),
14658 ulflags,
14659 &mut result__,
14660 )
14661 .and_then(|| windows_core::Type::from_abi(result__))
14662 }
14663 }
14664 pub unsafe fn ShowForm<P1, P2, P5, P10>(
14665 &self,
14666 uluiparam: usize,
14667 lpmsgstore: P1,
14668 lpparentfolder: P2,
14669 lpinterface: *mut windows_core::GUID,
14670 ulmessagetoken: usize,
14671 lpmessagesent: P5,
14672 ulflags: u32,
14673 ulmessagestatus: u32,
14674 ulmessageflags: u32,
14675 ulaccess: u32,
14676 lpszmessageclass: P10,
14677 ) -> windows_core::Result<()>
14678 where
14679 P1: windows_core::Param<IMsgStore>,
14680 P2: windows_core::Param<IMAPIFolder>,
14681 P5: windows_core::Param<IMessage>,
14682 P10: windows_core::Param<windows_core::PCSTR>,
14683 {
14684 unsafe {
14685 (windows_core::Interface::vtable(self).ShowForm)(
14686 windows_core::Interface::as_raw(self),
14687 uluiparam,
14688 lpmsgstore.param().abi(),
14689 lpparentfolder.param().abi(),
14690 lpinterface as _,
14691 ulmessagetoken,
14692 lpmessagesent.param().abi(),
14693 ulflags,
14694 ulmessagestatus,
14695 ulmessageflags,
14696 ulaccess,
14697 lpszmessageclass.param().abi(),
14698 )
14699 .ok()
14700 }
14701 }
14702 pub unsafe fn PrepareForm<P1>(
14703 &self,
14704 lpinterface: *mut windows_core::GUID,
14705 lpmessage: P1,
14706 lpulmessagetoken: *mut usize,
14707 ) -> windows_core::Result<()>
14708 where
14709 P1: windows_core::Param<IMessage>,
14710 {
14711 unsafe {
14712 (windows_core::Interface::vtable(self).PrepareForm)(
14713 windows_core::Interface::as_raw(self),
14714 lpinterface as _,
14715 lpmessage.param().abi(),
14716 lpulmessagetoken as _,
14717 )
14718 .ok()
14719 }
14720 }
14721}
14722#[repr(C)]
14723#[doc(hidden)]
14724pub struct IMAPISession_Vtbl {
14725 pub base__: windows_core::IUnknown_Vtbl,
14726 pub GetLastError: unsafe extern "system" fn(
14727 *mut core::ffi::c_void,
14728 windows_core::HRESULT,
14729 u32,
14730 *mut *mut MAPIERROR,
14731 ) -> windows_core::HRESULT,
14732 pub GetMsgStoresTable: unsafe extern "system" fn(
14733 *mut core::ffi::c_void,
14734 u32,
14735 *mut *mut core::ffi::c_void,
14736 ) -> windows_core::HRESULT,
14737 pub OpenMsgStore: unsafe extern "system" fn(
14738 *mut core::ffi::c_void,
14739 usize,
14740 u32,
14741 *mut ENTRYID,
14742 *mut windows_core::GUID,
14743 u32,
14744 *mut *mut core::ffi::c_void,
14745 ) -> windows_core::HRESULT,
14746 pub OpenAddressBook: unsafe extern "system" fn(
14747 *mut core::ffi::c_void,
14748 usize,
14749 *mut windows_core::GUID,
14750 u32,
14751 *mut *mut core::ffi::c_void,
14752 ) -> windows_core::HRESULT,
14753 pub OpenProfileSection: unsafe extern "system" fn(
14754 *mut core::ffi::c_void,
14755 *mut MAPIUID,
14756 *mut windows_core::GUID,
14757 u32,
14758 *mut *mut core::ffi::c_void,
14759 ) -> windows_core::HRESULT,
14760 pub GetStatusTable: unsafe extern "system" fn(
14761 *mut core::ffi::c_void,
14762 u32,
14763 *mut *mut core::ffi::c_void,
14764 ) -> windows_core::HRESULT,
14765 pub OpenEntry: unsafe extern "system" fn(
14766 *mut core::ffi::c_void,
14767 u32,
14768 *mut ENTRYID,
14769 *mut windows_core::GUID,
14770 u32,
14771 *mut u32,
14772 *mut *mut core::ffi::c_void,
14773 ) -> windows_core::HRESULT,
14774 pub CompareEntryIDs: unsafe extern "system" fn(
14775 *mut core::ffi::c_void,
14776 u32,
14777 *mut ENTRYID,
14778 u32,
14779 *mut ENTRYID,
14780 u32,
14781 *mut u32,
14782 ) -> windows_core::HRESULT,
14783 pub Advise: unsafe extern "system" fn(
14784 *mut core::ffi::c_void,
14785 u32,
14786 *mut ENTRYID,
14787 u32,
14788 *mut core::ffi::c_void,
14789 *mut usize,
14790 ) -> windows_core::HRESULT,
14791 pub Unadvise: unsafe extern "system" fn(*mut core::ffi::c_void, usize) -> windows_core::HRESULT,
14792 pub MessageOptions: unsafe extern "system" fn(
14793 *mut core::ffi::c_void,
14794 usize,
14795 u32,
14796 *mut i8,
14797 *mut core::ffi::c_void,
14798 ) -> windows_core::HRESULT,
14799 pub QueryDefaultMessageOpt: unsafe extern "system" fn(
14800 *mut core::ffi::c_void,
14801 *mut i8,
14802 u32,
14803 *mut u32,
14804 *mut *mut SPropValue,
14805 ) -> windows_core::HRESULT,
14806 pub EnumAdrTypes: unsafe extern "system" fn(
14807 *mut core::ffi::c_void,
14808 u32,
14809 *mut u32,
14810 *mut *mut *mut i8,
14811 ) -> windows_core::HRESULT,
14812 pub QueryIdentity: unsafe extern "system" fn(
14813 *mut core::ffi::c_void,
14814 *mut u32,
14815 *mut *mut ENTRYID,
14816 ) -> windows_core::HRESULT,
14817 pub Logoff:
14818 unsafe extern "system" fn(*mut core::ffi::c_void, usize, u32, u32) -> windows_core::HRESULT,
14819 pub SetDefaultStore: unsafe extern "system" fn(
14820 *mut core::ffi::c_void,
14821 u32,
14822 u32,
14823 *mut ENTRYID,
14824 ) -> windows_core::HRESULT,
14825 pub AdminServices: unsafe extern "system" fn(
14826 *mut core::ffi::c_void,
14827 u32,
14828 *mut *mut core::ffi::c_void,
14829 ) -> windows_core::HRESULT,
14830 pub ShowForm: unsafe extern "system" fn(
14831 *mut core::ffi::c_void,
14832 usize,
14833 *mut core::ffi::c_void,
14834 *mut core::ffi::c_void,
14835 *mut windows_core::GUID,
14836 usize,
14837 *mut core::ffi::c_void,
14838 u32,
14839 u32,
14840 u32,
14841 u32,
14842 windows_core::PCSTR,
14843 ) -> windows_core::HRESULT,
14844 pub PrepareForm: unsafe extern "system" fn(
14845 *mut core::ffi::c_void,
14846 *mut windows_core::GUID,
14847 *mut core::ffi::c_void,
14848 *mut usize,
14849 ) -> windows_core::HRESULT,
14850}
14851pub trait IMAPISession_Impl: windows_core::IUnknownImpl {
14852 fn GetLastError(
14853 &self,
14854 hresult: windows_core::HRESULT,
14855 ulflags: u32,
14856 lppmapierror: *mut *mut MAPIERROR,
14857 ) -> windows_core::Result<()>;
14858 fn GetMsgStoresTable(&self, ulflags: u32) -> windows_core::Result<IMAPITable>;
14859 fn OpenMsgStore(
14860 &self,
14861 uluiparam: usize,
14862 cbentryid: u32,
14863 lpentryid: *mut ENTRYID,
14864 lpinterface: *mut windows_core::GUID,
14865 ulflags: u32,
14866 lppmdb: windows_core::OutRef<IMsgStore>,
14867 ) -> windows_core::Result<()>;
14868 fn OpenAddressBook(
14869 &self,
14870 uluiparam: usize,
14871 lpinterface: *mut windows_core::GUID,
14872 ulflags: u32,
14873 lppadrbook: windows_core::OutRef<IAddrBook>,
14874 ) -> windows_core::Result<()>;
14875 fn OpenProfileSection(
14876 &self,
14877 lpuid: *mut MAPIUID,
14878 lpinterface: *mut windows_core::GUID,
14879 ulflags: u32,
14880 lppprofsect: windows_core::OutRef<IProfSect>,
14881 ) -> windows_core::Result<()>;
14882 fn GetStatusTable(&self, ulflags: u32) -> windows_core::Result<IMAPITable>;
14883 fn OpenEntry(
14884 &self,
14885 cbentryid: u32,
14886 lpentryid: *mut ENTRYID,
14887 lpinterface: *mut windows_core::GUID,
14888 ulflags: u32,
14889 lpulobjtype: *mut u32,
14890 lppunk: windows_core::OutRef<windows_core::IUnknown>,
14891 ) -> windows_core::Result<()>;
14892 fn CompareEntryIDs(
14893 &self,
14894 cbentryid1: u32,
14895 lpentryid1: *mut ENTRYID,
14896 cbentryid2: u32,
14897 lpentryid2: *mut ENTRYID,
14898 ulflags: u32,
14899 lpulresult: *mut u32,
14900 ) -> windows_core::Result<()>;
14901 fn Advise(
14902 &self,
14903 cbentryid: u32,
14904 lpentryid: *mut ENTRYID,
14905 uleventmask: u32,
14906 lpadvisesink: windows_core::Ref<IMAPIAdviseSink>,
14907 lpulconnection: *mut usize,
14908 ) -> windows_core::Result<()>;
14909 fn Unadvise(&self, ulconnection: usize) -> windows_core::Result<()>;
14910 fn MessageOptions(
14911 &self,
14912 uluiparam: usize,
14913 ulflags: u32,
14914 lpszadrtype: *mut i8,
14915 lpmessage: windows_core::Ref<IMessage>,
14916 ) -> windows_core::Result<()>;
14917 fn QueryDefaultMessageOpt(
14918 &self,
14919 lpszadrtype: *mut i8,
14920 ulflags: u32,
14921 lpcvalues: *mut u32,
14922 lppoptions: *mut *mut SPropValue,
14923 ) -> windows_core::Result<()>;
14924 fn EnumAdrTypes(
14925 &self,
14926 ulflags: u32,
14927 lpcadrtypes: *mut u32,
14928 lpppszadrtypes: *mut *mut *mut i8,
14929 ) -> windows_core::Result<()>;
14930 fn QueryIdentity(
14931 &self,
14932 lpcbentryid: *mut u32,
14933 lppentryid: *mut *mut ENTRYID,
14934 ) -> windows_core::Result<()>;
14935 fn Logoff(&self, uluiparam: usize, ulflags: u32, ulreserved: u32) -> windows_core::Result<()>;
14936 fn SetDefaultStore(
14937 &self,
14938 ulflags: u32,
14939 cbentryid: u32,
14940 lpentryid: *mut ENTRYID,
14941 ) -> windows_core::Result<()>;
14942 fn AdminServices(&self, ulflags: u32) -> windows_core::Result<IMsgServiceAdmin>;
14943 fn ShowForm(
14944 &self,
14945 uluiparam: usize,
14946 lpmsgstore: windows_core::Ref<IMsgStore>,
14947 lpparentfolder: windows_core::Ref<IMAPIFolder>,
14948 lpinterface: *mut windows_core::GUID,
14949 ulmessagetoken: usize,
14950 lpmessagesent: windows_core::Ref<IMessage>,
14951 ulflags: u32,
14952 ulmessagestatus: u32,
14953 ulmessageflags: u32,
14954 ulaccess: u32,
14955 lpszmessageclass: &windows_core::PCSTR,
14956 ) -> windows_core::Result<()>;
14957 fn PrepareForm(
14958 &self,
14959 lpinterface: *mut windows_core::GUID,
14960 lpmessage: windows_core::Ref<IMessage>,
14961 lpulmessagetoken: *mut usize,
14962 ) -> windows_core::Result<()>;
14963}
14964impl IMAPISession_Vtbl {
14965 pub const fn new<Identity: IMAPISession_Impl, const OFFSET: isize>() -> Self {
14966 unsafe extern "system" fn GetLastError<Identity: IMAPISession_Impl, const OFFSET: isize>(
14967 this: *mut core::ffi::c_void,
14968 hresult: windows_core::HRESULT,
14969 ulflags: u32,
14970 lppmapierror: *mut *mut MAPIERROR,
14971 ) -> windows_core::HRESULT {
14972 unsafe {
14973 let this: &Identity =
14974 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
14975 IMAPISession_Impl::GetLastError(
14976 this,
14977 core::mem::transmute_copy(&hresult),
14978 core::mem::transmute_copy(&ulflags),
14979 core::mem::transmute_copy(&lppmapierror),
14980 )
14981 .into()
14982 }
14983 }
14984 unsafe extern "system" fn GetMsgStoresTable<
14985 Identity: IMAPISession_Impl,
14986 const OFFSET: isize,
14987 >(
14988 this: *mut core::ffi::c_void,
14989 ulflags: u32,
14990 lpptable: *mut *mut core::ffi::c_void,
14991 ) -> windows_core::HRESULT {
14992 unsafe {
14993 let this: &Identity =
14994 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
14995 match IMAPISession_Impl::GetMsgStoresTable(
14996 this,
14997 core::mem::transmute_copy(&ulflags),
14998 ) {
14999 Ok(ok__) => {
15000 lpptable.write(core::mem::transmute(ok__));
15001 windows_core::HRESULT(0)
15002 }
15003 Err(err) => err.into(),
15004 }
15005 }
15006 }
15007 unsafe extern "system" fn OpenMsgStore<Identity: IMAPISession_Impl, const OFFSET: isize>(
15008 this: *mut core::ffi::c_void,
15009 uluiparam: usize,
15010 cbentryid: u32,
15011 lpentryid: *mut ENTRYID,
15012 lpinterface: *mut windows_core::GUID,
15013 ulflags: u32,
15014 lppmdb: *mut *mut core::ffi::c_void,
15015 ) -> windows_core::HRESULT {
15016 unsafe {
15017 let this: &Identity =
15018 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
15019 IMAPISession_Impl::OpenMsgStore(
15020 this,
15021 core::mem::transmute_copy(&uluiparam),
15022 core::mem::transmute_copy(&cbentryid),
15023 core::mem::transmute_copy(&lpentryid),
15024 core::mem::transmute_copy(&lpinterface),
15025 core::mem::transmute_copy(&ulflags),
15026 core::mem::transmute_copy(&lppmdb),
15027 )
15028 .into()
15029 }
15030 }
15031 unsafe extern "system" fn OpenAddressBook<
15032 Identity: IMAPISession_Impl,
15033 const OFFSET: isize,
15034 >(
15035 this: *mut core::ffi::c_void,
15036 uluiparam: usize,
15037 lpinterface: *mut windows_core::GUID,
15038 ulflags: u32,
15039 lppadrbook: *mut *mut core::ffi::c_void,
15040 ) -> windows_core::HRESULT {
15041 unsafe {
15042 let this: &Identity =
15043 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
15044 IMAPISession_Impl::OpenAddressBook(
15045 this,
15046 core::mem::transmute_copy(&uluiparam),
15047 core::mem::transmute_copy(&lpinterface),
15048 core::mem::transmute_copy(&ulflags),
15049 core::mem::transmute_copy(&lppadrbook),
15050 )
15051 .into()
15052 }
15053 }
15054 unsafe extern "system" fn OpenProfileSection<
15055 Identity: IMAPISession_Impl,
15056 const OFFSET: isize,
15057 >(
15058 this: *mut core::ffi::c_void,
15059 lpuid: *mut MAPIUID,
15060 lpinterface: *mut windows_core::GUID,
15061 ulflags: u32,
15062 lppprofsect: *mut *mut core::ffi::c_void,
15063 ) -> windows_core::HRESULT {
15064 unsafe {
15065 let this: &Identity =
15066 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
15067 IMAPISession_Impl::OpenProfileSection(
15068 this,
15069 core::mem::transmute_copy(&lpuid),
15070 core::mem::transmute_copy(&lpinterface),
15071 core::mem::transmute_copy(&ulflags),
15072 core::mem::transmute_copy(&lppprofsect),
15073 )
15074 .into()
15075 }
15076 }
15077 unsafe extern "system" fn GetStatusTable<
15078 Identity: IMAPISession_Impl,
15079 const OFFSET: isize,
15080 >(
15081 this: *mut core::ffi::c_void,
15082 ulflags: u32,
15083 lpptable: *mut *mut core::ffi::c_void,
15084 ) -> windows_core::HRESULT {
15085 unsafe {
15086 let this: &Identity =
15087 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
15088 match IMAPISession_Impl::GetStatusTable(this, core::mem::transmute_copy(&ulflags)) {
15089 Ok(ok__) => {
15090 lpptable.write(core::mem::transmute(ok__));
15091 windows_core::HRESULT(0)
15092 }
15093 Err(err) => err.into(),
15094 }
15095 }
15096 }
15097 unsafe extern "system" fn OpenEntry<Identity: IMAPISession_Impl, const OFFSET: isize>(
15098 this: *mut core::ffi::c_void,
15099 cbentryid: u32,
15100 lpentryid: *mut ENTRYID,
15101 lpinterface: *mut windows_core::GUID,
15102 ulflags: u32,
15103 lpulobjtype: *mut u32,
15104 lppunk: *mut *mut core::ffi::c_void,
15105 ) -> windows_core::HRESULT {
15106 unsafe {
15107 let this: &Identity =
15108 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
15109 IMAPISession_Impl::OpenEntry(
15110 this,
15111 core::mem::transmute_copy(&cbentryid),
15112 core::mem::transmute_copy(&lpentryid),
15113 core::mem::transmute_copy(&lpinterface),
15114 core::mem::transmute_copy(&ulflags),
15115 core::mem::transmute_copy(&lpulobjtype),
15116 core::mem::transmute_copy(&lppunk),
15117 )
15118 .into()
15119 }
15120 }
15121 unsafe extern "system" fn CompareEntryIDs<
15122 Identity: IMAPISession_Impl,
15123 const OFFSET: isize,
15124 >(
15125 this: *mut core::ffi::c_void,
15126 cbentryid1: u32,
15127 lpentryid1: *mut ENTRYID,
15128 cbentryid2: u32,
15129 lpentryid2: *mut ENTRYID,
15130 ulflags: u32,
15131 lpulresult: *mut u32,
15132 ) -> windows_core::HRESULT {
15133 unsafe {
15134 let this: &Identity =
15135 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
15136 IMAPISession_Impl::CompareEntryIDs(
15137 this,
15138 core::mem::transmute_copy(&cbentryid1),
15139 core::mem::transmute_copy(&lpentryid1),
15140 core::mem::transmute_copy(&cbentryid2),
15141 core::mem::transmute_copy(&lpentryid2),
15142 core::mem::transmute_copy(&ulflags),
15143 core::mem::transmute_copy(&lpulresult),
15144 )
15145 .into()
15146 }
15147 }
15148 unsafe extern "system" fn Advise<Identity: IMAPISession_Impl, const OFFSET: isize>(
15149 this: *mut core::ffi::c_void,
15150 cbentryid: u32,
15151 lpentryid: *mut ENTRYID,
15152 uleventmask: u32,
15153 lpadvisesink: *mut core::ffi::c_void,
15154 lpulconnection: *mut usize,
15155 ) -> windows_core::HRESULT {
15156 unsafe {
15157 let this: &Identity =
15158 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
15159 IMAPISession_Impl::Advise(
15160 this,
15161 core::mem::transmute_copy(&cbentryid),
15162 core::mem::transmute_copy(&lpentryid),
15163 core::mem::transmute_copy(&uleventmask),
15164 core::mem::transmute_copy(&lpadvisesink),
15165 core::mem::transmute_copy(&lpulconnection),
15166 )
15167 .into()
15168 }
15169 }
15170 unsafe extern "system" fn Unadvise<Identity: IMAPISession_Impl, const OFFSET: isize>(
15171 this: *mut core::ffi::c_void,
15172 ulconnection: usize,
15173 ) -> windows_core::HRESULT {
15174 unsafe {
15175 let this: &Identity =
15176 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
15177 IMAPISession_Impl::Unadvise(this, core::mem::transmute_copy(&ulconnection)).into()
15178 }
15179 }
15180 unsafe extern "system" fn MessageOptions<
15181 Identity: IMAPISession_Impl,
15182 const OFFSET: isize,
15183 >(
15184 this: *mut core::ffi::c_void,
15185 uluiparam: usize,
15186 ulflags: u32,
15187 lpszadrtype: *mut i8,
15188 lpmessage: *mut core::ffi::c_void,
15189 ) -> windows_core::HRESULT {
15190 unsafe {
15191 let this: &Identity =
15192 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
15193 IMAPISession_Impl::MessageOptions(
15194 this,
15195 core::mem::transmute_copy(&uluiparam),
15196 core::mem::transmute_copy(&ulflags),
15197 core::mem::transmute_copy(&lpszadrtype),
15198 core::mem::transmute_copy(&lpmessage),
15199 )
15200 .into()
15201 }
15202 }
15203 unsafe extern "system" fn QueryDefaultMessageOpt<
15204 Identity: IMAPISession_Impl,
15205 const OFFSET: isize,
15206 >(
15207 this: *mut core::ffi::c_void,
15208 lpszadrtype: *mut i8,
15209 ulflags: u32,
15210 lpcvalues: *mut u32,
15211 lppoptions: *mut *mut SPropValue,
15212 ) -> windows_core::HRESULT {
15213 unsafe {
15214 let this: &Identity =
15215 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
15216 IMAPISession_Impl::QueryDefaultMessageOpt(
15217 this,
15218 core::mem::transmute_copy(&lpszadrtype),
15219 core::mem::transmute_copy(&ulflags),
15220 core::mem::transmute_copy(&lpcvalues),
15221 core::mem::transmute_copy(&lppoptions),
15222 )
15223 .into()
15224 }
15225 }
15226 unsafe extern "system" fn EnumAdrTypes<Identity: IMAPISession_Impl, const OFFSET: isize>(
15227 this: *mut core::ffi::c_void,
15228 ulflags: u32,
15229 lpcadrtypes: *mut u32,
15230 lpppszadrtypes: *mut *mut *mut i8,
15231 ) -> windows_core::HRESULT {
15232 unsafe {
15233 let this: &Identity =
15234 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
15235 IMAPISession_Impl::EnumAdrTypes(
15236 this,
15237 core::mem::transmute_copy(&ulflags),
15238 core::mem::transmute_copy(&lpcadrtypes),
15239 core::mem::transmute_copy(&lpppszadrtypes),
15240 )
15241 .into()
15242 }
15243 }
15244 unsafe extern "system" fn QueryIdentity<
15245 Identity: IMAPISession_Impl,
15246 const OFFSET: isize,
15247 >(
15248 this: *mut core::ffi::c_void,
15249 lpcbentryid: *mut u32,
15250 lppentryid: *mut *mut ENTRYID,
15251 ) -> windows_core::HRESULT {
15252 unsafe {
15253 let this: &Identity =
15254 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
15255 IMAPISession_Impl::QueryIdentity(
15256 this,
15257 core::mem::transmute_copy(&lpcbentryid),
15258 core::mem::transmute_copy(&lppentryid),
15259 )
15260 .into()
15261 }
15262 }
15263 unsafe extern "system" fn Logoff<Identity: IMAPISession_Impl, const OFFSET: isize>(
15264 this: *mut core::ffi::c_void,
15265 uluiparam: usize,
15266 ulflags: u32,
15267 ulreserved: u32,
15268 ) -> windows_core::HRESULT {
15269 unsafe {
15270 let this: &Identity =
15271 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
15272 IMAPISession_Impl::Logoff(
15273 this,
15274 core::mem::transmute_copy(&uluiparam),
15275 core::mem::transmute_copy(&ulflags),
15276 core::mem::transmute_copy(&ulreserved),
15277 )
15278 .into()
15279 }
15280 }
15281 unsafe extern "system" fn SetDefaultStore<
15282 Identity: IMAPISession_Impl,
15283 const OFFSET: isize,
15284 >(
15285 this: *mut core::ffi::c_void,
15286 ulflags: u32,
15287 cbentryid: u32,
15288 lpentryid: *mut ENTRYID,
15289 ) -> windows_core::HRESULT {
15290 unsafe {
15291 let this: &Identity =
15292 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
15293 IMAPISession_Impl::SetDefaultStore(
15294 this,
15295 core::mem::transmute_copy(&ulflags),
15296 core::mem::transmute_copy(&cbentryid),
15297 core::mem::transmute_copy(&lpentryid),
15298 )
15299 .into()
15300 }
15301 }
15302 unsafe extern "system" fn AdminServices<
15303 Identity: IMAPISession_Impl,
15304 const OFFSET: isize,
15305 >(
15306 this: *mut core::ffi::c_void,
15307 ulflags: u32,
15308 lppserviceadmin: *mut *mut core::ffi::c_void,
15309 ) -> windows_core::HRESULT {
15310 unsafe {
15311 let this: &Identity =
15312 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
15313 match IMAPISession_Impl::AdminServices(this, core::mem::transmute_copy(&ulflags)) {
15314 Ok(ok__) => {
15315 lppserviceadmin.write(core::mem::transmute(ok__));
15316 windows_core::HRESULT(0)
15317 }
15318 Err(err) => err.into(),
15319 }
15320 }
15321 }
15322 unsafe extern "system" fn ShowForm<Identity: IMAPISession_Impl, const OFFSET: isize>(
15323 this: *mut core::ffi::c_void,
15324 uluiparam: usize,
15325 lpmsgstore: *mut core::ffi::c_void,
15326 lpparentfolder: *mut core::ffi::c_void,
15327 lpinterface: *mut windows_core::GUID,
15328 ulmessagetoken: usize,
15329 lpmessagesent: *mut core::ffi::c_void,
15330 ulflags: u32,
15331 ulmessagestatus: u32,
15332 ulmessageflags: u32,
15333 ulaccess: u32,
15334 lpszmessageclass: windows_core::PCSTR,
15335 ) -> windows_core::HRESULT {
15336 unsafe {
15337 let this: &Identity =
15338 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
15339 IMAPISession_Impl::ShowForm(
15340 this,
15341 core::mem::transmute_copy(&uluiparam),
15342 core::mem::transmute_copy(&lpmsgstore),
15343 core::mem::transmute_copy(&lpparentfolder),
15344 core::mem::transmute_copy(&lpinterface),
15345 core::mem::transmute_copy(&ulmessagetoken),
15346 core::mem::transmute_copy(&lpmessagesent),
15347 core::mem::transmute_copy(&ulflags),
15348 core::mem::transmute_copy(&ulmessagestatus),
15349 core::mem::transmute_copy(&ulmessageflags),
15350 core::mem::transmute_copy(&ulaccess),
15351 core::mem::transmute(&lpszmessageclass),
15352 )
15353 .into()
15354 }
15355 }
15356 unsafe extern "system" fn PrepareForm<Identity: IMAPISession_Impl, const OFFSET: isize>(
15357 this: *mut core::ffi::c_void,
15358 lpinterface: *mut windows_core::GUID,
15359 lpmessage: *mut core::ffi::c_void,
15360 lpulmessagetoken: *mut usize,
15361 ) -> windows_core::HRESULT {
15362 unsafe {
15363 let this: &Identity =
15364 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
15365 IMAPISession_Impl::PrepareForm(
15366 this,
15367 core::mem::transmute_copy(&lpinterface),
15368 core::mem::transmute_copy(&lpmessage),
15369 core::mem::transmute_copy(&lpulmessagetoken),
15370 )
15371 .into()
15372 }
15373 }
15374 Self {
15375 base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
15376 GetLastError: GetLastError::<Identity, OFFSET>,
15377 GetMsgStoresTable: GetMsgStoresTable::<Identity, OFFSET>,
15378 OpenMsgStore: OpenMsgStore::<Identity, OFFSET>,
15379 OpenAddressBook: OpenAddressBook::<Identity, OFFSET>,
15380 OpenProfileSection: OpenProfileSection::<Identity, OFFSET>,
15381 GetStatusTable: GetStatusTable::<Identity, OFFSET>,
15382 OpenEntry: OpenEntry::<Identity, OFFSET>,
15383 CompareEntryIDs: CompareEntryIDs::<Identity, OFFSET>,
15384 Advise: Advise::<Identity, OFFSET>,
15385 Unadvise: Unadvise::<Identity, OFFSET>,
15386 MessageOptions: MessageOptions::<Identity, OFFSET>,
15387 QueryDefaultMessageOpt: QueryDefaultMessageOpt::<Identity, OFFSET>,
15388 EnumAdrTypes: EnumAdrTypes::<Identity, OFFSET>,
15389 QueryIdentity: QueryIdentity::<Identity, OFFSET>,
15390 Logoff: Logoff::<Identity, OFFSET>,
15391 SetDefaultStore: SetDefaultStore::<Identity, OFFSET>,
15392 AdminServices: AdminServices::<Identity, OFFSET>,
15393 ShowForm: ShowForm::<Identity, OFFSET>,
15394 PrepareForm: PrepareForm::<Identity, OFFSET>,
15395 }
15396 }
15397 pub fn matches(iid: &windows_core::GUID) -> bool {
15398 iid == &<IMAPISession as windows_core::Interface>::IID
15399 }
15400}
15401impl windows_core::RuntimeName for IMAPISession {}
15402windows_core::imp::define_interface!(
15403 IMAPIStatus,
15404 IMAPIStatus_Vtbl,
15405 0x00020305_0000_0000_c000_000000000046
15406);
15407impl core::ops::Deref for IMAPIStatus {
15408 type Target = IMAPIProp;
15409 fn deref(&self) -> &Self::Target {
15410 unsafe { core::mem::transmute(self) }
15411 }
15412}
15413windows_core::imp::interface_hierarchy!(IMAPIStatus, windows_core::IUnknown, IMAPIProp);
15414impl IMAPIStatus {
15415 pub unsafe fn ValidateState(&self, uluiparam: usize, ulflags: u32) -> windows_core::Result<()> {
15416 unsafe {
15417 (windows_core::Interface::vtable(self).ValidateState)(
15418 windows_core::Interface::as_raw(self),
15419 uluiparam,
15420 ulflags,
15421 )
15422 .ok()
15423 }
15424 }
15425 pub unsafe fn SettingsDialog(
15426 &self,
15427 uluiparam: usize,
15428 ulflags: u32,
15429 ) -> windows_core::Result<()> {
15430 unsafe {
15431 (windows_core::Interface::vtable(self).SettingsDialog)(
15432 windows_core::Interface::as_raw(self),
15433 uluiparam,
15434 ulflags,
15435 )
15436 .ok()
15437 }
15438 }
15439 pub unsafe fn ChangePassword(
15440 &self,
15441 lpoldpass: *mut i8,
15442 lpnewpass: *mut i8,
15443 ulflags: u32,
15444 ) -> windows_core::Result<()> {
15445 unsafe {
15446 (windows_core::Interface::vtable(self).ChangePassword)(
15447 windows_core::Interface::as_raw(self),
15448 lpoldpass as _,
15449 lpnewpass as _,
15450 ulflags,
15451 )
15452 .ok()
15453 }
15454 }
15455 pub unsafe fn FlushQueues(
15456 &self,
15457 uluiparam: usize,
15458 cbtargettransport: u32,
15459 lptargettransport: *mut ENTRYID,
15460 ulflags: u32,
15461 ) -> windows_core::Result<()> {
15462 unsafe {
15463 (windows_core::Interface::vtable(self).FlushQueues)(
15464 windows_core::Interface::as_raw(self),
15465 uluiparam,
15466 cbtargettransport,
15467 lptargettransport as _,
15468 ulflags,
15469 )
15470 .ok()
15471 }
15472 }
15473}
15474#[repr(C)]
15475#[doc(hidden)]
15476pub struct IMAPIStatus_Vtbl {
15477 pub base__: IMAPIProp_Vtbl,
15478 pub ValidateState:
15479 unsafe extern "system" fn(*mut core::ffi::c_void, usize, u32) -> windows_core::HRESULT,
15480 pub SettingsDialog:
15481 unsafe extern "system" fn(*mut core::ffi::c_void, usize, u32) -> windows_core::HRESULT,
15482 pub ChangePassword: unsafe extern "system" fn(
15483 *mut core::ffi::c_void,
15484 *mut i8,
15485 *mut i8,
15486 u32,
15487 ) -> windows_core::HRESULT,
15488 pub FlushQueues: unsafe extern "system" fn(
15489 *mut core::ffi::c_void,
15490 usize,
15491 u32,
15492 *mut ENTRYID,
15493 u32,
15494 ) -> windows_core::HRESULT,
15495}
15496pub trait IMAPIStatus_Impl: IMAPIProp_Impl {
15497 fn ValidateState(&self, uluiparam: usize, ulflags: u32) -> windows_core::Result<()>;
15498 fn SettingsDialog(&self, uluiparam: usize, ulflags: u32) -> windows_core::Result<()>;
15499 fn ChangePassword(
15500 &self,
15501 lpoldpass: *mut i8,
15502 lpnewpass: *mut i8,
15503 ulflags: u32,
15504 ) -> windows_core::Result<()>;
15505 fn FlushQueues(
15506 &self,
15507 uluiparam: usize,
15508 cbtargettransport: u32,
15509 lptargettransport: *mut ENTRYID,
15510 ulflags: u32,
15511 ) -> windows_core::Result<()>;
15512}
15513impl IMAPIStatus_Vtbl {
15514 pub const fn new<Identity: IMAPIStatus_Impl, const OFFSET: isize>() -> Self {
15515 unsafe extern "system" fn ValidateState<Identity: IMAPIStatus_Impl, const OFFSET: isize>(
15516 this: *mut core::ffi::c_void,
15517 uluiparam: usize,
15518 ulflags: u32,
15519 ) -> windows_core::HRESULT {
15520 unsafe {
15521 let this: &Identity =
15522 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
15523 IMAPIStatus_Impl::ValidateState(
15524 this,
15525 core::mem::transmute_copy(&uluiparam),
15526 core::mem::transmute_copy(&ulflags),
15527 )
15528 .into()
15529 }
15530 }
15531 unsafe extern "system" fn SettingsDialog<
15532 Identity: IMAPIStatus_Impl,
15533 const OFFSET: isize,
15534 >(
15535 this: *mut core::ffi::c_void,
15536 uluiparam: usize,
15537 ulflags: u32,
15538 ) -> windows_core::HRESULT {
15539 unsafe {
15540 let this: &Identity =
15541 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
15542 IMAPIStatus_Impl::SettingsDialog(
15543 this,
15544 core::mem::transmute_copy(&uluiparam),
15545 core::mem::transmute_copy(&ulflags),
15546 )
15547 .into()
15548 }
15549 }
15550 unsafe extern "system" fn ChangePassword<
15551 Identity: IMAPIStatus_Impl,
15552 const OFFSET: isize,
15553 >(
15554 this: *mut core::ffi::c_void,
15555 lpoldpass: *mut i8,
15556 lpnewpass: *mut i8,
15557 ulflags: u32,
15558 ) -> windows_core::HRESULT {
15559 unsafe {
15560 let this: &Identity =
15561 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
15562 IMAPIStatus_Impl::ChangePassword(
15563 this,
15564 core::mem::transmute_copy(&lpoldpass),
15565 core::mem::transmute_copy(&lpnewpass),
15566 core::mem::transmute_copy(&ulflags),
15567 )
15568 .into()
15569 }
15570 }
15571 unsafe extern "system" fn FlushQueues<Identity: IMAPIStatus_Impl, const OFFSET: isize>(
15572 this: *mut core::ffi::c_void,
15573 uluiparam: usize,
15574 cbtargettransport: u32,
15575 lptargettransport: *mut ENTRYID,
15576 ulflags: u32,
15577 ) -> windows_core::HRESULT {
15578 unsafe {
15579 let this: &Identity =
15580 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
15581 IMAPIStatus_Impl::FlushQueues(
15582 this,
15583 core::mem::transmute_copy(&uluiparam),
15584 core::mem::transmute_copy(&cbtargettransport),
15585 core::mem::transmute_copy(&lptargettransport),
15586 core::mem::transmute_copy(&ulflags),
15587 )
15588 .into()
15589 }
15590 }
15591 Self {
15592 base__: IMAPIProp_Vtbl::new::<Identity, OFFSET>(),
15593 ValidateState: ValidateState::<Identity, OFFSET>,
15594 SettingsDialog: SettingsDialog::<Identity, OFFSET>,
15595 ChangePassword: ChangePassword::<Identity, OFFSET>,
15596 FlushQueues: FlushQueues::<Identity, OFFSET>,
15597 }
15598 }
15599 pub fn matches(iid: &windows_core::GUID) -> bool {
15600 iid == &<IMAPIStatus as windows_core::Interface>::IID
15601 || iid == &<IMAPIProp as windows_core::Interface>::IID
15602 }
15603}
15604impl windows_core::RuntimeName for IMAPIStatus {}
15605pub const IMAPIStatus_ChangePassword: METHODS = METHODS(124i32);
15606pub const IMAPIStatus_FlushQueues: METHODS = METHODS(125i32);
15607pub const IMAPIStatus_SettingsDialog: METHODS = METHODS(123i32);
15608pub const IMAPIStatus_ValidateState: METHODS = METHODS(122i32);
15609windows_core::imp::define_interface!(IMAPISupport, IMAPISupport_Vtbl, 0);
15610windows_core::imp::interface_hierarchy!(IMAPISupport, windows_core::IUnknown);
15611impl IMAPISupport {
15612 pub unsafe fn GetLastError(
15613 &self,
15614 hresult: windows_core::HRESULT,
15615 ulflags: u32,
15616 lppmapierror: *mut *mut MAPIERROR,
15617 ) -> windows_core::Result<()> {
15618 unsafe {
15619 (windows_core::Interface::vtable(self).GetLastError)(
15620 windows_core::Interface::as_raw(self),
15621 hresult,
15622 ulflags,
15623 lppmapierror as _,
15624 )
15625 .ok()
15626 }
15627 }
15628 pub unsafe fn GetMemAllocRoutines(
15629 &self,
15630 lpallocatebuffer: *mut LPALLOCATEBUFFER,
15631 lpallocatemore: *mut LPALLOCATEMORE,
15632 lpfreebuffer: *mut LPFREEBUFFER,
15633 ) -> windows_core::Result<()> {
15634 unsafe {
15635 (windows_core::Interface::vtable(self).GetMemAllocRoutines)(
15636 windows_core::Interface::as_raw(self),
15637 lpallocatebuffer as _,
15638 lpallocatemore as _,
15639 lpfreebuffer as _,
15640 )
15641 .ok()
15642 }
15643 }
15644 pub unsafe fn Subscribe<P3>(
15645 &self,
15646 lpkey: *mut NOTIFKEY,
15647 uleventmask: u32,
15648 ulflags: u32,
15649 lpadvisesink: P3,
15650 lpulconnection: *mut usize,
15651 ) -> windows_core::Result<()>
15652 where
15653 P3: windows_core::Param<IMAPIAdviseSink>,
15654 {
15655 unsafe {
15656 (windows_core::Interface::vtable(self).Subscribe)(
15657 windows_core::Interface::as_raw(self),
15658 lpkey as _,
15659 uleventmask,
15660 ulflags,
15661 lpadvisesink.param().abi(),
15662 lpulconnection as _,
15663 )
15664 .ok()
15665 }
15666 }
15667 pub unsafe fn Unsubscribe(&self, ulconnection: usize) -> windows_core::Result<()> {
15668 unsafe {
15669 (windows_core::Interface::vtable(self).Unsubscribe)(
15670 windows_core::Interface::as_raw(self),
15671 ulconnection,
15672 )
15673 .ok()
15674 }
15675 }
15676 pub unsafe fn Notify(
15677 &self,
15678 lpkey: *mut NOTIFKEY,
15679 cnotification: u32,
15680 lpnotifications: *mut NOTIFICATION,
15681 lpulflags: *mut u32,
15682 ) -> windows_core::Result<()> {
15683 unsafe {
15684 (windows_core::Interface::vtable(self).Notify)(
15685 windows_core::Interface::as_raw(self),
15686 lpkey as _,
15687 cnotification,
15688 lpnotifications as _,
15689 lpulflags as _,
15690 )
15691 .ok()
15692 }
15693 }
15694 pub unsafe fn ModifyStatusRow(
15695 &self,
15696 cvalues: u32,
15697 lpcolumnvals: *mut SPropValue,
15698 ulflags: u32,
15699 ) -> windows_core::Result<()> {
15700 unsafe {
15701 (windows_core::Interface::vtable(self).ModifyStatusRow)(
15702 windows_core::Interface::as_raw(self),
15703 cvalues,
15704 lpcolumnvals as _,
15705 ulflags,
15706 )
15707 .ok()
15708 }
15709 }
15710 pub unsafe fn OpenProfileSection(
15711 &self,
15712 lpuid: *mut MAPIUID,
15713 ulflags: u32,
15714 lppprofileobj: *mut Option<IProfSect>,
15715 ) -> windows_core::Result<()> {
15716 unsafe {
15717 (windows_core::Interface::vtable(self).OpenProfileSection)(
15718 windows_core::Interface::as_raw(self),
15719 lpuid as _,
15720 ulflags,
15721 core::mem::transmute(lppprofileobj),
15722 )
15723 .ok()
15724 }
15725 }
15726 pub unsafe fn RegisterPreprocessor<P3, P4>(
15727 &self,
15728 lpmuid: *mut MAPIUID,
15729 lpszadrtype: *mut i8,
15730 lpszdllname: *mut i8,
15731 lpszpreprocess: P3,
15732 lpszremovepreprocessinfo: P4,
15733 ulflags: u32,
15734 ) -> windows_core::Result<()>
15735 where
15736 P3: windows_core::Param<windows_core::PCSTR>,
15737 P4: windows_core::Param<windows_core::PCSTR>,
15738 {
15739 unsafe {
15740 (windows_core::Interface::vtable(self).RegisterPreprocessor)(
15741 windows_core::Interface::as_raw(self),
15742 lpmuid as _,
15743 lpszadrtype as _,
15744 lpszdllname as _,
15745 lpszpreprocess.param().abi(),
15746 lpszremovepreprocessinfo.param().abi(),
15747 ulflags,
15748 )
15749 .ok()
15750 }
15751 }
15752 pub unsafe fn NewUID(&self, lpmuid: *mut MAPIUID) -> windows_core::Result<()> {
15753 unsafe {
15754 (windows_core::Interface::vtable(self).NewUID)(
15755 windows_core::Interface::as_raw(self),
15756 lpmuid as _,
15757 )
15758 .ok()
15759 }
15760 }
15761 pub unsafe fn MakeInvalid(
15762 &self,
15763 ulflags: u32,
15764 lpobject: *mut core::ffi::c_void,
15765 ulrefcount: u32,
15766 cmethods: u32,
15767 ) -> windows_core::Result<()> {
15768 unsafe {
15769 (windows_core::Interface::vtable(self).MakeInvalid)(
15770 windows_core::Interface::as_raw(self),
15771 ulflags,
15772 lpobject as _,
15773 ulrefcount,
15774 cmethods,
15775 )
15776 .ok()
15777 }
15778 }
15779 pub unsafe fn SpoolerYield(&self, ulflags: u32) -> windows_core::Result<()> {
15780 unsafe {
15781 (windows_core::Interface::vtable(self).SpoolerYield)(
15782 windows_core::Interface::as_raw(self),
15783 ulflags,
15784 )
15785 .ok()
15786 }
15787 }
15788 pub unsafe fn SpoolerNotify(
15789 &self,
15790 ulflags: u32,
15791 lpvdata: *mut core::ffi::c_void,
15792 ) -> windows_core::Result<()> {
15793 unsafe {
15794 (windows_core::Interface::vtable(self).SpoolerNotify)(
15795 windows_core::Interface::as_raw(self),
15796 ulflags,
15797 lpvdata as _,
15798 )
15799 .ok()
15800 }
15801 }
15802 pub unsafe fn CreateOneOff(
15803 &self,
15804 lpszname: *mut i8,
15805 lpszadrtype: *mut i8,
15806 lpszaddress: *mut i8,
15807 ulflags: u32,
15808 lpcbentryid: *mut u32,
15809 lppentryid: *mut *mut ENTRYID,
15810 ) -> windows_core::Result<()> {
15811 unsafe {
15812 (windows_core::Interface::vtable(self).CreateOneOff)(
15813 windows_core::Interface::as_raw(self),
15814 lpszname as _,
15815 lpszadrtype as _,
15816 lpszaddress as _,
15817 ulflags,
15818 lpcbentryid as _,
15819 lppentryid as _,
15820 )
15821 .ok()
15822 }
15823 }
15824 pub unsafe fn SetProviderUID(
15825 &self,
15826 lpproviderid: *mut MAPIUID,
15827 ulflags: u32,
15828 ) -> windows_core::Result<()> {
15829 unsafe {
15830 (windows_core::Interface::vtable(self).SetProviderUID)(
15831 windows_core::Interface::as_raw(self),
15832 lpproviderid as _,
15833 ulflags,
15834 )
15835 .ok()
15836 }
15837 }
15838 pub unsafe fn CompareEntryIDs(
15839 &self,
15840 cbentry1: u32,
15841 lpentry1: *mut ENTRYID,
15842 cbentry2: u32,
15843 lpentry2: *mut ENTRYID,
15844 ulcompareflags: u32,
15845 lpulresult: *mut u32,
15846 ) -> windows_core::Result<()> {
15847 unsafe {
15848 (windows_core::Interface::vtable(self).CompareEntryIDs)(
15849 windows_core::Interface::as_raw(self),
15850 cbentry1,
15851 lpentry1 as _,
15852 cbentry2,
15853 lpentry2 as _,
15854 ulcompareflags,
15855 lpulresult as _,
15856 )
15857 .ok()
15858 }
15859 }
15860 pub unsafe fn OpenTemplateID<P3, P6>(
15861 &self,
15862 cbtemplateid: u32,
15863 lptemplateid: *mut ENTRYID,
15864 ultemplateflags: u32,
15865 lpmapipropdata: P3,
15866 lpinterface: *mut windows_core::GUID,
15867 lppmapipropnew: *mut Option<IMAPIProp>,
15868 lpmapipropsibling: P6,
15869 ) -> windows_core::Result<()>
15870 where
15871 P3: windows_core::Param<IMAPIProp>,
15872 P6: windows_core::Param<IMAPIProp>,
15873 {
15874 unsafe {
15875 (windows_core::Interface::vtable(self).OpenTemplateID)(
15876 windows_core::Interface::as_raw(self),
15877 cbtemplateid,
15878 lptemplateid as _,
15879 ultemplateflags,
15880 lpmapipropdata.param().abi(),
15881 lpinterface as _,
15882 core::mem::transmute(lppmapipropnew),
15883 lpmapipropsibling.param().abi(),
15884 )
15885 .ok()
15886 }
15887 }
15888 pub unsafe fn OpenEntry(
15889 &self,
15890 cbentryid: u32,
15891 lpentryid: *mut ENTRYID,
15892 lpinterface: *mut windows_core::GUID,
15893 ulopenflags: u32,
15894 lpulobjtype: *mut u32,
15895 lppunk: *mut Option<windows_core::IUnknown>,
15896 ) -> windows_core::Result<()> {
15897 unsafe {
15898 (windows_core::Interface::vtable(self).OpenEntry)(
15899 windows_core::Interface::as_raw(self),
15900 cbentryid,
15901 lpentryid as _,
15902 lpinterface as _,
15903 ulopenflags,
15904 lpulobjtype as _,
15905 core::mem::transmute(lppunk),
15906 )
15907 .ok()
15908 }
15909 }
15910 pub unsafe fn GetOneOffTable(&self, ulflags: u32) -> windows_core::Result<IMAPITable> {
15911 unsafe {
15912 let mut result__ = core::mem::zeroed();
15913 (windows_core::Interface::vtable(self).GetOneOffTable)(
15914 windows_core::Interface::as_raw(self),
15915 ulflags,
15916 &mut result__,
15917 )
15918 .and_then(|| windows_core::Type::from_abi(result__))
15919 }
15920 }
15921 pub unsafe fn Address(
15922 &self,
15923 lpuluiparam: *mut usize,
15924 lpadrparms: *mut ADRPARM,
15925 lppadrlist: *mut *mut ADRLIST,
15926 ) -> windows_core::Result<()> {
15927 unsafe {
15928 (windows_core::Interface::vtable(self).Address)(
15929 windows_core::Interface::as_raw(self),
15930 lpuluiparam as _,
15931 lpadrparms as _,
15932 lppadrlist as _,
15933 )
15934 .ok()
15935 }
15936 }
15937 pub unsafe fn Details(
15938 &self,
15939 lpuluiparam: *mut usize,
15940 lpfndismiss: LPFNDISMISS,
15941 lpvdismisscontext: *mut core::ffi::c_void,
15942 cbentryid: u32,
15943 lpentryid: *mut ENTRYID,
15944 lpfbuttoncallback: windows::Win32::System::AddressBook::LPFNBUTTON,
15945 lpvbuttoncontext: *mut core::ffi::c_void,
15946 lpszbuttontext: *mut i8,
15947 ulflags: u32,
15948 ) -> windows_core::Result<()> {
15949 unsafe {
15950 (windows_core::Interface::vtable(self).Details)(
15951 windows_core::Interface::as_raw(self),
15952 lpuluiparam as _,
15953 lpfndismiss,
15954 lpvdismisscontext as _,
15955 cbentryid,
15956 lpentryid as _,
15957 lpfbuttoncallback,
15958 lpvbuttoncontext as _,
15959 lpszbuttontext as _,
15960 ulflags,
15961 )
15962 .ok()
15963 }
15964 }
15965 pub unsafe fn NewEntry(
15966 &self,
15967 uluiparam: usize,
15968 ulflags: u32,
15969 cbeidcontainer: u32,
15970 lpeidcontainer: *mut ENTRYID,
15971 cbeidnewentrytpl: u32,
15972 lpeidnewentrytpl: *mut ENTRYID,
15973 lpcbeidnewentry: *mut u32,
15974 lppeidnewentry: *mut *mut ENTRYID,
15975 ) -> windows_core::Result<()> {
15976 unsafe {
15977 (windows_core::Interface::vtable(self).NewEntry)(
15978 windows_core::Interface::as_raw(self),
15979 uluiparam,
15980 ulflags,
15981 cbeidcontainer,
15982 lpeidcontainer as _,
15983 cbeidnewentrytpl,
15984 lpeidnewentrytpl as _,
15985 lpcbeidnewentry as _,
15986 lppeidnewentry as _,
15987 )
15988 .ok()
15989 }
15990 }
15991 pub unsafe fn DoConfigPropsheet<P3, P4>(
15992 &self,
15993 uluiparam: usize,
15994 ulflags: u32,
15995 lpsztitle: *mut i8,
15996 lpdisplaytable: P3,
15997 lpconfigdata: P4,
15998 ultoppage: u32,
15999 ) -> windows_core::Result<()>
16000 where
16001 P3: windows_core::Param<IMAPITable>,
16002 P4: windows_core::Param<IMAPIProp>,
16003 {
16004 unsafe {
16005 (windows_core::Interface::vtable(self).DoConfigPropsheet)(
16006 windows_core::Interface::as_raw(self),
16007 uluiparam,
16008 ulflags,
16009 lpsztitle as _,
16010 lpdisplaytable.param().abi(),
16011 lpconfigdata.param().abi(),
16012 ultoppage,
16013 )
16014 .ok()
16015 }
16016 }
16017 pub unsafe fn CopyMessages<P6>(
16018 &self,
16019 lpsrcinterface: *mut windows_core::GUID,
16020 lpsrcfolder: *mut core::ffi::c_void,
16021 lpmsglist: *mut SBinaryArray,
16022 lpdestinterface: *mut windows_core::GUID,
16023 lpdestfolder: *mut core::ffi::c_void,
16024 uluiparam: usize,
16025 lpprogress: P6,
16026 ulflags: u32,
16027 ) -> windows_core::Result<()>
16028 where
16029 P6: windows_core::Param<IMAPIProgress>,
16030 {
16031 unsafe {
16032 (windows_core::Interface::vtable(self).CopyMessages)(
16033 windows_core::Interface::as_raw(self),
16034 lpsrcinterface as _,
16035 lpsrcfolder as _,
16036 lpmsglist as _,
16037 lpdestinterface as _,
16038 lpdestfolder as _,
16039 uluiparam,
16040 lpprogress.param().abi(),
16041 ulflags,
16042 )
16043 .ok()
16044 }
16045 }
16046 pub unsafe fn CopyFolder<P8>(
16047 &self,
16048 lpsrcinterface: *mut windows_core::GUID,
16049 lpsrcfolder: *mut core::ffi::c_void,
16050 cbentryid: u32,
16051 lpentryid: *mut ENTRYID,
16052 lpdestinterface: *mut windows_core::GUID,
16053 lpdestfolder: *mut core::ffi::c_void,
16054 lsznewfoldername: *mut i8,
16055 uluiparam: usize,
16056 lpprogress: P8,
16057 ulflags: u32,
16058 ) -> windows_core::Result<()>
16059 where
16060 P8: windows_core::Param<IMAPIProgress>,
16061 {
16062 unsafe {
16063 (windows_core::Interface::vtable(self).CopyFolder)(
16064 windows_core::Interface::as_raw(self),
16065 lpsrcinterface as _,
16066 lpsrcfolder as _,
16067 cbentryid,
16068 lpentryid as _,
16069 lpdestinterface as _,
16070 lpdestfolder as _,
16071 lsznewfoldername as _,
16072 uluiparam,
16073 lpprogress.param().abi(),
16074 ulflags,
16075 )
16076 .ok()
16077 }
16078 }
16079 pub unsafe fn DoCopyTo<P6>(
16080 &self,
16081 lpsrcinterface: *mut windows_core::GUID,
16082 lpsrcobj: *mut core::ffi::c_void,
16083 ciidexclude: u32,
16084 rgiidexclude: *mut windows_core::GUID,
16085 lpexcludeprops: *mut SPropTagArray,
16086 uluiparam: usize,
16087 lpprogress: P6,
16088 lpdestinterface: *mut windows_core::GUID,
16089 lpdestobj: *mut core::ffi::c_void,
16090 ulflags: u32,
16091 lppproblems: *mut *mut SPropProblemArray,
16092 ) -> windows_core::Result<()>
16093 where
16094 P6: windows_core::Param<IMAPIProgress>,
16095 {
16096 unsafe {
16097 (windows_core::Interface::vtable(self).DoCopyTo)(
16098 windows_core::Interface::as_raw(self),
16099 lpsrcinterface as _,
16100 lpsrcobj as _,
16101 ciidexclude,
16102 rgiidexclude as _,
16103 lpexcludeprops as _,
16104 uluiparam,
16105 lpprogress.param().abi(),
16106 lpdestinterface as _,
16107 lpdestobj as _,
16108 ulflags,
16109 lppproblems as _,
16110 )
16111 .ok()
16112 }
16113 }
16114 pub unsafe fn DoCopyProps<P4>(
16115 &self,
16116 lpsrcinterface: *mut windows_core::GUID,
16117 lpsrcobj: *mut core::ffi::c_void,
16118 lpincludeprops: *mut SPropTagArray,
16119 uluiparam: usize,
16120 lpprogress: P4,
16121 lpdestinterface: *mut windows_core::GUID,
16122 lpdestobj: *mut core::ffi::c_void,
16123 ulflags: u32,
16124 lppproblems: *mut *mut SPropProblemArray,
16125 ) -> windows_core::Result<()>
16126 where
16127 P4: windows_core::Param<IMAPIProgress>,
16128 {
16129 unsafe {
16130 (windows_core::Interface::vtable(self).DoCopyProps)(
16131 windows_core::Interface::as_raw(self),
16132 lpsrcinterface as _,
16133 lpsrcobj as _,
16134 lpincludeprops as _,
16135 uluiparam,
16136 lpprogress.param().abi(),
16137 lpdestinterface as _,
16138 lpdestobj as _,
16139 ulflags,
16140 lppproblems as _,
16141 )
16142 .ok()
16143 }
16144 }
16145 pub unsafe fn DoProgressDialog(
16146 &self,
16147 uluiparam: usize,
16148 ulflags: u32,
16149 ) -> windows_core::Result<IMAPIProgress> {
16150 unsafe {
16151 let mut result__ = core::mem::zeroed();
16152 (windows_core::Interface::vtable(self).DoProgressDialog)(
16153 windows_core::Interface::as_raw(self),
16154 uluiparam,
16155 ulflags,
16156 &mut result__,
16157 )
16158 .and_then(|| windows_core::Type::from_abi(result__))
16159 }
16160 }
16161 pub unsafe fn ReadReceipt<P1>(
16162 &self,
16163 ulflags: u32,
16164 lpreadmessage: P1,
16165 ) -> windows_core::Result<IMessage>
16166 where
16167 P1: windows_core::Param<IMessage>,
16168 {
16169 unsafe {
16170 let mut result__ = core::mem::zeroed();
16171 (windows_core::Interface::vtable(self).ReadReceipt)(
16172 windows_core::Interface::as_raw(self),
16173 ulflags,
16174 lpreadmessage.param().abi(),
16175 &mut result__,
16176 )
16177 .and_then(|| windows_core::Type::from_abi(result__))
16178 }
16179 }
16180 pub unsafe fn PrepareSubmit<P0>(
16181 &self,
16182 lpmessage: P0,
16183 lpulflags: *mut u32,
16184 ) -> windows_core::Result<()>
16185 where
16186 P0: windows_core::Param<IMessage>,
16187 {
16188 unsafe {
16189 (windows_core::Interface::vtable(self).PrepareSubmit)(
16190 windows_core::Interface::as_raw(self),
16191 lpmessage.param().abi(),
16192 lpulflags as _,
16193 )
16194 .ok()
16195 }
16196 }
16197 pub unsafe fn ExpandRecips<P0>(
16198 &self,
16199 lpmessage: P0,
16200 lpulflags: *mut u32,
16201 ) -> windows_core::Result<()>
16202 where
16203 P0: windows_core::Param<IMessage>,
16204 {
16205 unsafe {
16206 (windows_core::Interface::vtable(self).ExpandRecips)(
16207 windows_core::Interface::as_raw(self),
16208 lpmessage.param().abi(),
16209 lpulflags as _,
16210 )
16211 .ok()
16212 }
16213 }
16214 pub unsafe fn UpdatePAB<P1>(&self, ulflags: u32, lpmessage: P1) -> windows_core::Result<()>
16215 where
16216 P1: windows_core::Param<IMessage>,
16217 {
16218 unsafe {
16219 (windows_core::Interface::vtable(self).UpdatePAB)(
16220 windows_core::Interface::as_raw(self),
16221 ulflags,
16222 lpmessage.param().abi(),
16223 )
16224 .ok()
16225 }
16226 }
16227 pub unsafe fn DoSentMail<P1>(&self, ulflags: u32, lpmessage: P1) -> windows_core::Result<()>
16228 where
16229 P1: windows_core::Param<IMessage>,
16230 {
16231 unsafe {
16232 (windows_core::Interface::vtable(self).DoSentMail)(
16233 windows_core::Interface::as_raw(self),
16234 ulflags,
16235 lpmessage.param().abi(),
16236 )
16237 .ok()
16238 }
16239 }
16240 pub unsafe fn OpenAddressBook(
16241 &self,
16242 lpinterface: *mut windows_core::GUID,
16243 ulflags: u32,
16244 lppadrbook: *mut Option<IAddrBook>,
16245 ) -> windows_core::Result<()> {
16246 unsafe {
16247 (windows_core::Interface::vtable(self).OpenAddressBook)(
16248 windows_core::Interface::as_raw(self),
16249 lpinterface as _,
16250 ulflags,
16251 core::mem::transmute(lppadrbook),
16252 )
16253 .ok()
16254 }
16255 }
16256 pub unsafe fn Preprocess(
16257 &self,
16258 ulflags: u32,
16259 cbentryid: u32,
16260 lpentryid: *mut ENTRYID,
16261 ) -> windows_core::Result<()> {
16262 unsafe {
16263 (windows_core::Interface::vtable(self).Preprocess)(
16264 windows_core::Interface::as_raw(self),
16265 ulflags,
16266 cbentryid,
16267 lpentryid as _,
16268 )
16269 .ok()
16270 }
16271 }
16272 pub unsafe fn CompleteMsg(
16273 &self,
16274 ulflags: u32,
16275 cbentryid: u32,
16276 lpentryid: *mut ENTRYID,
16277 ) -> windows_core::Result<()> {
16278 unsafe {
16279 (windows_core::Interface::vtable(self).CompleteMsg)(
16280 windows_core::Interface::as_raw(self),
16281 ulflags,
16282 cbentryid,
16283 lpentryid as _,
16284 )
16285 .ok()
16286 }
16287 }
16288 pub unsafe fn StoreLogoffTransports(&self, lpulflags: *mut u32) -> windows_core::Result<()> {
16289 unsafe {
16290 (windows_core::Interface::vtable(self).StoreLogoffTransports)(
16291 windows_core::Interface::as_raw(self),
16292 lpulflags as _,
16293 )
16294 .ok()
16295 }
16296 }
16297 pub unsafe fn StatusRecips<P0>(
16298 &self,
16299 lpmessage: P0,
16300 lpreciplist: *mut ADRLIST,
16301 ) -> windows_core::Result<()>
16302 where
16303 P0: windows_core::Param<IMessage>,
16304 {
16305 unsafe {
16306 (windows_core::Interface::vtable(self).StatusRecips)(
16307 windows_core::Interface::as_raw(self),
16308 lpmessage.param().abi(),
16309 lpreciplist as _,
16310 )
16311 .ok()
16312 }
16313 }
16314 pub unsafe fn WrapStoreEntryID(
16315 &self,
16316 cborigentry: u32,
16317 lporigentry: *mut ENTRYID,
16318 lpcbwrappedentry: *mut u32,
16319 lppwrappedentry: *mut *mut ENTRYID,
16320 ) -> windows_core::Result<()> {
16321 unsafe {
16322 (windows_core::Interface::vtable(self).WrapStoreEntryID)(
16323 windows_core::Interface::as_raw(self),
16324 cborigentry,
16325 lporigentry as _,
16326 lpcbwrappedentry as _,
16327 lppwrappedentry as _,
16328 )
16329 .ok()
16330 }
16331 }
16332 pub unsafe fn ModifyProfile(&self, ulflags: u32) -> windows_core::Result<()> {
16333 unsafe {
16334 (windows_core::Interface::vtable(self).ModifyProfile)(
16335 windows_core::Interface::as_raw(self),
16336 ulflags,
16337 )
16338 .ok()
16339 }
16340 }
16341 pub unsafe fn IStorageFromStream<P0>(
16342 &self,
16343 lpunkin: P0,
16344 lpinterface: *mut windows_core::GUID,
16345 ulflags: u32,
16346 lppstorageout: *mut Option<windows::Win32::System::Com::StructuredStorage::IStorage>,
16347 ) -> windows_core::Result<()>
16348 where
16349 P0: windows_core::Param<windows_core::IUnknown>,
16350 {
16351 unsafe {
16352 (windows_core::Interface::vtable(self).IStorageFromStream)(
16353 windows_core::Interface::as_raw(self),
16354 lpunkin.param().abi(),
16355 lpinterface as _,
16356 ulflags,
16357 core::mem::transmute(lppstorageout),
16358 )
16359 .ok()
16360 }
16361 }
16362 pub unsafe fn GetSvcConfigSupportObj(
16363 &self,
16364 ulflags: u32,
16365 ) -> windows_core::Result<IMAPISupport> {
16366 unsafe {
16367 let mut result__ = core::mem::zeroed();
16368 (windows_core::Interface::vtable(self).GetSvcConfigSupportObj)(
16369 windows_core::Interface::as_raw(self),
16370 ulflags,
16371 &mut result__,
16372 )
16373 .and_then(|| windows_core::Type::from_abi(result__))
16374 }
16375 }
16376}
16377#[repr(C)]
16378#[doc(hidden)]
16379pub struct IMAPISupport_Vtbl {
16380 pub base__: windows_core::IUnknown_Vtbl,
16381 pub GetLastError: unsafe extern "system" fn(
16382 *mut core::ffi::c_void,
16383 windows_core::HRESULT,
16384 u32,
16385 *mut *mut MAPIERROR,
16386 ) -> windows_core::HRESULT,
16387 pub GetMemAllocRoutines: unsafe extern "system" fn(
16388 *mut core::ffi::c_void,
16389 *mut LPALLOCATEBUFFER,
16390 *mut LPALLOCATEMORE,
16391 *mut LPFREEBUFFER,
16392 ) -> windows_core::HRESULT,
16393 pub Subscribe: unsafe extern "system" fn(
16394 *mut core::ffi::c_void,
16395 *mut NOTIFKEY,
16396 u32,
16397 u32,
16398 *mut core::ffi::c_void,
16399 *mut usize,
16400 ) -> windows_core::HRESULT,
16401 pub Unsubscribe:
16402 unsafe extern "system" fn(*mut core::ffi::c_void, usize) -> windows_core::HRESULT,
16403 pub Notify: unsafe extern "system" fn(
16404 *mut core::ffi::c_void,
16405 *mut NOTIFKEY,
16406 u32,
16407 *mut NOTIFICATION,
16408 *mut u32,
16409 ) -> windows_core::HRESULT,
16410 pub ModifyStatusRow: unsafe extern "system" fn(
16411 *mut core::ffi::c_void,
16412 u32,
16413 *mut SPropValue,
16414 u32,
16415 ) -> windows_core::HRESULT,
16416 pub OpenProfileSection: unsafe extern "system" fn(
16417 *mut core::ffi::c_void,
16418 *mut MAPIUID,
16419 u32,
16420 *mut *mut core::ffi::c_void,
16421 ) -> windows_core::HRESULT,
16422 pub RegisterPreprocessor: unsafe extern "system" fn(
16423 *mut core::ffi::c_void,
16424 *mut MAPIUID,
16425 *mut i8,
16426 *mut i8,
16427 windows_core::PCSTR,
16428 windows_core::PCSTR,
16429 u32,
16430 ) -> windows_core::HRESULT,
16431 pub NewUID:
16432 unsafe extern "system" fn(*mut core::ffi::c_void, *mut MAPIUID) -> windows_core::HRESULT,
16433 pub MakeInvalid: unsafe extern "system" fn(
16434 *mut core::ffi::c_void,
16435 u32,
16436 *mut core::ffi::c_void,
16437 u32,
16438 u32,
16439 ) -> windows_core::HRESULT,
16440 pub SpoolerYield:
16441 unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
16442 pub SpoolerNotify: unsafe extern "system" fn(
16443 *mut core::ffi::c_void,
16444 u32,
16445 *mut core::ffi::c_void,
16446 ) -> windows_core::HRESULT,
16447 pub CreateOneOff: unsafe extern "system" fn(
16448 *mut core::ffi::c_void,
16449 *mut i8,
16450 *mut i8,
16451 *mut i8,
16452 u32,
16453 *mut u32,
16454 *mut *mut ENTRYID,
16455 ) -> windows_core::HRESULT,
16456 pub SetProviderUID: unsafe extern "system" fn(
16457 *mut core::ffi::c_void,
16458 *mut MAPIUID,
16459 u32,
16460 ) -> windows_core::HRESULT,
16461 pub CompareEntryIDs: unsafe extern "system" fn(
16462 *mut core::ffi::c_void,
16463 u32,
16464 *mut ENTRYID,
16465 u32,
16466 *mut ENTRYID,
16467 u32,
16468 *mut u32,
16469 ) -> windows_core::HRESULT,
16470 pub OpenTemplateID: unsafe extern "system" fn(
16471 *mut core::ffi::c_void,
16472 u32,
16473 *mut ENTRYID,
16474 u32,
16475 *mut core::ffi::c_void,
16476 *mut windows_core::GUID,
16477 *mut *mut core::ffi::c_void,
16478 *mut core::ffi::c_void,
16479 ) -> windows_core::HRESULT,
16480 pub OpenEntry: unsafe extern "system" fn(
16481 *mut core::ffi::c_void,
16482 u32,
16483 *mut ENTRYID,
16484 *mut windows_core::GUID,
16485 u32,
16486 *mut u32,
16487 *mut *mut core::ffi::c_void,
16488 ) -> windows_core::HRESULT,
16489 pub GetOneOffTable: unsafe extern "system" fn(
16490 *mut core::ffi::c_void,
16491 u32,
16492 *mut *mut core::ffi::c_void,
16493 ) -> windows_core::HRESULT,
16494 pub Address: unsafe extern "system" fn(
16495 *mut core::ffi::c_void,
16496 *mut usize,
16497 *mut ADRPARM,
16498 *mut *mut ADRLIST,
16499 ) -> windows_core::HRESULT,
16500 pub Details: unsafe extern "system" fn(
16501 *mut core::ffi::c_void,
16502 *mut usize,
16503 LPFNDISMISS,
16504 *mut core::ffi::c_void,
16505 u32,
16506 *mut ENTRYID,
16507 windows::Win32::System::AddressBook::LPFNBUTTON,
16508 *mut core::ffi::c_void,
16509 *mut i8,
16510 u32,
16511 ) -> windows_core::HRESULT,
16512 pub NewEntry: unsafe extern "system" fn(
16513 *mut core::ffi::c_void,
16514 usize,
16515 u32,
16516 u32,
16517 *mut ENTRYID,
16518 u32,
16519 *mut ENTRYID,
16520 *mut u32,
16521 *mut *mut ENTRYID,
16522 ) -> windows_core::HRESULT,
16523 pub DoConfigPropsheet: unsafe extern "system" fn(
16524 *mut core::ffi::c_void,
16525 usize,
16526 u32,
16527 *mut i8,
16528 *mut core::ffi::c_void,
16529 *mut core::ffi::c_void,
16530 u32,
16531 ) -> windows_core::HRESULT,
16532 pub CopyMessages: unsafe extern "system" fn(
16533 *mut core::ffi::c_void,
16534 *mut windows_core::GUID,
16535 *mut core::ffi::c_void,
16536 *mut SBinaryArray,
16537 *mut windows_core::GUID,
16538 *mut core::ffi::c_void,
16539 usize,
16540 *mut core::ffi::c_void,
16541 u32,
16542 ) -> windows_core::HRESULT,
16543 pub CopyFolder: unsafe extern "system" fn(
16544 *mut core::ffi::c_void,
16545 *mut windows_core::GUID,
16546 *mut core::ffi::c_void,
16547 u32,
16548 *mut ENTRYID,
16549 *mut windows_core::GUID,
16550 *mut core::ffi::c_void,
16551 *mut i8,
16552 usize,
16553 *mut core::ffi::c_void,
16554 u32,
16555 ) -> windows_core::HRESULT,
16556 pub DoCopyTo: unsafe extern "system" fn(
16557 *mut core::ffi::c_void,
16558 *mut windows_core::GUID,
16559 *mut core::ffi::c_void,
16560 u32,
16561 *mut windows_core::GUID,
16562 *mut SPropTagArray,
16563 usize,
16564 *mut core::ffi::c_void,
16565 *mut windows_core::GUID,
16566 *mut core::ffi::c_void,
16567 u32,
16568 *mut *mut SPropProblemArray,
16569 ) -> windows_core::HRESULT,
16570 pub DoCopyProps: unsafe extern "system" fn(
16571 *mut core::ffi::c_void,
16572 *mut windows_core::GUID,
16573 *mut core::ffi::c_void,
16574 *mut SPropTagArray,
16575 usize,
16576 *mut core::ffi::c_void,
16577 *mut windows_core::GUID,
16578 *mut core::ffi::c_void,
16579 u32,
16580 *mut *mut SPropProblemArray,
16581 ) -> windows_core::HRESULT,
16582 pub DoProgressDialog: unsafe extern "system" fn(
16583 *mut core::ffi::c_void,
16584 usize,
16585 u32,
16586 *mut *mut core::ffi::c_void,
16587 ) -> windows_core::HRESULT,
16588 pub ReadReceipt: unsafe extern "system" fn(
16589 *mut core::ffi::c_void,
16590 u32,
16591 *mut core::ffi::c_void,
16592 *mut *mut core::ffi::c_void,
16593 ) -> windows_core::HRESULT,
16594 pub PrepareSubmit: unsafe extern "system" fn(
16595 *mut core::ffi::c_void,
16596 *mut core::ffi::c_void,
16597 *mut u32,
16598 ) -> windows_core::HRESULT,
16599 pub ExpandRecips: unsafe extern "system" fn(
16600 *mut core::ffi::c_void,
16601 *mut core::ffi::c_void,
16602 *mut u32,
16603 ) -> windows_core::HRESULT,
16604 pub UpdatePAB: unsafe extern "system" fn(
16605 *mut core::ffi::c_void,
16606 u32,
16607 *mut core::ffi::c_void,
16608 ) -> windows_core::HRESULT,
16609 pub DoSentMail: unsafe extern "system" fn(
16610 *mut core::ffi::c_void,
16611 u32,
16612 *mut core::ffi::c_void,
16613 ) -> windows_core::HRESULT,
16614 pub OpenAddressBook: unsafe extern "system" fn(
16615 *mut core::ffi::c_void,
16616 *mut windows_core::GUID,
16617 u32,
16618 *mut *mut core::ffi::c_void,
16619 ) -> windows_core::HRESULT,
16620 pub Preprocess: unsafe extern "system" fn(
16621 *mut core::ffi::c_void,
16622 u32,
16623 u32,
16624 *mut ENTRYID,
16625 ) -> windows_core::HRESULT,
16626 pub CompleteMsg: unsafe extern "system" fn(
16627 *mut core::ffi::c_void,
16628 u32,
16629 u32,
16630 *mut ENTRYID,
16631 ) -> windows_core::HRESULT,
16632 pub StoreLogoffTransports:
16633 unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
16634 pub StatusRecips: unsafe extern "system" fn(
16635 *mut core::ffi::c_void,
16636 *mut core::ffi::c_void,
16637 *mut ADRLIST,
16638 ) -> windows_core::HRESULT,
16639 pub WrapStoreEntryID: unsafe extern "system" fn(
16640 *mut core::ffi::c_void,
16641 u32,
16642 *mut ENTRYID,
16643 *mut u32,
16644 *mut *mut ENTRYID,
16645 ) -> windows_core::HRESULT,
16646 pub ModifyProfile:
16647 unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
16648 pub IStorageFromStream: unsafe extern "system" fn(
16649 *mut core::ffi::c_void,
16650 *mut core::ffi::c_void,
16651 *mut windows_core::GUID,
16652 u32,
16653 *mut *mut core::ffi::c_void,
16654 ) -> windows_core::HRESULT,
16655 pub GetSvcConfigSupportObj: unsafe extern "system" fn(
16656 *mut core::ffi::c_void,
16657 u32,
16658 *mut *mut core::ffi::c_void,
16659 ) -> windows_core::HRESULT,
16660}
16661pub trait IMAPISupport_Impl: windows_core::IUnknownImpl {
16662 fn GetLastError(
16663 &self,
16664 hresult: windows_core::HRESULT,
16665 ulflags: u32,
16666 lppmapierror: *mut *mut MAPIERROR,
16667 ) -> windows_core::Result<()>;
16668 fn GetMemAllocRoutines(
16669 &self,
16670 lpallocatebuffer: *mut LPALLOCATEBUFFER,
16671 lpallocatemore: *mut LPALLOCATEMORE,
16672 lpfreebuffer: *mut LPFREEBUFFER,
16673 ) -> windows_core::Result<()>;
16674 fn Subscribe(
16675 &self,
16676 lpkey: *mut NOTIFKEY,
16677 uleventmask: u32,
16678 ulflags: u32,
16679 lpadvisesink: windows_core::Ref<IMAPIAdviseSink>,
16680 lpulconnection: *mut usize,
16681 ) -> windows_core::Result<()>;
16682 fn Unsubscribe(&self, ulconnection: usize) -> windows_core::Result<()>;
16683 fn Notify(
16684 &self,
16685 lpkey: *mut NOTIFKEY,
16686 cnotification: u32,
16687 lpnotifications: *mut NOTIFICATION,
16688 lpulflags: *mut u32,
16689 ) -> windows_core::Result<()>;
16690 fn ModifyStatusRow(
16691 &self,
16692 cvalues: u32,
16693 lpcolumnvals: *mut SPropValue,
16694 ulflags: u32,
16695 ) -> windows_core::Result<()>;
16696 fn OpenProfileSection(
16697 &self,
16698 lpuid: *mut MAPIUID,
16699 ulflags: u32,
16700 lppprofileobj: windows_core::OutRef<IProfSect>,
16701 ) -> windows_core::Result<()>;
16702 fn RegisterPreprocessor(
16703 &self,
16704 lpmuid: *mut MAPIUID,
16705 lpszadrtype: *mut i8,
16706 lpszdllname: *mut i8,
16707 lpszpreprocess: &windows_core::PCSTR,
16708 lpszremovepreprocessinfo: &windows_core::PCSTR,
16709 ulflags: u32,
16710 ) -> windows_core::Result<()>;
16711 fn NewUID(&self, lpmuid: *mut MAPIUID) -> windows_core::Result<()>;
16712 fn MakeInvalid(
16713 &self,
16714 ulflags: u32,
16715 lpobject: *mut core::ffi::c_void,
16716 ulrefcount: u32,
16717 cmethods: u32,
16718 ) -> windows_core::Result<()>;
16719 fn SpoolerYield(&self, ulflags: u32) -> windows_core::Result<()>;
16720 fn SpoolerNotify(
16721 &self,
16722 ulflags: u32,
16723 lpvdata: *mut core::ffi::c_void,
16724 ) -> windows_core::Result<()>;
16725 fn CreateOneOff(
16726 &self,
16727 lpszname: *mut i8,
16728 lpszadrtype: *mut i8,
16729 lpszaddress: *mut i8,
16730 ulflags: u32,
16731 lpcbentryid: *mut u32,
16732 lppentryid: *mut *mut ENTRYID,
16733 ) -> windows_core::Result<()>;
16734 fn SetProviderUID(&self, lpproviderid: *mut MAPIUID, ulflags: u32) -> windows_core::Result<()>;
16735 fn CompareEntryIDs(
16736 &self,
16737 cbentry1: u32,
16738 lpentry1: *mut ENTRYID,
16739 cbentry2: u32,
16740 lpentry2: *mut ENTRYID,
16741 ulcompareflags: u32,
16742 lpulresult: *mut u32,
16743 ) -> windows_core::Result<()>;
16744 fn OpenTemplateID(
16745 &self,
16746 cbtemplateid: u32,
16747 lptemplateid: *mut ENTRYID,
16748 ultemplateflags: u32,
16749 lpmapipropdata: windows_core::Ref<IMAPIProp>,
16750 lpinterface: *mut windows_core::GUID,
16751 lppmapipropnew: windows_core::OutRef<IMAPIProp>,
16752 lpmapipropsibling: windows_core::Ref<IMAPIProp>,
16753 ) -> windows_core::Result<()>;
16754 fn OpenEntry(
16755 &self,
16756 cbentryid: u32,
16757 lpentryid: *mut ENTRYID,
16758 lpinterface: *mut windows_core::GUID,
16759 ulopenflags: u32,
16760 lpulobjtype: *mut u32,
16761 lppunk: windows_core::OutRef<windows_core::IUnknown>,
16762 ) -> windows_core::Result<()>;
16763 fn GetOneOffTable(&self, ulflags: u32) -> windows_core::Result<IMAPITable>;
16764 fn Address(
16765 &self,
16766 lpuluiparam: *mut usize,
16767 lpadrparms: *mut ADRPARM,
16768 lppadrlist: *mut *mut ADRLIST,
16769 ) -> windows_core::Result<()>;
16770 fn Details(
16771 &self,
16772 lpuluiparam: *mut usize,
16773 lpfndismiss: LPFNDISMISS,
16774 lpvdismisscontext: *mut core::ffi::c_void,
16775 cbentryid: u32,
16776 lpentryid: *mut ENTRYID,
16777 lpfbuttoncallback: windows::Win32::System::AddressBook::LPFNBUTTON,
16778 lpvbuttoncontext: *mut core::ffi::c_void,
16779 lpszbuttontext: *mut i8,
16780 ulflags: u32,
16781 ) -> windows_core::Result<()>;
16782 fn NewEntry(
16783 &self,
16784 uluiparam: usize,
16785 ulflags: u32,
16786 cbeidcontainer: u32,
16787 lpeidcontainer: *mut ENTRYID,
16788 cbeidnewentrytpl: u32,
16789 lpeidnewentrytpl: *mut ENTRYID,
16790 lpcbeidnewentry: *mut u32,
16791 lppeidnewentry: *mut *mut ENTRYID,
16792 ) -> windows_core::Result<()>;
16793 fn DoConfigPropsheet(
16794 &self,
16795 uluiparam: usize,
16796 ulflags: u32,
16797 lpsztitle: *mut i8,
16798 lpdisplaytable: windows_core::Ref<IMAPITable>,
16799 lpconfigdata: windows_core::Ref<IMAPIProp>,
16800 ultoppage: u32,
16801 ) -> windows_core::Result<()>;
16802 fn CopyMessages(
16803 &self,
16804 lpsrcinterface: *mut windows_core::GUID,
16805 lpsrcfolder: *mut core::ffi::c_void,
16806 lpmsglist: *mut SBinaryArray,
16807 lpdestinterface: *mut windows_core::GUID,
16808 lpdestfolder: *mut core::ffi::c_void,
16809 uluiparam: usize,
16810 lpprogress: windows_core::Ref<IMAPIProgress>,
16811 ulflags: u32,
16812 ) -> windows_core::Result<()>;
16813 fn CopyFolder(
16814 &self,
16815 lpsrcinterface: *mut windows_core::GUID,
16816 lpsrcfolder: *mut core::ffi::c_void,
16817 cbentryid: u32,
16818 lpentryid: *mut ENTRYID,
16819 lpdestinterface: *mut windows_core::GUID,
16820 lpdestfolder: *mut core::ffi::c_void,
16821 lsznewfoldername: *mut i8,
16822 uluiparam: usize,
16823 lpprogress: windows_core::Ref<IMAPIProgress>,
16824 ulflags: u32,
16825 ) -> windows_core::Result<()>;
16826 fn DoCopyTo(
16827 &self,
16828 lpsrcinterface: *mut windows_core::GUID,
16829 lpsrcobj: *mut core::ffi::c_void,
16830 ciidexclude: u32,
16831 rgiidexclude: *mut windows_core::GUID,
16832 lpexcludeprops: *mut SPropTagArray,
16833 uluiparam: usize,
16834 lpprogress: windows_core::Ref<IMAPIProgress>,
16835 lpdestinterface: *mut windows_core::GUID,
16836 lpdestobj: *mut core::ffi::c_void,
16837 ulflags: u32,
16838 lppproblems: *mut *mut SPropProblemArray,
16839 ) -> windows_core::Result<()>;
16840 fn DoCopyProps(
16841 &self,
16842 lpsrcinterface: *mut windows_core::GUID,
16843 lpsrcobj: *mut core::ffi::c_void,
16844 lpincludeprops: *mut SPropTagArray,
16845 uluiparam: usize,
16846 lpprogress: windows_core::Ref<IMAPIProgress>,
16847 lpdestinterface: *mut windows_core::GUID,
16848 lpdestobj: *mut core::ffi::c_void,
16849 ulflags: u32,
16850 lppproblems: *mut *mut SPropProblemArray,
16851 ) -> windows_core::Result<()>;
16852 fn DoProgressDialog(
16853 &self,
16854 uluiparam: usize,
16855 ulflags: u32,
16856 ) -> windows_core::Result<IMAPIProgress>;
16857 fn ReadReceipt(
16858 &self,
16859 ulflags: u32,
16860 lpreadmessage: windows_core::Ref<IMessage>,
16861 ) -> windows_core::Result<IMessage>;
16862 fn PrepareSubmit(
16863 &self,
16864 lpmessage: windows_core::Ref<IMessage>,
16865 lpulflags: *mut u32,
16866 ) -> windows_core::Result<()>;
16867 fn ExpandRecips(
16868 &self,
16869 lpmessage: windows_core::Ref<IMessage>,
16870 lpulflags: *mut u32,
16871 ) -> windows_core::Result<()>;
16872 fn UpdatePAB(
16873 &self,
16874 ulflags: u32,
16875 lpmessage: windows_core::Ref<IMessage>,
16876 ) -> windows_core::Result<()>;
16877 fn DoSentMail(
16878 &self,
16879 ulflags: u32,
16880 lpmessage: windows_core::Ref<IMessage>,
16881 ) -> windows_core::Result<()>;
16882 fn OpenAddressBook(
16883 &self,
16884 lpinterface: *mut windows_core::GUID,
16885 ulflags: u32,
16886 lppadrbook: windows_core::OutRef<IAddrBook>,
16887 ) -> windows_core::Result<()>;
16888 fn Preprocess(
16889 &self,
16890 ulflags: u32,
16891 cbentryid: u32,
16892 lpentryid: *mut ENTRYID,
16893 ) -> windows_core::Result<()>;
16894 fn CompleteMsg(
16895 &self,
16896 ulflags: u32,
16897 cbentryid: u32,
16898 lpentryid: *mut ENTRYID,
16899 ) -> windows_core::Result<()>;
16900 fn StoreLogoffTransports(&self, lpulflags: *mut u32) -> windows_core::Result<()>;
16901 fn StatusRecips(
16902 &self,
16903 lpmessage: windows_core::Ref<IMessage>,
16904 lpreciplist: *mut ADRLIST,
16905 ) -> windows_core::Result<()>;
16906 fn WrapStoreEntryID(
16907 &self,
16908 cborigentry: u32,
16909 lporigentry: *mut ENTRYID,
16910 lpcbwrappedentry: *mut u32,
16911 lppwrappedentry: *mut *mut ENTRYID,
16912 ) -> windows_core::Result<()>;
16913 fn ModifyProfile(&self, ulflags: u32) -> windows_core::Result<()>;
16914 fn IStorageFromStream(
16915 &self,
16916 lpunkin: windows_core::Ref<windows_core::IUnknown>,
16917 lpinterface: *mut windows_core::GUID,
16918 ulflags: u32,
16919 lppstorageout: windows_core::OutRef<
16920 windows::Win32::System::Com::StructuredStorage::IStorage,
16921 >,
16922 ) -> windows_core::Result<()>;
16923 fn GetSvcConfigSupportObj(&self, ulflags: u32) -> windows_core::Result<IMAPISupport>;
16924}
16925impl IMAPISupport_Vtbl {
16926 pub const fn new<Identity: IMAPISupport_Impl, const OFFSET: isize>() -> Self {
16927 unsafe extern "system" fn GetLastError<Identity: IMAPISupport_Impl, const OFFSET: isize>(
16928 this: *mut core::ffi::c_void,
16929 hresult: windows_core::HRESULT,
16930 ulflags: u32,
16931 lppmapierror: *mut *mut MAPIERROR,
16932 ) -> windows_core::HRESULT {
16933 unsafe {
16934 let this: &Identity =
16935 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
16936 IMAPISupport_Impl::GetLastError(
16937 this,
16938 core::mem::transmute_copy(&hresult),
16939 core::mem::transmute_copy(&ulflags),
16940 core::mem::transmute_copy(&lppmapierror),
16941 )
16942 .into()
16943 }
16944 }
16945 unsafe extern "system" fn GetMemAllocRoutines<
16946 Identity: IMAPISupport_Impl,
16947 const OFFSET: isize,
16948 >(
16949 this: *mut core::ffi::c_void,
16950 lpallocatebuffer: *mut LPALLOCATEBUFFER,
16951 lpallocatemore: *mut LPALLOCATEMORE,
16952 lpfreebuffer: *mut LPFREEBUFFER,
16953 ) -> windows_core::HRESULT {
16954 unsafe {
16955 let this: &Identity =
16956 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
16957 IMAPISupport_Impl::GetMemAllocRoutines(
16958 this,
16959 core::mem::transmute_copy(&lpallocatebuffer),
16960 core::mem::transmute_copy(&lpallocatemore),
16961 core::mem::transmute_copy(&lpfreebuffer),
16962 )
16963 .into()
16964 }
16965 }
16966 unsafe extern "system" fn Subscribe<Identity: IMAPISupport_Impl, const OFFSET: isize>(
16967 this: *mut core::ffi::c_void,
16968 lpkey: *mut NOTIFKEY,
16969 uleventmask: u32,
16970 ulflags: u32,
16971 lpadvisesink: *mut core::ffi::c_void,
16972 lpulconnection: *mut usize,
16973 ) -> windows_core::HRESULT {
16974 unsafe {
16975 let this: &Identity =
16976 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
16977 IMAPISupport_Impl::Subscribe(
16978 this,
16979 core::mem::transmute_copy(&lpkey),
16980 core::mem::transmute_copy(&uleventmask),
16981 core::mem::transmute_copy(&ulflags),
16982 core::mem::transmute_copy(&lpadvisesink),
16983 core::mem::transmute_copy(&lpulconnection),
16984 )
16985 .into()
16986 }
16987 }
16988 unsafe extern "system" fn Unsubscribe<Identity: IMAPISupport_Impl, const OFFSET: isize>(
16989 this: *mut core::ffi::c_void,
16990 ulconnection: usize,
16991 ) -> windows_core::HRESULT {
16992 unsafe {
16993 let this: &Identity =
16994 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
16995 IMAPISupport_Impl::Unsubscribe(this, core::mem::transmute_copy(&ulconnection))
16996 .into()
16997 }
16998 }
16999 unsafe extern "system" fn Notify<Identity: IMAPISupport_Impl, const OFFSET: isize>(
17000 this: *mut core::ffi::c_void,
17001 lpkey: *mut NOTIFKEY,
17002 cnotification: u32,
17003 lpnotifications: *mut NOTIFICATION,
17004 lpulflags: *mut u32,
17005 ) -> windows_core::HRESULT {
17006 unsafe {
17007 let this: &Identity =
17008 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
17009 IMAPISupport_Impl::Notify(
17010 this,
17011 core::mem::transmute_copy(&lpkey),
17012 core::mem::transmute_copy(&cnotification),
17013 core::mem::transmute_copy(&lpnotifications),
17014 core::mem::transmute_copy(&lpulflags),
17015 )
17016 .into()
17017 }
17018 }
17019 unsafe extern "system" fn ModifyStatusRow<
17020 Identity: IMAPISupport_Impl,
17021 const OFFSET: isize,
17022 >(
17023 this: *mut core::ffi::c_void,
17024 cvalues: u32,
17025 lpcolumnvals: *mut SPropValue,
17026 ulflags: u32,
17027 ) -> windows_core::HRESULT {
17028 unsafe {
17029 let this: &Identity =
17030 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
17031 IMAPISupport_Impl::ModifyStatusRow(
17032 this,
17033 core::mem::transmute_copy(&cvalues),
17034 core::mem::transmute_copy(&lpcolumnvals),
17035 core::mem::transmute_copy(&ulflags),
17036 )
17037 .into()
17038 }
17039 }
17040 unsafe extern "system" fn OpenProfileSection<
17041 Identity: IMAPISupport_Impl,
17042 const OFFSET: isize,
17043 >(
17044 this: *mut core::ffi::c_void,
17045 lpuid: *mut MAPIUID,
17046 ulflags: u32,
17047 lppprofileobj: *mut *mut core::ffi::c_void,
17048 ) -> windows_core::HRESULT {
17049 unsafe {
17050 let this: &Identity =
17051 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
17052 IMAPISupport_Impl::OpenProfileSection(
17053 this,
17054 core::mem::transmute_copy(&lpuid),
17055 core::mem::transmute_copy(&ulflags),
17056 core::mem::transmute_copy(&lppprofileobj),
17057 )
17058 .into()
17059 }
17060 }
17061 unsafe extern "system" fn RegisterPreprocessor<
17062 Identity: IMAPISupport_Impl,
17063 const OFFSET: isize,
17064 >(
17065 this: *mut core::ffi::c_void,
17066 lpmuid: *mut MAPIUID,
17067 lpszadrtype: *mut i8,
17068 lpszdllname: *mut i8,
17069 lpszpreprocess: windows_core::PCSTR,
17070 lpszremovepreprocessinfo: windows_core::PCSTR,
17071 ulflags: u32,
17072 ) -> windows_core::HRESULT {
17073 unsafe {
17074 let this: &Identity =
17075 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
17076 IMAPISupport_Impl::RegisterPreprocessor(
17077 this,
17078 core::mem::transmute_copy(&lpmuid),
17079 core::mem::transmute_copy(&lpszadrtype),
17080 core::mem::transmute_copy(&lpszdllname),
17081 core::mem::transmute(&lpszpreprocess),
17082 core::mem::transmute(&lpszremovepreprocessinfo),
17083 core::mem::transmute_copy(&ulflags),
17084 )
17085 .into()
17086 }
17087 }
17088 unsafe extern "system" fn NewUID<Identity: IMAPISupport_Impl, const OFFSET: isize>(
17089 this: *mut core::ffi::c_void,
17090 lpmuid: *mut MAPIUID,
17091 ) -> windows_core::HRESULT {
17092 unsafe {
17093 let this: &Identity =
17094 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
17095 IMAPISupport_Impl::NewUID(this, core::mem::transmute_copy(&lpmuid)).into()
17096 }
17097 }
17098 unsafe extern "system" fn MakeInvalid<Identity: IMAPISupport_Impl, const OFFSET: isize>(
17099 this: *mut core::ffi::c_void,
17100 ulflags: u32,
17101 lpobject: *mut core::ffi::c_void,
17102 ulrefcount: u32,
17103 cmethods: u32,
17104 ) -> windows_core::HRESULT {
17105 unsafe {
17106 let this: &Identity =
17107 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
17108 IMAPISupport_Impl::MakeInvalid(
17109 this,
17110 core::mem::transmute_copy(&ulflags),
17111 core::mem::transmute_copy(&lpobject),
17112 core::mem::transmute_copy(&ulrefcount),
17113 core::mem::transmute_copy(&cmethods),
17114 )
17115 .into()
17116 }
17117 }
17118 unsafe extern "system" fn SpoolerYield<Identity: IMAPISupport_Impl, const OFFSET: isize>(
17119 this: *mut core::ffi::c_void,
17120 ulflags: u32,
17121 ) -> windows_core::HRESULT {
17122 unsafe {
17123 let this: &Identity =
17124 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
17125 IMAPISupport_Impl::SpoolerYield(this, core::mem::transmute_copy(&ulflags)).into()
17126 }
17127 }
17128 unsafe extern "system" fn SpoolerNotify<
17129 Identity: IMAPISupport_Impl,
17130 const OFFSET: isize,
17131 >(
17132 this: *mut core::ffi::c_void,
17133 ulflags: u32,
17134 lpvdata: *mut core::ffi::c_void,
17135 ) -> windows_core::HRESULT {
17136 unsafe {
17137 let this: &Identity =
17138 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
17139 IMAPISupport_Impl::SpoolerNotify(
17140 this,
17141 core::mem::transmute_copy(&ulflags),
17142 core::mem::transmute_copy(&lpvdata),
17143 )
17144 .into()
17145 }
17146 }
17147 unsafe extern "system" fn CreateOneOff<Identity: IMAPISupport_Impl, const OFFSET: isize>(
17148 this: *mut core::ffi::c_void,
17149 lpszname: *mut i8,
17150 lpszadrtype: *mut i8,
17151 lpszaddress: *mut i8,
17152 ulflags: u32,
17153 lpcbentryid: *mut u32,
17154 lppentryid: *mut *mut ENTRYID,
17155 ) -> windows_core::HRESULT {
17156 unsafe {
17157 let this: &Identity =
17158 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
17159 IMAPISupport_Impl::CreateOneOff(
17160 this,
17161 core::mem::transmute_copy(&lpszname),
17162 core::mem::transmute_copy(&lpszadrtype),
17163 core::mem::transmute_copy(&lpszaddress),
17164 core::mem::transmute_copy(&ulflags),
17165 core::mem::transmute_copy(&lpcbentryid),
17166 core::mem::transmute_copy(&lppentryid),
17167 )
17168 .into()
17169 }
17170 }
17171 unsafe extern "system" fn SetProviderUID<
17172 Identity: IMAPISupport_Impl,
17173 const OFFSET: isize,
17174 >(
17175 this: *mut core::ffi::c_void,
17176 lpproviderid: *mut MAPIUID,
17177 ulflags: u32,
17178 ) -> windows_core::HRESULT {
17179 unsafe {
17180 let this: &Identity =
17181 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
17182 IMAPISupport_Impl::SetProviderUID(
17183 this,
17184 core::mem::transmute_copy(&lpproviderid),
17185 core::mem::transmute_copy(&ulflags),
17186 )
17187 .into()
17188 }
17189 }
17190 unsafe extern "system" fn CompareEntryIDs<
17191 Identity: IMAPISupport_Impl,
17192 const OFFSET: isize,
17193 >(
17194 this: *mut core::ffi::c_void,
17195 cbentry1: u32,
17196 lpentry1: *mut ENTRYID,
17197 cbentry2: u32,
17198 lpentry2: *mut ENTRYID,
17199 ulcompareflags: u32,
17200 lpulresult: *mut u32,
17201 ) -> windows_core::HRESULT {
17202 unsafe {
17203 let this: &Identity =
17204 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
17205 IMAPISupport_Impl::CompareEntryIDs(
17206 this,
17207 core::mem::transmute_copy(&cbentry1),
17208 core::mem::transmute_copy(&lpentry1),
17209 core::mem::transmute_copy(&cbentry2),
17210 core::mem::transmute_copy(&lpentry2),
17211 core::mem::transmute_copy(&ulcompareflags),
17212 core::mem::transmute_copy(&lpulresult),
17213 )
17214 .into()
17215 }
17216 }
17217 unsafe extern "system" fn OpenTemplateID<
17218 Identity: IMAPISupport_Impl,
17219 const OFFSET: isize,
17220 >(
17221 this: *mut core::ffi::c_void,
17222 cbtemplateid: u32,
17223 lptemplateid: *mut ENTRYID,
17224 ultemplateflags: u32,
17225 lpmapipropdata: *mut core::ffi::c_void,
17226 lpinterface: *mut windows_core::GUID,
17227 lppmapipropnew: *mut *mut core::ffi::c_void,
17228 lpmapipropsibling: *mut core::ffi::c_void,
17229 ) -> windows_core::HRESULT {
17230 unsafe {
17231 let this: &Identity =
17232 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
17233 IMAPISupport_Impl::OpenTemplateID(
17234 this,
17235 core::mem::transmute_copy(&cbtemplateid),
17236 core::mem::transmute_copy(&lptemplateid),
17237 core::mem::transmute_copy(&ultemplateflags),
17238 core::mem::transmute_copy(&lpmapipropdata),
17239 core::mem::transmute_copy(&lpinterface),
17240 core::mem::transmute_copy(&lppmapipropnew),
17241 core::mem::transmute_copy(&lpmapipropsibling),
17242 )
17243 .into()
17244 }
17245 }
17246 unsafe extern "system" fn OpenEntry<Identity: IMAPISupport_Impl, const OFFSET: isize>(
17247 this: *mut core::ffi::c_void,
17248 cbentryid: u32,
17249 lpentryid: *mut ENTRYID,
17250 lpinterface: *mut windows_core::GUID,
17251 ulopenflags: u32,
17252 lpulobjtype: *mut u32,
17253 lppunk: *mut *mut core::ffi::c_void,
17254 ) -> windows_core::HRESULT {
17255 unsafe {
17256 let this: &Identity =
17257 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
17258 IMAPISupport_Impl::OpenEntry(
17259 this,
17260 core::mem::transmute_copy(&cbentryid),
17261 core::mem::transmute_copy(&lpentryid),
17262 core::mem::transmute_copy(&lpinterface),
17263 core::mem::transmute_copy(&ulopenflags),
17264 core::mem::transmute_copy(&lpulobjtype),
17265 core::mem::transmute_copy(&lppunk),
17266 )
17267 .into()
17268 }
17269 }
17270 unsafe extern "system" fn GetOneOffTable<
17271 Identity: IMAPISupport_Impl,
17272 const OFFSET: isize,
17273 >(
17274 this: *mut core::ffi::c_void,
17275 ulflags: u32,
17276 lpptable: *mut *mut core::ffi::c_void,
17277 ) -> windows_core::HRESULT {
17278 unsafe {
17279 let this: &Identity =
17280 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
17281 match IMAPISupport_Impl::GetOneOffTable(this, core::mem::transmute_copy(&ulflags)) {
17282 Ok(ok__) => {
17283 lpptable.write(core::mem::transmute(ok__));
17284 windows_core::HRESULT(0)
17285 }
17286 Err(err) => err.into(),
17287 }
17288 }
17289 }
17290 unsafe extern "system" fn Address<Identity: IMAPISupport_Impl, const OFFSET: isize>(
17291 this: *mut core::ffi::c_void,
17292 lpuluiparam: *mut usize,
17293 lpadrparms: *mut ADRPARM,
17294 lppadrlist: *mut *mut ADRLIST,
17295 ) -> windows_core::HRESULT {
17296 unsafe {
17297 let this: &Identity =
17298 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
17299 IMAPISupport_Impl::Address(
17300 this,
17301 core::mem::transmute_copy(&lpuluiparam),
17302 core::mem::transmute_copy(&lpadrparms),
17303 core::mem::transmute_copy(&lppadrlist),
17304 )
17305 .into()
17306 }
17307 }
17308 unsafe extern "system" fn Details<Identity: IMAPISupport_Impl, const OFFSET: isize>(
17309 this: *mut core::ffi::c_void,
17310 lpuluiparam: *mut usize,
17311 lpfndismiss: LPFNDISMISS,
17312 lpvdismisscontext: *mut core::ffi::c_void,
17313 cbentryid: u32,
17314 lpentryid: *mut ENTRYID,
17315 lpfbuttoncallback: windows::Win32::System::AddressBook::LPFNBUTTON,
17316 lpvbuttoncontext: *mut core::ffi::c_void,
17317 lpszbuttontext: *mut i8,
17318 ulflags: u32,
17319 ) -> windows_core::HRESULT {
17320 unsafe {
17321 let this: &Identity =
17322 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
17323 IMAPISupport_Impl::Details(
17324 this,
17325 core::mem::transmute_copy(&lpuluiparam),
17326 core::mem::transmute_copy(&lpfndismiss),
17327 core::mem::transmute_copy(&lpvdismisscontext),
17328 core::mem::transmute_copy(&cbentryid),
17329 core::mem::transmute_copy(&lpentryid),
17330 core::mem::transmute_copy(&lpfbuttoncallback),
17331 core::mem::transmute_copy(&lpvbuttoncontext),
17332 core::mem::transmute_copy(&lpszbuttontext),
17333 core::mem::transmute_copy(&ulflags),
17334 )
17335 .into()
17336 }
17337 }
17338 unsafe extern "system" fn NewEntry<Identity: IMAPISupport_Impl, const OFFSET: isize>(
17339 this: *mut core::ffi::c_void,
17340 uluiparam: usize,
17341 ulflags: u32,
17342 cbeidcontainer: u32,
17343 lpeidcontainer: *mut ENTRYID,
17344 cbeidnewentrytpl: u32,
17345 lpeidnewentrytpl: *mut ENTRYID,
17346 lpcbeidnewentry: *mut u32,
17347 lppeidnewentry: *mut *mut ENTRYID,
17348 ) -> windows_core::HRESULT {
17349 unsafe {
17350 let this: &Identity =
17351 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
17352 IMAPISupport_Impl::NewEntry(
17353 this,
17354 core::mem::transmute_copy(&uluiparam),
17355 core::mem::transmute_copy(&ulflags),
17356 core::mem::transmute_copy(&cbeidcontainer),
17357 core::mem::transmute_copy(&lpeidcontainer),
17358 core::mem::transmute_copy(&cbeidnewentrytpl),
17359 core::mem::transmute_copy(&lpeidnewentrytpl),
17360 core::mem::transmute_copy(&lpcbeidnewentry),
17361 core::mem::transmute_copy(&lppeidnewentry),
17362 )
17363 .into()
17364 }
17365 }
17366 unsafe extern "system" fn DoConfigPropsheet<
17367 Identity: IMAPISupport_Impl,
17368 const OFFSET: isize,
17369 >(
17370 this: *mut core::ffi::c_void,
17371 uluiparam: usize,
17372 ulflags: u32,
17373 lpsztitle: *mut i8,
17374 lpdisplaytable: *mut core::ffi::c_void,
17375 lpconfigdata: *mut core::ffi::c_void,
17376 ultoppage: u32,
17377 ) -> windows_core::HRESULT {
17378 unsafe {
17379 let this: &Identity =
17380 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
17381 IMAPISupport_Impl::DoConfigPropsheet(
17382 this,
17383 core::mem::transmute_copy(&uluiparam),
17384 core::mem::transmute_copy(&ulflags),
17385 core::mem::transmute_copy(&lpsztitle),
17386 core::mem::transmute_copy(&lpdisplaytable),
17387 core::mem::transmute_copy(&lpconfigdata),
17388 core::mem::transmute_copy(&ultoppage),
17389 )
17390 .into()
17391 }
17392 }
17393 unsafe extern "system" fn CopyMessages<Identity: IMAPISupport_Impl, const OFFSET: isize>(
17394 this: *mut core::ffi::c_void,
17395 lpsrcinterface: *mut windows_core::GUID,
17396 lpsrcfolder: *mut core::ffi::c_void,
17397 lpmsglist: *mut SBinaryArray,
17398 lpdestinterface: *mut windows_core::GUID,
17399 lpdestfolder: *mut core::ffi::c_void,
17400 uluiparam: usize,
17401 lpprogress: *mut core::ffi::c_void,
17402 ulflags: u32,
17403 ) -> windows_core::HRESULT {
17404 unsafe {
17405 let this: &Identity =
17406 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
17407 IMAPISupport_Impl::CopyMessages(
17408 this,
17409 core::mem::transmute_copy(&lpsrcinterface),
17410 core::mem::transmute_copy(&lpsrcfolder),
17411 core::mem::transmute_copy(&lpmsglist),
17412 core::mem::transmute_copy(&lpdestinterface),
17413 core::mem::transmute_copy(&lpdestfolder),
17414 core::mem::transmute_copy(&uluiparam),
17415 core::mem::transmute_copy(&lpprogress),
17416 core::mem::transmute_copy(&ulflags),
17417 )
17418 .into()
17419 }
17420 }
17421 unsafe extern "system" fn CopyFolder<Identity: IMAPISupport_Impl, const OFFSET: isize>(
17422 this: *mut core::ffi::c_void,
17423 lpsrcinterface: *mut windows_core::GUID,
17424 lpsrcfolder: *mut core::ffi::c_void,
17425 cbentryid: u32,
17426 lpentryid: *mut ENTRYID,
17427 lpdestinterface: *mut windows_core::GUID,
17428 lpdestfolder: *mut core::ffi::c_void,
17429 lsznewfoldername: *mut i8,
17430 uluiparam: usize,
17431 lpprogress: *mut core::ffi::c_void,
17432 ulflags: u32,
17433 ) -> windows_core::HRESULT {
17434 unsafe {
17435 let this: &Identity =
17436 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
17437 IMAPISupport_Impl::CopyFolder(
17438 this,
17439 core::mem::transmute_copy(&lpsrcinterface),
17440 core::mem::transmute_copy(&lpsrcfolder),
17441 core::mem::transmute_copy(&cbentryid),
17442 core::mem::transmute_copy(&lpentryid),
17443 core::mem::transmute_copy(&lpdestinterface),
17444 core::mem::transmute_copy(&lpdestfolder),
17445 core::mem::transmute_copy(&lsznewfoldername),
17446 core::mem::transmute_copy(&uluiparam),
17447 core::mem::transmute_copy(&lpprogress),
17448 core::mem::transmute_copy(&ulflags),
17449 )
17450 .into()
17451 }
17452 }
17453 unsafe extern "system" fn DoCopyTo<Identity: IMAPISupport_Impl, const OFFSET: isize>(
17454 this: *mut core::ffi::c_void,
17455 lpsrcinterface: *mut windows_core::GUID,
17456 lpsrcobj: *mut core::ffi::c_void,
17457 ciidexclude: u32,
17458 rgiidexclude: *mut windows_core::GUID,
17459 lpexcludeprops: *mut SPropTagArray,
17460 uluiparam: usize,
17461 lpprogress: *mut core::ffi::c_void,
17462 lpdestinterface: *mut windows_core::GUID,
17463 lpdestobj: *mut core::ffi::c_void,
17464 ulflags: u32,
17465 lppproblems: *mut *mut SPropProblemArray,
17466 ) -> windows_core::HRESULT {
17467 unsafe {
17468 let this: &Identity =
17469 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
17470 IMAPISupport_Impl::DoCopyTo(
17471 this,
17472 core::mem::transmute_copy(&lpsrcinterface),
17473 core::mem::transmute_copy(&lpsrcobj),
17474 core::mem::transmute_copy(&ciidexclude),
17475 core::mem::transmute_copy(&rgiidexclude),
17476 core::mem::transmute_copy(&lpexcludeprops),
17477 core::mem::transmute_copy(&uluiparam),
17478 core::mem::transmute_copy(&lpprogress),
17479 core::mem::transmute_copy(&lpdestinterface),
17480 core::mem::transmute_copy(&lpdestobj),
17481 core::mem::transmute_copy(&ulflags),
17482 core::mem::transmute_copy(&lppproblems),
17483 )
17484 .into()
17485 }
17486 }
17487 unsafe extern "system" fn DoCopyProps<Identity: IMAPISupport_Impl, const OFFSET: isize>(
17488 this: *mut core::ffi::c_void,
17489 lpsrcinterface: *mut windows_core::GUID,
17490 lpsrcobj: *mut core::ffi::c_void,
17491 lpincludeprops: *mut SPropTagArray,
17492 uluiparam: usize,
17493 lpprogress: *mut core::ffi::c_void,
17494 lpdestinterface: *mut windows_core::GUID,
17495 lpdestobj: *mut core::ffi::c_void,
17496 ulflags: u32,
17497 lppproblems: *mut *mut SPropProblemArray,
17498 ) -> windows_core::HRESULT {
17499 unsafe {
17500 let this: &Identity =
17501 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
17502 IMAPISupport_Impl::DoCopyProps(
17503 this,
17504 core::mem::transmute_copy(&lpsrcinterface),
17505 core::mem::transmute_copy(&lpsrcobj),
17506 core::mem::transmute_copy(&lpincludeprops),
17507 core::mem::transmute_copy(&uluiparam),
17508 core::mem::transmute_copy(&lpprogress),
17509 core::mem::transmute_copy(&lpdestinterface),
17510 core::mem::transmute_copy(&lpdestobj),
17511 core::mem::transmute_copy(&ulflags),
17512 core::mem::transmute_copy(&lppproblems),
17513 )
17514 .into()
17515 }
17516 }
17517 unsafe extern "system" fn DoProgressDialog<
17518 Identity: IMAPISupport_Impl,
17519 const OFFSET: isize,
17520 >(
17521 this: *mut core::ffi::c_void,
17522 uluiparam: usize,
17523 ulflags: u32,
17524 lppprogress: *mut *mut core::ffi::c_void,
17525 ) -> windows_core::HRESULT {
17526 unsafe {
17527 let this: &Identity =
17528 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
17529 match IMAPISupport_Impl::DoProgressDialog(
17530 this,
17531 core::mem::transmute_copy(&uluiparam),
17532 core::mem::transmute_copy(&ulflags),
17533 ) {
17534 Ok(ok__) => {
17535 lppprogress.write(core::mem::transmute(ok__));
17536 windows_core::HRESULT(0)
17537 }
17538 Err(err) => err.into(),
17539 }
17540 }
17541 }
17542 unsafe extern "system" fn ReadReceipt<Identity: IMAPISupport_Impl, const OFFSET: isize>(
17543 this: *mut core::ffi::c_void,
17544 ulflags: u32,
17545 lpreadmessage: *mut core::ffi::c_void,
17546 lppemptymessage: *mut *mut core::ffi::c_void,
17547 ) -> windows_core::HRESULT {
17548 unsafe {
17549 let this: &Identity =
17550 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
17551 match IMAPISupport_Impl::ReadReceipt(
17552 this,
17553 core::mem::transmute_copy(&ulflags),
17554 core::mem::transmute_copy(&lpreadmessage),
17555 ) {
17556 Ok(ok__) => {
17557 lppemptymessage.write(core::mem::transmute(ok__));
17558 windows_core::HRESULT(0)
17559 }
17560 Err(err) => err.into(),
17561 }
17562 }
17563 }
17564 unsafe extern "system" fn PrepareSubmit<
17565 Identity: IMAPISupport_Impl,
17566 const OFFSET: isize,
17567 >(
17568 this: *mut core::ffi::c_void,
17569 lpmessage: *mut core::ffi::c_void,
17570 lpulflags: *mut u32,
17571 ) -> windows_core::HRESULT {
17572 unsafe {
17573 let this: &Identity =
17574 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
17575 IMAPISupport_Impl::PrepareSubmit(
17576 this,
17577 core::mem::transmute_copy(&lpmessage),
17578 core::mem::transmute_copy(&lpulflags),
17579 )
17580 .into()
17581 }
17582 }
17583 unsafe extern "system" fn ExpandRecips<Identity: IMAPISupport_Impl, const OFFSET: isize>(
17584 this: *mut core::ffi::c_void,
17585 lpmessage: *mut core::ffi::c_void,
17586 lpulflags: *mut u32,
17587 ) -> windows_core::HRESULT {
17588 unsafe {
17589 let this: &Identity =
17590 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
17591 IMAPISupport_Impl::ExpandRecips(
17592 this,
17593 core::mem::transmute_copy(&lpmessage),
17594 core::mem::transmute_copy(&lpulflags),
17595 )
17596 .into()
17597 }
17598 }
17599 unsafe extern "system" fn UpdatePAB<Identity: IMAPISupport_Impl, const OFFSET: isize>(
17600 this: *mut core::ffi::c_void,
17601 ulflags: u32,
17602 lpmessage: *mut core::ffi::c_void,
17603 ) -> windows_core::HRESULT {
17604 unsafe {
17605 let this: &Identity =
17606 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
17607 IMAPISupport_Impl::UpdatePAB(
17608 this,
17609 core::mem::transmute_copy(&ulflags),
17610 core::mem::transmute_copy(&lpmessage),
17611 )
17612 .into()
17613 }
17614 }
17615 unsafe extern "system" fn DoSentMail<Identity: IMAPISupport_Impl, const OFFSET: isize>(
17616 this: *mut core::ffi::c_void,
17617 ulflags: u32,
17618 lpmessage: *mut core::ffi::c_void,
17619 ) -> windows_core::HRESULT {
17620 unsafe {
17621 let this: &Identity =
17622 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
17623 IMAPISupport_Impl::DoSentMail(
17624 this,
17625 core::mem::transmute_copy(&ulflags),
17626 core::mem::transmute_copy(&lpmessage),
17627 )
17628 .into()
17629 }
17630 }
17631 unsafe extern "system" fn OpenAddressBook<
17632 Identity: IMAPISupport_Impl,
17633 const OFFSET: isize,
17634 >(
17635 this: *mut core::ffi::c_void,
17636 lpinterface: *mut windows_core::GUID,
17637 ulflags: u32,
17638 lppadrbook: *mut *mut core::ffi::c_void,
17639 ) -> windows_core::HRESULT {
17640 unsafe {
17641 let this: &Identity =
17642 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
17643 IMAPISupport_Impl::OpenAddressBook(
17644 this,
17645 core::mem::transmute_copy(&lpinterface),
17646 core::mem::transmute_copy(&ulflags),
17647 core::mem::transmute_copy(&lppadrbook),
17648 )
17649 .into()
17650 }
17651 }
17652 unsafe extern "system" fn Preprocess<Identity: IMAPISupport_Impl, const OFFSET: isize>(
17653 this: *mut core::ffi::c_void,
17654 ulflags: u32,
17655 cbentryid: u32,
17656 lpentryid: *mut ENTRYID,
17657 ) -> windows_core::HRESULT {
17658 unsafe {
17659 let this: &Identity =
17660 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
17661 IMAPISupport_Impl::Preprocess(
17662 this,
17663 core::mem::transmute_copy(&ulflags),
17664 core::mem::transmute_copy(&cbentryid),
17665 core::mem::transmute_copy(&lpentryid),
17666 )
17667 .into()
17668 }
17669 }
17670 unsafe extern "system" fn CompleteMsg<Identity: IMAPISupport_Impl, const OFFSET: isize>(
17671 this: *mut core::ffi::c_void,
17672 ulflags: u32,
17673 cbentryid: u32,
17674 lpentryid: *mut ENTRYID,
17675 ) -> windows_core::HRESULT {
17676 unsafe {
17677 let this: &Identity =
17678 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
17679 IMAPISupport_Impl::CompleteMsg(
17680 this,
17681 core::mem::transmute_copy(&ulflags),
17682 core::mem::transmute_copy(&cbentryid),
17683 core::mem::transmute_copy(&lpentryid),
17684 )
17685 .into()
17686 }
17687 }
17688 unsafe extern "system" fn StoreLogoffTransports<
17689 Identity: IMAPISupport_Impl,
17690 const OFFSET: isize,
17691 >(
17692 this: *mut core::ffi::c_void,
17693 lpulflags: *mut u32,
17694 ) -> windows_core::HRESULT {
17695 unsafe {
17696 let this: &Identity =
17697 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
17698 IMAPISupport_Impl::StoreLogoffTransports(
17699 this,
17700 core::mem::transmute_copy(&lpulflags),
17701 )
17702 .into()
17703 }
17704 }
17705 unsafe extern "system" fn StatusRecips<Identity: IMAPISupport_Impl, const OFFSET: isize>(
17706 this: *mut core::ffi::c_void,
17707 lpmessage: *mut core::ffi::c_void,
17708 lpreciplist: *mut ADRLIST,
17709 ) -> windows_core::HRESULT {
17710 unsafe {
17711 let this: &Identity =
17712 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
17713 IMAPISupport_Impl::StatusRecips(
17714 this,
17715 core::mem::transmute_copy(&lpmessage),
17716 core::mem::transmute_copy(&lpreciplist),
17717 )
17718 .into()
17719 }
17720 }
17721 unsafe extern "system" fn WrapStoreEntryID<
17722 Identity: IMAPISupport_Impl,
17723 const OFFSET: isize,
17724 >(
17725 this: *mut core::ffi::c_void,
17726 cborigentry: u32,
17727 lporigentry: *mut ENTRYID,
17728 lpcbwrappedentry: *mut u32,
17729 lppwrappedentry: *mut *mut ENTRYID,
17730 ) -> windows_core::HRESULT {
17731 unsafe {
17732 let this: &Identity =
17733 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
17734 IMAPISupport_Impl::WrapStoreEntryID(
17735 this,
17736 core::mem::transmute_copy(&cborigentry),
17737 core::mem::transmute_copy(&lporigentry),
17738 core::mem::transmute_copy(&lpcbwrappedentry),
17739 core::mem::transmute_copy(&lppwrappedentry),
17740 )
17741 .into()
17742 }
17743 }
17744 unsafe extern "system" fn ModifyProfile<
17745 Identity: IMAPISupport_Impl,
17746 const OFFSET: isize,
17747 >(
17748 this: *mut core::ffi::c_void,
17749 ulflags: u32,
17750 ) -> windows_core::HRESULT {
17751 unsafe {
17752 let this: &Identity =
17753 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
17754 IMAPISupport_Impl::ModifyProfile(this, core::mem::transmute_copy(&ulflags)).into()
17755 }
17756 }
17757 unsafe extern "system" fn IStorageFromStream<
17758 Identity: IMAPISupport_Impl,
17759 const OFFSET: isize,
17760 >(
17761 this: *mut core::ffi::c_void,
17762 lpunkin: *mut core::ffi::c_void,
17763 lpinterface: *mut windows_core::GUID,
17764 ulflags: u32,
17765 lppstorageout: *mut *mut core::ffi::c_void,
17766 ) -> windows_core::HRESULT {
17767 unsafe {
17768 let this: &Identity =
17769 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
17770 IMAPISupport_Impl::IStorageFromStream(
17771 this,
17772 core::mem::transmute_copy(&lpunkin),
17773 core::mem::transmute_copy(&lpinterface),
17774 core::mem::transmute_copy(&ulflags),
17775 core::mem::transmute_copy(&lppstorageout),
17776 )
17777 .into()
17778 }
17779 }
17780 unsafe extern "system" fn GetSvcConfigSupportObj<
17781 Identity: IMAPISupport_Impl,
17782 const OFFSET: isize,
17783 >(
17784 this: *mut core::ffi::c_void,
17785 ulflags: u32,
17786 lppsvcsupport: *mut *mut core::ffi::c_void,
17787 ) -> windows_core::HRESULT {
17788 unsafe {
17789 let this: &Identity =
17790 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
17791 match IMAPISupport_Impl::GetSvcConfigSupportObj(
17792 this,
17793 core::mem::transmute_copy(&ulflags),
17794 ) {
17795 Ok(ok__) => {
17796 lppsvcsupport.write(core::mem::transmute(ok__));
17797 windows_core::HRESULT(0)
17798 }
17799 Err(err) => err.into(),
17800 }
17801 }
17802 }
17803 Self {
17804 base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
17805 GetLastError: GetLastError::<Identity, OFFSET>,
17806 GetMemAllocRoutines: GetMemAllocRoutines::<Identity, OFFSET>,
17807 Subscribe: Subscribe::<Identity, OFFSET>,
17808 Unsubscribe: Unsubscribe::<Identity, OFFSET>,
17809 Notify: Notify::<Identity, OFFSET>,
17810 ModifyStatusRow: ModifyStatusRow::<Identity, OFFSET>,
17811 OpenProfileSection: OpenProfileSection::<Identity, OFFSET>,
17812 RegisterPreprocessor: RegisterPreprocessor::<Identity, OFFSET>,
17813 NewUID: NewUID::<Identity, OFFSET>,
17814 MakeInvalid: MakeInvalid::<Identity, OFFSET>,
17815 SpoolerYield: SpoolerYield::<Identity, OFFSET>,
17816 SpoolerNotify: SpoolerNotify::<Identity, OFFSET>,
17817 CreateOneOff: CreateOneOff::<Identity, OFFSET>,
17818 SetProviderUID: SetProviderUID::<Identity, OFFSET>,
17819 CompareEntryIDs: CompareEntryIDs::<Identity, OFFSET>,
17820 OpenTemplateID: OpenTemplateID::<Identity, OFFSET>,
17821 OpenEntry: OpenEntry::<Identity, OFFSET>,
17822 GetOneOffTable: GetOneOffTable::<Identity, OFFSET>,
17823 Address: Address::<Identity, OFFSET>,
17824 Details: Details::<Identity, OFFSET>,
17825 NewEntry: NewEntry::<Identity, OFFSET>,
17826 DoConfigPropsheet: DoConfigPropsheet::<Identity, OFFSET>,
17827 CopyMessages: CopyMessages::<Identity, OFFSET>,
17828 CopyFolder: CopyFolder::<Identity, OFFSET>,
17829 DoCopyTo: DoCopyTo::<Identity, OFFSET>,
17830 DoCopyProps: DoCopyProps::<Identity, OFFSET>,
17831 DoProgressDialog: DoProgressDialog::<Identity, OFFSET>,
17832 ReadReceipt: ReadReceipt::<Identity, OFFSET>,
17833 PrepareSubmit: PrepareSubmit::<Identity, OFFSET>,
17834 ExpandRecips: ExpandRecips::<Identity, OFFSET>,
17835 UpdatePAB: UpdatePAB::<Identity, OFFSET>,
17836 DoSentMail: DoSentMail::<Identity, OFFSET>,
17837 OpenAddressBook: OpenAddressBook::<Identity, OFFSET>,
17838 Preprocess: Preprocess::<Identity, OFFSET>,
17839 CompleteMsg: CompleteMsg::<Identity, OFFSET>,
17840 StoreLogoffTransports: StoreLogoffTransports::<Identity, OFFSET>,
17841 StatusRecips: StatusRecips::<Identity, OFFSET>,
17842 WrapStoreEntryID: WrapStoreEntryID::<Identity, OFFSET>,
17843 ModifyProfile: ModifyProfile::<Identity, OFFSET>,
17844 IStorageFromStream: IStorageFromStream::<Identity, OFFSET>,
17845 GetSvcConfigSupportObj: GetSvcConfigSupportObj::<Identity, OFFSET>,
17846 }
17847 }
17848 pub fn matches(iid: &windows_core::GUID) -> bool {
17849 iid == &<IMAPISupport as windows_core::Interface>::IID
17850 }
17851}
17852impl windows_core::RuntimeName for IMAPISupport {}
17853windows_core::imp::define_interface!(
17854 IMAPITable,
17855 IMAPITable_Vtbl,
17856 0x00020301_0000_0000_c000_000000000046
17857);
17858windows_core::imp::interface_hierarchy!(IMAPITable, windows_core::IUnknown);
17859impl IMAPITable {
17860 pub unsafe fn GetLastError(
17861 &self,
17862 hresult: windows_core::HRESULT,
17863 ulflags: u32,
17864 lppmapierror: *mut *mut MAPIERROR,
17865 ) -> windows_core::Result<()> {
17866 unsafe {
17867 (windows_core::Interface::vtable(self).GetLastError)(
17868 windows_core::Interface::as_raw(self),
17869 hresult,
17870 ulflags,
17871 lppmapierror as _,
17872 )
17873 .ok()
17874 }
17875 }
17876 pub unsafe fn Advise<P1>(
17877 &self,
17878 uleventmask: u32,
17879 lpadvisesink: P1,
17880 lpulconnection: *mut usize,
17881 ) -> windows_core::Result<()>
17882 where
17883 P1: windows_core::Param<IMAPIAdviseSink>,
17884 {
17885 unsafe {
17886 (windows_core::Interface::vtable(self).Advise)(
17887 windows_core::Interface::as_raw(self),
17888 uleventmask,
17889 lpadvisesink.param().abi(),
17890 lpulconnection as _,
17891 )
17892 .ok()
17893 }
17894 }
17895 pub unsafe fn Unadvise(&self, ulconnection: usize) -> windows_core::Result<()> {
17896 unsafe {
17897 (windows_core::Interface::vtable(self).Unadvise)(
17898 windows_core::Interface::as_raw(self),
17899 ulconnection,
17900 )
17901 .ok()
17902 }
17903 }
17904 pub unsafe fn GetStatus(
17905 &self,
17906 lpultablestatus: *mut u32,
17907 lpultabletype: *mut u32,
17908 ) -> windows_core::Result<()> {
17909 unsafe {
17910 (windows_core::Interface::vtable(self).GetStatus)(
17911 windows_core::Interface::as_raw(self),
17912 lpultablestatus as _,
17913 lpultabletype as _,
17914 )
17915 .ok()
17916 }
17917 }
17918 pub unsafe fn SetColumns(
17919 &self,
17920 lpproptagarray: *mut SPropTagArray,
17921 ulflags: u32,
17922 ) -> windows_core::Result<()> {
17923 unsafe {
17924 (windows_core::Interface::vtable(self).SetColumns)(
17925 windows_core::Interface::as_raw(self),
17926 lpproptagarray as _,
17927 ulflags,
17928 )
17929 .ok()
17930 }
17931 }
17932 pub unsafe fn QueryColumns(
17933 &self,
17934 ulflags: u32,
17935 lpproptagarray: *mut *mut SPropTagArray,
17936 ) -> windows_core::Result<()> {
17937 unsafe {
17938 (windows_core::Interface::vtable(self).QueryColumns)(
17939 windows_core::Interface::as_raw(self),
17940 ulflags,
17941 lpproptagarray as _,
17942 )
17943 .ok()
17944 }
17945 }
17946 pub unsafe fn GetRowCount(
17947 &self,
17948 ulflags: u32,
17949 lpulcount: *mut u32,
17950 ) -> windows_core::Result<()> {
17951 unsafe {
17952 (windows_core::Interface::vtable(self).GetRowCount)(
17953 windows_core::Interface::as_raw(self),
17954 ulflags,
17955 lpulcount as _,
17956 )
17957 .ok()
17958 }
17959 }
17960 pub unsafe fn SeekRow(
17961 &self,
17962 bkorigin: usize,
17963 lrowcount: i32,
17964 lplrowssought: *mut i32,
17965 ) -> windows_core::Result<()> {
17966 unsafe {
17967 (windows_core::Interface::vtable(self).SeekRow)(
17968 windows_core::Interface::as_raw(self),
17969 bkorigin,
17970 lrowcount,
17971 lplrowssought as _,
17972 )
17973 .ok()
17974 }
17975 }
17976 pub unsafe fn SeekRowApprox(
17977 &self,
17978 ulnumerator: u32,
17979 uldenominator: u32,
17980 ) -> windows_core::Result<()> {
17981 unsafe {
17982 (windows_core::Interface::vtable(self).SeekRowApprox)(
17983 windows_core::Interface::as_raw(self),
17984 ulnumerator,
17985 uldenominator,
17986 )
17987 .ok()
17988 }
17989 }
17990 pub unsafe fn QueryPosition(
17991 &self,
17992 lpulrow: *mut u32,
17993 lpulnumerator: *mut u32,
17994 lpuldenominator: *mut u32,
17995 ) -> windows_core::Result<()> {
17996 unsafe {
17997 (windows_core::Interface::vtable(self).QueryPosition)(
17998 windows_core::Interface::as_raw(self),
17999 lpulrow as _,
18000 lpulnumerator as _,
18001 lpuldenominator as _,
18002 )
18003 .ok()
18004 }
18005 }
18006 pub unsafe fn FindRow(
18007 &self,
18008 lprestriction: *mut SRestriction,
18009 bkorigin: usize,
18010 ulflags: u32,
18011 ) -> windows_core::Result<()> {
18012 unsafe {
18013 (windows_core::Interface::vtable(self).FindRow)(
18014 windows_core::Interface::as_raw(self),
18015 lprestriction as _,
18016 bkorigin,
18017 ulflags,
18018 )
18019 .ok()
18020 }
18021 }
18022 pub unsafe fn Restrict(
18023 &self,
18024 lprestriction: *mut SRestriction,
18025 ulflags: u32,
18026 ) -> windows_core::Result<()> {
18027 unsafe {
18028 (windows_core::Interface::vtable(self).Restrict)(
18029 windows_core::Interface::as_raw(self),
18030 lprestriction as _,
18031 ulflags,
18032 )
18033 .ok()
18034 }
18035 }
18036 pub unsafe fn CreateBookmark(&self, lpbkposition: *mut usize) -> windows_core::Result<()> {
18037 unsafe {
18038 (windows_core::Interface::vtable(self).CreateBookmark)(
18039 windows_core::Interface::as_raw(self),
18040 lpbkposition as _,
18041 )
18042 .ok()
18043 }
18044 }
18045 pub unsafe fn FreeBookmark(&self, bkposition: usize) -> windows_core::Result<()> {
18046 unsafe {
18047 (windows_core::Interface::vtable(self).FreeBookmark)(
18048 windows_core::Interface::as_raw(self),
18049 bkposition,
18050 )
18051 .ok()
18052 }
18053 }
18054 pub unsafe fn SortTable(
18055 &self,
18056 lpsortcriteria: *mut SSortOrderSet,
18057 ulflags: u32,
18058 ) -> windows_core::Result<()> {
18059 unsafe {
18060 (windows_core::Interface::vtable(self).SortTable)(
18061 windows_core::Interface::as_raw(self),
18062 lpsortcriteria as _,
18063 ulflags,
18064 )
18065 .ok()
18066 }
18067 }
18068 pub unsafe fn QuerySortOrder(
18069 &self,
18070 lppsortcriteria: *mut *mut SSortOrderSet,
18071 ) -> windows_core::Result<()> {
18072 unsafe {
18073 (windows_core::Interface::vtable(self).QuerySortOrder)(
18074 windows_core::Interface::as_raw(self),
18075 lppsortcriteria as _,
18076 )
18077 .ok()
18078 }
18079 }
18080 pub unsafe fn QueryRows(
18081 &self,
18082 lrowcount: i32,
18083 ulflags: u32,
18084 lpprows: *mut *mut SRowSet,
18085 ) -> windows_core::Result<()> {
18086 unsafe {
18087 (windows_core::Interface::vtable(self).QueryRows)(
18088 windows_core::Interface::as_raw(self),
18089 lrowcount,
18090 ulflags,
18091 lpprows as _,
18092 )
18093 .ok()
18094 }
18095 }
18096 pub unsafe fn Abort(&self) -> windows_core::Result<()> {
18097 unsafe {
18098 (windows_core::Interface::vtable(self).Abort)(windows_core::Interface::as_raw(self))
18099 .ok()
18100 }
18101 }
18102 pub unsafe fn ExpandRow(
18103 &self,
18104 cbinstancekey: u32,
18105 pbinstancekey: *mut u8,
18106 ulrowcount: u32,
18107 ulflags: u32,
18108 lpprows: *mut *mut SRowSet,
18109 lpulmorerows: *mut u32,
18110 ) -> windows_core::Result<()> {
18111 unsafe {
18112 (windows_core::Interface::vtable(self).ExpandRow)(
18113 windows_core::Interface::as_raw(self),
18114 cbinstancekey,
18115 pbinstancekey as _,
18116 ulrowcount,
18117 ulflags,
18118 lpprows as _,
18119 lpulmorerows as _,
18120 )
18121 .ok()
18122 }
18123 }
18124 pub unsafe fn CollapseRow(
18125 &self,
18126 cbinstancekey: u32,
18127 pbinstancekey: *mut u8,
18128 ulflags: u32,
18129 lpulrowcount: *mut u32,
18130 ) -> windows_core::Result<()> {
18131 unsafe {
18132 (windows_core::Interface::vtable(self).CollapseRow)(
18133 windows_core::Interface::as_raw(self),
18134 cbinstancekey,
18135 pbinstancekey as _,
18136 ulflags,
18137 lpulrowcount as _,
18138 )
18139 .ok()
18140 }
18141 }
18142 pub unsafe fn WaitForCompletion(
18143 &self,
18144 ulflags: u32,
18145 ultimeout: u32,
18146 lpultablestatus: *mut u32,
18147 ) -> windows_core::Result<()> {
18148 unsafe {
18149 (windows_core::Interface::vtable(self).WaitForCompletion)(
18150 windows_core::Interface::as_raw(self),
18151 ulflags,
18152 ultimeout,
18153 lpultablestatus as _,
18154 )
18155 .ok()
18156 }
18157 }
18158 pub unsafe fn GetCollapseState(
18159 &self,
18160 ulflags: u32,
18161 cbinstancekey: u32,
18162 lpbinstancekey: *mut u8,
18163 lpcbcollapsestate: *mut u32,
18164 lppbcollapsestate: *mut *mut u8,
18165 ) -> windows_core::Result<()> {
18166 unsafe {
18167 (windows_core::Interface::vtable(self).GetCollapseState)(
18168 windows_core::Interface::as_raw(self),
18169 ulflags,
18170 cbinstancekey,
18171 lpbinstancekey as _,
18172 lpcbcollapsestate as _,
18173 lppbcollapsestate as _,
18174 )
18175 .ok()
18176 }
18177 }
18178 pub unsafe fn SetCollapseState(
18179 &self,
18180 ulflags: u32,
18181 pbcollapsestate: &mut [u8],
18182 lpbklocation: *mut usize,
18183 ) -> windows_core::Result<()> {
18184 unsafe {
18185 (windows_core::Interface::vtable(self).SetCollapseState)(
18186 windows_core::Interface::as_raw(self),
18187 ulflags,
18188 pbcollapsestate.len().try_into().unwrap(),
18189 core::mem::transmute(pbcollapsestate.as_ptr()),
18190 lpbklocation as _,
18191 )
18192 .ok()
18193 }
18194 }
18195}
18196#[repr(C)]
18197#[doc(hidden)]
18198pub struct IMAPITable_Vtbl {
18199 pub base__: windows_core::IUnknown_Vtbl,
18200 pub GetLastError: unsafe extern "system" fn(
18201 *mut core::ffi::c_void,
18202 windows_core::HRESULT,
18203 u32,
18204 *mut *mut MAPIERROR,
18205 ) -> windows_core::HRESULT,
18206 pub Advise: unsafe extern "system" fn(
18207 *mut core::ffi::c_void,
18208 u32,
18209 *mut core::ffi::c_void,
18210 *mut usize,
18211 ) -> windows_core::HRESULT,
18212 pub Unadvise: unsafe extern "system" fn(*mut core::ffi::c_void, usize) -> windows_core::HRESULT,
18213 pub GetStatus: unsafe extern "system" fn(
18214 *mut core::ffi::c_void,
18215 *mut u32,
18216 *mut u32,
18217 ) -> windows_core::HRESULT,
18218 pub SetColumns: unsafe extern "system" fn(
18219 *mut core::ffi::c_void,
18220 *mut SPropTagArray,
18221 u32,
18222 ) -> windows_core::HRESULT,
18223 pub QueryColumns: unsafe extern "system" fn(
18224 *mut core::ffi::c_void,
18225 u32,
18226 *mut *mut SPropTagArray,
18227 ) -> windows_core::HRESULT,
18228 pub GetRowCount:
18229 unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
18230 pub SeekRow: unsafe extern "system" fn(
18231 *mut core::ffi::c_void,
18232 usize,
18233 i32,
18234 *mut i32,
18235 ) -> windows_core::HRESULT,
18236 pub SeekRowApprox:
18237 unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32) -> windows_core::HRESULT,
18238 pub QueryPosition: unsafe extern "system" fn(
18239 *mut core::ffi::c_void,
18240 *mut u32,
18241 *mut u32,
18242 *mut u32,
18243 ) -> windows_core::HRESULT,
18244 pub FindRow: unsafe extern "system" fn(
18245 *mut core::ffi::c_void,
18246 *mut SRestriction,
18247 usize,
18248 u32,
18249 ) -> windows_core::HRESULT,
18250 pub Restrict: unsafe extern "system" fn(
18251 *mut core::ffi::c_void,
18252 *mut SRestriction,
18253 u32,
18254 ) -> windows_core::HRESULT,
18255 pub CreateBookmark:
18256 unsafe extern "system" fn(*mut core::ffi::c_void, *mut usize) -> windows_core::HRESULT,
18257 pub FreeBookmark:
18258 unsafe extern "system" fn(*mut core::ffi::c_void, usize) -> windows_core::HRESULT,
18259 pub SortTable: unsafe extern "system" fn(
18260 *mut core::ffi::c_void,
18261 *mut SSortOrderSet,
18262 u32,
18263 ) -> windows_core::HRESULT,
18264 pub QuerySortOrder: unsafe extern "system" fn(
18265 *mut core::ffi::c_void,
18266 *mut *mut SSortOrderSet,
18267 ) -> windows_core::HRESULT,
18268 pub QueryRows: unsafe extern "system" fn(
18269 *mut core::ffi::c_void,
18270 i32,
18271 u32,
18272 *mut *mut SRowSet,
18273 ) -> windows_core::HRESULT,
18274 pub Abort: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
18275 pub ExpandRow: unsafe extern "system" fn(
18276 *mut core::ffi::c_void,
18277 u32,
18278 *mut u8,
18279 u32,
18280 u32,
18281 *mut *mut SRowSet,
18282 *mut u32,
18283 ) -> windows_core::HRESULT,
18284 pub CollapseRow: unsafe extern "system" fn(
18285 *mut core::ffi::c_void,
18286 u32,
18287 *mut u8,
18288 u32,
18289 *mut u32,
18290 ) -> windows_core::HRESULT,
18291 pub WaitForCompletion: unsafe extern "system" fn(
18292 *mut core::ffi::c_void,
18293 u32,
18294 u32,
18295 *mut u32,
18296 ) -> windows_core::HRESULT,
18297 pub GetCollapseState: unsafe extern "system" fn(
18298 *mut core::ffi::c_void,
18299 u32,
18300 u32,
18301 *mut u8,
18302 *mut u32,
18303 *mut *mut u8,
18304 ) -> windows_core::HRESULT,
18305 pub SetCollapseState: unsafe extern "system" fn(
18306 *mut core::ffi::c_void,
18307 u32,
18308 u32,
18309 *mut u8,
18310 *mut usize,
18311 ) -> windows_core::HRESULT,
18312}
18313pub trait IMAPITable_Impl: windows_core::IUnknownImpl {
18314 fn GetLastError(
18315 &self,
18316 hresult: windows_core::HRESULT,
18317 ulflags: u32,
18318 lppmapierror: *mut *mut MAPIERROR,
18319 ) -> windows_core::Result<()>;
18320 fn Advise(
18321 &self,
18322 uleventmask: u32,
18323 lpadvisesink: windows_core::Ref<IMAPIAdviseSink>,
18324 lpulconnection: *mut usize,
18325 ) -> windows_core::Result<()>;
18326 fn Unadvise(&self, ulconnection: usize) -> windows_core::Result<()>;
18327 fn GetStatus(
18328 &self,
18329 lpultablestatus: *mut u32,
18330 lpultabletype: *mut u32,
18331 ) -> windows_core::Result<()>;
18332 fn SetColumns(
18333 &self,
18334 lpproptagarray: *mut SPropTagArray,
18335 ulflags: u32,
18336 ) -> windows_core::Result<()>;
18337 fn QueryColumns(
18338 &self,
18339 ulflags: u32,
18340 lpproptagarray: *mut *mut SPropTagArray,
18341 ) -> windows_core::Result<()>;
18342 fn GetRowCount(&self, ulflags: u32, lpulcount: *mut u32) -> windows_core::Result<()>;
18343 fn SeekRow(
18344 &self,
18345 bkorigin: usize,
18346 lrowcount: i32,
18347 lplrowssought: *mut i32,
18348 ) -> windows_core::Result<()>;
18349 fn SeekRowApprox(&self, ulnumerator: u32, uldenominator: u32) -> windows_core::Result<()>;
18350 fn QueryPosition(
18351 &self,
18352 lpulrow: *mut u32,
18353 lpulnumerator: *mut u32,
18354 lpuldenominator: *mut u32,
18355 ) -> windows_core::Result<()>;
18356 fn FindRow(
18357 &self,
18358 lprestriction: *mut SRestriction,
18359 bkorigin: usize,
18360 ulflags: u32,
18361 ) -> windows_core::Result<()>;
18362 fn Restrict(&self, lprestriction: *mut SRestriction, ulflags: u32) -> windows_core::Result<()>;
18363 fn CreateBookmark(&self, lpbkposition: *mut usize) -> windows_core::Result<()>;
18364 fn FreeBookmark(&self, bkposition: usize) -> windows_core::Result<()>;
18365 fn SortTable(
18366 &self,
18367 lpsortcriteria: *mut SSortOrderSet,
18368 ulflags: u32,
18369 ) -> windows_core::Result<()>;
18370 fn QuerySortOrder(&self, lppsortcriteria: *mut *mut SSortOrderSet) -> windows_core::Result<()>;
18371 fn QueryRows(
18372 &self,
18373 lrowcount: i32,
18374 ulflags: u32,
18375 lpprows: *mut *mut SRowSet,
18376 ) -> windows_core::Result<()>;
18377 fn Abort(&self) -> windows_core::Result<()>;
18378 fn ExpandRow(
18379 &self,
18380 cbinstancekey: u32,
18381 pbinstancekey: *mut u8,
18382 ulrowcount: u32,
18383 ulflags: u32,
18384 lpprows: *mut *mut SRowSet,
18385 lpulmorerows: *mut u32,
18386 ) -> windows_core::Result<()>;
18387 fn CollapseRow(
18388 &self,
18389 cbinstancekey: u32,
18390 pbinstancekey: *mut u8,
18391 ulflags: u32,
18392 lpulrowcount: *mut u32,
18393 ) -> windows_core::Result<()>;
18394 fn WaitForCompletion(
18395 &self,
18396 ulflags: u32,
18397 ultimeout: u32,
18398 lpultablestatus: *mut u32,
18399 ) -> windows_core::Result<()>;
18400 fn GetCollapseState(
18401 &self,
18402 ulflags: u32,
18403 cbinstancekey: u32,
18404 lpbinstancekey: *mut u8,
18405 lpcbcollapsestate: *mut u32,
18406 lppbcollapsestate: *mut *mut u8,
18407 ) -> windows_core::Result<()>;
18408 fn SetCollapseState(
18409 &self,
18410 ulflags: u32,
18411 cbcollapsestate: u32,
18412 pbcollapsestate: *mut u8,
18413 lpbklocation: *mut usize,
18414 ) -> windows_core::Result<()>;
18415}
18416impl IMAPITable_Vtbl {
18417 pub const fn new<Identity: IMAPITable_Impl, const OFFSET: isize>() -> Self {
18418 unsafe extern "system" fn GetLastError<Identity: IMAPITable_Impl, const OFFSET: isize>(
18419 this: *mut core::ffi::c_void,
18420 hresult: windows_core::HRESULT,
18421 ulflags: u32,
18422 lppmapierror: *mut *mut MAPIERROR,
18423 ) -> windows_core::HRESULT {
18424 unsafe {
18425 let this: &Identity =
18426 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
18427 IMAPITable_Impl::GetLastError(
18428 this,
18429 core::mem::transmute_copy(&hresult),
18430 core::mem::transmute_copy(&ulflags),
18431 core::mem::transmute_copy(&lppmapierror),
18432 )
18433 .into()
18434 }
18435 }
18436 unsafe extern "system" fn Advise<Identity: IMAPITable_Impl, const OFFSET: isize>(
18437 this: *mut core::ffi::c_void,
18438 uleventmask: u32,
18439 lpadvisesink: *mut core::ffi::c_void,
18440 lpulconnection: *mut usize,
18441 ) -> windows_core::HRESULT {
18442 unsafe {
18443 let this: &Identity =
18444 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
18445 IMAPITable_Impl::Advise(
18446 this,
18447 core::mem::transmute_copy(&uleventmask),
18448 core::mem::transmute_copy(&lpadvisesink),
18449 core::mem::transmute_copy(&lpulconnection),
18450 )
18451 .into()
18452 }
18453 }
18454 unsafe extern "system" fn Unadvise<Identity: IMAPITable_Impl, const OFFSET: isize>(
18455 this: *mut core::ffi::c_void,
18456 ulconnection: usize,
18457 ) -> windows_core::HRESULT {
18458 unsafe {
18459 let this: &Identity =
18460 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
18461 IMAPITable_Impl::Unadvise(this, core::mem::transmute_copy(&ulconnection)).into()
18462 }
18463 }
18464 unsafe extern "system" fn GetStatus<Identity: IMAPITable_Impl, const OFFSET: isize>(
18465 this: *mut core::ffi::c_void,
18466 lpultablestatus: *mut u32,
18467 lpultabletype: *mut u32,
18468 ) -> windows_core::HRESULT {
18469 unsafe {
18470 let this: &Identity =
18471 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
18472 IMAPITable_Impl::GetStatus(
18473 this,
18474 core::mem::transmute_copy(&lpultablestatus),
18475 core::mem::transmute_copy(&lpultabletype),
18476 )
18477 .into()
18478 }
18479 }
18480 unsafe extern "system" fn SetColumns<Identity: IMAPITable_Impl, const OFFSET: isize>(
18481 this: *mut core::ffi::c_void,
18482 lpproptagarray: *mut SPropTagArray,
18483 ulflags: u32,
18484 ) -> windows_core::HRESULT {
18485 unsafe {
18486 let this: &Identity =
18487 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
18488 IMAPITable_Impl::SetColumns(
18489 this,
18490 core::mem::transmute_copy(&lpproptagarray),
18491 core::mem::transmute_copy(&ulflags),
18492 )
18493 .into()
18494 }
18495 }
18496 unsafe extern "system" fn QueryColumns<Identity: IMAPITable_Impl, const OFFSET: isize>(
18497 this: *mut core::ffi::c_void,
18498 ulflags: u32,
18499 lpproptagarray: *mut *mut SPropTagArray,
18500 ) -> windows_core::HRESULT {
18501 unsafe {
18502 let this: &Identity =
18503 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
18504 IMAPITable_Impl::QueryColumns(
18505 this,
18506 core::mem::transmute_copy(&ulflags),
18507 core::mem::transmute_copy(&lpproptagarray),
18508 )
18509 .into()
18510 }
18511 }
18512 unsafe extern "system" fn GetRowCount<Identity: IMAPITable_Impl, const OFFSET: isize>(
18513 this: *mut core::ffi::c_void,
18514 ulflags: u32,
18515 lpulcount: *mut u32,
18516 ) -> windows_core::HRESULT {
18517 unsafe {
18518 let this: &Identity =
18519 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
18520 IMAPITable_Impl::GetRowCount(
18521 this,
18522 core::mem::transmute_copy(&ulflags),
18523 core::mem::transmute_copy(&lpulcount),
18524 )
18525 .into()
18526 }
18527 }
18528 unsafe extern "system" fn SeekRow<Identity: IMAPITable_Impl, const OFFSET: isize>(
18529 this: *mut core::ffi::c_void,
18530 bkorigin: usize,
18531 lrowcount: i32,
18532 lplrowssought: *mut i32,
18533 ) -> windows_core::HRESULT {
18534 unsafe {
18535 let this: &Identity =
18536 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
18537 IMAPITable_Impl::SeekRow(
18538 this,
18539 core::mem::transmute_copy(&bkorigin),
18540 core::mem::transmute_copy(&lrowcount),
18541 core::mem::transmute_copy(&lplrowssought),
18542 )
18543 .into()
18544 }
18545 }
18546 unsafe extern "system" fn SeekRowApprox<Identity: IMAPITable_Impl, const OFFSET: isize>(
18547 this: *mut core::ffi::c_void,
18548 ulnumerator: u32,
18549 uldenominator: u32,
18550 ) -> windows_core::HRESULT {
18551 unsafe {
18552 let this: &Identity =
18553 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
18554 IMAPITable_Impl::SeekRowApprox(
18555 this,
18556 core::mem::transmute_copy(&ulnumerator),
18557 core::mem::transmute_copy(&uldenominator),
18558 )
18559 .into()
18560 }
18561 }
18562 unsafe extern "system" fn QueryPosition<Identity: IMAPITable_Impl, const OFFSET: isize>(
18563 this: *mut core::ffi::c_void,
18564 lpulrow: *mut u32,
18565 lpulnumerator: *mut u32,
18566 lpuldenominator: *mut u32,
18567 ) -> windows_core::HRESULT {
18568 unsafe {
18569 let this: &Identity =
18570 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
18571 IMAPITable_Impl::QueryPosition(
18572 this,
18573 core::mem::transmute_copy(&lpulrow),
18574 core::mem::transmute_copy(&lpulnumerator),
18575 core::mem::transmute_copy(&lpuldenominator),
18576 )
18577 .into()
18578 }
18579 }
18580 unsafe extern "system" fn FindRow<Identity: IMAPITable_Impl, const OFFSET: isize>(
18581 this: *mut core::ffi::c_void,
18582 lprestriction: *mut SRestriction,
18583 bkorigin: usize,
18584 ulflags: u32,
18585 ) -> windows_core::HRESULT {
18586 unsafe {
18587 let this: &Identity =
18588 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
18589 IMAPITable_Impl::FindRow(
18590 this,
18591 core::mem::transmute_copy(&lprestriction),
18592 core::mem::transmute_copy(&bkorigin),
18593 core::mem::transmute_copy(&ulflags),
18594 )
18595 .into()
18596 }
18597 }
18598 unsafe extern "system" fn Restrict<Identity: IMAPITable_Impl, const OFFSET: isize>(
18599 this: *mut core::ffi::c_void,
18600 lprestriction: *mut SRestriction,
18601 ulflags: u32,
18602 ) -> windows_core::HRESULT {
18603 unsafe {
18604 let this: &Identity =
18605 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
18606 IMAPITable_Impl::Restrict(
18607 this,
18608 core::mem::transmute_copy(&lprestriction),
18609 core::mem::transmute_copy(&ulflags),
18610 )
18611 .into()
18612 }
18613 }
18614 unsafe extern "system" fn CreateBookmark<Identity: IMAPITable_Impl, const OFFSET: isize>(
18615 this: *mut core::ffi::c_void,
18616 lpbkposition: *mut usize,
18617 ) -> windows_core::HRESULT {
18618 unsafe {
18619 let this: &Identity =
18620 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
18621 IMAPITable_Impl::CreateBookmark(this, core::mem::transmute_copy(&lpbkposition))
18622 .into()
18623 }
18624 }
18625 unsafe extern "system" fn FreeBookmark<Identity: IMAPITable_Impl, const OFFSET: isize>(
18626 this: *mut core::ffi::c_void,
18627 bkposition: usize,
18628 ) -> windows_core::HRESULT {
18629 unsafe {
18630 let this: &Identity =
18631 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
18632 IMAPITable_Impl::FreeBookmark(this, core::mem::transmute_copy(&bkposition)).into()
18633 }
18634 }
18635 unsafe extern "system" fn SortTable<Identity: IMAPITable_Impl, const OFFSET: isize>(
18636 this: *mut core::ffi::c_void,
18637 lpsortcriteria: *mut SSortOrderSet,
18638 ulflags: u32,
18639 ) -> windows_core::HRESULT {
18640 unsafe {
18641 let this: &Identity =
18642 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
18643 IMAPITable_Impl::SortTable(
18644 this,
18645 core::mem::transmute_copy(&lpsortcriteria),
18646 core::mem::transmute_copy(&ulflags),
18647 )
18648 .into()
18649 }
18650 }
18651 unsafe extern "system" fn QuerySortOrder<Identity: IMAPITable_Impl, const OFFSET: isize>(
18652 this: *mut core::ffi::c_void,
18653 lppsortcriteria: *mut *mut SSortOrderSet,
18654 ) -> windows_core::HRESULT {
18655 unsafe {
18656 let this: &Identity =
18657 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
18658 IMAPITable_Impl::QuerySortOrder(this, core::mem::transmute_copy(&lppsortcriteria))
18659 .into()
18660 }
18661 }
18662 unsafe extern "system" fn QueryRows<Identity: IMAPITable_Impl, const OFFSET: isize>(
18663 this: *mut core::ffi::c_void,
18664 lrowcount: i32,
18665 ulflags: u32,
18666 lpprows: *mut *mut SRowSet,
18667 ) -> windows_core::HRESULT {
18668 unsafe {
18669 let this: &Identity =
18670 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
18671 IMAPITable_Impl::QueryRows(
18672 this,
18673 core::mem::transmute_copy(&lrowcount),
18674 core::mem::transmute_copy(&ulflags),
18675 core::mem::transmute_copy(&lpprows),
18676 )
18677 .into()
18678 }
18679 }
18680 unsafe extern "system" fn Abort<Identity: IMAPITable_Impl, const OFFSET: isize>(
18681 this: *mut core::ffi::c_void,
18682 ) -> windows_core::HRESULT {
18683 unsafe {
18684 let this: &Identity =
18685 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
18686 IMAPITable_Impl::Abort(this).into()
18687 }
18688 }
18689 unsafe extern "system" fn ExpandRow<Identity: IMAPITable_Impl, const OFFSET: isize>(
18690 this: *mut core::ffi::c_void,
18691 cbinstancekey: u32,
18692 pbinstancekey: *mut u8,
18693 ulrowcount: u32,
18694 ulflags: u32,
18695 lpprows: *mut *mut SRowSet,
18696 lpulmorerows: *mut u32,
18697 ) -> windows_core::HRESULT {
18698 unsafe {
18699 let this: &Identity =
18700 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
18701 IMAPITable_Impl::ExpandRow(
18702 this,
18703 core::mem::transmute_copy(&cbinstancekey),
18704 core::mem::transmute_copy(&pbinstancekey),
18705 core::mem::transmute_copy(&ulrowcount),
18706 core::mem::transmute_copy(&ulflags),
18707 core::mem::transmute_copy(&lpprows),
18708 core::mem::transmute_copy(&lpulmorerows),
18709 )
18710 .into()
18711 }
18712 }
18713 unsafe extern "system" fn CollapseRow<Identity: IMAPITable_Impl, const OFFSET: isize>(
18714 this: *mut core::ffi::c_void,
18715 cbinstancekey: u32,
18716 pbinstancekey: *mut u8,
18717 ulflags: u32,
18718 lpulrowcount: *mut u32,
18719 ) -> windows_core::HRESULT {
18720 unsafe {
18721 let this: &Identity =
18722 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
18723 IMAPITable_Impl::CollapseRow(
18724 this,
18725 core::mem::transmute_copy(&cbinstancekey),
18726 core::mem::transmute_copy(&pbinstancekey),
18727 core::mem::transmute_copy(&ulflags),
18728 core::mem::transmute_copy(&lpulrowcount),
18729 )
18730 .into()
18731 }
18732 }
18733 unsafe extern "system" fn WaitForCompletion<
18734 Identity: IMAPITable_Impl,
18735 const OFFSET: isize,
18736 >(
18737 this: *mut core::ffi::c_void,
18738 ulflags: u32,
18739 ultimeout: u32,
18740 lpultablestatus: *mut u32,
18741 ) -> windows_core::HRESULT {
18742 unsafe {
18743 let this: &Identity =
18744 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
18745 IMAPITable_Impl::WaitForCompletion(
18746 this,
18747 core::mem::transmute_copy(&ulflags),
18748 core::mem::transmute_copy(&ultimeout),
18749 core::mem::transmute_copy(&lpultablestatus),
18750 )
18751 .into()
18752 }
18753 }
18754 unsafe extern "system" fn GetCollapseState<
18755 Identity: IMAPITable_Impl,
18756 const OFFSET: isize,
18757 >(
18758 this: *mut core::ffi::c_void,
18759 ulflags: u32,
18760 cbinstancekey: u32,
18761 lpbinstancekey: *mut u8,
18762 lpcbcollapsestate: *mut u32,
18763 lppbcollapsestate: *mut *mut u8,
18764 ) -> windows_core::HRESULT {
18765 unsafe {
18766 let this: &Identity =
18767 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
18768 IMAPITable_Impl::GetCollapseState(
18769 this,
18770 core::mem::transmute_copy(&ulflags),
18771 core::mem::transmute_copy(&cbinstancekey),
18772 core::mem::transmute_copy(&lpbinstancekey),
18773 core::mem::transmute_copy(&lpcbcollapsestate),
18774 core::mem::transmute_copy(&lppbcollapsestate),
18775 )
18776 .into()
18777 }
18778 }
18779 unsafe extern "system" fn SetCollapseState<
18780 Identity: IMAPITable_Impl,
18781 const OFFSET: isize,
18782 >(
18783 this: *mut core::ffi::c_void,
18784 ulflags: u32,
18785 cbcollapsestate: u32,
18786 pbcollapsestate: *mut u8,
18787 lpbklocation: *mut usize,
18788 ) -> windows_core::HRESULT {
18789 unsafe {
18790 let this: &Identity =
18791 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
18792 IMAPITable_Impl::SetCollapseState(
18793 this,
18794 core::mem::transmute_copy(&ulflags),
18795 core::mem::transmute_copy(&cbcollapsestate),
18796 core::mem::transmute_copy(&pbcollapsestate),
18797 core::mem::transmute_copy(&lpbklocation),
18798 )
18799 .into()
18800 }
18801 }
18802 Self {
18803 base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
18804 GetLastError: GetLastError::<Identity, OFFSET>,
18805 Advise: Advise::<Identity, OFFSET>,
18806 Unadvise: Unadvise::<Identity, OFFSET>,
18807 GetStatus: GetStatus::<Identity, OFFSET>,
18808 SetColumns: SetColumns::<Identity, OFFSET>,
18809 QueryColumns: QueryColumns::<Identity, OFFSET>,
18810 GetRowCount: GetRowCount::<Identity, OFFSET>,
18811 SeekRow: SeekRow::<Identity, OFFSET>,
18812 SeekRowApprox: SeekRowApprox::<Identity, OFFSET>,
18813 QueryPosition: QueryPosition::<Identity, OFFSET>,
18814 FindRow: FindRow::<Identity, OFFSET>,
18815 Restrict: Restrict::<Identity, OFFSET>,
18816 CreateBookmark: CreateBookmark::<Identity, OFFSET>,
18817 FreeBookmark: FreeBookmark::<Identity, OFFSET>,
18818 SortTable: SortTable::<Identity, OFFSET>,
18819 QuerySortOrder: QuerySortOrder::<Identity, OFFSET>,
18820 QueryRows: QueryRows::<Identity, OFFSET>,
18821 Abort: Abort::<Identity, OFFSET>,
18822 ExpandRow: ExpandRow::<Identity, OFFSET>,
18823 CollapseRow: CollapseRow::<Identity, OFFSET>,
18824 WaitForCompletion: WaitForCompletion::<Identity, OFFSET>,
18825 GetCollapseState: GetCollapseState::<Identity, OFFSET>,
18826 SetCollapseState: SetCollapseState::<Identity, OFFSET>,
18827 }
18828 }
18829 pub fn matches(iid: &windows_core::GUID) -> bool {
18830 iid == &<IMAPITable as windows_core::Interface>::IID
18831 }
18832}
18833impl windows_core::RuntimeName for IMAPITable {}
18834pub const IMAPITable_Abort: METHODS = METHODS(31i32);
18835pub const IMAPITable_Advise: METHODS = METHODS(15i32);
18836pub const IMAPITable_CollapseRow: METHODS = METHODS(33i32);
18837pub const IMAPITable_CreateBookmark: METHODS = METHODS(26i32);
18838pub const IMAPITable_ExpandRow: METHODS = METHODS(32i32);
18839pub const IMAPITable_FindRow: METHODS = METHODS(24i32);
18840pub const IMAPITable_FreeBookmark: METHODS = METHODS(27i32);
18841pub const IMAPITable_GetCollapseState: METHODS = METHODS(35i32);
18842pub const IMAPITable_GetLastError: METHODS = METHODS(14i32);
18843pub const IMAPITable_GetRowCount: METHODS = METHODS(20i32);
18844pub const IMAPITable_GetStatus: METHODS = METHODS(17i32);
18845pub const IMAPITable_QueryColumns: METHODS = METHODS(19i32);
18846pub const IMAPITable_QueryPosition: METHODS = METHODS(23i32);
18847pub const IMAPITable_QueryRows: METHODS = METHODS(30i32);
18848pub const IMAPITable_QuerySortOrder: METHODS = METHODS(29i32);
18849pub const IMAPITable_Restrict: METHODS = METHODS(25i32);
18850pub const IMAPITable_SeekRow: METHODS = METHODS(21i32);
18851pub const IMAPITable_SeekRowApprox: METHODS = METHODS(22i32);
18852pub const IMAPITable_SetCollapseState: METHODS = METHODS(36i32);
18853pub const IMAPITable_SetColumns: METHODS = METHODS(18i32);
18854pub const IMAPITable_SortTable: METHODS = METHODS(28i32);
18855pub const IMAPITable_Unadvise: METHODS = METHODS(16i32);
18856pub const IMAPITable_WaitForCompletion: METHODS = METHODS(34i32);
18857windows_core::imp::define_interface!(
18858 IMAPIViewAdviseSink,
18859 IMAPIViewAdviseSink_Vtbl,
18860 0x0002032b_0000_0000_c000_000000000046
18861);
18862windows_core::imp::interface_hierarchy!(IMAPIViewAdviseSink, windows_core::IUnknown);
18863impl IMAPIViewAdviseSink {
18864 pub unsafe fn OnShutdown(&self) -> windows_core::Result<()> {
18865 unsafe {
18866 (windows_core::Interface::vtable(self).OnShutdown)(windows_core::Interface::as_raw(
18867 self,
18868 ))
18869 .ok()
18870 }
18871 }
18872 pub unsafe fn OnNewMessage(&self) -> windows_core::Result<()> {
18873 unsafe {
18874 (windows_core::Interface::vtable(self).OnNewMessage)(windows_core::Interface::as_raw(
18875 self,
18876 ))
18877 .ok()
18878 }
18879 }
18880 pub unsafe fn OnPrint(
18881 &self,
18882 dwpagenumber: u32,
18883 hrstatus: windows_core::HRESULT,
18884 ) -> windows_core::Result<()> {
18885 unsafe {
18886 (windows_core::Interface::vtable(self).OnPrint)(
18887 windows_core::Interface::as_raw(self),
18888 dwpagenumber,
18889 hrstatus,
18890 )
18891 .ok()
18892 }
18893 }
18894 pub unsafe fn OnSubmitted(&self) -> windows_core::Result<()> {
18895 unsafe {
18896 (windows_core::Interface::vtable(self).OnSubmitted)(windows_core::Interface::as_raw(
18897 self,
18898 ))
18899 .ok()
18900 }
18901 }
18902 pub unsafe fn OnSaved(&self) -> windows_core::Result<()> {
18903 unsafe {
18904 (windows_core::Interface::vtable(self).OnSaved)(windows_core::Interface::as_raw(self))
18905 .ok()
18906 }
18907 }
18908}
18909#[repr(C)]
18910#[doc(hidden)]
18911pub struct IMAPIViewAdviseSink_Vtbl {
18912 pub base__: windows_core::IUnknown_Vtbl,
18913 pub OnShutdown: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
18914 pub OnNewMessage: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
18915 pub OnPrint: unsafe extern "system" fn(
18916 *mut core::ffi::c_void,
18917 u32,
18918 windows_core::HRESULT,
18919 ) -> windows_core::HRESULT,
18920 pub OnSubmitted: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
18921 pub OnSaved: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
18922}
18923pub trait IMAPIViewAdviseSink_Impl: windows_core::IUnknownImpl {
18924 fn OnShutdown(&self) -> windows_core::Result<()>;
18925 fn OnNewMessage(&self) -> windows_core::Result<()>;
18926 fn OnPrint(
18927 &self,
18928 dwpagenumber: u32,
18929 hrstatus: windows_core::HRESULT,
18930 ) -> windows_core::Result<()>;
18931 fn OnSubmitted(&self) -> windows_core::Result<()>;
18932 fn OnSaved(&self) -> windows_core::Result<()>;
18933}
18934impl IMAPIViewAdviseSink_Vtbl {
18935 pub const fn new<Identity: IMAPIViewAdviseSink_Impl, const OFFSET: isize>() -> Self {
18936 unsafe extern "system" fn OnShutdown<
18937 Identity: IMAPIViewAdviseSink_Impl,
18938 const OFFSET: isize,
18939 >(
18940 this: *mut core::ffi::c_void,
18941 ) -> windows_core::HRESULT {
18942 unsafe {
18943 let this: &Identity =
18944 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
18945 IMAPIViewAdviseSink_Impl::OnShutdown(this).into()
18946 }
18947 }
18948 unsafe extern "system" fn OnNewMessage<
18949 Identity: IMAPIViewAdviseSink_Impl,
18950 const OFFSET: isize,
18951 >(
18952 this: *mut core::ffi::c_void,
18953 ) -> windows_core::HRESULT {
18954 unsafe {
18955 let this: &Identity =
18956 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
18957 IMAPIViewAdviseSink_Impl::OnNewMessage(this).into()
18958 }
18959 }
18960 unsafe extern "system" fn OnPrint<
18961 Identity: IMAPIViewAdviseSink_Impl,
18962 const OFFSET: isize,
18963 >(
18964 this: *mut core::ffi::c_void,
18965 dwpagenumber: u32,
18966 hrstatus: windows_core::HRESULT,
18967 ) -> windows_core::HRESULT {
18968 unsafe {
18969 let this: &Identity =
18970 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
18971 IMAPIViewAdviseSink_Impl::OnPrint(
18972 this,
18973 core::mem::transmute_copy(&dwpagenumber),
18974 core::mem::transmute_copy(&hrstatus),
18975 )
18976 .into()
18977 }
18978 }
18979 unsafe extern "system" fn OnSubmitted<
18980 Identity: IMAPIViewAdviseSink_Impl,
18981 const OFFSET: isize,
18982 >(
18983 this: *mut core::ffi::c_void,
18984 ) -> windows_core::HRESULT {
18985 unsafe {
18986 let this: &Identity =
18987 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
18988 IMAPIViewAdviseSink_Impl::OnSubmitted(this).into()
18989 }
18990 }
18991 unsafe extern "system" fn OnSaved<
18992 Identity: IMAPIViewAdviseSink_Impl,
18993 const OFFSET: isize,
18994 >(
18995 this: *mut core::ffi::c_void,
18996 ) -> windows_core::HRESULT {
18997 unsafe {
18998 let this: &Identity =
18999 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
19000 IMAPIViewAdviseSink_Impl::OnSaved(this).into()
19001 }
19002 }
19003 Self {
19004 base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
19005 OnShutdown: OnShutdown::<Identity, OFFSET>,
19006 OnNewMessage: OnNewMessage::<Identity, OFFSET>,
19007 OnPrint: OnPrint::<Identity, OFFSET>,
19008 OnSubmitted: OnSubmitted::<Identity, OFFSET>,
19009 OnSaved: OnSaved::<Identity, OFFSET>,
19010 }
19011 }
19012 pub fn matches(iid: &windows_core::GUID) -> bool {
19013 iid == &<IMAPIViewAdviseSink as windows_core::Interface>::IID
19014 }
19015}
19016impl windows_core::RuntimeName for IMAPIViewAdviseSink {}
19017windows_core::imp::define_interface!(
19018 IMAPIViewContext,
19019 IMAPIViewContext_Vtbl,
19020 0x00020321_0000_0000_c000_000000000046
19021);
19022windows_core::imp::interface_hierarchy!(IMAPIViewContext, windows_core::IUnknown);
19023impl IMAPIViewContext {
19024 pub unsafe fn GetLastError(
19025 &self,
19026 hresult: windows_core::HRESULT,
19027 ulflags: u32,
19028 lppmapierror: *mut *mut MAPIERROR,
19029 ) -> windows_core::Result<()> {
19030 unsafe {
19031 (windows_core::Interface::vtable(self).GetLastError)(
19032 windows_core::Interface::as_raw(self),
19033 hresult,
19034 ulflags,
19035 lppmapierror as _,
19036 )
19037 .ok()
19038 }
19039 }
19040 pub unsafe fn SetAdviseSink<P0>(&self, pmvns: P0) -> windows_core::Result<()>
19041 where
19042 P0: windows_core::Param<IMAPIFormAdviseSink>,
19043 {
19044 unsafe {
19045 (windows_core::Interface::vtable(self).SetAdviseSink)(
19046 windows_core::Interface::as_raw(self),
19047 pmvns.param().abi(),
19048 )
19049 .ok()
19050 }
19051 }
19052 pub unsafe fn ActivateNext(
19053 &self,
19054 uldir: u32,
19055 prcposrect: *mut windows::Win32::Foundation::RECT,
19056 ) -> windows_core::Result<()> {
19057 unsafe {
19058 (windows_core::Interface::vtable(self).ActivateNext)(
19059 windows_core::Interface::as_raw(self),
19060 uldir,
19061 prcposrect as _,
19062 )
19063 .ok()
19064 }
19065 }
19066 pub unsafe fn GetPrintSetup(
19067 &self,
19068 ulflags: u32,
19069 lppformprintsetup: *mut *mut FORMPRINTSETUP,
19070 ) -> windows_core::Result<()> {
19071 unsafe {
19072 (windows_core::Interface::vtable(self).GetPrintSetup)(
19073 windows_core::Interface::as_raw(self),
19074 ulflags,
19075 lppformprintsetup as _,
19076 )
19077 .ok()
19078 }
19079 }
19080 pub unsafe fn GetSaveStream(
19081 &self,
19082 pulflags: *mut u32,
19083 pulformat: *mut u32,
19084 ppstm: *mut Option<windows::Win32::System::Com::IStream>,
19085 ) -> windows_core::Result<()> {
19086 unsafe {
19087 (windows_core::Interface::vtable(self).GetSaveStream)(
19088 windows_core::Interface::as_raw(self),
19089 pulflags as _,
19090 pulformat as _,
19091 core::mem::transmute(ppstm),
19092 )
19093 .ok()
19094 }
19095 }
19096 pub unsafe fn GetViewStatus(&self, lpulstatus: *mut u32) -> windows_core::Result<()> {
19097 unsafe {
19098 (windows_core::Interface::vtable(self).GetViewStatus)(
19099 windows_core::Interface::as_raw(self),
19100 lpulstatus as _,
19101 )
19102 .ok()
19103 }
19104 }
19105}
19106#[repr(C)]
19107#[doc(hidden)]
19108pub struct IMAPIViewContext_Vtbl {
19109 pub base__: windows_core::IUnknown_Vtbl,
19110 pub GetLastError: unsafe extern "system" fn(
19111 *mut core::ffi::c_void,
19112 windows_core::HRESULT,
19113 u32,
19114 *mut *mut MAPIERROR,
19115 ) -> windows_core::HRESULT,
19116 pub SetAdviseSink: unsafe extern "system" fn(
19117 *mut core::ffi::c_void,
19118 *mut core::ffi::c_void,
19119 ) -> windows_core::HRESULT,
19120 pub ActivateNext: unsafe extern "system" fn(
19121 *mut core::ffi::c_void,
19122 u32,
19123 *mut windows::Win32::Foundation::RECT,
19124 ) -> windows_core::HRESULT,
19125 pub GetPrintSetup: unsafe extern "system" fn(
19126 *mut core::ffi::c_void,
19127 u32,
19128 *mut *mut FORMPRINTSETUP,
19129 ) -> windows_core::HRESULT,
19130 pub GetSaveStream: unsafe extern "system" fn(
19131 *mut core::ffi::c_void,
19132 *mut u32,
19133 *mut u32,
19134 *mut *mut core::ffi::c_void,
19135 ) -> windows_core::HRESULT,
19136 pub GetViewStatus:
19137 unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
19138}
19139pub trait IMAPIViewContext_Impl: windows_core::IUnknownImpl {
19140 fn GetLastError(
19141 &self,
19142 hresult: windows_core::HRESULT,
19143 ulflags: u32,
19144 lppmapierror: *mut *mut MAPIERROR,
19145 ) -> windows_core::Result<()>;
19146 fn SetAdviseSink(
19147 &self,
19148 pmvns: windows_core::Ref<IMAPIFormAdviseSink>,
19149 ) -> windows_core::Result<()>;
19150 fn ActivateNext(
19151 &self,
19152 uldir: u32,
19153 prcposrect: *mut windows::Win32::Foundation::RECT,
19154 ) -> windows_core::Result<()>;
19155 fn GetPrintSetup(
19156 &self,
19157 ulflags: u32,
19158 lppformprintsetup: *mut *mut FORMPRINTSETUP,
19159 ) -> windows_core::Result<()>;
19160 fn GetSaveStream(
19161 &self,
19162 pulflags: *mut u32,
19163 pulformat: *mut u32,
19164 ppstm: windows_core::OutRef<windows::Win32::System::Com::IStream>,
19165 ) -> windows_core::Result<()>;
19166 fn GetViewStatus(&self, lpulstatus: *mut u32) -> windows_core::Result<()>;
19167}
19168impl IMAPIViewContext_Vtbl {
19169 pub const fn new<Identity: IMAPIViewContext_Impl, const OFFSET: isize>() -> Self {
19170 unsafe extern "system" fn GetLastError<
19171 Identity: IMAPIViewContext_Impl,
19172 const OFFSET: isize,
19173 >(
19174 this: *mut core::ffi::c_void,
19175 hresult: windows_core::HRESULT,
19176 ulflags: u32,
19177 lppmapierror: *mut *mut MAPIERROR,
19178 ) -> windows_core::HRESULT {
19179 unsafe {
19180 let this: &Identity =
19181 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
19182 IMAPIViewContext_Impl::GetLastError(
19183 this,
19184 core::mem::transmute_copy(&hresult),
19185 core::mem::transmute_copy(&ulflags),
19186 core::mem::transmute_copy(&lppmapierror),
19187 )
19188 .into()
19189 }
19190 }
19191 unsafe extern "system" fn SetAdviseSink<
19192 Identity: IMAPIViewContext_Impl,
19193 const OFFSET: isize,
19194 >(
19195 this: *mut core::ffi::c_void,
19196 pmvns: *mut core::ffi::c_void,
19197 ) -> windows_core::HRESULT {
19198 unsafe {
19199 let this: &Identity =
19200 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
19201 IMAPIViewContext_Impl::SetAdviseSink(this, core::mem::transmute_copy(&pmvns)).into()
19202 }
19203 }
19204 unsafe extern "system" fn ActivateNext<
19205 Identity: IMAPIViewContext_Impl,
19206 const OFFSET: isize,
19207 >(
19208 this: *mut core::ffi::c_void,
19209 uldir: u32,
19210 prcposrect: *mut windows::Win32::Foundation::RECT,
19211 ) -> windows_core::HRESULT {
19212 unsafe {
19213 let this: &Identity =
19214 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
19215 IMAPIViewContext_Impl::ActivateNext(
19216 this,
19217 core::mem::transmute_copy(&uldir),
19218 core::mem::transmute_copy(&prcposrect),
19219 )
19220 .into()
19221 }
19222 }
19223 unsafe extern "system" fn GetPrintSetup<
19224 Identity: IMAPIViewContext_Impl,
19225 const OFFSET: isize,
19226 >(
19227 this: *mut core::ffi::c_void,
19228 ulflags: u32,
19229 lppformprintsetup: *mut *mut FORMPRINTSETUP,
19230 ) -> windows_core::HRESULT {
19231 unsafe {
19232 let this: &Identity =
19233 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
19234 IMAPIViewContext_Impl::GetPrintSetup(
19235 this,
19236 core::mem::transmute_copy(&ulflags),
19237 core::mem::transmute_copy(&lppformprintsetup),
19238 )
19239 .into()
19240 }
19241 }
19242 unsafe extern "system" fn GetSaveStream<
19243 Identity: IMAPIViewContext_Impl,
19244 const OFFSET: isize,
19245 >(
19246 this: *mut core::ffi::c_void,
19247 pulflags: *mut u32,
19248 pulformat: *mut u32,
19249 ppstm: *mut *mut core::ffi::c_void,
19250 ) -> windows_core::HRESULT {
19251 unsafe {
19252 let this: &Identity =
19253 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
19254 IMAPIViewContext_Impl::GetSaveStream(
19255 this,
19256 core::mem::transmute_copy(&pulflags),
19257 core::mem::transmute_copy(&pulformat),
19258 core::mem::transmute_copy(&ppstm),
19259 )
19260 .into()
19261 }
19262 }
19263 unsafe extern "system" fn GetViewStatus<
19264 Identity: IMAPIViewContext_Impl,
19265 const OFFSET: isize,
19266 >(
19267 this: *mut core::ffi::c_void,
19268 lpulstatus: *mut u32,
19269 ) -> windows_core::HRESULT {
19270 unsafe {
19271 let this: &Identity =
19272 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
19273 IMAPIViewContext_Impl::GetViewStatus(this, core::mem::transmute_copy(&lpulstatus))
19274 .into()
19275 }
19276 }
19277 Self {
19278 base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
19279 GetLastError: GetLastError::<Identity, OFFSET>,
19280 SetAdviseSink: SetAdviseSink::<Identity, OFFSET>,
19281 ActivateNext: ActivateNext::<Identity, OFFSET>,
19282 GetPrintSetup: GetPrintSetup::<Identity, OFFSET>,
19283 GetSaveStream: GetSaveStream::<Identity, OFFSET>,
19284 GetViewStatus: GetViewStatus::<Identity, OFFSET>,
19285 }
19286 }
19287 pub fn matches(iid: &windows_core::GUID) -> bool {
19288 iid == &<IMAPIViewContext as windows_core::Interface>::IID
19289 }
19290}
19291impl windows_core::RuntimeName for IMAPIViewContext {}
19292pub const IMF_ATTACHMENTS: IMSGFLAGS = IMSGFLAGS(1i32);
19293pub const IMF_CSETTAGGED: IMSGFLAGS = IMSGFLAGS(8192i32);
19294pub const IMF_ENCRYPTED: IMSGFLAGS = IMSGFLAGS(256i32);
19295pub const IMF_HASVCARD: IMSGFLAGS = IMSGFLAGS(65536i32);
19296pub const IMF_HTML: IMSGFLAGS = IMSGFLAGS(16i32);
19297pub const IMF_MHTML: IMSGFLAGS = IMSGFLAGS(1024i32);
19298pub const IMF_MIME: IMSGFLAGS = IMSGFLAGS(8i32);
19299pub const IMF_MULTIPART: IMSGFLAGS = IMSGFLAGS(2i32);
19300pub const IMF_NEWS: IMSGFLAGS = IMSGFLAGS(16384i32);
19301pub const IMF_PARTIAL: IMSGFLAGS = IMSGFLAGS(64i32);
19302pub const IMF_PLAIN: IMSGFLAGS = IMSGFLAGS(32i32);
19303pub const IMF_RFC1154: IMSGFLAGS = IMSGFLAGS(131072i32);
19304pub const IMF_SECURE: IMSGFLAGS = IMSGFLAGS(2048i32);
19305pub const IMF_SIGNED: IMSGFLAGS = IMSGFLAGS(128i32);
19306pub const IMF_SUBMULTIPART: IMSGFLAGS = IMSGFLAGS(4i32);
19307pub const IMF_TEXT: IMSGFLAGS = IMSGFLAGS(4096i32);
19308pub const IMF_TNEF: IMSGFLAGS = IMSGFLAGS(512i32);
19309pub const IMF_VOICEMAIL: IMSGFLAGS = IMSGFLAGS(32768i32);
19310pub const IMPORTANCE_HIGH: u32 = 2u32;
19311pub const IMPORTANCE_LOW: u32 = 0u32;
19312pub const IMPORTANCE_NORMAL: u32 = 1u32;
19313windows_core::imp::define_interface!(
19314 IMSCapabilities,
19315 IMSCapabilities_Vtbl,
19316 0x00020393_0000_0000_c000_000000000046
19317);
19318windows_core::imp::interface_hierarchy!(IMSCapabilities, windows_core::IUnknown);
19319impl IMSCapabilities {
19320 pub unsafe fn GetCapabilities(&self, mscapselector: MSCAP_SELECTOR) -> u32 {
19321 unsafe {
19322 (windows_core::Interface::vtable(self).GetCapabilities)(
19323 windows_core::Interface::as_raw(self),
19324 mscapselector,
19325 )
19326 }
19327 }
19328}
19329#[repr(C)]
19330#[doc(hidden)]
19331pub struct IMSCapabilities_Vtbl {
19332 pub base__: windows_core::IUnknown_Vtbl,
19333 pub GetCapabilities: unsafe extern "system" fn(*mut core::ffi::c_void, MSCAP_SELECTOR) -> u32,
19334}
19335pub trait IMSCapabilities_Impl: windows_core::IUnknownImpl {
19336 fn GetCapabilities(&self, mscapselector: MSCAP_SELECTOR) -> u32;
19337}
19338impl IMSCapabilities_Vtbl {
19339 pub const fn new<Identity: IMSCapabilities_Impl, const OFFSET: isize>() -> Self {
19340 unsafe extern "system" fn GetCapabilities<
19341 Identity: IMSCapabilities_Impl,
19342 const OFFSET: isize,
19343 >(
19344 this: *mut core::ffi::c_void,
19345 mscapselector: MSCAP_SELECTOR,
19346 ) -> u32 {
19347 unsafe {
19348 let this: &Identity =
19349 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
19350 IMSCapabilities_Impl::GetCapabilities(
19351 this,
19352 core::mem::transmute_copy(&mscapselector),
19353 )
19354 }
19355 }
19356 Self {
19357 base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
19358 GetCapabilities: GetCapabilities::<Identity, OFFSET>,
19359 }
19360 }
19361 pub fn matches(iid: &windows_core::GUID) -> bool {
19362 iid == &<IMSCapabilities as windows_core::Interface>::IID
19363 }
19364}
19365impl windows_core::RuntimeName for IMSCapabilities {}
19366#[repr(transparent)]
19367#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
19368pub struct IMSGBODYTYPE(pub i32);
19369#[repr(transparent)]
19370#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
19371pub struct IMSGFLAGS(pub i32);
19372#[repr(transparent)]
19373#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
19374pub struct IMSGPRIORITY(pub i32);
19375pub const IMSG_NO_ISTG_COMMIT: u32 = 1u32;
19376pub const IMSG_PRI_HIGH: IMSGPRIORITY = IMSGPRIORITY(1i32);
19377pub const IMSG_PRI_LOW: IMSGPRIORITY = IMSGPRIORITY(5i32);
19378pub const IMSG_PRI_NORMAL: IMSGPRIORITY = IMSGPRIORITY(3i32);
19379windows_core::imp::define_interface!(
19380 IMSLogon,
19381 IMSLogon_Vtbl,
19382 0x00020313_0000_0000_c000_000000000046
19383);
19384windows_core::imp::interface_hierarchy!(IMSLogon, windows_core::IUnknown);
19385impl IMSLogon {
19386 pub unsafe fn GetLastError(
19387 &self,
19388 hresult: windows_core::HRESULT,
19389 ulflags: u32,
19390 lppmapierror: *mut *mut MAPIERROR,
19391 ) -> windows_core::Result<()> {
19392 unsafe {
19393 (windows_core::Interface::vtable(self).GetLastError)(
19394 windows_core::Interface::as_raw(self),
19395 hresult,
19396 ulflags,
19397 lppmapierror as _,
19398 )
19399 .ok()
19400 }
19401 }
19402 pub unsafe fn Logoff(&self, lpulflags: *mut u32) -> windows_core::Result<()> {
19403 unsafe {
19404 (windows_core::Interface::vtable(self).Logoff)(
19405 windows_core::Interface::as_raw(self),
19406 lpulflags as _,
19407 )
19408 .ok()
19409 }
19410 }
19411 pub unsafe fn OpenEntry(
19412 &self,
19413 cbentryid: u32,
19414 lpentryid: *mut ENTRYID,
19415 lpinterface: *mut windows_core::GUID,
19416 ulflags: u32,
19417 lpulobjtype: *mut u32,
19418 lppunk: *mut Option<windows_core::IUnknown>,
19419 ) -> windows_core::Result<()> {
19420 unsafe {
19421 (windows_core::Interface::vtable(self).OpenEntry)(
19422 windows_core::Interface::as_raw(self),
19423 cbentryid,
19424 lpentryid as _,
19425 lpinterface as _,
19426 ulflags,
19427 lpulobjtype as _,
19428 core::mem::transmute(lppunk),
19429 )
19430 .ok()
19431 }
19432 }
19433 pub unsafe fn CompareEntryIDs(
19434 &self,
19435 cbentryid1: u32,
19436 lpentryid1: *mut ENTRYID,
19437 cbentryid2: u32,
19438 lpentryid2: *mut ENTRYID,
19439 ulflags: u32,
19440 lpulresult: *mut u32,
19441 ) -> windows_core::Result<()> {
19442 unsafe {
19443 (windows_core::Interface::vtable(self).CompareEntryIDs)(
19444 windows_core::Interface::as_raw(self),
19445 cbentryid1,
19446 lpentryid1 as _,
19447 cbentryid2,
19448 lpentryid2 as _,
19449 ulflags,
19450 lpulresult as _,
19451 )
19452 .ok()
19453 }
19454 }
19455 pub unsafe fn Advise<P3>(
19456 &self,
19457 cbentryid: u32,
19458 lpentryid: *mut ENTRYID,
19459 uleventmask: u32,
19460 lpadvisesink: P3,
19461 lpulconnection: *mut usize,
19462 ) -> windows_core::Result<()>
19463 where
19464 P3: windows_core::Param<IMAPIAdviseSink>,
19465 {
19466 unsafe {
19467 (windows_core::Interface::vtable(self).Advise)(
19468 windows_core::Interface::as_raw(self),
19469 cbentryid,
19470 lpentryid as _,
19471 uleventmask,
19472 lpadvisesink.param().abi(),
19473 lpulconnection as _,
19474 )
19475 .ok()
19476 }
19477 }
19478 pub unsafe fn Unadvise(&self, ulconnection: usize) -> windows_core::Result<()> {
19479 unsafe {
19480 (windows_core::Interface::vtable(self).Unadvise)(
19481 windows_core::Interface::as_raw(self),
19482 ulconnection,
19483 )
19484 .ok()
19485 }
19486 }
19487 pub unsafe fn OpenStatusEntry(
19488 &self,
19489 lpinterface: *mut windows_core::GUID,
19490 ulflags: u32,
19491 lpulobjtype: *mut u32,
19492 lppentry: *mut *mut core::ffi::c_void,
19493 ) -> windows_core::Result<()> {
19494 unsafe {
19495 (windows_core::Interface::vtable(self).OpenStatusEntry)(
19496 windows_core::Interface::as_raw(self),
19497 lpinterface as _,
19498 ulflags,
19499 lpulobjtype as _,
19500 lppentry as _,
19501 )
19502 .ok()
19503 }
19504 }
19505}
19506#[repr(C)]
19507#[doc(hidden)]
19508pub struct IMSLogon_Vtbl {
19509 pub base__: windows_core::IUnknown_Vtbl,
19510 pub GetLastError: unsafe extern "system" fn(
19511 *mut core::ffi::c_void,
19512 windows_core::HRESULT,
19513 u32,
19514 *mut *mut MAPIERROR,
19515 ) -> windows_core::HRESULT,
19516 pub Logoff:
19517 unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
19518 pub OpenEntry: unsafe extern "system" fn(
19519 *mut core::ffi::c_void,
19520 u32,
19521 *mut ENTRYID,
19522 *mut windows_core::GUID,
19523 u32,
19524 *mut u32,
19525 *mut *mut core::ffi::c_void,
19526 ) -> windows_core::HRESULT,
19527 pub CompareEntryIDs: unsafe extern "system" fn(
19528 *mut core::ffi::c_void,
19529 u32,
19530 *mut ENTRYID,
19531 u32,
19532 *mut ENTRYID,
19533 u32,
19534 *mut u32,
19535 ) -> windows_core::HRESULT,
19536 pub Advise: unsafe extern "system" fn(
19537 *mut core::ffi::c_void,
19538 u32,
19539 *mut ENTRYID,
19540 u32,
19541 *mut core::ffi::c_void,
19542 *mut usize,
19543 ) -> windows_core::HRESULT,
19544 pub Unadvise: unsafe extern "system" fn(*mut core::ffi::c_void, usize) -> windows_core::HRESULT,
19545 pub OpenStatusEntry: unsafe extern "system" fn(
19546 *mut core::ffi::c_void,
19547 *mut windows_core::GUID,
19548 u32,
19549 *mut u32,
19550 *mut *mut core::ffi::c_void,
19551 ) -> windows_core::HRESULT,
19552}
19553pub trait IMSLogon_Impl: windows_core::IUnknownImpl {
19554 fn GetLastError(
19555 &self,
19556 hresult: windows_core::HRESULT,
19557 ulflags: u32,
19558 lppmapierror: *mut *mut MAPIERROR,
19559 ) -> windows_core::Result<()>;
19560 fn Logoff(&self, lpulflags: *mut u32) -> windows_core::Result<()>;
19561 fn OpenEntry(
19562 &self,
19563 cbentryid: u32,
19564 lpentryid: *mut ENTRYID,
19565 lpinterface: *mut windows_core::GUID,
19566 ulflags: u32,
19567 lpulobjtype: *mut u32,
19568 lppunk: windows_core::OutRef<windows_core::IUnknown>,
19569 ) -> windows_core::Result<()>;
19570 fn CompareEntryIDs(
19571 &self,
19572 cbentryid1: u32,
19573 lpentryid1: *mut ENTRYID,
19574 cbentryid2: u32,
19575 lpentryid2: *mut ENTRYID,
19576 ulflags: u32,
19577 lpulresult: *mut u32,
19578 ) -> windows_core::Result<()>;
19579 fn Advise(
19580 &self,
19581 cbentryid: u32,
19582 lpentryid: *mut ENTRYID,
19583 uleventmask: u32,
19584 lpadvisesink: windows_core::Ref<IMAPIAdviseSink>,
19585 lpulconnection: *mut usize,
19586 ) -> windows_core::Result<()>;
19587 fn Unadvise(&self, ulconnection: usize) -> windows_core::Result<()>;
19588 fn OpenStatusEntry(
19589 &self,
19590 lpinterface: *mut windows_core::GUID,
19591 ulflags: u32,
19592 lpulobjtype: *mut u32,
19593 lppentry: *mut *mut core::ffi::c_void,
19594 ) -> windows_core::Result<()>;
19595}
19596impl IMSLogon_Vtbl {
19597 pub const fn new<Identity: IMSLogon_Impl, const OFFSET: isize>() -> Self {
19598 unsafe extern "system" fn GetLastError<Identity: IMSLogon_Impl, const OFFSET: isize>(
19599 this: *mut core::ffi::c_void,
19600 hresult: windows_core::HRESULT,
19601 ulflags: u32,
19602 lppmapierror: *mut *mut MAPIERROR,
19603 ) -> windows_core::HRESULT {
19604 unsafe {
19605 let this: &Identity =
19606 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
19607 IMSLogon_Impl::GetLastError(
19608 this,
19609 core::mem::transmute_copy(&hresult),
19610 core::mem::transmute_copy(&ulflags),
19611 core::mem::transmute_copy(&lppmapierror),
19612 )
19613 .into()
19614 }
19615 }
19616 unsafe extern "system" fn Logoff<Identity: IMSLogon_Impl, const OFFSET: isize>(
19617 this: *mut core::ffi::c_void,
19618 lpulflags: *mut u32,
19619 ) -> windows_core::HRESULT {
19620 unsafe {
19621 let this: &Identity =
19622 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
19623 IMSLogon_Impl::Logoff(this, core::mem::transmute_copy(&lpulflags)).into()
19624 }
19625 }
19626 unsafe extern "system" fn OpenEntry<Identity: IMSLogon_Impl, const OFFSET: isize>(
19627 this: *mut core::ffi::c_void,
19628 cbentryid: u32,
19629 lpentryid: *mut ENTRYID,
19630 lpinterface: *mut windows_core::GUID,
19631 ulflags: u32,
19632 lpulobjtype: *mut u32,
19633 lppunk: *mut *mut core::ffi::c_void,
19634 ) -> windows_core::HRESULT {
19635 unsafe {
19636 let this: &Identity =
19637 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
19638 IMSLogon_Impl::OpenEntry(
19639 this,
19640 core::mem::transmute_copy(&cbentryid),
19641 core::mem::transmute_copy(&lpentryid),
19642 core::mem::transmute_copy(&lpinterface),
19643 core::mem::transmute_copy(&ulflags),
19644 core::mem::transmute_copy(&lpulobjtype),
19645 core::mem::transmute_copy(&lppunk),
19646 )
19647 .into()
19648 }
19649 }
19650 unsafe extern "system" fn CompareEntryIDs<Identity: IMSLogon_Impl, const OFFSET: isize>(
19651 this: *mut core::ffi::c_void,
19652 cbentryid1: u32,
19653 lpentryid1: *mut ENTRYID,
19654 cbentryid2: u32,
19655 lpentryid2: *mut ENTRYID,
19656 ulflags: u32,
19657 lpulresult: *mut u32,
19658 ) -> windows_core::HRESULT {
19659 unsafe {
19660 let this: &Identity =
19661 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
19662 IMSLogon_Impl::CompareEntryIDs(
19663 this,
19664 core::mem::transmute_copy(&cbentryid1),
19665 core::mem::transmute_copy(&lpentryid1),
19666 core::mem::transmute_copy(&cbentryid2),
19667 core::mem::transmute_copy(&lpentryid2),
19668 core::mem::transmute_copy(&ulflags),
19669 core::mem::transmute_copy(&lpulresult),
19670 )
19671 .into()
19672 }
19673 }
19674 unsafe extern "system" fn Advise<Identity: IMSLogon_Impl, const OFFSET: isize>(
19675 this: *mut core::ffi::c_void,
19676 cbentryid: u32,
19677 lpentryid: *mut ENTRYID,
19678 uleventmask: u32,
19679 lpadvisesink: *mut core::ffi::c_void,
19680 lpulconnection: *mut usize,
19681 ) -> windows_core::HRESULT {
19682 unsafe {
19683 let this: &Identity =
19684 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
19685 IMSLogon_Impl::Advise(
19686 this,
19687 core::mem::transmute_copy(&cbentryid),
19688 core::mem::transmute_copy(&lpentryid),
19689 core::mem::transmute_copy(&uleventmask),
19690 core::mem::transmute_copy(&lpadvisesink),
19691 core::mem::transmute_copy(&lpulconnection),
19692 )
19693 .into()
19694 }
19695 }
19696 unsafe extern "system" fn Unadvise<Identity: IMSLogon_Impl, const OFFSET: isize>(
19697 this: *mut core::ffi::c_void,
19698 ulconnection: usize,
19699 ) -> windows_core::HRESULT {
19700 unsafe {
19701 let this: &Identity =
19702 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
19703 IMSLogon_Impl::Unadvise(this, core::mem::transmute_copy(&ulconnection)).into()
19704 }
19705 }
19706 unsafe extern "system" fn OpenStatusEntry<Identity: IMSLogon_Impl, const OFFSET: isize>(
19707 this: *mut core::ffi::c_void,
19708 lpinterface: *mut windows_core::GUID,
19709 ulflags: u32,
19710 lpulobjtype: *mut u32,
19711 lppentry: *mut *mut core::ffi::c_void,
19712 ) -> windows_core::HRESULT {
19713 unsafe {
19714 let this: &Identity =
19715 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
19716 IMSLogon_Impl::OpenStatusEntry(
19717 this,
19718 core::mem::transmute_copy(&lpinterface),
19719 core::mem::transmute_copy(&ulflags),
19720 core::mem::transmute_copy(&lpulobjtype),
19721 core::mem::transmute_copy(&lppentry),
19722 )
19723 .into()
19724 }
19725 }
19726 Self {
19727 base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
19728 GetLastError: GetLastError::<Identity, OFFSET>,
19729 Logoff: Logoff::<Identity, OFFSET>,
19730 OpenEntry: OpenEntry::<Identity, OFFSET>,
19731 CompareEntryIDs: CompareEntryIDs::<Identity, OFFSET>,
19732 Advise: Advise::<Identity, OFFSET>,
19733 Unadvise: Unadvise::<Identity, OFFSET>,
19734 OpenStatusEntry: OpenStatusEntry::<Identity, OFFSET>,
19735 }
19736 }
19737 pub fn matches(iid: &windows_core::GUID) -> bool {
19738 iid == &<IMSLogon as windows_core::Interface>::IID
19739 }
19740}
19741impl windows_core::RuntimeName for IMSLogon {}
19742pub const IMSLogon_Advise: METHODS = METHODS(116i32);
19743pub const IMSLogon_CompareEntryIDs: METHODS = METHODS(115i32);
19744pub const IMSLogon_GetLastError: METHODS = METHODS(112i32);
19745pub const IMSLogon_Logoff: METHODS = METHODS(113i32);
19746pub const IMSLogon_OpenEntry: METHODS = METHODS(114i32);
19747pub const IMSLogon_OpenStatusEntry: METHODS = METHODS(118i32);
19748pub const IMSLogon_Unadvise: METHODS = METHODS(117i32);
19749windows_core::imp::define_interface!(
19750 IMSProvider,
19751 IMSProvider_Vtbl,
19752 0x00020310_0000_0000_c000_000000000046
19753);
19754windows_core::imp::interface_hierarchy!(IMSProvider, windows_core::IUnknown);
19755impl IMSProvider {
19756 pub unsafe fn Shutdown(&self, lpulflags: *mut u32) -> windows_core::Result<()> {
19757 unsafe {
19758 (windows_core::Interface::vtable(self).Shutdown)(
19759 windows_core::Interface::as_raw(self),
19760 lpulflags as _,
19761 )
19762 .ok()
19763 }
19764 }
19765 pub unsafe fn Logon<P0>(
19766 &self,
19767 lpmapisup: P0,
19768 uluiparam: usize,
19769 lpszprofilename: *mut i8,
19770 cbentryid: u32,
19771 lpentryid: *mut ENTRYID,
19772 ulflags: u32,
19773 lpinterface: *mut windows_core::GUID,
19774 lpcbspoolsecurity: *mut u32,
19775 lppbspoolsecurity: *mut *mut u8,
19776 lppmapierror: *mut *mut MAPIERROR,
19777 lppmslogon: *mut Option<IMSLogon>,
19778 lppmdb: *mut Option<IMsgStore>,
19779 ) -> windows_core::Result<()>
19780 where
19781 P0: windows_core::Param<IMAPISupport>,
19782 {
19783 unsafe {
19784 (windows_core::Interface::vtable(self).Logon)(
19785 windows_core::Interface::as_raw(self),
19786 lpmapisup.param().abi(),
19787 uluiparam,
19788 lpszprofilename as _,
19789 cbentryid,
19790 lpentryid as _,
19791 ulflags,
19792 lpinterface as _,
19793 lpcbspoolsecurity as _,
19794 lppbspoolsecurity as _,
19795 lppmapierror as _,
19796 core::mem::transmute(lppmslogon),
19797 core::mem::transmute(lppmdb),
19798 )
19799 .ok()
19800 }
19801 }
19802 pub unsafe fn SpoolerLogon<P0>(
19803 &self,
19804 lpmapisup: P0,
19805 uluiparam: usize,
19806 lpszprofilename: *mut i8,
19807 cbentryid: u32,
19808 lpentryid: *mut ENTRYID,
19809 ulflags: u32,
19810 lpinterface: *mut windows_core::GUID,
19811 cbspoolsecurity: u32,
19812 lpbspoolsecurity: *mut u8,
19813 lppmapierror: *mut *mut MAPIERROR,
19814 lppmslogon: *mut Option<IMSLogon>,
19815 lppmdb: *mut Option<IMsgStore>,
19816 ) -> windows_core::Result<()>
19817 where
19818 P0: windows_core::Param<IMAPISupport>,
19819 {
19820 unsafe {
19821 (windows_core::Interface::vtable(self).SpoolerLogon)(
19822 windows_core::Interface::as_raw(self),
19823 lpmapisup.param().abi(),
19824 uluiparam,
19825 lpszprofilename as _,
19826 cbentryid,
19827 lpentryid as _,
19828 ulflags,
19829 lpinterface as _,
19830 cbspoolsecurity,
19831 lpbspoolsecurity as _,
19832 lppmapierror as _,
19833 core::mem::transmute(lppmslogon),
19834 core::mem::transmute(lppmdb),
19835 )
19836 .ok()
19837 }
19838 }
19839 pub unsafe fn CompareStoreIDs(
19840 &self,
19841 cbentryid1: u32,
19842 lpentryid1: *mut ENTRYID,
19843 cbentryid2: u32,
19844 lpentryid2: *mut ENTRYID,
19845 ulflags: u32,
19846 lpulresult: *mut u32,
19847 ) -> windows_core::Result<()> {
19848 unsafe {
19849 (windows_core::Interface::vtable(self).CompareStoreIDs)(
19850 windows_core::Interface::as_raw(self),
19851 cbentryid1,
19852 lpentryid1 as _,
19853 cbentryid2,
19854 lpentryid2 as _,
19855 ulflags,
19856 lpulresult as _,
19857 )
19858 .ok()
19859 }
19860 }
19861}
19862#[repr(C)]
19863#[doc(hidden)]
19864pub struct IMSProvider_Vtbl {
19865 pub base__: windows_core::IUnknown_Vtbl,
19866 pub Shutdown:
19867 unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
19868 pub Logon: unsafe extern "system" fn(
19869 *mut core::ffi::c_void,
19870 *mut core::ffi::c_void,
19871 usize,
19872 *mut i8,
19873 u32,
19874 *mut ENTRYID,
19875 u32,
19876 *mut windows_core::GUID,
19877 *mut u32,
19878 *mut *mut u8,
19879 *mut *mut MAPIERROR,
19880 *mut *mut core::ffi::c_void,
19881 *mut *mut core::ffi::c_void,
19882 ) -> windows_core::HRESULT,
19883 pub SpoolerLogon: unsafe extern "system" fn(
19884 *mut core::ffi::c_void,
19885 *mut core::ffi::c_void,
19886 usize,
19887 *mut i8,
19888 u32,
19889 *mut ENTRYID,
19890 u32,
19891 *mut windows_core::GUID,
19892 u32,
19893 *mut u8,
19894 *mut *mut MAPIERROR,
19895 *mut *mut core::ffi::c_void,
19896 *mut *mut core::ffi::c_void,
19897 ) -> windows_core::HRESULT,
19898 pub CompareStoreIDs: unsafe extern "system" fn(
19899 *mut core::ffi::c_void,
19900 u32,
19901 *mut ENTRYID,
19902 u32,
19903 *mut ENTRYID,
19904 u32,
19905 *mut u32,
19906 ) -> windows_core::HRESULT,
19907}
19908pub trait IMSProvider_Impl: windows_core::IUnknownImpl {
19909 fn Shutdown(&self, lpulflags: *mut u32) -> windows_core::Result<()>;
19910 fn Logon(
19911 &self,
19912 lpmapisup: windows_core::Ref<IMAPISupport>,
19913 uluiparam: usize,
19914 lpszprofilename: *mut i8,
19915 cbentryid: u32,
19916 lpentryid: *mut ENTRYID,
19917 ulflags: u32,
19918 lpinterface: *mut windows_core::GUID,
19919 lpcbspoolsecurity: *mut u32,
19920 lppbspoolsecurity: *mut *mut u8,
19921 lppmapierror: *mut *mut MAPIERROR,
19922 lppmslogon: windows_core::OutRef<IMSLogon>,
19923 lppmdb: windows_core::OutRef<IMsgStore>,
19924 ) -> windows_core::Result<()>;
19925 fn SpoolerLogon(
19926 &self,
19927 lpmapisup: windows_core::Ref<IMAPISupport>,
19928 uluiparam: usize,
19929 lpszprofilename: *mut i8,
19930 cbentryid: u32,
19931 lpentryid: *mut ENTRYID,
19932 ulflags: u32,
19933 lpinterface: *mut windows_core::GUID,
19934 cbspoolsecurity: u32,
19935 lpbspoolsecurity: *mut u8,
19936 lppmapierror: *mut *mut MAPIERROR,
19937 lppmslogon: windows_core::OutRef<IMSLogon>,
19938 lppmdb: windows_core::OutRef<IMsgStore>,
19939 ) -> windows_core::Result<()>;
19940 fn CompareStoreIDs(
19941 &self,
19942 cbentryid1: u32,
19943 lpentryid1: *mut ENTRYID,
19944 cbentryid2: u32,
19945 lpentryid2: *mut ENTRYID,
19946 ulflags: u32,
19947 lpulresult: *mut u32,
19948 ) -> windows_core::Result<()>;
19949}
19950impl IMSProvider_Vtbl {
19951 pub const fn new<Identity: IMSProvider_Impl, const OFFSET: isize>() -> Self {
19952 unsafe extern "system" fn Shutdown<Identity: IMSProvider_Impl, const OFFSET: isize>(
19953 this: *mut core::ffi::c_void,
19954 lpulflags: *mut u32,
19955 ) -> windows_core::HRESULT {
19956 unsafe {
19957 let this: &Identity =
19958 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
19959 IMSProvider_Impl::Shutdown(this, core::mem::transmute_copy(&lpulflags)).into()
19960 }
19961 }
19962 unsafe extern "system" fn Logon<Identity: IMSProvider_Impl, const OFFSET: isize>(
19963 this: *mut core::ffi::c_void,
19964 lpmapisup: *mut core::ffi::c_void,
19965 uluiparam: usize,
19966 lpszprofilename: *mut i8,
19967 cbentryid: u32,
19968 lpentryid: *mut ENTRYID,
19969 ulflags: u32,
19970 lpinterface: *mut windows_core::GUID,
19971 lpcbspoolsecurity: *mut u32,
19972 lppbspoolsecurity: *mut *mut u8,
19973 lppmapierror: *mut *mut MAPIERROR,
19974 lppmslogon: *mut *mut core::ffi::c_void,
19975 lppmdb: *mut *mut core::ffi::c_void,
19976 ) -> windows_core::HRESULT {
19977 unsafe {
19978 let this: &Identity =
19979 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
19980 IMSProvider_Impl::Logon(
19981 this,
19982 core::mem::transmute_copy(&lpmapisup),
19983 core::mem::transmute_copy(&uluiparam),
19984 core::mem::transmute_copy(&lpszprofilename),
19985 core::mem::transmute_copy(&cbentryid),
19986 core::mem::transmute_copy(&lpentryid),
19987 core::mem::transmute_copy(&ulflags),
19988 core::mem::transmute_copy(&lpinterface),
19989 core::mem::transmute_copy(&lpcbspoolsecurity),
19990 core::mem::transmute_copy(&lppbspoolsecurity),
19991 core::mem::transmute_copy(&lppmapierror),
19992 core::mem::transmute_copy(&lppmslogon),
19993 core::mem::transmute_copy(&lppmdb),
19994 )
19995 .into()
19996 }
19997 }
19998 unsafe extern "system" fn SpoolerLogon<Identity: IMSProvider_Impl, const OFFSET: isize>(
19999 this: *mut core::ffi::c_void,
20000 lpmapisup: *mut core::ffi::c_void,
20001 uluiparam: usize,
20002 lpszprofilename: *mut i8,
20003 cbentryid: u32,
20004 lpentryid: *mut ENTRYID,
20005 ulflags: u32,
20006 lpinterface: *mut windows_core::GUID,
20007 cbspoolsecurity: u32,
20008 lpbspoolsecurity: *mut u8,
20009 lppmapierror: *mut *mut MAPIERROR,
20010 lppmslogon: *mut *mut core::ffi::c_void,
20011 lppmdb: *mut *mut core::ffi::c_void,
20012 ) -> windows_core::HRESULT {
20013 unsafe {
20014 let this: &Identity =
20015 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
20016 IMSProvider_Impl::SpoolerLogon(
20017 this,
20018 core::mem::transmute_copy(&lpmapisup),
20019 core::mem::transmute_copy(&uluiparam),
20020 core::mem::transmute_copy(&lpszprofilename),
20021 core::mem::transmute_copy(&cbentryid),
20022 core::mem::transmute_copy(&lpentryid),
20023 core::mem::transmute_copy(&ulflags),
20024 core::mem::transmute_copy(&lpinterface),
20025 core::mem::transmute_copy(&cbspoolsecurity),
20026 core::mem::transmute_copy(&lpbspoolsecurity),
20027 core::mem::transmute_copy(&lppmapierror),
20028 core::mem::transmute_copy(&lppmslogon),
20029 core::mem::transmute_copy(&lppmdb),
20030 )
20031 .into()
20032 }
20033 }
20034 unsafe extern "system" fn CompareStoreIDs<
20035 Identity: IMSProvider_Impl,
20036 const OFFSET: isize,
20037 >(
20038 this: *mut core::ffi::c_void,
20039 cbentryid1: u32,
20040 lpentryid1: *mut ENTRYID,
20041 cbentryid2: u32,
20042 lpentryid2: *mut ENTRYID,
20043 ulflags: u32,
20044 lpulresult: *mut u32,
20045 ) -> windows_core::HRESULT {
20046 unsafe {
20047 let this: &Identity =
20048 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
20049 IMSProvider_Impl::CompareStoreIDs(
20050 this,
20051 core::mem::transmute_copy(&cbentryid1),
20052 core::mem::transmute_copy(&lpentryid1),
20053 core::mem::transmute_copy(&cbentryid2),
20054 core::mem::transmute_copy(&lpentryid2),
20055 core::mem::transmute_copy(&ulflags),
20056 core::mem::transmute_copy(&lpulresult),
20057 )
20058 .into()
20059 }
20060 }
20061 Self {
20062 base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
20063 Shutdown: Shutdown::<Identity, OFFSET>,
20064 Logon: Logon::<Identity, OFFSET>,
20065 SpoolerLogon: SpoolerLogon::<Identity, OFFSET>,
20066 CompareStoreIDs: CompareStoreIDs::<Identity, OFFSET>,
20067 }
20068 }
20069 pub fn matches(iid: &windows_core::GUID) -> bool {
20070 iid == &<IMSProvider as windows_core::Interface>::IID
20071 }
20072}
20073impl windows_core::RuntimeName for IMSProvider {}
20074pub const IMSProvider_CompareStoreIDs: METHODS = METHODS(111i32);
20075pub const IMSProvider_Logon: METHODS = METHODS(109i32);
20076pub const IMSProvider_Shutdown: METHODS = METHODS(108i32);
20077pub const IMSProvider_SpoolerLogon: METHODS = METHODS(110i32);
20078windows_core::imp::define_interface!(
20079 IMailUser,
20080 IMailUser_Vtbl,
20081 0x0002030a_0000_0000_c000_000000000046
20082);
20083impl core::ops::Deref for IMailUser {
20084 type Target = IMAPIProp;
20085 fn deref(&self) -> &Self::Target {
20086 unsafe { core::mem::transmute(self) }
20087 }
20088}
20089windows_core::imp::interface_hierarchy!(IMailUser, windows_core::IUnknown, IMAPIProp);
20090#[repr(C)]
20091#[doc(hidden)]
20092pub struct IMailUser_Vtbl {
20093 pub base__: IMAPIProp_Vtbl,
20094}
20095pub trait IMailUser_Impl: IMAPIProp_Impl {}
20096impl IMailUser_Vtbl {
20097 pub const fn new<Identity: IMailUser_Impl, const OFFSET: isize>() -> Self {
20098 Self {
20099 base__: IMAPIProp_Vtbl::new::<Identity, OFFSET>(),
20100 }
20101 }
20102 pub fn matches(iid: &windows_core::GUID) -> bool {
20103 iid == &<IMailUser as windows_core::Interface>::IID
20104 || iid == &<IMAPIProp as windows_core::Interface>::IID
20105 }
20106}
20107impl windows_core::RuntimeName for IMailUser {}
20108windows_core::imp::define_interface!(
20109 IMessage,
20110 IMessage_Vtbl,
20111 0x00020307_0000_0000_c000_000000000046
20112);
20113impl core::ops::Deref for IMessage {
20114 type Target = IMAPIProp;
20115 fn deref(&self) -> &Self::Target {
20116 unsafe { core::mem::transmute(self) }
20117 }
20118}
20119windows_core::imp::interface_hierarchy!(IMessage, windows_core::IUnknown, IMAPIProp);
20120impl IMessage {
20121 pub unsafe fn GetAttachmentTable(&self, ulflags: u32) -> windows_core::Result<IMAPITable> {
20122 unsafe {
20123 let mut result__ = core::mem::zeroed();
20124 (windows_core::Interface::vtable(self).GetAttachmentTable)(
20125 windows_core::Interface::as_raw(self),
20126 ulflags,
20127 &mut result__,
20128 )
20129 .and_then(|| windows_core::Type::from_abi(result__))
20130 }
20131 }
20132 pub unsafe fn OpenAttach(
20133 &self,
20134 ulattachmentnum: u32,
20135 lpinterface: *mut windows_core::GUID,
20136 ulflags: u32,
20137 lppattach: *mut Option<IAttach>,
20138 ) -> windows_core::Result<()> {
20139 unsafe {
20140 (windows_core::Interface::vtable(self).OpenAttach)(
20141 windows_core::Interface::as_raw(self),
20142 ulattachmentnum,
20143 lpinterface as _,
20144 ulflags,
20145 core::mem::transmute(lppattach),
20146 )
20147 .ok()
20148 }
20149 }
20150 pub unsafe fn CreateAttach(
20151 &self,
20152 lpinterface: *mut windows_core::GUID,
20153 ulflags: u32,
20154 lpulattachmentnum: *mut u32,
20155 lppattach: *mut Option<IAttach>,
20156 ) -> windows_core::Result<()> {
20157 unsafe {
20158 (windows_core::Interface::vtable(self).CreateAttach)(
20159 windows_core::Interface::as_raw(self),
20160 lpinterface as _,
20161 ulflags,
20162 lpulattachmentnum as _,
20163 core::mem::transmute(lppattach),
20164 )
20165 .ok()
20166 }
20167 }
20168 pub unsafe fn DeleteAttach<P2>(
20169 &self,
20170 ulattachmentnum: u32,
20171 uluiparam: usize,
20172 lpprogress: P2,
20173 ulflags: u32,
20174 ) -> windows_core::Result<()>
20175 where
20176 P2: windows_core::Param<IMAPIProgress>,
20177 {
20178 unsafe {
20179 (windows_core::Interface::vtable(self).DeleteAttach)(
20180 windows_core::Interface::as_raw(self),
20181 ulattachmentnum,
20182 uluiparam,
20183 lpprogress.param().abi(),
20184 ulflags,
20185 )
20186 .ok()
20187 }
20188 }
20189 pub unsafe fn GetRecipientTable(&self, ulflags: u32) -> windows_core::Result<IMAPITable> {
20190 unsafe {
20191 let mut result__ = core::mem::zeroed();
20192 (windows_core::Interface::vtable(self).GetRecipientTable)(
20193 windows_core::Interface::as_raw(self),
20194 ulflags,
20195 &mut result__,
20196 )
20197 .and_then(|| windows_core::Type::from_abi(result__))
20198 }
20199 }
20200 pub unsafe fn ModifyRecipients(
20201 &self,
20202 ulflags: u32,
20203 lpmods: *mut ADRLIST,
20204 ) -> windows_core::Result<()> {
20205 unsafe {
20206 (windows_core::Interface::vtable(self).ModifyRecipients)(
20207 windows_core::Interface::as_raw(self),
20208 ulflags,
20209 lpmods as _,
20210 )
20211 .ok()
20212 }
20213 }
20214 pub unsafe fn SubmitMessage(&self, ulflags: u32) -> windows_core::Result<()> {
20215 unsafe {
20216 (windows_core::Interface::vtable(self).SubmitMessage)(
20217 windows_core::Interface::as_raw(self),
20218 ulflags,
20219 )
20220 .ok()
20221 }
20222 }
20223 pub unsafe fn SetReadFlag(&self, ulflags: u32) -> windows_core::Result<()> {
20224 unsafe {
20225 (windows_core::Interface::vtable(self).SetReadFlag)(
20226 windows_core::Interface::as_raw(self),
20227 ulflags,
20228 )
20229 .ok()
20230 }
20231 }
20232}
20233#[repr(C)]
20234#[doc(hidden)]
20235pub struct IMessage_Vtbl {
20236 pub base__: IMAPIProp_Vtbl,
20237 pub GetAttachmentTable: unsafe extern "system" fn(
20238 *mut core::ffi::c_void,
20239 u32,
20240 *mut *mut core::ffi::c_void,
20241 ) -> windows_core::HRESULT,
20242 pub OpenAttach: unsafe extern "system" fn(
20243 *mut core::ffi::c_void,
20244 u32,
20245 *mut windows_core::GUID,
20246 u32,
20247 *mut *mut core::ffi::c_void,
20248 ) -> windows_core::HRESULT,
20249 pub CreateAttach: unsafe extern "system" fn(
20250 *mut core::ffi::c_void,
20251 *mut windows_core::GUID,
20252 u32,
20253 *mut u32,
20254 *mut *mut core::ffi::c_void,
20255 ) -> windows_core::HRESULT,
20256 pub DeleteAttach: unsafe extern "system" fn(
20257 *mut core::ffi::c_void,
20258 u32,
20259 usize,
20260 *mut core::ffi::c_void,
20261 u32,
20262 ) -> windows_core::HRESULT,
20263 pub GetRecipientTable: unsafe extern "system" fn(
20264 *mut core::ffi::c_void,
20265 u32,
20266 *mut *mut core::ffi::c_void,
20267 ) -> windows_core::HRESULT,
20268 pub ModifyRecipients: unsafe extern "system" fn(
20269 *mut core::ffi::c_void,
20270 u32,
20271 *mut ADRLIST,
20272 ) -> windows_core::HRESULT,
20273 pub SubmitMessage:
20274 unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
20275 pub SetReadFlag:
20276 unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
20277}
20278pub trait IMessage_Impl: IMAPIProp_Impl {
20279 fn GetAttachmentTable(&self, ulflags: u32) -> windows_core::Result<IMAPITable>;
20280 fn OpenAttach(
20281 &self,
20282 ulattachmentnum: u32,
20283 lpinterface: *mut windows_core::GUID,
20284 ulflags: u32,
20285 lppattach: windows_core::OutRef<IAttach>,
20286 ) -> windows_core::Result<()>;
20287 fn CreateAttach(
20288 &self,
20289 lpinterface: *mut windows_core::GUID,
20290 ulflags: u32,
20291 lpulattachmentnum: *mut u32,
20292 lppattach: windows_core::OutRef<IAttach>,
20293 ) -> windows_core::Result<()>;
20294 fn DeleteAttach(
20295 &self,
20296 ulattachmentnum: u32,
20297 uluiparam: usize,
20298 lpprogress: windows_core::Ref<IMAPIProgress>,
20299 ulflags: u32,
20300 ) -> windows_core::Result<()>;
20301 fn GetRecipientTable(&self, ulflags: u32) -> windows_core::Result<IMAPITable>;
20302 fn ModifyRecipients(&self, ulflags: u32, lpmods: *mut ADRLIST) -> windows_core::Result<()>;
20303 fn SubmitMessage(&self, ulflags: u32) -> windows_core::Result<()>;
20304 fn SetReadFlag(&self, ulflags: u32) -> windows_core::Result<()>;
20305}
20306impl IMessage_Vtbl {
20307 pub const fn new<Identity: IMessage_Impl, const OFFSET: isize>() -> Self {
20308 unsafe extern "system" fn GetAttachmentTable<
20309 Identity: IMessage_Impl,
20310 const OFFSET: isize,
20311 >(
20312 this: *mut core::ffi::c_void,
20313 ulflags: u32,
20314 lpptable: *mut *mut core::ffi::c_void,
20315 ) -> windows_core::HRESULT {
20316 unsafe {
20317 let this: &Identity =
20318 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
20319 match IMessage_Impl::GetAttachmentTable(this, core::mem::transmute_copy(&ulflags)) {
20320 Ok(ok__) => {
20321 lpptable.write(core::mem::transmute(ok__));
20322 windows_core::HRESULT(0)
20323 }
20324 Err(err) => err.into(),
20325 }
20326 }
20327 }
20328 unsafe extern "system" fn OpenAttach<Identity: IMessage_Impl, const OFFSET: isize>(
20329 this: *mut core::ffi::c_void,
20330 ulattachmentnum: u32,
20331 lpinterface: *mut windows_core::GUID,
20332 ulflags: u32,
20333 lppattach: *mut *mut core::ffi::c_void,
20334 ) -> windows_core::HRESULT {
20335 unsafe {
20336 let this: &Identity =
20337 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
20338 IMessage_Impl::OpenAttach(
20339 this,
20340 core::mem::transmute_copy(&ulattachmentnum),
20341 core::mem::transmute_copy(&lpinterface),
20342 core::mem::transmute_copy(&ulflags),
20343 core::mem::transmute_copy(&lppattach),
20344 )
20345 .into()
20346 }
20347 }
20348 unsafe extern "system" fn CreateAttach<Identity: IMessage_Impl, const OFFSET: isize>(
20349 this: *mut core::ffi::c_void,
20350 lpinterface: *mut windows_core::GUID,
20351 ulflags: u32,
20352 lpulattachmentnum: *mut u32,
20353 lppattach: *mut *mut core::ffi::c_void,
20354 ) -> windows_core::HRESULT {
20355 unsafe {
20356 let this: &Identity =
20357 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
20358 IMessage_Impl::CreateAttach(
20359 this,
20360 core::mem::transmute_copy(&lpinterface),
20361 core::mem::transmute_copy(&ulflags),
20362 core::mem::transmute_copy(&lpulattachmentnum),
20363 core::mem::transmute_copy(&lppattach),
20364 )
20365 .into()
20366 }
20367 }
20368 unsafe extern "system" fn DeleteAttach<Identity: IMessage_Impl, const OFFSET: isize>(
20369 this: *mut core::ffi::c_void,
20370 ulattachmentnum: u32,
20371 uluiparam: usize,
20372 lpprogress: *mut core::ffi::c_void,
20373 ulflags: u32,
20374 ) -> windows_core::HRESULT {
20375 unsafe {
20376 let this: &Identity =
20377 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
20378 IMessage_Impl::DeleteAttach(
20379 this,
20380 core::mem::transmute_copy(&ulattachmentnum),
20381 core::mem::transmute_copy(&uluiparam),
20382 core::mem::transmute_copy(&lpprogress),
20383 core::mem::transmute_copy(&ulflags),
20384 )
20385 .into()
20386 }
20387 }
20388 unsafe extern "system" fn GetRecipientTable<
20389 Identity: IMessage_Impl,
20390 const OFFSET: isize,
20391 >(
20392 this: *mut core::ffi::c_void,
20393 ulflags: u32,
20394 lpptable: *mut *mut core::ffi::c_void,
20395 ) -> windows_core::HRESULT {
20396 unsafe {
20397 let this: &Identity =
20398 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
20399 match IMessage_Impl::GetRecipientTable(this, core::mem::transmute_copy(&ulflags)) {
20400 Ok(ok__) => {
20401 lpptable.write(core::mem::transmute(ok__));
20402 windows_core::HRESULT(0)
20403 }
20404 Err(err) => err.into(),
20405 }
20406 }
20407 }
20408 unsafe extern "system" fn ModifyRecipients<Identity: IMessage_Impl, const OFFSET: isize>(
20409 this: *mut core::ffi::c_void,
20410 ulflags: u32,
20411 lpmods: *mut ADRLIST,
20412 ) -> windows_core::HRESULT {
20413 unsafe {
20414 let this: &Identity =
20415 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
20416 IMessage_Impl::ModifyRecipients(
20417 this,
20418 core::mem::transmute_copy(&ulflags),
20419 core::mem::transmute_copy(&lpmods),
20420 )
20421 .into()
20422 }
20423 }
20424 unsafe extern "system" fn SubmitMessage<Identity: IMessage_Impl, const OFFSET: isize>(
20425 this: *mut core::ffi::c_void,
20426 ulflags: u32,
20427 ) -> windows_core::HRESULT {
20428 unsafe {
20429 let this: &Identity =
20430 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
20431 IMessage_Impl::SubmitMessage(this, core::mem::transmute_copy(&ulflags)).into()
20432 }
20433 }
20434 unsafe extern "system" fn SetReadFlag<Identity: IMessage_Impl, const OFFSET: isize>(
20435 this: *mut core::ffi::c_void,
20436 ulflags: u32,
20437 ) -> windows_core::HRESULT {
20438 unsafe {
20439 let this: &Identity =
20440 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
20441 IMessage_Impl::SetReadFlag(this, core::mem::transmute_copy(&ulflags)).into()
20442 }
20443 }
20444 Self {
20445 base__: IMAPIProp_Vtbl::new::<Identity, OFFSET>(),
20446 GetAttachmentTable: GetAttachmentTable::<Identity, OFFSET>,
20447 OpenAttach: OpenAttach::<Identity, OFFSET>,
20448 CreateAttach: CreateAttach::<Identity, OFFSET>,
20449 DeleteAttach: DeleteAttach::<Identity, OFFSET>,
20450 GetRecipientTable: GetRecipientTable::<Identity, OFFSET>,
20451 ModifyRecipients: ModifyRecipients::<Identity, OFFSET>,
20452 SubmitMessage: SubmitMessage::<Identity, OFFSET>,
20453 SetReadFlag: SetReadFlag::<Identity, OFFSET>,
20454 }
20455 }
20456 pub fn matches(iid: &windows_core::GUID) -> bool {
20457 iid == &<IMessage as windows_core::Interface>::IID
20458 || iid == &<IMAPIProp as windows_core::Interface>::IID
20459 }
20460}
20461impl windows_core::RuntimeName for IMessage {}
20462pub const IMessage_CreateAttach: METHODS = METHODS(76i32);
20463pub const IMessage_DeleteAttach: METHODS = METHODS(77i32);
20464pub const IMessage_GetAttachmentTable: METHODS = METHODS(74i32);
20465pub const IMessage_GetRecipientTable: METHODS = METHODS(78i32);
20466pub const IMessage_ModifyRecipients: METHODS = METHODS(79i32);
20467pub const IMessage_OpenAttach: METHODS = METHODS(75i32);
20468pub const IMessage_SetReadFlag: METHODS = METHODS(81i32);
20469pub const IMessage_SubmitMessage: METHODS = METHODS(80i32);
20470windows_core::imp::define_interface!(
20471 IMimeAddressTable,
20472 IMimeAddressTable_Vtbl,
20473 0xc558834a_7f86_11d0_8252_00c04fd85ab4
20474);
20475windows_core::imp::interface_hierarchy!(IMimeAddressTable, windows_core::IUnknown);
20476impl IMimeAddressTable {
20477 pub unsafe fn Append<P2, P3>(
20478 &self,
20479 dwadrtype: u32,
20480 ietfriendly: ENCODINGTYPE,
20481 pszfriendly: P2,
20482 pszemail: P3,
20483 phaddress: *mut *mut HADDRESS__,
20484 ) -> windows_core::Result<()>
20485 where
20486 P2: windows_core::Param<windows_core::PCSTR>,
20487 P3: windows_core::Param<windows_core::PCSTR>,
20488 {
20489 unsafe {
20490 (windows_core::Interface::vtable(self).Append)(
20491 windows_core::Interface::as_raw(self),
20492 dwadrtype,
20493 ietfriendly,
20494 pszfriendly.param().abi(),
20495 pszemail.param().abi(),
20496 phaddress as _,
20497 )
20498 .ok()
20499 }
20500 }
20501 pub unsafe fn Insert(
20502 &self,
20503 paddress: *mut ADDRESSPROPS,
20504 phaddress: *mut *mut HADDRESS__,
20505 ) -> windows_core::Result<()> {
20506 unsafe {
20507 (windows_core::Interface::vtable(self).Insert)(
20508 windows_core::Interface::as_raw(self),
20509 paddress as _,
20510 phaddress as _,
20511 )
20512 .ok()
20513 }
20514 }
20515 pub unsafe fn SetProps(
20516 &self,
20517 haddress: *mut HADDRESS__,
20518 paddress: *mut ADDRESSPROPS,
20519 ) -> windows_core::Result<()> {
20520 unsafe {
20521 (windows_core::Interface::vtable(self).SetProps)(
20522 windows_core::Interface::as_raw(self),
20523 haddress as _,
20524 paddress as _,
20525 )
20526 .ok()
20527 }
20528 }
20529 pub unsafe fn GetProps(
20530 &self,
20531 haddress: *mut HADDRESS__,
20532 paddress: *mut ADDRESSPROPS,
20533 ) -> windows_core::Result<()> {
20534 unsafe {
20535 (windows_core::Interface::vtable(self).GetProps)(
20536 windows_core::Interface::as_raw(self),
20537 haddress as _,
20538 paddress as _,
20539 )
20540 .ok()
20541 }
20542 }
20543 pub unsafe fn GetSender(&self, paddress: *mut ADDRESSPROPS) -> windows_core::Result<()> {
20544 unsafe {
20545 (windows_core::Interface::vtable(self).GetSender)(
20546 windows_core::Interface::as_raw(self),
20547 paddress as _,
20548 )
20549 .ok()
20550 }
20551 }
20552 pub unsafe fn CountTypes(&self, dwadrtypes: u32, pcadrs: *mut u32) -> windows_core::Result<()> {
20553 unsafe {
20554 (windows_core::Interface::vtable(self).CountTypes)(
20555 windows_core::Interface::as_raw(self),
20556 dwadrtypes,
20557 pcadrs as _,
20558 )
20559 .ok()
20560 }
20561 }
20562 pub unsafe fn GetTypes(
20563 &self,
20564 dwadrtypes: u32,
20565 dwprops: u32,
20566 plist: *mut ADDRESSLIST,
20567 ) -> windows_core::Result<()> {
20568 unsafe {
20569 (windows_core::Interface::vtable(self).GetTypes)(
20570 windows_core::Interface::as_raw(self),
20571 dwadrtypes,
20572 dwprops,
20573 plist as _,
20574 )
20575 .ok()
20576 }
20577 }
20578 pub unsafe fn EnumTypes(
20579 &self,
20580 dwadrtypes: u32,
20581 dwprops: u32,
20582 ) -> windows_core::Result<IMimeEnumAddressTypes> {
20583 unsafe {
20584 let mut result__ = core::mem::zeroed();
20585 (windows_core::Interface::vtable(self).EnumTypes)(
20586 windows_core::Interface::as_raw(self),
20587 dwadrtypes,
20588 dwprops,
20589 &mut result__,
20590 )
20591 .and_then(|| windows_core::Type::from_abi(result__))
20592 }
20593 }
20594 pub unsafe fn Delete(&self, haddress: *mut HADDRESS__) -> windows_core::Result<()> {
20595 unsafe {
20596 (windows_core::Interface::vtable(self).Delete)(
20597 windows_core::Interface::as_raw(self),
20598 haddress as _,
20599 )
20600 .ok()
20601 }
20602 }
20603 pub unsafe fn DeleteTypes(&self, dwadrtypes: u32) -> windows_core::Result<()> {
20604 unsafe {
20605 (windows_core::Interface::vtable(self).DeleteTypes)(
20606 windows_core::Interface::as_raw(self),
20607 dwadrtypes,
20608 )
20609 .ok()
20610 }
20611 }
20612 pub unsafe fn GetFormat(
20613 &self,
20614 dwadrtype: u32,
20615 format: ADDRESSFORMAT,
20616 ppszformat: *mut windows_core::PSTR,
20617 ) -> windows_core::Result<()> {
20618 unsafe {
20619 (windows_core::Interface::vtable(self).GetFormat)(
20620 windows_core::Interface::as_raw(self),
20621 dwadrtype,
20622 format,
20623 ppszformat as _,
20624 )
20625 .ok()
20626 }
20627 }
20628 pub unsafe fn AppendRfc822<P2>(
20629 &self,
20630 dwadrtype: u32,
20631 ietencoding: ENCODINGTYPE,
20632 pszrfc822adr: P2,
20633 ) -> windows_core::Result<()>
20634 where
20635 P2: windows_core::Param<windows_core::PCSTR>,
20636 {
20637 unsafe {
20638 (windows_core::Interface::vtable(self).AppendRfc822)(
20639 windows_core::Interface::as_raw(self),
20640 dwadrtype,
20641 ietencoding,
20642 pszrfc822adr.param().abi(),
20643 )
20644 .ok()
20645 }
20646 }
20647 pub unsafe fn ParseRfc822<P2>(
20648 &self,
20649 dwadrtype: u32,
20650 ietencoding: ENCODINGTYPE,
20651 pszrfc822adr: P2,
20652 plist: *mut ADDRESSLIST,
20653 ) -> windows_core::Result<()>
20654 where
20655 P2: windows_core::Param<windows_core::PCSTR>,
20656 {
20657 unsafe {
20658 (windows_core::Interface::vtable(self).ParseRfc822)(
20659 windows_core::Interface::as_raw(self),
20660 dwadrtype,
20661 ietencoding,
20662 pszrfc822adr.param().abi(),
20663 plist as _,
20664 )
20665 .ok()
20666 }
20667 }
20668 pub unsafe fn Clone(&self) -> windows_core::Result<IMimeAddressTable> {
20669 unsafe {
20670 let mut result__ = core::mem::zeroed();
20671 (windows_core::Interface::vtable(self).Clone)(
20672 windows_core::Interface::as_raw(self),
20673 &mut result__,
20674 )
20675 .and_then(|| windows_core::Type::from_abi(result__))
20676 }
20677 }
20678 pub unsafe fn BindToObject(
20679 &self,
20680 riid: *const windows_core::GUID,
20681 ppvobject: *mut *mut core::ffi::c_void,
20682 ) -> windows_core::Result<()> {
20683 unsafe {
20684 (windows_core::Interface::vtable(self).BindToObject)(
20685 windows_core::Interface::as_raw(self),
20686 riid,
20687 ppvobject as _,
20688 )
20689 .ok()
20690 }
20691 }
20692}
20693#[repr(C)]
20694#[doc(hidden)]
20695pub struct IMimeAddressTable_Vtbl {
20696 pub base__: windows_core::IUnknown_Vtbl,
20697 pub Append: unsafe extern "system" fn(
20698 *mut core::ffi::c_void,
20699 u32,
20700 ENCODINGTYPE,
20701 windows_core::PCSTR,
20702 windows_core::PCSTR,
20703 *mut *mut HADDRESS__,
20704 ) -> windows_core::HRESULT,
20705 pub Insert: unsafe extern "system" fn(
20706 *mut core::ffi::c_void,
20707 *mut ADDRESSPROPS,
20708 *mut *mut HADDRESS__,
20709 ) -> windows_core::HRESULT,
20710 pub SetProps: unsafe extern "system" fn(
20711 *mut core::ffi::c_void,
20712 *mut HADDRESS__,
20713 *mut ADDRESSPROPS,
20714 ) -> windows_core::HRESULT,
20715 pub GetProps: unsafe extern "system" fn(
20716 *mut core::ffi::c_void,
20717 *mut HADDRESS__,
20718 *mut ADDRESSPROPS,
20719 ) -> windows_core::HRESULT,
20720 pub GetSender: unsafe extern "system" fn(
20721 *mut core::ffi::c_void,
20722 *mut ADDRESSPROPS,
20723 ) -> windows_core::HRESULT,
20724 pub CountTypes:
20725 unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
20726 pub GetTypes: unsafe extern "system" fn(
20727 *mut core::ffi::c_void,
20728 u32,
20729 u32,
20730 *mut ADDRESSLIST,
20731 ) -> windows_core::HRESULT,
20732 pub EnumTypes: unsafe extern "system" fn(
20733 *mut core::ffi::c_void,
20734 u32,
20735 u32,
20736 *mut *mut core::ffi::c_void,
20737 ) -> windows_core::HRESULT,
20738 pub Delete:
20739 unsafe extern "system" fn(*mut core::ffi::c_void, *mut HADDRESS__) -> windows_core::HRESULT,
20740 pub DeleteTypes:
20741 unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
20742 pub GetFormat: unsafe extern "system" fn(
20743 *mut core::ffi::c_void,
20744 u32,
20745 ADDRESSFORMAT,
20746 *mut windows_core::PSTR,
20747 ) -> windows_core::HRESULT,
20748 pub AppendRfc822: unsafe extern "system" fn(
20749 *mut core::ffi::c_void,
20750 u32,
20751 ENCODINGTYPE,
20752 windows_core::PCSTR,
20753 ) -> windows_core::HRESULT,
20754 pub ParseRfc822: unsafe extern "system" fn(
20755 *mut core::ffi::c_void,
20756 u32,
20757 ENCODINGTYPE,
20758 windows_core::PCSTR,
20759 *mut ADDRESSLIST,
20760 ) -> windows_core::HRESULT,
20761 pub Clone: unsafe extern "system" fn(
20762 *mut core::ffi::c_void,
20763 *mut *mut core::ffi::c_void,
20764 ) -> windows_core::HRESULT,
20765 pub BindToObject: unsafe extern "system" fn(
20766 *mut core::ffi::c_void,
20767 *const windows_core::GUID,
20768 *mut *mut core::ffi::c_void,
20769 ) -> windows_core::HRESULT,
20770}
20771pub trait IMimeAddressTable_Impl: windows_core::IUnknownImpl {
20772 fn Append(
20773 &self,
20774 dwadrtype: u32,
20775 ietfriendly: ENCODINGTYPE,
20776 pszfriendly: &windows_core::PCSTR,
20777 pszemail: &windows_core::PCSTR,
20778 phaddress: *mut *mut HADDRESS__,
20779 ) -> windows_core::Result<()>;
20780 fn Insert(
20781 &self,
20782 paddress: *mut ADDRESSPROPS,
20783 phaddress: *mut *mut HADDRESS__,
20784 ) -> windows_core::Result<()>;
20785 fn SetProps(
20786 &self,
20787 haddress: *mut HADDRESS__,
20788 paddress: *mut ADDRESSPROPS,
20789 ) -> windows_core::Result<()>;
20790 fn GetProps(
20791 &self,
20792 haddress: *mut HADDRESS__,
20793 paddress: *mut ADDRESSPROPS,
20794 ) -> windows_core::Result<()>;
20795 fn GetSender(&self, paddress: *mut ADDRESSPROPS) -> windows_core::Result<()>;
20796 fn CountTypes(&self, dwadrtypes: u32, pcadrs: *mut u32) -> windows_core::Result<()>;
20797 fn GetTypes(
20798 &self,
20799 dwadrtypes: u32,
20800 dwprops: u32,
20801 plist: *mut ADDRESSLIST,
20802 ) -> windows_core::Result<()>;
20803 fn EnumTypes(
20804 &self,
20805 dwadrtypes: u32,
20806 dwprops: u32,
20807 ) -> windows_core::Result<IMimeEnumAddressTypes>;
20808 fn Delete(&self, haddress: *mut HADDRESS__) -> windows_core::Result<()>;
20809 fn DeleteTypes(&self, dwadrtypes: u32) -> windows_core::Result<()>;
20810 fn GetFormat(
20811 &self,
20812 dwadrtype: u32,
20813 format: ADDRESSFORMAT,
20814 ppszformat: *mut windows_core::PSTR,
20815 ) -> windows_core::Result<()>;
20816 fn AppendRfc822(
20817 &self,
20818 dwadrtype: u32,
20819 ietencoding: ENCODINGTYPE,
20820 pszrfc822adr: &windows_core::PCSTR,
20821 ) -> windows_core::Result<()>;
20822 fn ParseRfc822(
20823 &self,
20824 dwadrtype: u32,
20825 ietencoding: ENCODINGTYPE,
20826 pszrfc822adr: &windows_core::PCSTR,
20827 plist: *mut ADDRESSLIST,
20828 ) -> windows_core::Result<()>;
20829 fn Clone(&self) -> windows_core::Result<IMimeAddressTable>;
20830 fn BindToObject(
20831 &self,
20832 riid: *const windows_core::GUID,
20833 ppvobject: *mut *mut core::ffi::c_void,
20834 ) -> windows_core::Result<()>;
20835}
20836impl IMimeAddressTable_Vtbl {
20837 pub const fn new<Identity: IMimeAddressTable_Impl, const OFFSET: isize>() -> Self {
20838 unsafe extern "system" fn Append<Identity: IMimeAddressTable_Impl, const OFFSET: isize>(
20839 this: *mut core::ffi::c_void,
20840 dwadrtype: u32,
20841 ietfriendly: ENCODINGTYPE,
20842 pszfriendly: windows_core::PCSTR,
20843 pszemail: windows_core::PCSTR,
20844 phaddress: *mut *mut HADDRESS__,
20845 ) -> windows_core::HRESULT {
20846 unsafe {
20847 let this: &Identity =
20848 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
20849 IMimeAddressTable_Impl::Append(
20850 this,
20851 core::mem::transmute_copy(&dwadrtype),
20852 core::mem::transmute_copy(&ietfriendly),
20853 core::mem::transmute(&pszfriendly),
20854 core::mem::transmute(&pszemail),
20855 core::mem::transmute_copy(&phaddress),
20856 )
20857 .into()
20858 }
20859 }
20860 unsafe extern "system" fn Insert<Identity: IMimeAddressTable_Impl, const OFFSET: isize>(
20861 this: *mut core::ffi::c_void,
20862 paddress: *mut ADDRESSPROPS,
20863 phaddress: *mut *mut HADDRESS__,
20864 ) -> windows_core::HRESULT {
20865 unsafe {
20866 let this: &Identity =
20867 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
20868 IMimeAddressTable_Impl::Insert(
20869 this,
20870 core::mem::transmute_copy(&paddress),
20871 core::mem::transmute_copy(&phaddress),
20872 )
20873 .into()
20874 }
20875 }
20876 unsafe extern "system" fn SetProps<
20877 Identity: IMimeAddressTable_Impl,
20878 const OFFSET: isize,
20879 >(
20880 this: *mut core::ffi::c_void,
20881 haddress: *mut HADDRESS__,
20882 paddress: *mut ADDRESSPROPS,
20883 ) -> windows_core::HRESULT {
20884 unsafe {
20885 let this: &Identity =
20886 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
20887 IMimeAddressTable_Impl::SetProps(
20888 this,
20889 core::mem::transmute_copy(&haddress),
20890 core::mem::transmute_copy(&paddress),
20891 )
20892 .into()
20893 }
20894 }
20895 unsafe extern "system" fn GetProps<
20896 Identity: IMimeAddressTable_Impl,
20897 const OFFSET: isize,
20898 >(
20899 this: *mut core::ffi::c_void,
20900 haddress: *mut HADDRESS__,
20901 paddress: *mut ADDRESSPROPS,
20902 ) -> windows_core::HRESULT {
20903 unsafe {
20904 let this: &Identity =
20905 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
20906 IMimeAddressTable_Impl::GetProps(
20907 this,
20908 core::mem::transmute_copy(&haddress),
20909 core::mem::transmute_copy(&paddress),
20910 )
20911 .into()
20912 }
20913 }
20914 unsafe extern "system" fn GetSender<
20915 Identity: IMimeAddressTable_Impl,
20916 const OFFSET: isize,
20917 >(
20918 this: *mut core::ffi::c_void,
20919 paddress: *mut ADDRESSPROPS,
20920 ) -> windows_core::HRESULT {
20921 unsafe {
20922 let this: &Identity =
20923 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
20924 IMimeAddressTable_Impl::GetSender(this, core::mem::transmute_copy(&paddress)).into()
20925 }
20926 }
20927 unsafe extern "system" fn CountTypes<
20928 Identity: IMimeAddressTable_Impl,
20929 const OFFSET: isize,
20930 >(
20931 this: *mut core::ffi::c_void,
20932 dwadrtypes: u32,
20933 pcadrs: *mut u32,
20934 ) -> windows_core::HRESULT {
20935 unsafe {
20936 let this: &Identity =
20937 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
20938 IMimeAddressTable_Impl::CountTypes(
20939 this,
20940 core::mem::transmute_copy(&dwadrtypes),
20941 core::mem::transmute_copy(&pcadrs),
20942 )
20943 .into()
20944 }
20945 }
20946 unsafe extern "system" fn GetTypes<
20947 Identity: IMimeAddressTable_Impl,
20948 const OFFSET: isize,
20949 >(
20950 this: *mut core::ffi::c_void,
20951 dwadrtypes: u32,
20952 dwprops: u32,
20953 plist: *mut ADDRESSLIST,
20954 ) -> windows_core::HRESULT {
20955 unsafe {
20956 let this: &Identity =
20957 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
20958 IMimeAddressTable_Impl::GetTypes(
20959 this,
20960 core::mem::transmute_copy(&dwadrtypes),
20961 core::mem::transmute_copy(&dwprops),
20962 core::mem::transmute_copy(&plist),
20963 )
20964 .into()
20965 }
20966 }
20967 unsafe extern "system" fn EnumTypes<
20968 Identity: IMimeAddressTable_Impl,
20969 const OFFSET: isize,
20970 >(
20971 this: *mut core::ffi::c_void,
20972 dwadrtypes: u32,
20973 dwprops: u32,
20974 ppenum: *mut *mut core::ffi::c_void,
20975 ) -> windows_core::HRESULT {
20976 unsafe {
20977 let this: &Identity =
20978 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
20979 match IMimeAddressTable_Impl::EnumTypes(
20980 this,
20981 core::mem::transmute_copy(&dwadrtypes),
20982 core::mem::transmute_copy(&dwprops),
20983 ) {
20984 Ok(ok__) => {
20985 ppenum.write(core::mem::transmute(ok__));
20986 windows_core::HRESULT(0)
20987 }
20988 Err(err) => err.into(),
20989 }
20990 }
20991 }
20992 unsafe extern "system" fn Delete<Identity: IMimeAddressTable_Impl, const OFFSET: isize>(
20993 this: *mut core::ffi::c_void,
20994 haddress: *mut HADDRESS__,
20995 ) -> windows_core::HRESULT {
20996 unsafe {
20997 let this: &Identity =
20998 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
20999 IMimeAddressTable_Impl::Delete(this, core::mem::transmute_copy(&haddress)).into()
21000 }
21001 }
21002 unsafe extern "system" fn DeleteTypes<
21003 Identity: IMimeAddressTable_Impl,
21004 const OFFSET: isize,
21005 >(
21006 this: *mut core::ffi::c_void,
21007 dwadrtypes: u32,
21008 ) -> windows_core::HRESULT {
21009 unsafe {
21010 let this: &Identity =
21011 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
21012 IMimeAddressTable_Impl::DeleteTypes(this, core::mem::transmute_copy(&dwadrtypes))
21013 .into()
21014 }
21015 }
21016 unsafe extern "system" fn GetFormat<
21017 Identity: IMimeAddressTable_Impl,
21018 const OFFSET: isize,
21019 >(
21020 this: *mut core::ffi::c_void,
21021 dwadrtype: u32,
21022 format: ADDRESSFORMAT,
21023 ppszformat: *mut windows_core::PSTR,
21024 ) -> windows_core::HRESULT {
21025 unsafe {
21026 let this: &Identity =
21027 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
21028 IMimeAddressTable_Impl::GetFormat(
21029 this,
21030 core::mem::transmute_copy(&dwadrtype),
21031 core::mem::transmute_copy(&format),
21032 core::mem::transmute_copy(&ppszformat),
21033 )
21034 .into()
21035 }
21036 }
21037 unsafe extern "system" fn AppendRfc822<
21038 Identity: IMimeAddressTable_Impl,
21039 const OFFSET: isize,
21040 >(
21041 this: *mut core::ffi::c_void,
21042 dwadrtype: u32,
21043 ietencoding: ENCODINGTYPE,
21044 pszrfc822adr: windows_core::PCSTR,
21045 ) -> windows_core::HRESULT {
21046 unsafe {
21047 let this: &Identity =
21048 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
21049 IMimeAddressTable_Impl::AppendRfc822(
21050 this,
21051 core::mem::transmute_copy(&dwadrtype),
21052 core::mem::transmute_copy(&ietencoding),
21053 core::mem::transmute(&pszrfc822adr),
21054 )
21055 .into()
21056 }
21057 }
21058 unsafe extern "system" fn ParseRfc822<
21059 Identity: IMimeAddressTable_Impl,
21060 const OFFSET: isize,
21061 >(
21062 this: *mut core::ffi::c_void,
21063 dwadrtype: u32,
21064 ietencoding: ENCODINGTYPE,
21065 pszrfc822adr: windows_core::PCSTR,
21066 plist: *mut ADDRESSLIST,
21067 ) -> windows_core::HRESULT {
21068 unsafe {
21069 let this: &Identity =
21070 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
21071 IMimeAddressTable_Impl::ParseRfc822(
21072 this,
21073 core::mem::transmute_copy(&dwadrtype),
21074 core::mem::transmute_copy(&ietencoding),
21075 core::mem::transmute(&pszrfc822adr),
21076 core::mem::transmute_copy(&plist),
21077 )
21078 .into()
21079 }
21080 }
21081 unsafe extern "system" fn Clone<Identity: IMimeAddressTable_Impl, const OFFSET: isize>(
21082 this: *mut core::ffi::c_void,
21083 pptable: *mut *mut core::ffi::c_void,
21084 ) -> windows_core::HRESULT {
21085 unsafe {
21086 let this: &Identity =
21087 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
21088 match IMimeAddressTable_Impl::Clone(this) {
21089 Ok(ok__) => {
21090 pptable.write(core::mem::transmute(ok__));
21091 windows_core::HRESULT(0)
21092 }
21093 Err(err) => err.into(),
21094 }
21095 }
21096 }
21097 unsafe extern "system" fn BindToObject<
21098 Identity: IMimeAddressTable_Impl,
21099 const OFFSET: isize,
21100 >(
21101 this: *mut core::ffi::c_void,
21102 riid: *const windows_core::GUID,
21103 ppvobject: *mut *mut core::ffi::c_void,
21104 ) -> windows_core::HRESULT {
21105 unsafe {
21106 let this: &Identity =
21107 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
21108 IMimeAddressTable_Impl::BindToObject(
21109 this,
21110 core::mem::transmute_copy(&riid),
21111 core::mem::transmute_copy(&ppvobject),
21112 )
21113 .into()
21114 }
21115 }
21116 Self {
21117 base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
21118 Append: Append::<Identity, OFFSET>,
21119 Insert: Insert::<Identity, OFFSET>,
21120 SetProps: SetProps::<Identity, OFFSET>,
21121 GetProps: GetProps::<Identity, OFFSET>,
21122 GetSender: GetSender::<Identity, OFFSET>,
21123 CountTypes: CountTypes::<Identity, OFFSET>,
21124 GetTypes: GetTypes::<Identity, OFFSET>,
21125 EnumTypes: EnumTypes::<Identity, OFFSET>,
21126 Delete: Delete::<Identity, OFFSET>,
21127 DeleteTypes: DeleteTypes::<Identity, OFFSET>,
21128 GetFormat: GetFormat::<Identity, OFFSET>,
21129 AppendRfc822: AppendRfc822::<Identity, OFFSET>,
21130 ParseRfc822: ParseRfc822::<Identity, OFFSET>,
21131 Clone: Clone::<Identity, OFFSET>,
21132 BindToObject: BindToObject::<Identity, OFFSET>,
21133 }
21134 }
21135 pub fn matches(iid: &windows_core::GUID) -> bool {
21136 iid == &<IMimeAddressTable as windows_core::Interface>::IID
21137 }
21138}
21139impl windows_core::RuntimeName for IMimeAddressTable {}
21140windows_core::imp::define_interface!(
21141 IMimeAllocator,
21142 IMimeAllocator_Vtbl,
21143 0xc5588351_7f86_11d0_8252_00c04fd85ab4
21144);
21145impl core::ops::Deref for IMimeAllocator {
21146 type Target = windows::Win32::System::Com::IMalloc;
21147 fn deref(&self) -> &Self::Target {
21148 unsafe { core::mem::transmute(self) }
21149 }
21150}
21151windows_core::imp::interface_hierarchy!(
21152 IMimeAllocator,
21153 windows_core::IUnknown,
21154 windows::Win32::System::Com::IMalloc
21155);
21156impl IMimeAllocator {
21157 pub unsafe fn FreeParamInfoArray(
21158 &self,
21159 cparams: u32,
21160 prgparam: *mut MIMEPARAMINFO,
21161 ffreearray: u8,
21162 ) -> windows_core::Result<()> {
21163 unsafe {
21164 (windows_core::Interface::vtable(self).FreeParamInfoArray)(
21165 windows_core::Interface::as_raw(self),
21166 cparams,
21167 prgparam as _,
21168 ffreearray,
21169 )
21170 .ok()
21171 }
21172 }
21173 pub unsafe fn FreeAddressList(&self, plist: *mut ADDRESSLIST) -> windows_core::Result<()> {
21174 unsafe {
21175 (windows_core::Interface::vtable(self).FreeAddressList)(
21176 windows_core::Interface::as_raw(self),
21177 plist as _,
21178 )
21179 .ok()
21180 }
21181 }
21182 pub unsafe fn FreeAddressProps(&self, paddress: *mut ADDRESSPROPS) -> windows_core::Result<()> {
21183 unsafe {
21184 (windows_core::Interface::vtable(self).FreeAddressProps)(
21185 windows_core::Interface::as_raw(self),
21186 paddress as _,
21187 )
21188 .ok()
21189 }
21190 }
21191 pub unsafe fn ReleaseObjects(
21192 &self,
21193 cobjects: u32,
21194 prgpunknown: *mut Option<windows_core::IUnknown>,
21195 ffreearray: u8,
21196 ) -> windows_core::Result<()> {
21197 unsafe {
21198 (windows_core::Interface::vtable(self).ReleaseObjects)(
21199 windows_core::Interface::as_raw(self),
21200 cobjects,
21201 core::mem::transmute(prgpunknown),
21202 ffreearray,
21203 )
21204 .ok()
21205 }
21206 }
21207 pub unsafe fn FreeEnumHeaderRowArray(
21208 &self,
21209 crows: u32,
21210 prgrow: *mut ENUMHEADERROW,
21211 ffreearray: u8,
21212 ) -> windows_core::Result<()> {
21213 unsafe {
21214 (windows_core::Interface::vtable(self).FreeEnumHeaderRowArray)(
21215 windows_core::Interface::as_raw(self),
21216 crows,
21217 prgrow as _,
21218 ffreearray,
21219 )
21220 .ok()
21221 }
21222 }
21223 pub unsafe fn FreeEnumPropertyArray(
21224 &self,
21225 cprops: u32,
21226 prgprop: *mut ENUMPROPERTY,
21227 ffreearray: u8,
21228 ) -> windows_core::Result<()> {
21229 unsafe {
21230 (windows_core::Interface::vtable(self).FreeEnumPropertyArray)(
21231 windows_core::Interface::as_raw(self),
21232 cprops,
21233 prgprop as _,
21234 ffreearray,
21235 )
21236 .ok()
21237 }
21238 }
21239 pub unsafe fn FreeThumbprint(
21240 &self,
21241 pthumbprint: *mut windows::Win32::System::Com::BLOB,
21242 ) -> windows_core::Result<()> {
21243 unsafe {
21244 (windows_core::Interface::vtable(self).FreeThumbprint)(
21245 windows_core::Interface::as_raw(self),
21246 pthumbprint as _,
21247 )
21248 .ok()
21249 }
21250 }
21251 pub unsafe fn PropVariantClear(
21252 &self,
21253 pprop: *mut windows::Win32::System::Com::StructuredStorage::PROPVARIANT,
21254 ) -> windows_core::Result<()> {
21255 unsafe {
21256 (windows_core::Interface::vtable(self).PropVariantClear)(
21257 windows_core::Interface::as_raw(self),
21258 core::mem::transmute(pprop),
21259 )
21260 .ok()
21261 }
21262 }
21263}
21264#[repr(C)]
21265#[doc(hidden)]
21266pub struct IMimeAllocator_Vtbl {
21267 pub base__: windows::Win32::System::Com::IMalloc_Vtbl,
21268 pub FreeParamInfoArray: unsafe extern "system" fn(
21269 *mut core::ffi::c_void,
21270 u32,
21271 *mut MIMEPARAMINFO,
21272 u8,
21273 ) -> windows_core::HRESULT,
21274 pub FreeAddressList: unsafe extern "system" fn(
21275 *mut core::ffi::c_void,
21276 *mut ADDRESSLIST,
21277 ) -> windows_core::HRESULT,
21278 pub FreeAddressProps: unsafe extern "system" fn(
21279 *mut core::ffi::c_void,
21280 *mut ADDRESSPROPS,
21281 ) -> windows_core::HRESULT,
21282 pub ReleaseObjects: unsafe extern "system" fn(
21283 *mut core::ffi::c_void,
21284 u32,
21285 *mut *mut core::ffi::c_void,
21286 u8,
21287 ) -> windows_core::HRESULT,
21288 pub FreeEnumHeaderRowArray: unsafe extern "system" fn(
21289 *mut core::ffi::c_void,
21290 u32,
21291 *mut ENUMHEADERROW,
21292 u8,
21293 ) -> windows_core::HRESULT,
21294 pub FreeEnumPropertyArray: unsafe extern "system" fn(
21295 *mut core::ffi::c_void,
21296 u32,
21297 *mut ENUMPROPERTY,
21298 u8,
21299 ) -> windows_core::HRESULT,
21300 pub FreeThumbprint: unsafe extern "system" fn(
21301 *mut core::ffi::c_void,
21302 *mut windows::Win32::System::Com::BLOB,
21303 ) -> windows_core::HRESULT,
21304 pub PropVariantClear: unsafe extern "system" fn(
21305 *mut core::ffi::c_void,
21306 *mut windows::Win32::System::Com::StructuredStorage::PROPVARIANT,
21307 ) -> windows_core::HRESULT,
21308}
21309pub trait IMimeAllocator_Impl: windows::Win32::System::Com::IMalloc_Impl {
21310 fn FreeParamInfoArray(
21311 &self,
21312 cparams: u32,
21313 prgparam: *mut MIMEPARAMINFO,
21314 ffreearray: u8,
21315 ) -> windows_core::Result<()>;
21316 fn FreeAddressList(&self, plist: *mut ADDRESSLIST) -> windows_core::Result<()>;
21317 fn FreeAddressProps(&self, paddress: *mut ADDRESSPROPS) -> windows_core::Result<()>;
21318 fn ReleaseObjects(
21319 &self,
21320 cobjects: u32,
21321 prgpunknown: windows_core::OutRef<windows_core::IUnknown>,
21322 ffreearray: u8,
21323 ) -> windows_core::Result<()>;
21324 fn FreeEnumHeaderRowArray(
21325 &self,
21326 crows: u32,
21327 prgrow: *mut ENUMHEADERROW,
21328 ffreearray: u8,
21329 ) -> windows_core::Result<()>;
21330 fn FreeEnumPropertyArray(
21331 &self,
21332 cprops: u32,
21333 prgprop: *mut ENUMPROPERTY,
21334 ffreearray: u8,
21335 ) -> windows_core::Result<()>;
21336 fn FreeThumbprint(
21337 &self,
21338 pthumbprint: *mut windows::Win32::System::Com::BLOB,
21339 ) -> windows_core::Result<()>;
21340 fn PropVariantClear(
21341 &self,
21342 pprop: *mut windows::Win32::System::Com::StructuredStorage::PROPVARIANT,
21343 ) -> windows_core::Result<()>;
21344}
21345impl IMimeAllocator_Vtbl {
21346 pub const fn new<Identity: IMimeAllocator_Impl, const OFFSET: isize>() -> Self {
21347 unsafe extern "system" fn FreeParamInfoArray<
21348 Identity: IMimeAllocator_Impl,
21349 const OFFSET: isize,
21350 >(
21351 this: *mut core::ffi::c_void,
21352 cparams: u32,
21353 prgparam: *mut MIMEPARAMINFO,
21354 ffreearray: u8,
21355 ) -> windows_core::HRESULT {
21356 unsafe {
21357 let this: &Identity =
21358 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
21359 IMimeAllocator_Impl::FreeParamInfoArray(
21360 this,
21361 core::mem::transmute_copy(&cparams),
21362 core::mem::transmute_copy(&prgparam),
21363 core::mem::transmute_copy(&ffreearray),
21364 )
21365 .into()
21366 }
21367 }
21368 unsafe extern "system" fn FreeAddressList<
21369 Identity: IMimeAllocator_Impl,
21370 const OFFSET: isize,
21371 >(
21372 this: *mut core::ffi::c_void,
21373 plist: *mut ADDRESSLIST,
21374 ) -> windows_core::HRESULT {
21375 unsafe {
21376 let this: &Identity =
21377 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
21378 IMimeAllocator_Impl::FreeAddressList(this, core::mem::transmute_copy(&plist)).into()
21379 }
21380 }
21381 unsafe extern "system" fn FreeAddressProps<
21382 Identity: IMimeAllocator_Impl,
21383 const OFFSET: isize,
21384 >(
21385 this: *mut core::ffi::c_void,
21386 paddress: *mut ADDRESSPROPS,
21387 ) -> windows_core::HRESULT {
21388 unsafe {
21389 let this: &Identity =
21390 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
21391 IMimeAllocator_Impl::FreeAddressProps(this, core::mem::transmute_copy(&paddress))
21392 .into()
21393 }
21394 }
21395 unsafe extern "system" fn ReleaseObjects<
21396 Identity: IMimeAllocator_Impl,
21397 const OFFSET: isize,
21398 >(
21399 this: *mut core::ffi::c_void,
21400 cobjects: u32,
21401 prgpunknown: *mut *mut core::ffi::c_void,
21402 ffreearray: u8,
21403 ) -> windows_core::HRESULT {
21404 unsafe {
21405 let this: &Identity =
21406 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
21407 IMimeAllocator_Impl::ReleaseObjects(
21408 this,
21409 core::mem::transmute_copy(&cobjects),
21410 core::mem::transmute_copy(&prgpunknown),
21411 core::mem::transmute_copy(&ffreearray),
21412 )
21413 .into()
21414 }
21415 }
21416 unsafe extern "system" fn FreeEnumHeaderRowArray<
21417 Identity: IMimeAllocator_Impl,
21418 const OFFSET: isize,
21419 >(
21420 this: *mut core::ffi::c_void,
21421 crows: u32,
21422 prgrow: *mut ENUMHEADERROW,
21423 ffreearray: u8,
21424 ) -> windows_core::HRESULT {
21425 unsafe {
21426 let this: &Identity =
21427 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
21428 IMimeAllocator_Impl::FreeEnumHeaderRowArray(
21429 this,
21430 core::mem::transmute_copy(&crows),
21431 core::mem::transmute_copy(&prgrow),
21432 core::mem::transmute_copy(&ffreearray),
21433 )
21434 .into()
21435 }
21436 }
21437 unsafe extern "system" fn FreeEnumPropertyArray<
21438 Identity: IMimeAllocator_Impl,
21439 const OFFSET: isize,
21440 >(
21441 this: *mut core::ffi::c_void,
21442 cprops: u32,
21443 prgprop: *mut ENUMPROPERTY,
21444 ffreearray: u8,
21445 ) -> windows_core::HRESULT {
21446 unsafe {
21447 let this: &Identity =
21448 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
21449 IMimeAllocator_Impl::FreeEnumPropertyArray(
21450 this,
21451 core::mem::transmute_copy(&cprops),
21452 core::mem::transmute_copy(&prgprop),
21453 core::mem::transmute_copy(&ffreearray),
21454 )
21455 .into()
21456 }
21457 }
21458 unsafe extern "system" fn FreeThumbprint<
21459 Identity: IMimeAllocator_Impl,
21460 const OFFSET: isize,
21461 >(
21462 this: *mut core::ffi::c_void,
21463 pthumbprint: *mut windows::Win32::System::Com::BLOB,
21464 ) -> windows_core::HRESULT {
21465 unsafe {
21466 let this: &Identity =
21467 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
21468 IMimeAllocator_Impl::FreeThumbprint(this, core::mem::transmute_copy(&pthumbprint))
21469 .into()
21470 }
21471 }
21472 unsafe extern "system" fn PropVariantClear<
21473 Identity: IMimeAllocator_Impl,
21474 const OFFSET: isize,
21475 >(
21476 this: *mut core::ffi::c_void,
21477 pprop: *mut windows::Win32::System::Com::StructuredStorage::PROPVARIANT,
21478 ) -> windows_core::HRESULT {
21479 unsafe {
21480 let this: &Identity =
21481 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
21482 IMimeAllocator_Impl::PropVariantClear(this, core::mem::transmute_copy(&pprop))
21483 .into()
21484 }
21485 }
21486 Self {
21487 base__: windows::Win32::System::Com::IMalloc_Vtbl::new::<Identity, OFFSET>(),
21488 FreeParamInfoArray: FreeParamInfoArray::<Identity, OFFSET>,
21489 FreeAddressList: FreeAddressList::<Identity, OFFSET>,
21490 FreeAddressProps: FreeAddressProps::<Identity, OFFSET>,
21491 ReleaseObjects: ReleaseObjects::<Identity, OFFSET>,
21492 FreeEnumHeaderRowArray: FreeEnumHeaderRowArray::<Identity, OFFSET>,
21493 FreeEnumPropertyArray: FreeEnumPropertyArray::<Identity, OFFSET>,
21494 FreeThumbprint: FreeThumbprint::<Identity, OFFSET>,
21495 PropVariantClear: PropVariantClear::<Identity, OFFSET>,
21496 }
21497 }
21498 pub fn matches(iid: &windows_core::GUID) -> bool {
21499 iid == &<IMimeAllocator as windows_core::Interface>::IID
21500 || iid == &<windows::Win32::System::Com::IMalloc as windows_core::Interface>::IID
21501 }
21502}
21503impl windows_core::RuntimeName for IMimeAllocator {}
21504windows_core::imp::define_interface!(
21505 IMimeBody,
21506 IMimeBody_Vtbl,
21507 0xc558834c_7f86_11d0_8252_00c04fd85ab4
21508);
21509impl core::ops::Deref for IMimeBody {
21510 type Target = IMimePropertySet;
21511 fn deref(&self) -> &Self::Target {
21512 unsafe { core::mem::transmute(self) }
21513 }
21514}
21515windows_core::imp::interface_hierarchy!(
21516 IMimeBody,
21517 windows_core::IUnknown,
21518 windows::Win32::System::Com::IPersist,
21519 windows::Win32::System::Com::IPersistStreamInit,
21520 IMimePropertySet
21521);
21522impl IMimeBody {
21523 pub unsafe fn IsType(&self, bodytype: IMSGBODYTYPE) -> windows_core::Result<()> {
21524 unsafe {
21525 (windows_core::Interface::vtable(self).IsType)(
21526 windows_core::Interface::as_raw(self),
21527 bodytype,
21528 )
21529 .ok()
21530 }
21531 }
21532 pub unsafe fn SetDisplayName<P0>(&self, pszdisplay: P0) -> windows_core::Result<()>
21533 where
21534 P0: windows_core::Param<windows_core::PCSTR>,
21535 {
21536 unsafe {
21537 (windows_core::Interface::vtable(self).SetDisplayName)(
21538 windows_core::Interface::as_raw(self),
21539 pszdisplay.param().abi(),
21540 )
21541 .ok()
21542 }
21543 }
21544 pub unsafe fn GetDisplayName(
21545 &self,
21546 ppszdisplay: *mut windows_core::PSTR,
21547 ) -> windows_core::Result<()> {
21548 unsafe {
21549 (windows_core::Interface::vtable(self).GetDisplayName)(
21550 windows_core::Interface::as_raw(self),
21551 ppszdisplay as _,
21552 )
21553 .ok()
21554 }
21555 }
21556 pub unsafe fn GetOffsets(&self, poffsets: *mut BODYOFFSETS) -> windows_core::Result<()> {
21557 unsafe {
21558 (windows_core::Interface::vtable(self).GetOffsets)(
21559 windows_core::Interface::as_raw(self),
21560 poffsets as _,
21561 )
21562 .ok()
21563 }
21564 }
21565 pub unsafe fn GetCurrentEncoding(
21566 &self,
21567 pietencoding: *mut ENCODINGTYPE,
21568 ) -> windows_core::Result<()> {
21569 unsafe {
21570 (windows_core::Interface::vtable(self).GetCurrentEncoding)(
21571 windows_core::Interface::as_raw(self),
21572 pietencoding as _,
21573 )
21574 .ok()
21575 }
21576 }
21577 pub unsafe fn SetCurrentEncoding(&self, ietencoding: ENCODINGTYPE) -> windows_core::Result<()> {
21578 unsafe {
21579 (windows_core::Interface::vtable(self).SetCurrentEncoding)(
21580 windows_core::Interface::as_raw(self),
21581 ietencoding,
21582 )
21583 .ok()
21584 }
21585 }
21586 pub unsafe fn GetEstimatedSize(
21587 &self,
21588 ietencoding: ENCODINGTYPE,
21589 pcbsize: *mut u32,
21590 ) -> windows_core::Result<()> {
21591 unsafe {
21592 (windows_core::Interface::vtable(self).GetEstimatedSize)(
21593 windows_core::Interface::as_raw(self),
21594 ietencoding,
21595 pcbsize as _,
21596 )
21597 .ok()
21598 }
21599 }
21600 pub unsafe fn GetDataHere<P1>(
21601 &self,
21602 ietencoding: ENCODINGTYPE,
21603 pstream: P1,
21604 ) -> windows_core::Result<()>
21605 where
21606 P1: windows_core::Param<windows::Win32::System::Com::IStream>,
21607 {
21608 unsafe {
21609 (windows_core::Interface::vtable(self).GetDataHere)(
21610 windows_core::Interface::as_raw(self),
21611 ietencoding,
21612 pstream.param().abi(),
21613 )
21614 .ok()
21615 }
21616 }
21617 pub unsafe fn GetData(
21618 &self,
21619 ietencoding: ENCODINGTYPE,
21620 ) -> windows_core::Result<windows::Win32::System::Com::IStream> {
21621 unsafe {
21622 let mut result__ = core::mem::zeroed();
21623 (windows_core::Interface::vtable(self).GetData)(
21624 windows_core::Interface::as_raw(self),
21625 ietencoding,
21626 &mut result__,
21627 )
21628 .and_then(|| windows_core::Type::from_abi(result__))
21629 }
21630 }
21631 pub unsafe fn SetData<P1, P2>(
21632 &self,
21633 ietencoding: ENCODINGTYPE,
21634 pszpritype: P1,
21635 pszsubtype: P2,
21636 riid: *const windows_core::GUID,
21637 pvobject: *mut core::ffi::c_void,
21638 ) -> windows_core::Result<()>
21639 where
21640 P1: windows_core::Param<windows_core::PCSTR>,
21641 P2: windows_core::Param<windows_core::PCSTR>,
21642 {
21643 unsafe {
21644 (windows_core::Interface::vtable(self).SetData)(
21645 windows_core::Interface::as_raw(self),
21646 ietencoding,
21647 pszpritype.param().abi(),
21648 pszsubtype.param().abi(),
21649 riid,
21650 pvobject as _,
21651 )
21652 .ok()
21653 }
21654 }
21655 pub unsafe fn EmptyData(&self) -> windows_core::Result<()> {
21656 unsafe {
21657 (windows_core::Interface::vtable(self).EmptyData)(windows_core::Interface::as_raw(self))
21658 .ok()
21659 }
21660 }
21661 pub unsafe fn CopyTo<P0>(&self, pbody: P0) -> windows_core::Result<()>
21662 where
21663 P0: windows_core::Param<IMimeBody>,
21664 {
21665 unsafe {
21666 (windows_core::Interface::vtable(self).CopyTo)(
21667 windows_core::Interface::as_raw(self),
21668 pbody.param().abi(),
21669 )
21670 .ok()
21671 }
21672 }
21673 pub unsafe fn GetTransmitInfo(
21674 &self,
21675 ptransmitinfo: *mut TRANSMITINFO,
21676 ) -> windows_core::Result<()> {
21677 unsafe {
21678 (windows_core::Interface::vtable(self).GetTransmitInfo)(
21679 windows_core::Interface::as_raw(self),
21680 ptransmitinfo as _,
21681 )
21682 .ok()
21683 }
21684 }
21685 pub unsafe fn SaveToFile<P1>(
21686 &self,
21687 ietencoding: ENCODINGTYPE,
21688 pszfilepath: P1,
21689 ) -> windows_core::Result<()>
21690 where
21691 P1: windows_core::Param<windows_core::PCSTR>,
21692 {
21693 unsafe {
21694 (windows_core::Interface::vtable(self).SaveToFile)(
21695 windows_core::Interface::as_raw(self),
21696 ietencoding,
21697 pszfilepath.param().abi(),
21698 )
21699 .ok()
21700 }
21701 }
21702 pub unsafe fn GetHandle(&self, phbody: *mut *mut HBODY__) -> windows_core::Result<()> {
21703 unsafe {
21704 (windows_core::Interface::vtable(self).GetHandle)(
21705 windows_core::Interface::as_raw(self),
21706 phbody as _,
21707 )
21708 .ok()
21709 }
21710 }
21711}
21712#[repr(C)]
21713#[doc(hidden)]
21714pub struct IMimeBody_Vtbl {
21715 pub base__: IMimePropertySet_Vtbl,
21716 pub IsType:
21717 unsafe extern "system" fn(*mut core::ffi::c_void, IMSGBODYTYPE) -> windows_core::HRESULT,
21718 pub SetDisplayName: unsafe extern "system" fn(
21719 *mut core::ffi::c_void,
21720 windows_core::PCSTR,
21721 ) -> windows_core::HRESULT,
21722 pub GetDisplayName: unsafe extern "system" fn(
21723 *mut core::ffi::c_void,
21724 *mut windows_core::PSTR,
21725 ) -> windows_core::HRESULT,
21726 pub GetOffsets: unsafe extern "system" fn(
21727 *mut core::ffi::c_void,
21728 *mut BODYOFFSETS,
21729 ) -> windows_core::HRESULT,
21730 pub GetCurrentEncoding: unsafe extern "system" fn(
21731 *mut core::ffi::c_void,
21732 *mut ENCODINGTYPE,
21733 ) -> windows_core::HRESULT,
21734 pub SetCurrentEncoding:
21735 unsafe extern "system" fn(*mut core::ffi::c_void, ENCODINGTYPE) -> windows_core::HRESULT,
21736 pub GetEstimatedSize: unsafe extern "system" fn(
21737 *mut core::ffi::c_void,
21738 ENCODINGTYPE,
21739 *mut u32,
21740 ) -> windows_core::HRESULT,
21741 pub GetDataHere: unsafe extern "system" fn(
21742 *mut core::ffi::c_void,
21743 ENCODINGTYPE,
21744 *mut core::ffi::c_void,
21745 ) -> windows_core::HRESULT,
21746 pub GetData: unsafe extern "system" fn(
21747 *mut core::ffi::c_void,
21748 ENCODINGTYPE,
21749 *mut *mut core::ffi::c_void,
21750 ) -> windows_core::HRESULT,
21751 pub SetData: unsafe extern "system" fn(
21752 *mut core::ffi::c_void,
21753 ENCODINGTYPE,
21754 windows_core::PCSTR,
21755 windows_core::PCSTR,
21756 *const windows_core::GUID,
21757 *mut core::ffi::c_void,
21758 ) -> windows_core::HRESULT,
21759 pub EmptyData: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
21760 pub CopyTo: unsafe extern "system" fn(
21761 *mut core::ffi::c_void,
21762 *mut core::ffi::c_void,
21763 ) -> windows_core::HRESULT,
21764 pub GetTransmitInfo: unsafe extern "system" fn(
21765 *mut core::ffi::c_void,
21766 *mut TRANSMITINFO,
21767 ) -> windows_core::HRESULT,
21768 pub SaveToFile: unsafe extern "system" fn(
21769 *mut core::ffi::c_void,
21770 ENCODINGTYPE,
21771 windows_core::PCSTR,
21772 ) -> windows_core::HRESULT,
21773 pub GetHandle: unsafe extern "system" fn(
21774 *mut core::ffi::c_void,
21775 *mut *mut HBODY__,
21776 ) -> windows_core::HRESULT,
21777}
21778pub trait IMimeBody_Impl: IMimePropertySet_Impl {
21779 fn IsType(&self, bodytype: IMSGBODYTYPE) -> windows_core::Result<()>;
21780 fn SetDisplayName(&self, pszdisplay: &windows_core::PCSTR) -> windows_core::Result<()>;
21781 fn GetDisplayName(&self, ppszdisplay: *mut windows_core::PSTR) -> windows_core::Result<()>;
21782 fn GetOffsets(&self, poffsets: *mut BODYOFFSETS) -> windows_core::Result<()>;
21783 fn GetCurrentEncoding(&self, pietencoding: *mut ENCODINGTYPE) -> windows_core::Result<()>;
21784 fn SetCurrentEncoding(&self, ietencoding: ENCODINGTYPE) -> windows_core::Result<()>;
21785 fn GetEstimatedSize(
21786 &self,
21787 ietencoding: ENCODINGTYPE,
21788 pcbsize: *mut u32,
21789 ) -> windows_core::Result<()>;
21790 fn GetDataHere(
21791 &self,
21792 ietencoding: ENCODINGTYPE,
21793 pstream: windows_core::Ref<windows::Win32::System::Com::IStream>,
21794 ) -> windows_core::Result<()>;
21795 fn GetData(
21796 &self,
21797 ietencoding: ENCODINGTYPE,
21798 ) -> windows_core::Result<windows::Win32::System::Com::IStream>;
21799 fn SetData(
21800 &self,
21801 ietencoding: ENCODINGTYPE,
21802 pszpritype: &windows_core::PCSTR,
21803 pszsubtype: &windows_core::PCSTR,
21804 riid: *const windows_core::GUID,
21805 pvobject: *mut core::ffi::c_void,
21806 ) -> windows_core::Result<()>;
21807 fn EmptyData(&self) -> windows_core::Result<()>;
21808 fn CopyTo(&self, pbody: windows_core::Ref<IMimeBody>) -> windows_core::Result<()>;
21809 fn GetTransmitInfo(&self, ptransmitinfo: *mut TRANSMITINFO) -> windows_core::Result<()>;
21810 fn SaveToFile(
21811 &self,
21812 ietencoding: ENCODINGTYPE,
21813 pszfilepath: &windows_core::PCSTR,
21814 ) -> windows_core::Result<()>;
21815 fn GetHandle(&self, phbody: *mut *mut HBODY__) -> windows_core::Result<()>;
21816}
21817impl IMimeBody_Vtbl {
21818 pub const fn new<Identity: IMimeBody_Impl, const OFFSET: isize>() -> Self {
21819 unsafe extern "system" fn IsType<Identity: IMimeBody_Impl, const OFFSET: isize>(
21820 this: *mut core::ffi::c_void,
21821 bodytype: IMSGBODYTYPE,
21822 ) -> windows_core::HRESULT {
21823 unsafe {
21824 let this: &Identity =
21825 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
21826 IMimeBody_Impl::IsType(this, core::mem::transmute_copy(&bodytype)).into()
21827 }
21828 }
21829 unsafe extern "system" fn SetDisplayName<Identity: IMimeBody_Impl, const OFFSET: isize>(
21830 this: *mut core::ffi::c_void,
21831 pszdisplay: windows_core::PCSTR,
21832 ) -> windows_core::HRESULT {
21833 unsafe {
21834 let this: &Identity =
21835 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
21836 IMimeBody_Impl::SetDisplayName(this, core::mem::transmute(&pszdisplay)).into()
21837 }
21838 }
21839 unsafe extern "system" fn GetDisplayName<Identity: IMimeBody_Impl, const OFFSET: isize>(
21840 this: *mut core::ffi::c_void,
21841 ppszdisplay: *mut windows_core::PSTR,
21842 ) -> windows_core::HRESULT {
21843 unsafe {
21844 let this: &Identity =
21845 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
21846 IMimeBody_Impl::GetDisplayName(this, core::mem::transmute_copy(&ppszdisplay)).into()
21847 }
21848 }
21849 unsafe extern "system" fn GetOffsets<Identity: IMimeBody_Impl, const OFFSET: isize>(
21850 this: *mut core::ffi::c_void,
21851 poffsets: *mut BODYOFFSETS,
21852 ) -> windows_core::HRESULT {
21853 unsafe {
21854 let this: &Identity =
21855 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
21856 IMimeBody_Impl::GetOffsets(this, core::mem::transmute_copy(&poffsets)).into()
21857 }
21858 }
21859 unsafe extern "system" fn GetCurrentEncoding<
21860 Identity: IMimeBody_Impl,
21861 const OFFSET: isize,
21862 >(
21863 this: *mut core::ffi::c_void,
21864 pietencoding: *mut ENCODINGTYPE,
21865 ) -> windows_core::HRESULT {
21866 unsafe {
21867 let this: &Identity =
21868 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
21869 IMimeBody_Impl::GetCurrentEncoding(this, core::mem::transmute_copy(&pietencoding))
21870 .into()
21871 }
21872 }
21873 unsafe extern "system" fn SetCurrentEncoding<
21874 Identity: IMimeBody_Impl,
21875 const OFFSET: isize,
21876 >(
21877 this: *mut core::ffi::c_void,
21878 ietencoding: ENCODINGTYPE,
21879 ) -> windows_core::HRESULT {
21880 unsafe {
21881 let this: &Identity =
21882 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
21883 IMimeBody_Impl::SetCurrentEncoding(this, core::mem::transmute_copy(&ietencoding))
21884 .into()
21885 }
21886 }
21887 unsafe extern "system" fn GetEstimatedSize<
21888 Identity: IMimeBody_Impl,
21889 const OFFSET: isize,
21890 >(
21891 this: *mut core::ffi::c_void,
21892 ietencoding: ENCODINGTYPE,
21893 pcbsize: *mut u32,
21894 ) -> windows_core::HRESULT {
21895 unsafe {
21896 let this: &Identity =
21897 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
21898 IMimeBody_Impl::GetEstimatedSize(
21899 this,
21900 core::mem::transmute_copy(&ietencoding),
21901 core::mem::transmute_copy(&pcbsize),
21902 )
21903 .into()
21904 }
21905 }
21906 unsafe extern "system" fn GetDataHere<Identity: IMimeBody_Impl, const OFFSET: isize>(
21907 this: *mut core::ffi::c_void,
21908 ietencoding: ENCODINGTYPE,
21909 pstream: *mut core::ffi::c_void,
21910 ) -> windows_core::HRESULT {
21911 unsafe {
21912 let this: &Identity =
21913 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
21914 IMimeBody_Impl::GetDataHere(
21915 this,
21916 core::mem::transmute_copy(&ietencoding),
21917 core::mem::transmute_copy(&pstream),
21918 )
21919 .into()
21920 }
21921 }
21922 unsafe extern "system" fn GetData<Identity: IMimeBody_Impl, const OFFSET: isize>(
21923 this: *mut core::ffi::c_void,
21924 ietencoding: ENCODINGTYPE,
21925 ppstream: *mut *mut core::ffi::c_void,
21926 ) -> windows_core::HRESULT {
21927 unsafe {
21928 let this: &Identity =
21929 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
21930 match IMimeBody_Impl::GetData(this, core::mem::transmute_copy(&ietencoding)) {
21931 Ok(ok__) => {
21932 ppstream.write(core::mem::transmute(ok__));
21933 windows_core::HRESULT(0)
21934 }
21935 Err(err) => err.into(),
21936 }
21937 }
21938 }
21939 unsafe extern "system" fn SetData<Identity: IMimeBody_Impl, const OFFSET: isize>(
21940 this: *mut core::ffi::c_void,
21941 ietencoding: ENCODINGTYPE,
21942 pszpritype: windows_core::PCSTR,
21943 pszsubtype: windows_core::PCSTR,
21944 riid: *const windows_core::GUID,
21945 pvobject: *mut core::ffi::c_void,
21946 ) -> windows_core::HRESULT {
21947 unsafe {
21948 let this: &Identity =
21949 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
21950 IMimeBody_Impl::SetData(
21951 this,
21952 core::mem::transmute_copy(&ietencoding),
21953 core::mem::transmute(&pszpritype),
21954 core::mem::transmute(&pszsubtype),
21955 core::mem::transmute_copy(&riid),
21956 core::mem::transmute_copy(&pvobject),
21957 )
21958 .into()
21959 }
21960 }
21961 unsafe extern "system" fn EmptyData<Identity: IMimeBody_Impl, const OFFSET: isize>(
21962 this: *mut core::ffi::c_void,
21963 ) -> windows_core::HRESULT {
21964 unsafe {
21965 let this: &Identity =
21966 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
21967 IMimeBody_Impl::EmptyData(this).into()
21968 }
21969 }
21970 unsafe extern "system" fn CopyTo<Identity: IMimeBody_Impl, const OFFSET: isize>(
21971 this: *mut core::ffi::c_void,
21972 pbody: *mut core::ffi::c_void,
21973 ) -> windows_core::HRESULT {
21974 unsafe {
21975 let this: &Identity =
21976 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
21977 IMimeBody_Impl::CopyTo(this, core::mem::transmute_copy(&pbody)).into()
21978 }
21979 }
21980 unsafe extern "system" fn GetTransmitInfo<Identity: IMimeBody_Impl, const OFFSET: isize>(
21981 this: *mut core::ffi::c_void,
21982 ptransmitinfo: *mut TRANSMITINFO,
21983 ) -> windows_core::HRESULT {
21984 unsafe {
21985 let this: &Identity =
21986 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
21987 IMimeBody_Impl::GetTransmitInfo(this, core::mem::transmute_copy(&ptransmitinfo))
21988 .into()
21989 }
21990 }
21991 unsafe extern "system" fn SaveToFile<Identity: IMimeBody_Impl, const OFFSET: isize>(
21992 this: *mut core::ffi::c_void,
21993 ietencoding: ENCODINGTYPE,
21994 pszfilepath: windows_core::PCSTR,
21995 ) -> windows_core::HRESULT {
21996 unsafe {
21997 let this: &Identity =
21998 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
21999 IMimeBody_Impl::SaveToFile(
22000 this,
22001 core::mem::transmute_copy(&ietencoding),
22002 core::mem::transmute(&pszfilepath),
22003 )
22004 .into()
22005 }
22006 }
22007 unsafe extern "system" fn GetHandle<Identity: IMimeBody_Impl, const OFFSET: isize>(
22008 this: *mut core::ffi::c_void,
22009 phbody: *mut *mut HBODY__,
22010 ) -> windows_core::HRESULT {
22011 unsafe {
22012 let this: &Identity =
22013 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
22014 IMimeBody_Impl::GetHandle(this, core::mem::transmute_copy(&phbody)).into()
22015 }
22016 }
22017 Self {
22018 base__: IMimePropertySet_Vtbl::new::<Identity, OFFSET>(),
22019 IsType: IsType::<Identity, OFFSET>,
22020 SetDisplayName: SetDisplayName::<Identity, OFFSET>,
22021 GetDisplayName: GetDisplayName::<Identity, OFFSET>,
22022 GetOffsets: GetOffsets::<Identity, OFFSET>,
22023 GetCurrentEncoding: GetCurrentEncoding::<Identity, OFFSET>,
22024 SetCurrentEncoding: SetCurrentEncoding::<Identity, OFFSET>,
22025 GetEstimatedSize: GetEstimatedSize::<Identity, OFFSET>,
22026 GetDataHere: GetDataHere::<Identity, OFFSET>,
22027 GetData: GetData::<Identity, OFFSET>,
22028 SetData: SetData::<Identity, OFFSET>,
22029 EmptyData: EmptyData::<Identity, OFFSET>,
22030 CopyTo: CopyTo::<Identity, OFFSET>,
22031 GetTransmitInfo: GetTransmitInfo::<Identity, OFFSET>,
22032 SaveToFile: SaveToFile::<Identity, OFFSET>,
22033 GetHandle: GetHandle::<Identity, OFFSET>,
22034 }
22035 }
22036 pub fn matches(iid: &windows_core::GUID) -> bool {
22037 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
22038 }
22039}
22040impl windows_core::RuntimeName for IMimeBody {}
22041windows_core::imp::define_interface!(
22042 IMimeEditTag,
22043 IMimeEditTag_Vtbl,
22044 0x70183210_7b36_11d2_8c12_00c04fa31009
22045);
22046windows_core::imp::interface_hierarchy!(IMimeEditTag, windows_core::IUnknown);
22047impl IMimeEditTag {
22048 pub unsafe fn GetSrc(&self, pbstr: *mut windows_core::BSTR) -> windows_core::Result<()> {
22049 unsafe {
22050 (windows_core::Interface::vtable(self).GetSrc)(
22051 windows_core::Interface::as_raw(self),
22052 core::mem::transmute(pbstr),
22053 )
22054 .ok()
22055 }
22056 }
22057 pub unsafe fn SetSrc(&self, bstr: &windows_core::BSTR) -> windows_core::Result<()> {
22058 unsafe {
22059 (windows_core::Interface::vtable(self).SetSrc)(
22060 windows_core::Interface::as_raw(self),
22061 core::mem::transmute_copy(bstr),
22062 )
22063 .ok()
22064 }
22065 }
22066 pub unsafe fn GetDest(&self, pbstr: *mut windows_core::BSTR) -> windows_core::Result<()> {
22067 unsafe {
22068 (windows_core::Interface::vtable(self).GetDest)(
22069 windows_core::Interface::as_raw(self),
22070 core::mem::transmute(pbstr),
22071 )
22072 .ok()
22073 }
22074 }
22075 pub unsafe fn SetDest(&self, bstr: &windows_core::BSTR) -> windows_core::Result<()> {
22076 unsafe {
22077 (windows_core::Interface::vtable(self).SetDest)(
22078 windows_core::Interface::as_raw(self),
22079 core::mem::transmute_copy(bstr),
22080 )
22081 .ok()
22082 }
22083 }
22084 pub unsafe fn OnPreSave(&self) -> windows_core::Result<()> {
22085 unsafe {
22086 (windows_core::Interface::vtable(self).OnPreSave)(windows_core::Interface::as_raw(self))
22087 .ok()
22088 }
22089 }
22090 pub unsafe fn OnPostSave(&self) -> windows_core::Result<()> {
22091 unsafe {
22092 (windows_core::Interface::vtable(self).OnPostSave)(windows_core::Interface::as_raw(
22093 self,
22094 ))
22095 .ok()
22096 }
22097 }
22098 pub unsafe fn CanPackage(&self) -> windows_core::Result<()> {
22099 unsafe {
22100 (windows_core::Interface::vtable(self).CanPackage)(windows_core::Interface::as_raw(
22101 self,
22102 ))
22103 .ok()
22104 }
22105 }
22106 pub unsafe fn IsValidMimeType<P0>(&self, psztypew: P0) -> windows_core::Result<()>
22107 where
22108 P0: windows_core::Param<windows_core::PCWSTR>,
22109 {
22110 unsafe {
22111 (windows_core::Interface::vtable(self).IsValidMimeType)(
22112 windows_core::Interface::as_raw(self),
22113 psztypew.param().abi(),
22114 )
22115 .ok()
22116 }
22117 }
22118}
22119#[repr(C)]
22120#[doc(hidden)]
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)]
22308#[doc(hidden)]
22309pub struct IMimeEditTagCollection_Vtbl {
22310 pub base__: windows_core::IUnknown_Vtbl,
22311 pub Init: unsafe extern "system" fn(
22312 *mut core::ffi::c_void,
22313 *mut core::ffi::c_void,
22314 ) -> windows_core::HRESULT,
22315 pub Next: unsafe extern "system" fn(
22316 *mut core::ffi::c_void,
22317 u32,
22318 *mut *mut core::ffi::c_void,
22319 *mut u32,
22320 ) -> windows_core::HRESULT,
22321 pub Reset: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
22322 pub Count: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
22323}
22324pub trait IMimeEditTagCollection_Impl: windows_core::IUnknownImpl {
22325 fn Init(&self, phtmldoc: windows_core::Ref<windows_core::IUnknown>)
22326 -> windows_core::Result<()>;
22327 fn Next(
22328 &self,
22329 cfetch: u32,
22330 pptag: windows_core::OutRef<IMimeEditTag>,
22331 pcfetched: *mut u32,
22332 ) -> windows_core::Result<()>;
22333 fn Reset(&self) -> windows_core::Result<()>;
22334 fn Count(&self, pcitems: *mut u32) -> windows_core::Result<()>;
22335}
22336impl IMimeEditTagCollection_Vtbl {
22337 pub const fn new<Identity: IMimeEditTagCollection_Impl, const OFFSET: isize>() -> Self {
22338 unsafe extern "system" fn Init<
22339 Identity: IMimeEditTagCollection_Impl,
22340 const OFFSET: isize,
22341 >(
22342 this: *mut core::ffi::c_void,
22343 phtmldoc: *mut core::ffi::c_void,
22344 ) -> windows_core::HRESULT {
22345 unsafe {
22346 let this: &Identity =
22347 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
22348 IMimeEditTagCollection_Impl::Init(this, core::mem::transmute_copy(&phtmldoc)).into()
22349 }
22350 }
22351 unsafe extern "system" fn Next<
22352 Identity: IMimeEditTagCollection_Impl,
22353 const OFFSET: isize,
22354 >(
22355 this: *mut core::ffi::c_void,
22356 cfetch: u32,
22357 pptag: *mut *mut core::ffi::c_void,
22358 pcfetched: *mut u32,
22359 ) -> windows_core::HRESULT {
22360 unsafe {
22361 let this: &Identity =
22362 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
22363 IMimeEditTagCollection_Impl::Next(
22364 this,
22365 core::mem::transmute_copy(&cfetch),
22366 core::mem::transmute_copy(&pptag),
22367 core::mem::transmute_copy(&pcfetched),
22368 )
22369 .into()
22370 }
22371 }
22372 unsafe extern "system" fn Reset<
22373 Identity: IMimeEditTagCollection_Impl,
22374 const OFFSET: isize,
22375 >(
22376 this: *mut core::ffi::c_void,
22377 ) -> windows_core::HRESULT {
22378 unsafe {
22379 let this: &Identity =
22380 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
22381 IMimeEditTagCollection_Impl::Reset(this).into()
22382 }
22383 }
22384 unsafe extern "system" fn Count<
22385 Identity: IMimeEditTagCollection_Impl,
22386 const OFFSET: isize,
22387 >(
22388 this: *mut core::ffi::c_void,
22389 pcitems: *mut u32,
22390 ) -> windows_core::HRESULT {
22391 unsafe {
22392 let this: &Identity =
22393 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
22394 IMimeEditTagCollection_Impl::Count(this, core::mem::transmute_copy(&pcitems)).into()
22395 }
22396 }
22397 Self {
22398 base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
22399 Init: Init::<Identity, OFFSET>,
22400 Next: Next::<Identity, OFFSET>,
22401 Reset: Reset::<Identity, OFFSET>,
22402 Count: Count::<Identity, OFFSET>,
22403 }
22404 }
22405 pub fn matches(iid: &windows_core::GUID) -> bool {
22406 iid == &<IMimeEditTagCollection as windows_core::Interface>::IID
22407 }
22408}
22409impl windows_core::RuntimeName for IMimeEditTagCollection {}
22410windows_core::imp::define_interface!(
22411 IMimeEnumAddressTypes,
22412 IMimeEnumAddressTypes_Vtbl,
22413 0xc5588354_7f86_11d0_8252_00c04fd85ab4
22414);
22415windows_core::imp::interface_hierarchy!(IMimeEnumAddressTypes, windows_core::IUnknown);
22416impl IMimeEnumAddressTypes {
22417 pub unsafe fn Next(
22418 &self,
22419 cfetch: u32,
22420 prgadr: *mut ADDRESSPROPS,
22421 pcfetched: *mut u32,
22422 ) -> windows_core::Result<()> {
22423 unsafe {
22424 (windows_core::Interface::vtable(self).Next)(
22425 windows_core::Interface::as_raw(self),
22426 cfetch,
22427 prgadr as _,
22428 pcfetched as _,
22429 )
22430 .ok()
22431 }
22432 }
22433 pub unsafe fn Skip(&self, citems: u32) -> windows_core::Result<()> {
22434 unsafe {
22435 (windows_core::Interface::vtable(self).Skip)(
22436 windows_core::Interface::as_raw(self),
22437 citems,
22438 )
22439 .ok()
22440 }
22441 }
22442 pub unsafe fn Reset(&self) -> windows_core::Result<()> {
22443 unsafe {
22444 (windows_core::Interface::vtable(self).Reset)(windows_core::Interface::as_raw(self))
22445 .ok()
22446 }
22447 }
22448 pub unsafe fn Clone(&self) -> windows_core::Result<IMimeEnumAddressTypes> {
22449 unsafe {
22450 let mut result__ = core::mem::zeroed();
22451 (windows_core::Interface::vtable(self).Clone)(
22452 windows_core::Interface::as_raw(self),
22453 &mut result__,
22454 )
22455 .and_then(|| windows_core::Type::from_abi(result__))
22456 }
22457 }
22458 pub unsafe fn Count(&self, pcitems: *mut u32) -> windows_core::Result<()> {
22459 unsafe {
22460 (windows_core::Interface::vtable(self).Count)(
22461 windows_core::Interface::as_raw(self),
22462 pcitems as _,
22463 )
22464 .ok()
22465 }
22466 }
22467}
22468#[repr(C)]
22469#[doc(hidden)]
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)]
22651#[doc(hidden)]
22652pub struct IMimeEnumHeaderRows_Vtbl {
22653 pub base__: windows_core::IUnknown_Vtbl,
22654 pub Next: unsafe extern "system" fn(
22655 *mut core::ffi::c_void,
22656 u32,
22657 *mut ENUMHEADERROW,
22658 *mut u32,
22659 ) -> windows_core::HRESULT,
22660 pub Skip: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
22661 pub Reset: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
22662 pub Clone: unsafe extern "system" fn(
22663 *mut core::ffi::c_void,
22664 *mut *mut core::ffi::c_void,
22665 ) -> windows_core::HRESULT,
22666 pub Count: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
22667}
22668pub trait IMimeEnumHeaderRows_Impl: windows_core::IUnknownImpl {
22669 fn Next(
22670 &self,
22671 cfetch: u32,
22672 prgrow: *mut ENUMHEADERROW,
22673 pcfetched: *mut u32,
22674 ) -> windows_core::Result<()>;
22675 fn Skip(&self, citems: u32) -> windows_core::Result<()>;
22676 fn Reset(&self) -> windows_core::Result<()>;
22677 fn Clone(&self) -> windows_core::Result<IMimeEnumHeaderRows>;
22678 fn Count(&self, pcitems: *mut u32) -> windows_core::Result<()>;
22679}
22680impl IMimeEnumHeaderRows_Vtbl {
22681 pub const fn new<Identity: IMimeEnumHeaderRows_Impl, const OFFSET: isize>() -> Self {
22682 unsafe extern "system" fn Next<Identity: IMimeEnumHeaderRows_Impl, const OFFSET: isize>(
22683 this: *mut core::ffi::c_void,
22684 cfetch: u32,
22685 prgrow: *mut ENUMHEADERROW,
22686 pcfetched: *mut u32,
22687 ) -> windows_core::HRESULT {
22688 unsafe {
22689 let this: &Identity =
22690 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
22691 IMimeEnumHeaderRows_Impl::Next(
22692 this,
22693 core::mem::transmute_copy(&cfetch),
22694 core::mem::transmute_copy(&prgrow),
22695 core::mem::transmute_copy(&pcfetched),
22696 )
22697 .into()
22698 }
22699 }
22700 unsafe extern "system" fn Skip<Identity: IMimeEnumHeaderRows_Impl, const OFFSET: isize>(
22701 this: *mut core::ffi::c_void,
22702 citems: u32,
22703 ) -> windows_core::HRESULT {
22704 unsafe {
22705 let this: &Identity =
22706 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
22707 IMimeEnumHeaderRows_Impl::Skip(this, core::mem::transmute_copy(&citems)).into()
22708 }
22709 }
22710 unsafe extern "system" fn Reset<Identity: IMimeEnumHeaderRows_Impl, const OFFSET: isize>(
22711 this: *mut core::ffi::c_void,
22712 ) -> windows_core::HRESULT {
22713 unsafe {
22714 let this: &Identity =
22715 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
22716 IMimeEnumHeaderRows_Impl::Reset(this).into()
22717 }
22718 }
22719 unsafe extern "system" fn Clone<Identity: IMimeEnumHeaderRows_Impl, const OFFSET: isize>(
22720 this: *mut core::ffi::c_void,
22721 ppenum: *mut *mut core::ffi::c_void,
22722 ) -> windows_core::HRESULT {
22723 unsafe {
22724 let this: &Identity =
22725 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
22726 match IMimeEnumHeaderRows_Impl::Clone(this) {
22727 Ok(ok__) => {
22728 ppenum.write(core::mem::transmute(ok__));
22729 windows_core::HRESULT(0)
22730 }
22731 Err(err) => err.into(),
22732 }
22733 }
22734 }
22735 unsafe extern "system" fn Count<Identity: IMimeEnumHeaderRows_Impl, const OFFSET: isize>(
22736 this: *mut core::ffi::c_void,
22737 pcitems: *mut u32,
22738 ) -> windows_core::HRESULT {
22739 unsafe {
22740 let this: &Identity =
22741 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
22742 IMimeEnumHeaderRows_Impl::Count(this, core::mem::transmute_copy(&pcitems)).into()
22743 }
22744 }
22745 Self {
22746 base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
22747 Next: Next::<Identity, OFFSET>,
22748 Skip: Skip::<Identity, OFFSET>,
22749 Reset: Reset::<Identity, OFFSET>,
22750 Clone: Clone::<Identity, OFFSET>,
22751 Count: Count::<Identity, OFFSET>,
22752 }
22753 }
22754 pub fn matches(iid: &windows_core::GUID) -> bool {
22755 iid == &<IMimeEnumHeaderRows as windows_core::Interface>::IID
22756 }
22757}
22758impl windows_core::RuntimeName for IMimeEnumHeaderRows {}
22759windows_core::imp::define_interface!(
22760 IMimeEnumMessageParts,
22761 IMimeEnumMessageParts_Vtbl,
22762 0xc5588350_7f86_11d0_8252_00c04fd85ab4
22763);
22764windows_core::imp::interface_hierarchy!(IMimeEnumMessageParts, windows_core::IUnknown);
22765impl IMimeEnumMessageParts {
22766 pub unsafe fn Next(
22767 &self,
22768 cfetch: u32,
22769 prgpmessage: *mut Option<IMimeMessage>,
22770 pcfetched: *mut u32,
22771 ) -> windows_core::Result<()> {
22772 unsafe {
22773 (windows_core::Interface::vtable(self).Next)(
22774 windows_core::Interface::as_raw(self),
22775 cfetch,
22776 core::mem::transmute(prgpmessage),
22777 pcfetched as _,
22778 )
22779 .ok()
22780 }
22781 }
22782 pub unsafe fn Skip(&self, citems: u32) -> windows_core::Result<()> {
22783 unsafe {
22784 (windows_core::Interface::vtable(self).Skip)(
22785 windows_core::Interface::as_raw(self),
22786 citems,
22787 )
22788 .ok()
22789 }
22790 }
22791 pub unsafe fn Reset(&self) -> windows_core::Result<()> {
22792 unsafe {
22793 (windows_core::Interface::vtable(self).Reset)(windows_core::Interface::as_raw(self))
22794 .ok()
22795 }
22796 }
22797 pub unsafe fn Clone(&self) -> windows_core::Result<IMimeEnumMessageParts> {
22798 unsafe {
22799 let mut result__ = core::mem::zeroed();
22800 (windows_core::Interface::vtable(self).Clone)(
22801 windows_core::Interface::as_raw(self),
22802 &mut result__,
22803 )
22804 .and_then(|| windows_core::Type::from_abi(result__))
22805 }
22806 }
22807 pub unsafe fn Count(&self, pcitems: *mut u32) -> windows_core::Result<()> {
22808 unsafe {
22809 (windows_core::Interface::vtable(self).Count)(
22810 windows_core::Interface::as_raw(self),
22811 pcitems as _,
22812 )
22813 .ok()
22814 }
22815 }
22816}
22817#[repr(C)]
22818#[doc(hidden)]
22819pub struct IMimeEnumMessageParts_Vtbl {
22820 pub base__: windows_core::IUnknown_Vtbl,
22821 pub Next: unsafe extern "system" fn(
22822 *mut core::ffi::c_void,
22823 u32,
22824 *mut *mut core::ffi::c_void,
22825 *mut u32,
22826 ) -> windows_core::HRESULT,
22827 pub Skip: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
22828 pub Reset: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
22829 pub Clone: unsafe extern "system" fn(
22830 *mut core::ffi::c_void,
22831 *mut *mut core::ffi::c_void,
22832 ) -> windows_core::HRESULT,
22833 pub Count: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
22834}
22835pub trait IMimeEnumMessageParts_Impl: windows_core::IUnknownImpl {
22836 fn Next(
22837 &self,
22838 cfetch: u32,
22839 prgpmessage: windows_core::OutRef<IMimeMessage>,
22840 pcfetched: *mut u32,
22841 ) -> windows_core::Result<()>;
22842 fn Skip(&self, citems: u32) -> windows_core::Result<()>;
22843 fn Reset(&self) -> windows_core::Result<()>;
22844 fn Clone(&self) -> windows_core::Result<IMimeEnumMessageParts>;
22845 fn Count(&self, pcitems: *mut u32) -> windows_core::Result<()>;
22846}
22847impl IMimeEnumMessageParts_Vtbl {
22848 pub const fn new<Identity: IMimeEnumMessageParts_Impl, const OFFSET: isize>() -> Self {
22849 unsafe extern "system" fn Next<
22850 Identity: IMimeEnumMessageParts_Impl,
22851 const OFFSET: isize,
22852 >(
22853 this: *mut core::ffi::c_void,
22854 cfetch: u32,
22855 prgpmessage: *mut *mut core::ffi::c_void,
22856 pcfetched: *mut u32,
22857 ) -> windows_core::HRESULT {
22858 unsafe {
22859 let this: &Identity =
22860 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
22861 IMimeEnumMessageParts_Impl::Next(
22862 this,
22863 core::mem::transmute_copy(&cfetch),
22864 core::mem::transmute_copy(&prgpmessage),
22865 core::mem::transmute_copy(&pcfetched),
22866 )
22867 .into()
22868 }
22869 }
22870 unsafe extern "system" fn Skip<
22871 Identity: IMimeEnumMessageParts_Impl,
22872 const OFFSET: isize,
22873 >(
22874 this: *mut core::ffi::c_void,
22875 citems: u32,
22876 ) -> windows_core::HRESULT {
22877 unsafe {
22878 let this: &Identity =
22879 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
22880 IMimeEnumMessageParts_Impl::Skip(this, core::mem::transmute_copy(&citems)).into()
22881 }
22882 }
22883 unsafe extern "system" fn Reset<
22884 Identity: IMimeEnumMessageParts_Impl,
22885 const OFFSET: isize,
22886 >(
22887 this: *mut core::ffi::c_void,
22888 ) -> windows_core::HRESULT {
22889 unsafe {
22890 let this: &Identity =
22891 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
22892 IMimeEnumMessageParts_Impl::Reset(this).into()
22893 }
22894 }
22895 unsafe extern "system" fn Clone<
22896 Identity: IMimeEnumMessageParts_Impl,
22897 const OFFSET: isize,
22898 >(
22899 this: *mut core::ffi::c_void,
22900 ppenum: *mut *mut core::ffi::c_void,
22901 ) -> windows_core::HRESULT {
22902 unsafe {
22903 let this: &Identity =
22904 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
22905 match IMimeEnumMessageParts_Impl::Clone(this) {
22906 Ok(ok__) => {
22907 ppenum.write(core::mem::transmute(ok__));
22908 windows_core::HRESULT(0)
22909 }
22910 Err(err) => err.into(),
22911 }
22912 }
22913 }
22914 unsafe extern "system" fn Count<
22915 Identity: IMimeEnumMessageParts_Impl,
22916 const OFFSET: isize,
22917 >(
22918 this: *mut core::ffi::c_void,
22919 pcitems: *mut u32,
22920 ) -> windows_core::HRESULT {
22921 unsafe {
22922 let this: &Identity =
22923 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
22924 IMimeEnumMessageParts_Impl::Count(this, core::mem::transmute_copy(&pcitems)).into()
22925 }
22926 }
22927 Self {
22928 base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
22929 Next: Next::<Identity, OFFSET>,
22930 Skip: Skip::<Identity, OFFSET>,
22931 Reset: Reset::<Identity, OFFSET>,
22932 Clone: Clone::<Identity, OFFSET>,
22933 Count: Count::<Identity, OFFSET>,
22934 }
22935 }
22936 pub fn matches(iid: &windows_core::GUID) -> bool {
22937 iid == &<IMimeEnumMessageParts as windows_core::Interface>::IID
22938 }
22939}
22940impl windows_core::RuntimeName for IMimeEnumMessageParts {}
22941windows_core::imp::define_interface!(
22942 IMimeEnumProperties,
22943 IMimeEnumProperties_Vtbl,
22944 0xfd853cee_7f86_11d0_8252_00c04fd85ab4
22945);
22946windows_core::imp::interface_hierarchy!(IMimeEnumProperties, windows_core::IUnknown);
22947impl IMimeEnumProperties {
22948 pub unsafe fn Next(
22949 &self,
22950 cfetch: u32,
22951 prgprop: *mut ENUMPROPERTY,
22952 pcfetched: *mut u32,
22953 ) -> windows_core::Result<()> {
22954 unsafe {
22955 (windows_core::Interface::vtable(self).Next)(
22956 windows_core::Interface::as_raw(self),
22957 cfetch,
22958 prgprop as _,
22959 pcfetched as _,
22960 )
22961 .ok()
22962 }
22963 }
22964 pub unsafe fn Skip(&self, citems: u32) -> windows_core::Result<()> {
22965 unsafe {
22966 (windows_core::Interface::vtable(self).Skip)(
22967 windows_core::Interface::as_raw(self),
22968 citems,
22969 )
22970 .ok()
22971 }
22972 }
22973 pub unsafe fn Reset(&self) -> windows_core::Result<()> {
22974 unsafe {
22975 (windows_core::Interface::vtable(self).Reset)(windows_core::Interface::as_raw(self))
22976 .ok()
22977 }
22978 }
22979 pub unsafe fn Clone(&self) -> windows_core::Result<IMimeEnumProperties> {
22980 unsafe {
22981 let mut result__ = core::mem::zeroed();
22982 (windows_core::Interface::vtable(self).Clone)(
22983 windows_core::Interface::as_raw(self),
22984 &mut result__,
22985 )
22986 .and_then(|| windows_core::Type::from_abi(result__))
22987 }
22988 }
22989 pub unsafe fn Count(&self, pcitems: *mut u32) -> windows_core::Result<()> {
22990 unsafe {
22991 (windows_core::Interface::vtable(self).Count)(
22992 windows_core::Interface::as_raw(self),
22993 pcitems as _,
22994 )
22995 .ok()
22996 }
22997 }
22998}
22999#[repr(C)]
23000#[doc(hidden)]
23001pub struct IMimeEnumProperties_Vtbl {
23002 pub base__: windows_core::IUnknown_Vtbl,
23003 pub Next: unsafe extern "system" fn(
23004 *mut core::ffi::c_void,
23005 u32,
23006 *mut ENUMPROPERTY,
23007 *mut u32,
23008 ) -> windows_core::HRESULT,
23009 pub Skip: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
23010 pub Reset: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
23011 pub Clone: unsafe extern "system" fn(
23012 *mut core::ffi::c_void,
23013 *mut *mut core::ffi::c_void,
23014 ) -> windows_core::HRESULT,
23015 pub Count: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
23016}
23017pub trait IMimeEnumProperties_Impl: windows_core::IUnknownImpl {
23018 fn Next(
23019 &self,
23020 cfetch: u32,
23021 prgprop: *mut ENUMPROPERTY,
23022 pcfetched: *mut u32,
23023 ) -> windows_core::Result<()>;
23024 fn Skip(&self, citems: u32) -> windows_core::Result<()>;
23025 fn Reset(&self) -> windows_core::Result<()>;
23026 fn Clone(&self) -> windows_core::Result<IMimeEnumProperties>;
23027 fn Count(&self, pcitems: *mut u32) -> windows_core::Result<()>;
23028}
23029impl IMimeEnumProperties_Vtbl {
23030 pub const fn new<Identity: IMimeEnumProperties_Impl, const OFFSET: isize>() -> Self {
23031 unsafe extern "system" fn Next<Identity: IMimeEnumProperties_Impl, const OFFSET: isize>(
23032 this: *mut core::ffi::c_void,
23033 cfetch: u32,
23034 prgprop: *mut ENUMPROPERTY,
23035 pcfetched: *mut u32,
23036 ) -> windows_core::HRESULT {
23037 unsafe {
23038 let this: &Identity =
23039 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
23040 IMimeEnumProperties_Impl::Next(
23041 this,
23042 core::mem::transmute_copy(&cfetch),
23043 core::mem::transmute_copy(&prgprop),
23044 core::mem::transmute_copy(&pcfetched),
23045 )
23046 .into()
23047 }
23048 }
23049 unsafe extern "system" fn Skip<Identity: IMimeEnumProperties_Impl, const OFFSET: isize>(
23050 this: *mut core::ffi::c_void,
23051 citems: u32,
23052 ) -> windows_core::HRESULT {
23053 unsafe {
23054 let this: &Identity =
23055 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
23056 IMimeEnumProperties_Impl::Skip(this, core::mem::transmute_copy(&citems)).into()
23057 }
23058 }
23059 unsafe extern "system" fn Reset<Identity: IMimeEnumProperties_Impl, const OFFSET: isize>(
23060 this: *mut core::ffi::c_void,
23061 ) -> windows_core::HRESULT {
23062 unsafe {
23063 let this: &Identity =
23064 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
23065 IMimeEnumProperties_Impl::Reset(this).into()
23066 }
23067 }
23068 unsafe extern "system" fn Clone<Identity: IMimeEnumProperties_Impl, const OFFSET: isize>(
23069 this: *mut core::ffi::c_void,
23070 ppenum: *mut *mut core::ffi::c_void,
23071 ) -> windows_core::HRESULT {
23072 unsafe {
23073 let this: &Identity =
23074 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
23075 match IMimeEnumProperties_Impl::Clone(this) {
23076 Ok(ok__) => {
23077 ppenum.write(core::mem::transmute(ok__));
23078 windows_core::HRESULT(0)
23079 }
23080 Err(err) => err.into(),
23081 }
23082 }
23083 }
23084 unsafe extern "system" fn Count<Identity: IMimeEnumProperties_Impl, const OFFSET: isize>(
23085 this: *mut core::ffi::c_void,
23086 pcitems: *mut u32,
23087 ) -> windows_core::HRESULT {
23088 unsafe {
23089 let this: &Identity =
23090 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
23091 IMimeEnumProperties_Impl::Count(this, core::mem::transmute_copy(&pcitems)).into()
23092 }
23093 }
23094 Self {
23095 base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
23096 Next: Next::<Identity, OFFSET>,
23097 Skip: Skip::<Identity, OFFSET>,
23098 Reset: Reset::<Identity, OFFSET>,
23099 Clone: Clone::<Identity, OFFSET>,
23100 Count: Count::<Identity, OFFSET>,
23101 }
23102 }
23103 pub fn matches(iid: &windows_core::GUID) -> bool {
23104 iid == &<IMimeEnumProperties as windows_core::Interface>::IID
23105 }
23106}
23107impl windows_core::RuntimeName for IMimeEnumProperties {}
23108windows_core::imp::define_interface!(
23109 IMimeHeaderTable,
23110 IMimeHeaderTable_Vtbl,
23111 0xfd853cd1_7f86_11d0_8252_00c04fd85ab4
23112);
23113impl core::ops::Deref for IMimeHeaderTable {
23114 type Target = windows::Win32::System::Com::IPersistStream;
23115 fn deref(&self) -> &Self::Target {
23116 unsafe { core::mem::transmute(self) }
23117 }
23118}
23119windows_core::imp::interface_hierarchy!(
23120 IMimeHeaderTable,
23121 windows_core::IUnknown,
23122 windows::Win32::System::Com::IPersist,
23123 windows::Win32::System::Com::IPersistStream
23124);
23125impl IMimeHeaderTable {
23126 pub unsafe fn Load<P0>(&self, pstm: P0) -> windows_core::Result<()>
23127 where
23128 P0: windows_core::Param<windows::Win32::System::Com::IStream>,
23129 {
23130 unsafe {
23131 (windows_core::Interface::vtable(self).Load)(
23132 windows_core::Interface::as_raw(self),
23133 pstm.param().abi(),
23134 )
23135 .ok()
23136 }
23137 }
23138 pub unsafe fn Save<P0>(&self, pstm: P0, fcleardirty: bool) -> windows_core::Result<()>
23139 where
23140 P0: windows_core::Param<windows::Win32::System::Com::IStream>,
23141 {
23142 unsafe {
23143 (windows_core::Interface::vtable(self).Save)(
23144 windows_core::Interface::as_raw(self),
23145 pstm.param().abi(),
23146 fcleardirty.into(),
23147 )
23148 .ok()
23149 }
23150 }
23151 pub unsafe fn GetSizeMax(&self) -> windows_core::Result<u64> {
23152 unsafe {
23153 let mut result__ = core::mem::zeroed();
23154 (windows_core::Interface::vtable(self).GetSizeMax)(
23155 windows_core::Interface::as_raw(self),
23156 &mut result__,
23157 )
23158 .map(|| result__)
23159 }
23160 }
23161 pub unsafe fn FindFirstRow(
23162 &self,
23163 pfindheader: *mut FINDHEADER,
23164 phrow: *mut *mut HHEADERROW__,
23165 ) -> windows_core::Result<()> {
23166 unsafe {
23167 (windows_core::Interface::vtable(self).FindFirstRow)(
23168 windows_core::Interface::as_raw(self),
23169 pfindheader as _,
23170 phrow as _,
23171 )
23172 .ok()
23173 }
23174 }
23175 pub unsafe fn FindNextRow(
23176 &self,
23177 pfindheader: *mut FINDHEADER,
23178 phrow: *mut *mut HHEADERROW__,
23179 ) -> windows_core::Result<()> {
23180 unsafe {
23181 (windows_core::Interface::vtable(self).FindNextRow)(
23182 windows_core::Interface::as_raw(self),
23183 pfindheader as _,
23184 phrow as _,
23185 )
23186 .ok()
23187 }
23188 }
23189 pub unsafe fn CountRows<P0>(&self, pszheader: P0, pcrows: *mut u32) -> windows_core::Result<()>
23190 where
23191 P0: windows_core::Param<windows_core::PCSTR>,
23192 {
23193 unsafe {
23194 (windows_core::Interface::vtable(self).CountRows)(
23195 windows_core::Interface::as_raw(self),
23196 pszheader.param().abi(),
23197 pcrows as _,
23198 )
23199 .ok()
23200 }
23201 }
23202 pub unsafe fn AppendRow<P0, P2>(
23203 &self,
23204 pszheader: P0,
23205 dwflags: u32,
23206 pszdata: P2,
23207 cchdata: u32,
23208 phrow: *mut *mut HHEADERROW__,
23209 ) -> windows_core::Result<()>
23210 where
23211 P0: windows_core::Param<windows_core::PCSTR>,
23212 P2: windows_core::Param<windows_core::PCSTR>,
23213 {
23214 unsafe {
23215 (windows_core::Interface::vtable(self).AppendRow)(
23216 windows_core::Interface::as_raw(self),
23217 pszheader.param().abi(),
23218 dwflags,
23219 pszdata.param().abi(),
23220 cchdata,
23221 phrow as _,
23222 )
23223 .ok()
23224 }
23225 }
23226 pub unsafe fn DeleteRow(&self, hrow: *mut HHEADERROW__) -> windows_core::Result<()> {
23227 unsafe {
23228 (windows_core::Interface::vtable(self).DeleteRow)(
23229 windows_core::Interface::as_raw(self),
23230 hrow as _,
23231 )
23232 .ok()
23233 }
23234 }
23235 pub unsafe fn GetRowData(
23236 &self,
23237 hrow: *mut HHEADERROW__,
23238 dwflags: u32,
23239 ppszdata: *mut windows_core::PSTR,
23240 pcchdata: *mut u32,
23241 ) -> windows_core::Result<()> {
23242 unsafe {
23243 (windows_core::Interface::vtable(self).GetRowData)(
23244 windows_core::Interface::as_raw(self),
23245 hrow as _,
23246 dwflags,
23247 ppszdata as _,
23248 pcchdata as _,
23249 )
23250 .ok()
23251 }
23252 }
23253 pub unsafe fn SetRowData<P2>(
23254 &self,
23255 hrow: *mut HHEADERROW__,
23256 dwflags: u32,
23257 pszdata: P2,
23258 cchdata: u32,
23259 ) -> windows_core::Result<()>
23260 where
23261 P2: windows_core::Param<windows_core::PCSTR>,
23262 {
23263 unsafe {
23264 (windows_core::Interface::vtable(self).SetRowData)(
23265 windows_core::Interface::as_raw(self),
23266 hrow as _,
23267 dwflags,
23268 pszdata.param().abi(),
23269 cchdata,
23270 )
23271 .ok()
23272 }
23273 }
23274 pub unsafe fn GetRowInfo(
23275 &self,
23276 hrow: *mut HHEADERROW__,
23277 pinfo: *mut HEADERROWINFO,
23278 ) -> windows_core::Result<()> {
23279 unsafe {
23280 (windows_core::Interface::vtable(self).GetRowInfo)(
23281 windows_core::Interface::as_raw(self),
23282 hrow as _,
23283 pinfo as _,
23284 )
23285 .ok()
23286 }
23287 }
23288 pub unsafe fn SetRowNumber(
23289 &self,
23290 hrow: *mut HHEADERROW__,
23291 dwrownumber: u32,
23292 ) -> windows_core::Result<()> {
23293 unsafe {
23294 (windows_core::Interface::vtable(self).SetRowNumber)(
23295 windows_core::Interface::as_raw(self),
23296 hrow as _,
23297 dwrownumber,
23298 )
23299 .ok()
23300 }
23301 }
23302 pub unsafe fn EnumRows<P0>(
23303 &self,
23304 pszheader: P0,
23305 dwflags: u32,
23306 ) -> windows_core::Result<IMimeEnumHeaderRows>
23307 where
23308 P0: windows_core::Param<windows_core::PCSTR>,
23309 {
23310 unsafe {
23311 let mut result__ = core::mem::zeroed();
23312 (windows_core::Interface::vtable(self).EnumRows)(
23313 windows_core::Interface::as_raw(self),
23314 pszheader.param().abi(),
23315 dwflags,
23316 &mut result__,
23317 )
23318 .and_then(|| windows_core::Type::from_abi(result__))
23319 }
23320 }
23321 pub unsafe fn Clone(&self) -> windows_core::Result<IMimeHeaderTable> {
23322 unsafe {
23323 let mut result__ = core::mem::zeroed();
23324 (windows_core::Interface::vtable(self).Clone)(
23325 windows_core::Interface::as_raw(self),
23326 &mut result__,
23327 )
23328 .and_then(|| windows_core::Type::from_abi(result__))
23329 }
23330 }
23331 pub unsafe fn BindToObject(
23332 &self,
23333 riid: *const windows_core::GUID,
23334 ppvobject: *mut *mut core::ffi::c_void,
23335 ) -> windows_core::Result<()> {
23336 unsafe {
23337 (windows_core::Interface::vtable(self).BindToObject)(
23338 windows_core::Interface::as_raw(self),
23339 riid,
23340 ppvobject as _,
23341 )
23342 .ok()
23343 }
23344 }
23345}
23346#[repr(C)]
23347#[doc(hidden)]
23348pub struct IMimeHeaderTable_Vtbl {
23349 pub base__: windows::Win32::System::Com::IPersistStream_Vtbl,
23350 pub Load: unsafe extern "system" fn(
23351 *mut core::ffi::c_void,
23352 *mut core::ffi::c_void,
23353 ) -> windows_core::HRESULT,
23354 pub Save: unsafe extern "system" fn(
23355 *mut core::ffi::c_void,
23356 *mut core::ffi::c_void,
23357 windows_core::BOOL,
23358 ) -> windows_core::HRESULT,
23359 pub GetSizeMax:
23360 unsafe extern "system" fn(*mut core::ffi::c_void, *mut u64) -> windows_core::HRESULT,
23361 pub FindFirstRow: unsafe extern "system" fn(
23362 *mut core::ffi::c_void,
23363 *mut FINDHEADER,
23364 *mut *mut HHEADERROW__,
23365 ) -> windows_core::HRESULT,
23366 pub FindNextRow: unsafe extern "system" fn(
23367 *mut core::ffi::c_void,
23368 *mut FINDHEADER,
23369 *mut *mut HHEADERROW__,
23370 ) -> windows_core::HRESULT,
23371 pub CountRows: unsafe extern "system" fn(
23372 *mut core::ffi::c_void,
23373 windows_core::PCSTR,
23374 *mut u32,
23375 ) -> windows_core::HRESULT,
23376 pub AppendRow: unsafe extern "system" fn(
23377 *mut core::ffi::c_void,
23378 windows_core::PCSTR,
23379 u32,
23380 windows_core::PCSTR,
23381 u32,
23382 *mut *mut HHEADERROW__,
23383 ) -> windows_core::HRESULT,
23384 pub DeleteRow: unsafe extern "system" fn(
23385 *mut core::ffi::c_void,
23386 *mut HHEADERROW__,
23387 ) -> windows_core::HRESULT,
23388 pub GetRowData: unsafe extern "system" fn(
23389 *mut core::ffi::c_void,
23390 *mut HHEADERROW__,
23391 u32,
23392 *mut windows_core::PSTR,
23393 *mut u32,
23394 ) -> windows_core::HRESULT,
23395 pub SetRowData: unsafe extern "system" fn(
23396 *mut core::ffi::c_void,
23397 *mut HHEADERROW__,
23398 u32,
23399 windows_core::PCSTR,
23400 u32,
23401 ) -> windows_core::HRESULT,
23402 pub GetRowInfo: unsafe extern "system" fn(
23403 *mut core::ffi::c_void,
23404 *mut HHEADERROW__,
23405 *mut HEADERROWINFO,
23406 ) -> windows_core::HRESULT,
23407 pub SetRowNumber: unsafe extern "system" fn(
23408 *mut core::ffi::c_void,
23409 *mut HHEADERROW__,
23410 u32,
23411 ) -> windows_core::HRESULT,
23412 pub EnumRows: unsafe extern "system" fn(
23413 *mut core::ffi::c_void,
23414 windows_core::PCSTR,
23415 u32,
23416 *mut *mut core::ffi::c_void,
23417 ) -> windows_core::HRESULT,
23418 pub Clone: unsafe extern "system" fn(
23419 *mut core::ffi::c_void,
23420 *mut *mut core::ffi::c_void,
23421 ) -> windows_core::HRESULT,
23422 pub BindToObject: unsafe extern "system" fn(
23423 *mut core::ffi::c_void,
23424 *const windows_core::GUID,
23425 *mut *mut core::ffi::c_void,
23426 ) -> windows_core::HRESULT,
23427}
23428pub trait IMimeHeaderTable_Impl: windows::Win32::System::Com::IPersistStream_Impl {
23429 fn Load(
23430 &self,
23431 pstm: windows_core::Ref<windows::Win32::System::Com::IStream>,
23432 ) -> windows_core::Result<()>;
23433 fn Save(
23434 &self,
23435 pstm: windows_core::Ref<windows::Win32::System::Com::IStream>,
23436 fcleardirty: windows_core::BOOL,
23437 ) -> windows_core::Result<()>;
23438 fn GetSizeMax(&self) -> windows_core::Result<u64>;
23439 fn FindFirstRow(
23440 &self,
23441 pfindheader: *mut FINDHEADER,
23442 phrow: *mut *mut HHEADERROW__,
23443 ) -> windows_core::Result<()>;
23444 fn FindNextRow(
23445 &self,
23446 pfindheader: *mut FINDHEADER,
23447 phrow: *mut *mut HHEADERROW__,
23448 ) -> windows_core::Result<()>;
23449 fn CountRows(
23450 &self,
23451 pszheader: &windows_core::PCSTR,
23452 pcrows: *mut u32,
23453 ) -> windows_core::Result<()>;
23454 fn AppendRow(
23455 &self,
23456 pszheader: &windows_core::PCSTR,
23457 dwflags: u32,
23458 pszdata: &windows_core::PCSTR,
23459 cchdata: u32,
23460 phrow: *mut *mut HHEADERROW__,
23461 ) -> windows_core::Result<()>;
23462 fn DeleteRow(&self, hrow: *mut HHEADERROW__) -> windows_core::Result<()>;
23463 fn GetRowData(
23464 &self,
23465 hrow: *mut HHEADERROW__,
23466 dwflags: u32,
23467 ppszdata: *mut windows_core::PSTR,
23468 pcchdata: *mut u32,
23469 ) -> windows_core::Result<()>;
23470 fn SetRowData(
23471 &self,
23472 hrow: *mut HHEADERROW__,
23473 dwflags: u32,
23474 pszdata: &windows_core::PCSTR,
23475 cchdata: u32,
23476 ) -> windows_core::Result<()>;
23477 fn GetRowInfo(
23478 &self,
23479 hrow: *mut HHEADERROW__,
23480 pinfo: *mut HEADERROWINFO,
23481 ) -> windows_core::Result<()>;
23482 fn SetRowNumber(&self, hrow: *mut HHEADERROW__, dwrownumber: u32) -> windows_core::Result<()>;
23483 fn EnumRows(
23484 &self,
23485 pszheader: &windows_core::PCSTR,
23486 dwflags: u32,
23487 ) -> windows_core::Result<IMimeEnumHeaderRows>;
23488 fn Clone(&self) -> windows_core::Result<IMimeHeaderTable>;
23489 fn BindToObject(
23490 &self,
23491 riid: *const windows_core::GUID,
23492 ppvobject: *mut *mut core::ffi::c_void,
23493 ) -> windows_core::Result<()>;
23494}
23495impl IMimeHeaderTable_Vtbl {
23496 pub const fn new<Identity: IMimeHeaderTable_Impl, const OFFSET: isize>() -> Self {
23497 unsafe extern "system" fn Load<Identity: IMimeHeaderTable_Impl, const OFFSET: isize>(
23498 this: *mut core::ffi::c_void,
23499 pstm: *mut core::ffi::c_void,
23500 ) -> windows_core::HRESULT {
23501 unsafe {
23502 let this: &Identity =
23503 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
23504 IMimeHeaderTable_Impl::Load(this, core::mem::transmute_copy(&pstm)).into()
23505 }
23506 }
23507 unsafe extern "system" fn Save<Identity: IMimeHeaderTable_Impl, const OFFSET: isize>(
23508 this: *mut core::ffi::c_void,
23509 pstm: *mut core::ffi::c_void,
23510 fcleardirty: windows_core::BOOL,
23511 ) -> windows_core::HRESULT {
23512 unsafe {
23513 let this: &Identity =
23514 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
23515 IMimeHeaderTable_Impl::Save(
23516 this,
23517 core::mem::transmute_copy(&pstm),
23518 core::mem::transmute_copy(&fcleardirty),
23519 )
23520 .into()
23521 }
23522 }
23523 unsafe extern "system" fn GetSizeMax<
23524 Identity: IMimeHeaderTable_Impl,
23525 const OFFSET: isize,
23526 >(
23527 this: *mut core::ffi::c_void,
23528 pcbsize: *mut u64,
23529 ) -> windows_core::HRESULT {
23530 unsafe {
23531 let this: &Identity =
23532 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
23533 match IMimeHeaderTable_Impl::GetSizeMax(this) {
23534 Ok(ok__) => {
23535 pcbsize.write(core::mem::transmute(ok__));
23536 windows_core::HRESULT(0)
23537 }
23538 Err(err) => err.into(),
23539 }
23540 }
23541 }
23542 unsafe extern "system" fn FindFirstRow<
23543 Identity: IMimeHeaderTable_Impl,
23544 const OFFSET: isize,
23545 >(
23546 this: *mut core::ffi::c_void,
23547 pfindheader: *mut FINDHEADER,
23548 phrow: *mut *mut HHEADERROW__,
23549 ) -> windows_core::HRESULT {
23550 unsafe {
23551 let this: &Identity =
23552 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
23553 IMimeHeaderTable_Impl::FindFirstRow(
23554 this,
23555 core::mem::transmute_copy(&pfindheader),
23556 core::mem::transmute_copy(&phrow),
23557 )
23558 .into()
23559 }
23560 }
23561 unsafe extern "system" fn FindNextRow<
23562 Identity: IMimeHeaderTable_Impl,
23563 const OFFSET: isize,
23564 >(
23565 this: *mut core::ffi::c_void,
23566 pfindheader: *mut FINDHEADER,
23567 phrow: *mut *mut HHEADERROW__,
23568 ) -> windows_core::HRESULT {
23569 unsafe {
23570 let this: &Identity =
23571 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
23572 IMimeHeaderTable_Impl::FindNextRow(
23573 this,
23574 core::mem::transmute_copy(&pfindheader),
23575 core::mem::transmute_copy(&phrow),
23576 )
23577 .into()
23578 }
23579 }
23580 unsafe extern "system" fn CountRows<
23581 Identity: IMimeHeaderTable_Impl,
23582 const OFFSET: isize,
23583 >(
23584 this: *mut core::ffi::c_void,
23585 pszheader: windows_core::PCSTR,
23586 pcrows: *mut u32,
23587 ) -> windows_core::HRESULT {
23588 unsafe {
23589 let this: &Identity =
23590 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
23591 IMimeHeaderTable_Impl::CountRows(
23592 this,
23593 core::mem::transmute(&pszheader),
23594 core::mem::transmute_copy(&pcrows),
23595 )
23596 .into()
23597 }
23598 }
23599 unsafe extern "system" fn AppendRow<
23600 Identity: IMimeHeaderTable_Impl,
23601 const OFFSET: isize,
23602 >(
23603 this: *mut core::ffi::c_void,
23604 pszheader: windows_core::PCSTR,
23605 dwflags: u32,
23606 pszdata: windows_core::PCSTR,
23607 cchdata: u32,
23608 phrow: *mut *mut HHEADERROW__,
23609 ) -> windows_core::HRESULT {
23610 unsafe {
23611 let this: &Identity =
23612 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
23613 IMimeHeaderTable_Impl::AppendRow(
23614 this,
23615 core::mem::transmute(&pszheader),
23616 core::mem::transmute_copy(&dwflags),
23617 core::mem::transmute(&pszdata),
23618 core::mem::transmute_copy(&cchdata),
23619 core::mem::transmute_copy(&phrow),
23620 )
23621 .into()
23622 }
23623 }
23624 unsafe extern "system" fn DeleteRow<
23625 Identity: IMimeHeaderTable_Impl,
23626 const OFFSET: isize,
23627 >(
23628 this: *mut core::ffi::c_void,
23629 hrow: *mut HHEADERROW__,
23630 ) -> windows_core::HRESULT {
23631 unsafe {
23632 let this: &Identity =
23633 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
23634 IMimeHeaderTable_Impl::DeleteRow(this, core::mem::transmute_copy(&hrow)).into()
23635 }
23636 }
23637 unsafe extern "system" fn GetRowData<
23638 Identity: IMimeHeaderTable_Impl,
23639 const OFFSET: isize,
23640 >(
23641 this: *mut core::ffi::c_void,
23642 hrow: *mut HHEADERROW__,
23643 dwflags: u32,
23644 ppszdata: *mut windows_core::PSTR,
23645 pcchdata: *mut u32,
23646 ) -> windows_core::HRESULT {
23647 unsafe {
23648 let this: &Identity =
23649 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
23650 IMimeHeaderTable_Impl::GetRowData(
23651 this,
23652 core::mem::transmute_copy(&hrow),
23653 core::mem::transmute_copy(&dwflags),
23654 core::mem::transmute_copy(&ppszdata),
23655 core::mem::transmute_copy(&pcchdata),
23656 )
23657 .into()
23658 }
23659 }
23660 unsafe extern "system" fn SetRowData<
23661 Identity: IMimeHeaderTable_Impl,
23662 const OFFSET: isize,
23663 >(
23664 this: *mut core::ffi::c_void,
23665 hrow: *mut HHEADERROW__,
23666 dwflags: u32,
23667 pszdata: windows_core::PCSTR,
23668 cchdata: u32,
23669 ) -> windows_core::HRESULT {
23670 unsafe {
23671 let this: &Identity =
23672 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
23673 IMimeHeaderTable_Impl::SetRowData(
23674 this,
23675 core::mem::transmute_copy(&hrow),
23676 core::mem::transmute_copy(&dwflags),
23677 core::mem::transmute(&pszdata),
23678 core::mem::transmute_copy(&cchdata),
23679 )
23680 .into()
23681 }
23682 }
23683 unsafe extern "system" fn GetRowInfo<
23684 Identity: IMimeHeaderTable_Impl,
23685 const OFFSET: isize,
23686 >(
23687 this: *mut core::ffi::c_void,
23688 hrow: *mut HHEADERROW__,
23689 pinfo: *mut HEADERROWINFO,
23690 ) -> windows_core::HRESULT {
23691 unsafe {
23692 let this: &Identity =
23693 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
23694 IMimeHeaderTable_Impl::GetRowInfo(
23695 this,
23696 core::mem::transmute_copy(&hrow),
23697 core::mem::transmute_copy(&pinfo),
23698 )
23699 .into()
23700 }
23701 }
23702 unsafe extern "system" fn SetRowNumber<
23703 Identity: IMimeHeaderTable_Impl,
23704 const OFFSET: isize,
23705 >(
23706 this: *mut core::ffi::c_void,
23707 hrow: *mut HHEADERROW__,
23708 dwrownumber: u32,
23709 ) -> windows_core::HRESULT {
23710 unsafe {
23711 let this: &Identity =
23712 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
23713 IMimeHeaderTable_Impl::SetRowNumber(
23714 this,
23715 core::mem::transmute_copy(&hrow),
23716 core::mem::transmute_copy(&dwrownumber),
23717 )
23718 .into()
23719 }
23720 }
23721 unsafe extern "system" fn EnumRows<Identity: IMimeHeaderTable_Impl, const OFFSET: isize>(
23722 this: *mut core::ffi::c_void,
23723 pszheader: windows_core::PCSTR,
23724 dwflags: u32,
23725 ppenum: *mut *mut core::ffi::c_void,
23726 ) -> windows_core::HRESULT {
23727 unsafe {
23728 let this: &Identity =
23729 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
23730 match IMimeHeaderTable_Impl::EnumRows(
23731 this,
23732 core::mem::transmute(&pszheader),
23733 core::mem::transmute_copy(&dwflags),
23734 ) {
23735 Ok(ok__) => {
23736 ppenum.write(core::mem::transmute(ok__));
23737 windows_core::HRESULT(0)
23738 }
23739 Err(err) => err.into(),
23740 }
23741 }
23742 }
23743 unsafe extern "system" fn Clone<Identity: IMimeHeaderTable_Impl, const OFFSET: isize>(
23744 this: *mut core::ffi::c_void,
23745 pptable: *mut *mut core::ffi::c_void,
23746 ) -> windows_core::HRESULT {
23747 unsafe {
23748 let this: &Identity =
23749 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
23750 match IMimeHeaderTable_Impl::Clone(this) {
23751 Ok(ok__) => {
23752 pptable.write(core::mem::transmute(ok__));
23753 windows_core::HRESULT(0)
23754 }
23755 Err(err) => err.into(),
23756 }
23757 }
23758 }
23759 unsafe extern "system" fn BindToObject<
23760 Identity: IMimeHeaderTable_Impl,
23761 const OFFSET: isize,
23762 >(
23763 this: *mut core::ffi::c_void,
23764 riid: *const windows_core::GUID,
23765 ppvobject: *mut *mut core::ffi::c_void,
23766 ) -> windows_core::HRESULT {
23767 unsafe {
23768 let this: &Identity =
23769 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
23770 IMimeHeaderTable_Impl::BindToObject(
23771 this,
23772 core::mem::transmute_copy(&riid),
23773 core::mem::transmute_copy(&ppvobject),
23774 )
23775 .into()
23776 }
23777 }
23778 Self {
23779 base__: windows::Win32::System::Com::IPersistStream_Vtbl::new::<Identity, OFFSET>(),
23780 Load: Load::<Identity, OFFSET>,
23781 Save: Save::<Identity, OFFSET>,
23782 GetSizeMax: GetSizeMax::<Identity, OFFSET>,
23783 FindFirstRow: FindFirstRow::<Identity, OFFSET>,
23784 FindNextRow: FindNextRow::<Identity, OFFSET>,
23785 CountRows: CountRows::<Identity, OFFSET>,
23786 AppendRow: AppendRow::<Identity, OFFSET>,
23787 DeleteRow: DeleteRow::<Identity, OFFSET>,
23788 GetRowData: GetRowData::<Identity, OFFSET>,
23789 SetRowData: SetRowData::<Identity, OFFSET>,
23790 GetRowInfo: GetRowInfo::<Identity, OFFSET>,
23791 SetRowNumber: SetRowNumber::<Identity, OFFSET>,
23792 EnumRows: EnumRows::<Identity, OFFSET>,
23793 Clone: Clone::<Identity, OFFSET>,
23794 BindToObject: BindToObject::<Identity, OFFSET>,
23795 }
23796 }
23797 pub fn matches(iid: &windows_core::GUID) -> bool {
23798 iid == &<IMimeHeaderTable as windows_core::Interface>::IID
23799 || iid == &<windows::Win32::System::Com::IPersist as windows_core::Interface>::IID
23800 || iid == &<windows::Win32::System::Com::IPersistStream as windows_core::Interface>::IID
23801 }
23802}
23803impl windows_core::RuntimeName for IMimeHeaderTable {}
23804windows_core::imp::define_interface!(
23805 IMimeInternational,
23806 IMimeInternational_Vtbl,
23807 0xc5588349_7f86_11d0_8252_00c04fd85ab4
23808);
23809windows_core::imp::interface_hierarchy!(IMimeInternational, windows_core::IUnknown);
23810impl IMimeInternational {
23811 pub unsafe fn SetDefaultCharset(&self, hcharset: *mut HCHARSET__) -> windows_core::Result<()> {
23812 unsafe {
23813 (windows_core::Interface::vtable(self).SetDefaultCharset)(
23814 windows_core::Interface::as_raw(self),
23815 hcharset as _,
23816 )
23817 .ok()
23818 }
23819 }
23820 pub unsafe fn GetDefaultCharset(
23821 &self,
23822 phcharset: *mut *mut HCHARSET__,
23823 ) -> windows_core::Result<()> {
23824 unsafe {
23825 (windows_core::Interface::vtable(self).GetDefaultCharset)(
23826 windows_core::Interface::as_raw(self),
23827 phcharset as _,
23828 )
23829 .ok()
23830 }
23831 }
23832 pub unsafe fn GetCodePageCharset(
23833 &self,
23834 cpicodepage: u32,
23835 ctcsettype: CHARSETTYPE,
23836 phcharset: *mut *mut HCHARSET__,
23837 ) -> windows_core::Result<()> {
23838 unsafe {
23839 (windows_core::Interface::vtable(self).GetCodePageCharset)(
23840 windows_core::Interface::as_raw(self),
23841 cpicodepage,
23842 ctcsettype,
23843 phcharset as _,
23844 )
23845 .ok()
23846 }
23847 }
23848 pub unsafe fn FindCharset<P0>(
23849 &self,
23850 pszcharset: P0,
23851 phcharset: *mut *mut HCHARSET__,
23852 ) -> windows_core::Result<()>
23853 where
23854 P0: windows_core::Param<windows_core::PCSTR>,
23855 {
23856 unsafe {
23857 (windows_core::Interface::vtable(self).FindCharset)(
23858 windows_core::Interface::as_raw(self),
23859 pszcharset.param().abi(),
23860 phcharset as _,
23861 )
23862 .ok()
23863 }
23864 }
23865 pub unsafe fn GetCharsetInfo(
23866 &self,
23867 hcharset: *mut HCHARSET__,
23868 pcsetinfo: *mut INETCSETINFO,
23869 ) -> windows_core::Result<()> {
23870 unsafe {
23871 (windows_core::Interface::vtable(self).GetCharsetInfo)(
23872 windows_core::Interface::as_raw(self),
23873 hcharset as _,
23874 pcsetinfo as _,
23875 )
23876 .ok()
23877 }
23878 }
23879 pub unsafe fn GetCodePageInfo(
23880 &self,
23881 cpicodepage: u32,
23882 pcodepageinfo: *mut CODEPAGEINFO,
23883 ) -> windows_core::Result<()> {
23884 unsafe {
23885 (windows_core::Interface::vtable(self).GetCodePageInfo)(
23886 windows_core::Interface::as_raw(self),
23887 cpicodepage,
23888 pcodepageinfo as _,
23889 )
23890 .ok()
23891 }
23892 }
23893 pub unsafe fn CanConvertCodePages(
23894 &self,
23895 cpisource: u32,
23896 cpidest: u32,
23897 ) -> windows_core::Result<()> {
23898 unsafe {
23899 (windows_core::Interface::vtable(self).CanConvertCodePages)(
23900 windows_core::Interface::as_raw(self),
23901 cpisource,
23902 cpidest,
23903 )
23904 .ok()
23905 }
23906 }
23907 pub unsafe fn DecodeHeader<P1>(
23908 &self,
23909 hcharset: *mut HCHARSET__,
23910 pszdata: P1,
23911 pdecoded: *mut windows::Win32::System::Com::StructuredStorage::PROPVARIANT,
23912 prfc1522info: *mut RFC1522INFO,
23913 ) -> windows_core::Result<()>
23914 where
23915 P1: windows_core::Param<windows_core::PCSTR>,
23916 {
23917 unsafe {
23918 (windows_core::Interface::vtable(self).DecodeHeader)(
23919 windows_core::Interface::as_raw(self),
23920 hcharset as _,
23921 pszdata.param().abi(),
23922 core::mem::transmute(pdecoded),
23923 prfc1522info as _,
23924 )
23925 .ok()
23926 }
23927 }
23928 pub unsafe fn EncodeHeader(
23929 &self,
23930 hcharset: *mut HCHARSET__,
23931 pdata: *mut windows::Win32::System::Com::StructuredStorage::PROPVARIANT,
23932 ppszencoded: *mut windows_core::PSTR,
23933 prfc1522info: *mut RFC1522INFO,
23934 ) -> windows_core::Result<()> {
23935 unsafe {
23936 (windows_core::Interface::vtable(self).EncodeHeader)(
23937 windows_core::Interface::as_raw(self),
23938 hcharset as _,
23939 core::mem::transmute(pdata),
23940 ppszencoded as _,
23941 prfc1522info as _,
23942 )
23943 .ok()
23944 }
23945 }
23946 pub unsafe fn ConvertBuffer(
23947 &self,
23948 cpisource: u32,
23949 cpidest: u32,
23950 pin: *mut windows::Win32::System::Com::BLOB,
23951 pout: *mut windows::Win32::System::Com::BLOB,
23952 pcbread: *mut u32,
23953 ) -> windows_core::Result<()> {
23954 unsafe {
23955 (windows_core::Interface::vtable(self).ConvertBuffer)(
23956 windows_core::Interface::as_raw(self),
23957 cpisource,
23958 cpidest,
23959 pin as _,
23960 pout as _,
23961 pcbread as _,
23962 )
23963 .ok()
23964 }
23965 }
23966 pub unsafe fn ConvertString(
23967 &self,
23968 cpisource: u32,
23969 cpidest: u32,
23970 pin: *mut windows::Win32::System::Com::StructuredStorage::PROPVARIANT,
23971 pout: *mut windows::Win32::System::Com::StructuredStorage::PROPVARIANT,
23972 ) -> windows_core::Result<()> {
23973 unsafe {
23974 (windows_core::Interface::vtable(self).ConvertString)(
23975 windows_core::Interface::as_raw(self),
23976 cpisource,
23977 cpidest,
23978 core::mem::transmute(pin),
23979 core::mem::transmute(pout),
23980 )
23981 .ok()
23982 }
23983 }
23984 pub unsafe fn MLANG_ConvertInetReset(&self) -> windows_core::Result<()> {
23985 unsafe {
23986 (windows_core::Interface::vtable(self).MLANG_ConvertInetReset)(
23987 windows_core::Interface::as_raw(self),
23988 )
23989 .ok()
23990 }
23991 }
23992 pub unsafe fn MLANG_ConvertInetString<P2, P4>(
23993 &self,
23994 cpisource: u32,
23995 cpidest: u32,
23996 psource: P2,
23997 pnsizeofsource: *mut i32,
23998 pdestination: P4,
23999 pndstsize: *mut i32,
24000 ) -> windows_core::Result<()>
24001 where
24002 P2: windows_core::Param<windows_core::PCSTR>,
24003 P4: windows_core::Param<windows_core::PCSTR>,
24004 {
24005 unsafe {
24006 (windows_core::Interface::vtable(self).MLANG_ConvertInetString)(
24007 windows_core::Interface::as_raw(self),
24008 cpisource,
24009 cpidest,
24010 psource.param().abi(),
24011 pnsizeofsource as _,
24012 pdestination.param().abi(),
24013 pndstsize as _,
24014 )
24015 .ok()
24016 }
24017 }
24018 pub unsafe fn Rfc1522Decode<P0, P1>(
24019 &self,
24020 pszvalue: P0,
24021 pszcharset: P1,
24022 cchmax: u32,
24023 ppszdecoded: *mut windows_core::PSTR,
24024 ) -> windows_core::Result<()>
24025 where
24026 P0: windows_core::Param<windows_core::PCSTR>,
24027 P1: windows_core::Param<windows_core::PCSTR>,
24028 {
24029 unsafe {
24030 (windows_core::Interface::vtable(self).Rfc1522Decode)(
24031 windows_core::Interface::as_raw(self),
24032 pszvalue.param().abi(),
24033 pszcharset.param().abi(),
24034 cchmax,
24035 ppszdecoded as _,
24036 )
24037 .ok()
24038 }
24039 }
24040 pub unsafe fn Rfc1522Encode<P0>(
24041 &self,
24042 pszvalue: P0,
24043 hcharset: *mut HCHARSET__,
24044 ppszencoded: *mut windows_core::PSTR,
24045 ) -> windows_core::Result<()>
24046 where
24047 P0: windows_core::Param<windows_core::PCSTR>,
24048 {
24049 unsafe {
24050 (windows_core::Interface::vtable(self).Rfc1522Encode)(
24051 windows_core::Interface::as_raw(self),
24052 pszvalue.param().abi(),
24053 hcharset as _,
24054 ppszencoded as _,
24055 )
24056 .ok()
24057 }
24058 }
24059}
24060#[repr(C)]
24061#[doc(hidden)]
24062pub struct IMimeInternational_Vtbl {
24063 pub base__: windows_core::IUnknown_Vtbl,
24064 pub SetDefaultCharset:
24065 unsafe extern "system" fn(*mut core::ffi::c_void, *mut HCHARSET__) -> windows_core::HRESULT,
24066 pub GetDefaultCharset: unsafe extern "system" fn(
24067 *mut core::ffi::c_void,
24068 *mut *mut HCHARSET__,
24069 ) -> windows_core::HRESULT,
24070 pub GetCodePageCharset: unsafe extern "system" fn(
24071 *mut core::ffi::c_void,
24072 u32,
24073 CHARSETTYPE,
24074 *mut *mut HCHARSET__,
24075 ) -> windows_core::HRESULT,
24076 pub FindCharset: unsafe extern "system" fn(
24077 *mut core::ffi::c_void,
24078 windows_core::PCSTR,
24079 *mut *mut HCHARSET__,
24080 ) -> windows_core::HRESULT,
24081 pub GetCharsetInfo: unsafe extern "system" fn(
24082 *mut core::ffi::c_void,
24083 *mut HCHARSET__,
24084 *mut INETCSETINFO,
24085 ) -> windows_core::HRESULT,
24086 pub GetCodePageInfo: unsafe extern "system" fn(
24087 *mut core::ffi::c_void,
24088 u32,
24089 *mut CODEPAGEINFO,
24090 ) -> windows_core::HRESULT,
24091 pub CanConvertCodePages:
24092 unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32) -> windows_core::HRESULT,
24093 pub DecodeHeader: unsafe extern "system" fn(
24094 *mut core::ffi::c_void,
24095 *mut HCHARSET__,
24096 windows_core::PCSTR,
24097 *mut windows::Win32::System::Com::StructuredStorage::PROPVARIANT,
24098 *mut RFC1522INFO,
24099 ) -> windows_core::HRESULT,
24100 pub EncodeHeader: unsafe extern "system" fn(
24101 *mut core::ffi::c_void,
24102 *mut HCHARSET__,
24103 *mut windows::Win32::System::Com::StructuredStorage::PROPVARIANT,
24104 *mut windows_core::PSTR,
24105 *mut RFC1522INFO,
24106 ) -> windows_core::HRESULT,
24107 pub ConvertBuffer: unsafe extern "system" fn(
24108 *mut core::ffi::c_void,
24109 u32,
24110 u32,
24111 *mut windows::Win32::System::Com::BLOB,
24112 *mut windows::Win32::System::Com::BLOB,
24113 *mut u32,
24114 ) -> windows_core::HRESULT,
24115 pub ConvertString: unsafe extern "system" fn(
24116 *mut core::ffi::c_void,
24117 u32,
24118 u32,
24119 *mut windows::Win32::System::Com::StructuredStorage::PROPVARIANT,
24120 *mut windows::Win32::System::Com::StructuredStorage::PROPVARIANT,
24121 ) -> windows_core::HRESULT,
24122 pub MLANG_ConvertInetReset:
24123 unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
24124 pub MLANG_ConvertInetString: unsafe extern "system" fn(
24125 *mut core::ffi::c_void,
24126 u32,
24127 u32,
24128 windows_core::PCSTR,
24129 *mut i32,
24130 windows_core::PCSTR,
24131 *mut i32,
24132 ) -> windows_core::HRESULT,
24133 pub Rfc1522Decode: unsafe extern "system" fn(
24134 *mut core::ffi::c_void,
24135 windows_core::PCSTR,
24136 windows_core::PCSTR,
24137 u32,
24138 *mut windows_core::PSTR,
24139 ) -> windows_core::HRESULT,
24140 pub Rfc1522Encode: unsafe extern "system" fn(
24141 *mut core::ffi::c_void,
24142 windows_core::PCSTR,
24143 *mut HCHARSET__,
24144 *mut windows_core::PSTR,
24145 ) -> windows_core::HRESULT,
24146}
24147pub trait IMimeInternational_Impl: windows_core::IUnknownImpl {
24148 fn SetDefaultCharset(&self, hcharset: *mut HCHARSET__) -> windows_core::Result<()>;
24149 fn GetDefaultCharset(&self, phcharset: *mut *mut HCHARSET__) -> windows_core::Result<()>;
24150 fn GetCodePageCharset(
24151 &self,
24152 cpicodepage: u32,
24153 ctcsettype: CHARSETTYPE,
24154 phcharset: *mut *mut HCHARSET__,
24155 ) -> windows_core::Result<()>;
24156 fn FindCharset(
24157 &self,
24158 pszcharset: &windows_core::PCSTR,
24159 phcharset: *mut *mut HCHARSET__,
24160 ) -> windows_core::Result<()>;
24161 fn GetCharsetInfo(
24162 &self,
24163 hcharset: *mut HCHARSET__,
24164 pcsetinfo: *mut INETCSETINFO,
24165 ) -> windows_core::Result<()>;
24166 fn GetCodePageInfo(
24167 &self,
24168 cpicodepage: u32,
24169 pcodepageinfo: *mut CODEPAGEINFO,
24170 ) -> windows_core::Result<()>;
24171 fn CanConvertCodePages(&self, cpisource: u32, cpidest: u32) -> windows_core::Result<()>;
24172 fn DecodeHeader(
24173 &self,
24174 hcharset: *mut HCHARSET__,
24175 pszdata: &windows_core::PCSTR,
24176 pdecoded: *mut windows::Win32::System::Com::StructuredStorage::PROPVARIANT,
24177 prfc1522info: *mut RFC1522INFO,
24178 ) -> windows_core::Result<()>;
24179 fn EncodeHeader(
24180 &self,
24181 hcharset: *mut HCHARSET__,
24182 pdata: *mut windows::Win32::System::Com::StructuredStorage::PROPVARIANT,
24183 ppszencoded: *mut windows_core::PSTR,
24184 prfc1522info: *mut RFC1522INFO,
24185 ) -> windows_core::Result<()>;
24186 fn ConvertBuffer(
24187 &self,
24188 cpisource: u32,
24189 cpidest: u32,
24190 pin: *mut windows::Win32::System::Com::BLOB,
24191 pout: *mut windows::Win32::System::Com::BLOB,
24192 pcbread: *mut u32,
24193 ) -> windows_core::Result<()>;
24194 fn ConvertString(
24195 &self,
24196 cpisource: u32,
24197 cpidest: u32,
24198 pin: *mut windows::Win32::System::Com::StructuredStorage::PROPVARIANT,
24199 pout: *mut windows::Win32::System::Com::StructuredStorage::PROPVARIANT,
24200 ) -> windows_core::Result<()>;
24201 fn MLANG_ConvertInetReset(&self) -> windows_core::Result<()>;
24202 fn MLANG_ConvertInetString(
24203 &self,
24204 cpisource: u32,
24205 cpidest: u32,
24206 psource: &windows_core::PCSTR,
24207 pnsizeofsource: *mut i32,
24208 pdestination: &windows_core::PCSTR,
24209 pndstsize: *mut i32,
24210 ) -> windows_core::Result<()>;
24211 fn Rfc1522Decode(
24212 &self,
24213 pszvalue: &windows_core::PCSTR,
24214 pszcharset: &windows_core::PCSTR,
24215 cchmax: u32,
24216 ppszdecoded: *mut windows_core::PSTR,
24217 ) -> windows_core::Result<()>;
24218 fn Rfc1522Encode(
24219 &self,
24220 pszvalue: &windows_core::PCSTR,
24221 hcharset: *mut HCHARSET__,
24222 ppszencoded: *mut windows_core::PSTR,
24223 ) -> windows_core::Result<()>;
24224}
24225impl IMimeInternational_Vtbl {
24226 pub const fn new<Identity: IMimeInternational_Impl, const OFFSET: isize>() -> Self {
24227 unsafe extern "system" fn SetDefaultCharset<
24228 Identity: IMimeInternational_Impl,
24229 const OFFSET: isize,
24230 >(
24231 this: *mut core::ffi::c_void,
24232 hcharset: *mut HCHARSET__,
24233 ) -> windows_core::HRESULT {
24234 unsafe {
24235 let this: &Identity =
24236 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
24237 IMimeInternational_Impl::SetDefaultCharset(
24238 this,
24239 core::mem::transmute_copy(&hcharset),
24240 )
24241 .into()
24242 }
24243 }
24244 unsafe extern "system" fn GetDefaultCharset<
24245 Identity: IMimeInternational_Impl,
24246 const OFFSET: isize,
24247 >(
24248 this: *mut core::ffi::c_void,
24249 phcharset: *mut *mut HCHARSET__,
24250 ) -> windows_core::HRESULT {
24251 unsafe {
24252 let this: &Identity =
24253 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
24254 IMimeInternational_Impl::GetDefaultCharset(
24255 this,
24256 core::mem::transmute_copy(&phcharset),
24257 )
24258 .into()
24259 }
24260 }
24261 unsafe extern "system" fn GetCodePageCharset<
24262 Identity: IMimeInternational_Impl,
24263 const OFFSET: isize,
24264 >(
24265 this: *mut core::ffi::c_void,
24266 cpicodepage: u32,
24267 ctcsettype: CHARSETTYPE,
24268 phcharset: *mut *mut HCHARSET__,
24269 ) -> windows_core::HRESULT {
24270 unsafe {
24271 let this: &Identity =
24272 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
24273 IMimeInternational_Impl::GetCodePageCharset(
24274 this,
24275 core::mem::transmute_copy(&cpicodepage),
24276 core::mem::transmute_copy(&ctcsettype),
24277 core::mem::transmute_copy(&phcharset),
24278 )
24279 .into()
24280 }
24281 }
24282 unsafe extern "system" fn FindCharset<
24283 Identity: IMimeInternational_Impl,
24284 const OFFSET: isize,
24285 >(
24286 this: *mut core::ffi::c_void,
24287 pszcharset: windows_core::PCSTR,
24288 phcharset: *mut *mut HCHARSET__,
24289 ) -> windows_core::HRESULT {
24290 unsafe {
24291 let this: &Identity =
24292 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
24293 IMimeInternational_Impl::FindCharset(
24294 this,
24295 core::mem::transmute(&pszcharset),
24296 core::mem::transmute_copy(&phcharset),
24297 )
24298 .into()
24299 }
24300 }
24301 unsafe extern "system" fn GetCharsetInfo<
24302 Identity: IMimeInternational_Impl,
24303 const OFFSET: isize,
24304 >(
24305 this: *mut core::ffi::c_void,
24306 hcharset: *mut HCHARSET__,
24307 pcsetinfo: *mut INETCSETINFO,
24308 ) -> windows_core::HRESULT {
24309 unsafe {
24310 let this: &Identity =
24311 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
24312 IMimeInternational_Impl::GetCharsetInfo(
24313 this,
24314 core::mem::transmute_copy(&hcharset),
24315 core::mem::transmute_copy(&pcsetinfo),
24316 )
24317 .into()
24318 }
24319 }
24320 unsafe extern "system" fn GetCodePageInfo<
24321 Identity: IMimeInternational_Impl,
24322 const OFFSET: isize,
24323 >(
24324 this: *mut core::ffi::c_void,
24325 cpicodepage: u32,
24326 pcodepageinfo: *mut CODEPAGEINFO,
24327 ) -> windows_core::HRESULT {
24328 unsafe {
24329 let this: &Identity =
24330 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
24331 IMimeInternational_Impl::GetCodePageInfo(
24332 this,
24333 core::mem::transmute_copy(&cpicodepage),
24334 core::mem::transmute_copy(&pcodepageinfo),
24335 )
24336 .into()
24337 }
24338 }
24339 unsafe extern "system" fn CanConvertCodePages<
24340 Identity: IMimeInternational_Impl,
24341 const OFFSET: isize,
24342 >(
24343 this: *mut core::ffi::c_void,
24344 cpisource: u32,
24345 cpidest: u32,
24346 ) -> windows_core::HRESULT {
24347 unsafe {
24348 let this: &Identity =
24349 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
24350 IMimeInternational_Impl::CanConvertCodePages(
24351 this,
24352 core::mem::transmute_copy(&cpisource),
24353 core::mem::transmute_copy(&cpidest),
24354 )
24355 .into()
24356 }
24357 }
24358 unsafe extern "system" fn DecodeHeader<
24359 Identity: IMimeInternational_Impl,
24360 const OFFSET: isize,
24361 >(
24362 this: *mut core::ffi::c_void,
24363 hcharset: *mut HCHARSET__,
24364 pszdata: windows_core::PCSTR,
24365 pdecoded: *mut windows::Win32::System::Com::StructuredStorage::PROPVARIANT,
24366 prfc1522info: *mut RFC1522INFO,
24367 ) -> windows_core::HRESULT {
24368 unsafe {
24369 let this: &Identity =
24370 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
24371 IMimeInternational_Impl::DecodeHeader(
24372 this,
24373 core::mem::transmute_copy(&hcharset),
24374 core::mem::transmute(&pszdata),
24375 core::mem::transmute_copy(&pdecoded),
24376 core::mem::transmute_copy(&prfc1522info),
24377 )
24378 .into()
24379 }
24380 }
24381 unsafe extern "system" fn EncodeHeader<
24382 Identity: IMimeInternational_Impl,
24383 const OFFSET: isize,
24384 >(
24385 this: *mut core::ffi::c_void,
24386 hcharset: *mut HCHARSET__,
24387 pdata: *mut windows::Win32::System::Com::StructuredStorage::PROPVARIANT,
24388 ppszencoded: *mut windows_core::PSTR,
24389 prfc1522info: *mut RFC1522INFO,
24390 ) -> windows_core::HRESULT {
24391 unsafe {
24392 let this: &Identity =
24393 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
24394 IMimeInternational_Impl::EncodeHeader(
24395 this,
24396 core::mem::transmute_copy(&hcharset),
24397 core::mem::transmute_copy(&pdata),
24398 core::mem::transmute_copy(&ppszencoded),
24399 core::mem::transmute_copy(&prfc1522info),
24400 )
24401 .into()
24402 }
24403 }
24404 unsafe extern "system" fn ConvertBuffer<
24405 Identity: IMimeInternational_Impl,
24406 const OFFSET: isize,
24407 >(
24408 this: *mut core::ffi::c_void,
24409 cpisource: u32,
24410 cpidest: u32,
24411 pin: *mut windows::Win32::System::Com::BLOB,
24412 pout: *mut windows::Win32::System::Com::BLOB,
24413 pcbread: *mut u32,
24414 ) -> windows_core::HRESULT {
24415 unsafe {
24416 let this: &Identity =
24417 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
24418 IMimeInternational_Impl::ConvertBuffer(
24419 this,
24420 core::mem::transmute_copy(&cpisource),
24421 core::mem::transmute_copy(&cpidest),
24422 core::mem::transmute_copy(&pin),
24423 core::mem::transmute_copy(&pout),
24424 core::mem::transmute_copy(&pcbread),
24425 )
24426 .into()
24427 }
24428 }
24429 unsafe extern "system" fn ConvertString<
24430 Identity: IMimeInternational_Impl,
24431 const OFFSET: isize,
24432 >(
24433 this: *mut core::ffi::c_void,
24434 cpisource: u32,
24435 cpidest: u32,
24436 pin: *mut windows::Win32::System::Com::StructuredStorage::PROPVARIANT,
24437 pout: *mut windows::Win32::System::Com::StructuredStorage::PROPVARIANT,
24438 ) -> windows_core::HRESULT {
24439 unsafe {
24440 let this: &Identity =
24441 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
24442 IMimeInternational_Impl::ConvertString(
24443 this,
24444 core::mem::transmute_copy(&cpisource),
24445 core::mem::transmute_copy(&cpidest),
24446 core::mem::transmute_copy(&pin),
24447 core::mem::transmute_copy(&pout),
24448 )
24449 .into()
24450 }
24451 }
24452 unsafe extern "system" fn MLANG_ConvertInetReset<
24453 Identity: IMimeInternational_Impl,
24454 const OFFSET: isize,
24455 >(
24456 this: *mut core::ffi::c_void,
24457 ) -> windows_core::HRESULT {
24458 unsafe {
24459 let this: &Identity =
24460 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
24461 IMimeInternational_Impl::MLANG_ConvertInetReset(this).into()
24462 }
24463 }
24464 unsafe extern "system" fn MLANG_ConvertInetString<
24465 Identity: IMimeInternational_Impl,
24466 const OFFSET: isize,
24467 >(
24468 this: *mut core::ffi::c_void,
24469 cpisource: u32,
24470 cpidest: u32,
24471 psource: windows_core::PCSTR,
24472 pnsizeofsource: *mut i32,
24473 pdestination: windows_core::PCSTR,
24474 pndstsize: *mut i32,
24475 ) -> windows_core::HRESULT {
24476 unsafe {
24477 let this: &Identity =
24478 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
24479 IMimeInternational_Impl::MLANG_ConvertInetString(
24480 this,
24481 core::mem::transmute_copy(&cpisource),
24482 core::mem::transmute_copy(&cpidest),
24483 core::mem::transmute(&psource),
24484 core::mem::transmute_copy(&pnsizeofsource),
24485 core::mem::transmute(&pdestination),
24486 core::mem::transmute_copy(&pndstsize),
24487 )
24488 .into()
24489 }
24490 }
24491 unsafe extern "system" fn Rfc1522Decode<
24492 Identity: IMimeInternational_Impl,
24493 const OFFSET: isize,
24494 >(
24495 this: *mut core::ffi::c_void,
24496 pszvalue: windows_core::PCSTR,
24497 pszcharset: windows_core::PCSTR,
24498 cchmax: u32,
24499 ppszdecoded: *mut windows_core::PSTR,
24500 ) -> windows_core::HRESULT {
24501 unsafe {
24502 let this: &Identity =
24503 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
24504 IMimeInternational_Impl::Rfc1522Decode(
24505 this,
24506 core::mem::transmute(&pszvalue),
24507 core::mem::transmute(&pszcharset),
24508 core::mem::transmute_copy(&cchmax),
24509 core::mem::transmute_copy(&ppszdecoded),
24510 )
24511 .into()
24512 }
24513 }
24514 unsafe extern "system" fn Rfc1522Encode<
24515 Identity: IMimeInternational_Impl,
24516 const OFFSET: isize,
24517 >(
24518 this: *mut core::ffi::c_void,
24519 pszvalue: windows_core::PCSTR,
24520 hcharset: *mut HCHARSET__,
24521 ppszencoded: *mut windows_core::PSTR,
24522 ) -> windows_core::HRESULT {
24523 unsafe {
24524 let this: &Identity =
24525 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
24526 IMimeInternational_Impl::Rfc1522Encode(
24527 this,
24528 core::mem::transmute(&pszvalue),
24529 core::mem::transmute_copy(&hcharset),
24530 core::mem::transmute_copy(&ppszencoded),
24531 )
24532 .into()
24533 }
24534 }
24535 Self {
24536 base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
24537 SetDefaultCharset: SetDefaultCharset::<Identity, OFFSET>,
24538 GetDefaultCharset: GetDefaultCharset::<Identity, OFFSET>,
24539 GetCodePageCharset: GetCodePageCharset::<Identity, OFFSET>,
24540 FindCharset: FindCharset::<Identity, OFFSET>,
24541 GetCharsetInfo: GetCharsetInfo::<Identity, OFFSET>,
24542 GetCodePageInfo: GetCodePageInfo::<Identity, OFFSET>,
24543 CanConvertCodePages: CanConvertCodePages::<Identity, OFFSET>,
24544 DecodeHeader: DecodeHeader::<Identity, OFFSET>,
24545 EncodeHeader: EncodeHeader::<Identity, OFFSET>,
24546 ConvertBuffer: ConvertBuffer::<Identity, OFFSET>,
24547 ConvertString: ConvertString::<Identity, OFFSET>,
24548 MLANG_ConvertInetReset: MLANG_ConvertInetReset::<Identity, OFFSET>,
24549 MLANG_ConvertInetString: MLANG_ConvertInetString::<Identity, OFFSET>,
24550 Rfc1522Decode: Rfc1522Decode::<Identity, OFFSET>,
24551 Rfc1522Encode: Rfc1522Encode::<Identity, OFFSET>,
24552 }
24553 }
24554 pub fn matches(iid: &windows_core::GUID) -> bool {
24555 iid == &<IMimeInternational as windows_core::Interface>::IID
24556 }
24557}
24558impl windows_core::RuntimeName for IMimeInternational {}
24559windows_core::imp::define_interface!(
24560 IMimeMessage,
24561 IMimeMessage_Vtbl,
24562 0xfd853cd5_7f86_11d0_8252_00c04fd85ab4
24563);
24564impl core::ops::Deref for IMimeMessage {
24565 type Target = IMimeMessageTree;
24566 fn deref(&self) -> &Self::Target {
24567 unsafe { core::mem::transmute(self) }
24568 }
24569}
24570windows_core::imp::interface_hierarchy!(
24571 IMimeMessage,
24572 windows_core::IUnknown,
24573 windows::Win32::System::Com::IPersist,
24574 windows::Win32::System::Com::IPersistStreamInit,
24575 IMimeMessageTree
24576);
24577impl IMimeMessage {
24578 pub unsafe fn CreateWebPage<P0, P2>(
24579 &self,
24580 prootstm: P0,
24581 poptions: *mut WEBPAGEOPTIONS,
24582 pcallback: P2,
24583 ppmoniker: *mut Option<windows::Win32::System::Com::IMoniker>,
24584 ) -> windows_core::Result<()>
24585 where
24586 P0: windows_core::Param<windows::Win32::System::Com::IStream>,
24587 P2: windows_core::Param<IMimeMessageCallback>,
24588 {
24589 unsafe {
24590 (windows_core::Interface::vtable(self).CreateWebPage)(
24591 windows_core::Interface::as_raw(self),
24592 prootstm.param().abi(),
24593 poptions as _,
24594 pcallback.param().abi(),
24595 core::mem::transmute(ppmoniker),
24596 )
24597 .ok()
24598 }
24599 }
24600 pub unsafe fn GetPropA<P0>(
24601 &self,
24602 pszname: P0,
24603 dwflags: u32,
24604 pvalue: *mut windows::Win32::System::Com::StructuredStorage::PROPVARIANT,
24605 ) -> windows_core::Result<()>
24606 where
24607 P0: windows_core::Param<windows_core::PCSTR>,
24608 {
24609 unsafe {
24610 (windows_core::Interface::vtable(self).GetPropA)(
24611 windows_core::Interface::as_raw(self),
24612 pszname.param().abi(),
24613 dwflags,
24614 core::mem::transmute(pvalue),
24615 )
24616 .ok()
24617 }
24618 }
24619 pub unsafe fn SetPropA<P0>(
24620 &self,
24621 pszname: P0,
24622 dwflags: u32,
24623 pvalue: *mut windows::Win32::System::Com::StructuredStorage::PROPVARIANT,
24624 ) -> windows_core::Result<()>
24625 where
24626 P0: windows_core::Param<windows_core::PCSTR>,
24627 {
24628 unsafe {
24629 (windows_core::Interface::vtable(self).SetPropA)(
24630 windows_core::Interface::as_raw(self),
24631 pszname.param().abi(),
24632 dwflags,
24633 core::mem::transmute(pvalue),
24634 )
24635 .ok()
24636 }
24637 }
24638 pub unsafe fn DeleteProp<P0>(&self, pszname: P0) -> windows_core::Result<()>
24639 where
24640 P0: windows_core::Param<windows_core::PCSTR>,
24641 {
24642 unsafe {
24643 (windows_core::Interface::vtable(self).DeleteProp)(
24644 windows_core::Interface::as_raw(self),
24645 pszname.param().abi(),
24646 )
24647 .ok()
24648 }
24649 }
24650 pub unsafe fn QueryProp<P0, P1>(
24651 &self,
24652 pszname: P0,
24653 pszcriteria: P1,
24654 fsubstring: u8,
24655 fcasesensitive: u8,
24656 ) -> windows_core::Result<()>
24657 where
24658 P0: windows_core::Param<windows_core::PCSTR>,
24659 P1: windows_core::Param<windows_core::PCSTR>,
24660 {
24661 unsafe {
24662 (windows_core::Interface::vtable(self).QueryProp)(
24663 windows_core::Interface::as_raw(self),
24664 pszname.param().abi(),
24665 pszcriteria.param().abi(),
24666 fsubstring,
24667 fcasesensitive,
24668 )
24669 .ok()
24670 }
24671 }
24672 pub unsafe fn GetTextBody(
24673 &self,
24674 dwtxttype: u32,
24675 ietencoding: ENCODINGTYPE,
24676 ppstream: *mut Option<windows::Win32::System::Com::IStream>,
24677 phbody: *mut *mut HBODY__,
24678 ) -> windows_core::Result<()> {
24679 unsafe {
24680 (windows_core::Interface::vtable(self).GetTextBody)(
24681 windows_core::Interface::as_raw(self),
24682 dwtxttype,
24683 ietencoding,
24684 core::mem::transmute(ppstream),
24685 phbody as _,
24686 )
24687 .ok()
24688 }
24689 }
24690 pub unsafe fn SetTextBody<P3>(
24691 &self,
24692 dwtxttype: u32,
24693 ietencoding: ENCODINGTYPE,
24694 halternative: *mut HBODY__,
24695 pstream: P3,
24696 phbody: *mut *mut HBODY__,
24697 ) -> windows_core::Result<()>
24698 where
24699 P3: windows_core::Param<windows::Win32::System::Com::IStream>,
24700 {
24701 unsafe {
24702 (windows_core::Interface::vtable(self).SetTextBody)(
24703 windows_core::Interface::as_raw(self),
24704 dwtxttype,
24705 ietencoding,
24706 halternative as _,
24707 pstream.param().abi(),
24708 phbody as _,
24709 )
24710 .ok()
24711 }
24712 }
24713 pub unsafe fn AttachObject(
24714 &self,
24715 riid: *const windows_core::GUID,
24716 pvobject: *mut core::ffi::c_void,
24717 phbody: *mut *mut HBODY__,
24718 ) -> windows_core::Result<()> {
24719 unsafe {
24720 (windows_core::Interface::vtable(self).AttachObject)(
24721 windows_core::Interface::as_raw(self),
24722 riid,
24723 pvobject as _,
24724 phbody as _,
24725 )
24726 .ok()
24727 }
24728 }
24729 pub unsafe fn AttachFile<P0, P1>(
24730 &self,
24731 pszfilepath: P0,
24732 pstmfile: P1,
24733 phbody: *mut *mut HBODY__,
24734 ) -> windows_core::Result<()>
24735 where
24736 P0: windows_core::Param<windows_core::PCSTR>,
24737 P1: windows_core::Param<windows::Win32::System::Com::IStream>,
24738 {
24739 unsafe {
24740 (windows_core::Interface::vtable(self).AttachFile)(
24741 windows_core::Interface::as_raw(self),
24742 pszfilepath.param().abi(),
24743 pstmfile.param().abi(),
24744 phbody as _,
24745 )
24746 .ok()
24747 }
24748 }
24749 pub unsafe fn AttachURL<P0, P1, P3>(
24750 &self,
24751 pszbase: P0,
24752 pszurl: P1,
24753 dwflags: u32,
24754 pstmurl: P3,
24755 ppszcidurl: *mut windows_core::PSTR,
24756 phbody: *mut *mut HBODY__,
24757 ) -> windows_core::Result<()>
24758 where
24759 P0: windows_core::Param<windows_core::PCSTR>,
24760 P1: windows_core::Param<windows_core::PCSTR>,
24761 P3: windows_core::Param<windows::Win32::System::Com::IStream>,
24762 {
24763 unsafe {
24764 (windows_core::Interface::vtable(self).AttachURL)(
24765 windows_core::Interface::as_raw(self),
24766 pszbase.param().abi(),
24767 pszurl.param().abi(),
24768 dwflags,
24769 pstmurl.param().abi(),
24770 ppszcidurl as _,
24771 phbody as _,
24772 )
24773 .ok()
24774 }
24775 }
24776 pub unsafe fn GetAttachments(
24777 &self,
24778 pcattach: *mut u32,
24779 pprghattach: *mut *mut *mut HBODY__,
24780 ) -> windows_core::Result<()> {
24781 unsafe {
24782 (windows_core::Interface::vtable(self).GetAttachments)(
24783 windows_core::Interface::as_raw(self),
24784 pcattach as _,
24785 pprghattach as _,
24786 )
24787 .ok()
24788 }
24789 }
24790 pub unsafe fn GetAddressTable(&self) -> windows_core::Result<IMimeAddressTable> {
24791 unsafe {
24792 let mut result__ = core::mem::zeroed();
24793 (windows_core::Interface::vtable(self).GetAddressTable)(
24794 windows_core::Interface::as_raw(self),
24795 &mut result__,
24796 )
24797 .and_then(|| windows_core::Type::from_abi(result__))
24798 }
24799 }
24800 pub unsafe fn GetSender(&self, paddress: *mut ADDRESSPROPS) -> windows_core::Result<()> {
24801 unsafe {
24802 (windows_core::Interface::vtable(self).GetSender)(
24803 windows_core::Interface::as_raw(self),
24804 paddress as _,
24805 )
24806 .ok()
24807 }
24808 }
24809 pub unsafe fn GetAddressTypes(
24810 &self,
24811 dwadrtypes: u32,
24812 dwprops: u32,
24813 plist: *mut ADDRESSLIST,
24814 ) -> windows_core::Result<()> {
24815 unsafe {
24816 (windows_core::Interface::vtable(self).GetAddressTypes)(
24817 windows_core::Interface::as_raw(self),
24818 dwadrtypes,
24819 dwprops,
24820 plist as _,
24821 )
24822 .ok()
24823 }
24824 }
24825 pub unsafe fn GetAddressFormat(
24826 &self,
24827 dwadrtype: u32,
24828 format: ADDRESSFORMAT,
24829 ppszformat: *mut windows_core::PSTR,
24830 ) -> windows_core::Result<()> {
24831 unsafe {
24832 (windows_core::Interface::vtable(self).GetAddressFormat)(
24833 windows_core::Interface::as_raw(self),
24834 dwadrtype,
24835 format,
24836 ppszformat as _,
24837 )
24838 .ok()
24839 }
24840 }
24841 pub unsafe fn EnumAddressTypes(
24842 &self,
24843 dwadrtypes: u32,
24844 dwprops: u32,
24845 ) -> windows_core::Result<IMimeEnumAddressTypes> {
24846 unsafe {
24847 let mut result__ = core::mem::zeroed();
24848 (windows_core::Interface::vtable(self).EnumAddressTypes)(
24849 windows_core::Interface::as_raw(self),
24850 dwadrtypes,
24851 dwprops,
24852 &mut result__,
24853 )
24854 .and_then(|| windows_core::Type::from_abi(result__))
24855 }
24856 }
24857 pub unsafe fn SplitMessage(&self, cbmaxpart: u32) -> windows_core::Result<IMimeMessageParts> {
24858 unsafe {
24859 let mut result__ = core::mem::zeroed();
24860 (windows_core::Interface::vtable(self).SplitMessage)(
24861 windows_core::Interface::as_raw(self),
24862 cbmaxpart,
24863 &mut result__,
24864 )
24865 .and_then(|| windows_core::Type::from_abi(result__))
24866 }
24867 }
24868 pub unsafe fn GetRootMoniker(
24869 &self,
24870 ) -> windows_core::Result<windows::Win32::System::Com::IMoniker> {
24871 unsafe {
24872 let mut result__ = core::mem::zeroed();
24873 (windows_core::Interface::vtable(self).GetRootMoniker)(
24874 windows_core::Interface::as_raw(self),
24875 &mut result__,
24876 )
24877 .and_then(|| windows_core::Type::from_abi(result__))
24878 }
24879 }
24880}
24881#[repr(C)]
24882#[doc(hidden)]
24883pub struct IMimeMessage_Vtbl {
24884 pub base__: IMimeMessageTree_Vtbl,
24885 pub CreateWebPage: unsafe extern "system" fn(
24886 *mut core::ffi::c_void,
24887 *mut core::ffi::c_void,
24888 *mut WEBPAGEOPTIONS,
24889 *mut core::ffi::c_void,
24890 *mut *mut core::ffi::c_void,
24891 ) -> windows_core::HRESULT,
24892 pub GetPropA: 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 SetPropA: unsafe extern "system" fn(
24899 *mut core::ffi::c_void,
24900 windows_core::PCSTR,
24901 u32,
24902 *mut windows::Win32::System::Com::StructuredStorage::PROPVARIANT,
24903 ) -> windows_core::HRESULT,
24904 pub DeleteProp: unsafe extern "system" fn(
24905 *mut core::ffi::c_void,
24906 windows_core::PCSTR,
24907 ) -> windows_core::HRESULT,
24908 pub QueryProp: unsafe extern "system" fn(
24909 *mut core::ffi::c_void,
24910 windows_core::PCSTR,
24911 windows_core::PCSTR,
24912 u8,
24913 u8,
24914 ) -> windows_core::HRESULT,
24915 pub GetTextBody: unsafe extern "system" fn(
24916 *mut core::ffi::c_void,
24917 u32,
24918 ENCODINGTYPE,
24919 *mut *mut core::ffi::c_void,
24920 *mut *mut HBODY__,
24921 ) -> windows_core::HRESULT,
24922 pub SetTextBody: unsafe extern "system" fn(
24923 *mut core::ffi::c_void,
24924 u32,
24925 ENCODINGTYPE,
24926 *mut HBODY__,
24927 *mut core::ffi::c_void,
24928 *mut *mut HBODY__,
24929 ) -> windows_core::HRESULT,
24930 pub AttachObject: unsafe extern "system" fn(
24931 *mut core::ffi::c_void,
24932 *const windows_core::GUID,
24933 *mut core::ffi::c_void,
24934 *mut *mut HBODY__,
24935 ) -> windows_core::HRESULT,
24936 pub AttachFile: unsafe extern "system" fn(
24937 *mut core::ffi::c_void,
24938 windows_core::PCSTR,
24939 *mut core::ffi::c_void,
24940 *mut *mut HBODY__,
24941 ) -> windows_core::HRESULT,
24942 pub AttachURL: unsafe extern "system" fn(
24943 *mut core::ffi::c_void,
24944 windows_core::PCSTR,
24945 windows_core::PCSTR,
24946 u32,
24947 *mut core::ffi::c_void,
24948 *mut windows_core::PSTR,
24949 *mut *mut HBODY__,
24950 ) -> windows_core::HRESULT,
24951 pub GetAttachments: unsafe extern "system" fn(
24952 *mut core::ffi::c_void,
24953 *mut u32,
24954 *mut *mut *mut HBODY__,
24955 ) -> windows_core::HRESULT,
24956 pub GetAddressTable: unsafe extern "system" fn(
24957 *mut core::ffi::c_void,
24958 *mut *mut core::ffi::c_void,
24959 ) -> windows_core::HRESULT,
24960 pub GetSender: unsafe extern "system" fn(
24961 *mut core::ffi::c_void,
24962 *mut ADDRESSPROPS,
24963 ) -> windows_core::HRESULT,
24964 pub GetAddressTypes: unsafe extern "system" fn(
24965 *mut core::ffi::c_void,
24966 u32,
24967 u32,
24968 *mut ADDRESSLIST,
24969 ) -> windows_core::HRESULT,
24970 pub GetAddressFormat: unsafe extern "system" fn(
24971 *mut core::ffi::c_void,
24972 u32,
24973 ADDRESSFORMAT,
24974 *mut windows_core::PSTR,
24975 ) -> windows_core::HRESULT,
24976 pub EnumAddressTypes: unsafe extern "system" fn(
24977 *mut core::ffi::c_void,
24978 u32,
24979 u32,
24980 *mut *mut core::ffi::c_void,
24981 ) -> windows_core::HRESULT,
24982 pub SplitMessage: unsafe extern "system" fn(
24983 *mut core::ffi::c_void,
24984 u32,
24985 *mut *mut core::ffi::c_void,
24986 ) -> windows_core::HRESULT,
24987 pub GetRootMoniker: unsafe extern "system" fn(
24988 *mut core::ffi::c_void,
24989 *mut *mut core::ffi::c_void,
24990 ) -> windows_core::HRESULT,
24991}
24992pub trait IMimeMessage_Impl: IMimeMessageTree_Impl {
24993 fn CreateWebPage(
24994 &self,
24995 prootstm: windows_core::Ref<windows::Win32::System::Com::IStream>,
24996 poptions: *mut WEBPAGEOPTIONS,
24997 pcallback: windows_core::Ref<IMimeMessageCallback>,
24998 ppmoniker: windows_core::OutRef<windows::Win32::System::Com::IMoniker>,
24999 ) -> windows_core::Result<()>;
25000 fn GetPropA(
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 SetPropA(
25007 &self,
25008 pszname: &windows_core::PCSTR,
25009 dwflags: u32,
25010 pvalue: *mut windows::Win32::System::Com::StructuredStorage::PROPVARIANT,
25011 ) -> windows_core::Result<()>;
25012 fn DeleteProp(&self, pszname: &windows_core::PCSTR) -> windows_core::Result<()>;
25013 fn QueryProp(
25014 &self,
25015 pszname: &windows_core::PCSTR,
25016 pszcriteria: &windows_core::PCSTR,
25017 fsubstring: u8,
25018 fcasesensitive: u8,
25019 ) -> windows_core::Result<()>;
25020 fn GetTextBody(
25021 &self,
25022 dwtxttype: u32,
25023 ietencoding: ENCODINGTYPE,
25024 ppstream: windows_core::OutRef<windows::Win32::System::Com::IStream>,
25025 phbody: *mut *mut HBODY__,
25026 ) -> windows_core::Result<()>;
25027 fn SetTextBody(
25028 &self,
25029 dwtxttype: u32,
25030 ietencoding: ENCODINGTYPE,
25031 halternative: *mut HBODY__,
25032 pstream: windows_core::Ref<windows::Win32::System::Com::IStream>,
25033 phbody: *mut *mut HBODY__,
25034 ) -> windows_core::Result<()>;
25035 fn AttachObject(
25036 &self,
25037 riid: *const windows_core::GUID,
25038 pvobject: *mut core::ffi::c_void,
25039 phbody: *mut *mut HBODY__,
25040 ) -> windows_core::Result<()>;
25041 fn AttachFile(
25042 &self,
25043 pszfilepath: &windows_core::PCSTR,
25044 pstmfile: windows_core::Ref<windows::Win32::System::Com::IStream>,
25045 phbody: *mut *mut HBODY__,
25046 ) -> windows_core::Result<()>;
25047 fn AttachURL(
25048 &self,
25049 pszbase: &windows_core::PCSTR,
25050 pszurl: &windows_core::PCSTR,
25051 dwflags: u32,
25052 pstmurl: windows_core::Ref<windows::Win32::System::Com::IStream>,
25053 ppszcidurl: *mut windows_core::PSTR,
25054 phbody: *mut *mut HBODY__,
25055 ) -> windows_core::Result<()>;
25056 fn GetAttachments(
25057 &self,
25058 pcattach: *mut u32,
25059 pprghattach: *mut *mut *mut HBODY__,
25060 ) -> windows_core::Result<()>;
25061 fn GetAddressTable(&self) -> windows_core::Result<IMimeAddressTable>;
25062 fn GetSender(&self, paddress: *mut ADDRESSPROPS) -> windows_core::Result<()>;
25063 fn GetAddressTypes(
25064 &self,
25065 dwadrtypes: u32,
25066 dwprops: u32,
25067 plist: *mut ADDRESSLIST,
25068 ) -> windows_core::Result<()>;
25069 fn GetAddressFormat(
25070 &self,
25071 dwadrtype: u32,
25072 format: ADDRESSFORMAT,
25073 ppszformat: *mut windows_core::PSTR,
25074 ) -> windows_core::Result<()>;
25075 fn EnumAddressTypes(
25076 &self,
25077 dwadrtypes: u32,
25078 dwprops: u32,
25079 ) -> windows_core::Result<IMimeEnumAddressTypes>;
25080 fn SplitMessage(&self, cbmaxpart: u32) -> windows_core::Result<IMimeMessageParts>;
25081 fn GetRootMoniker(&self) -> windows_core::Result<windows::Win32::System::Com::IMoniker>;
25082}
25083impl IMimeMessage_Vtbl {
25084 pub const fn new<Identity: IMimeMessage_Impl, const OFFSET: isize>() -> Self {
25085 unsafe extern "system" fn CreateWebPage<
25086 Identity: IMimeMessage_Impl,
25087 const OFFSET: isize,
25088 >(
25089 this: *mut core::ffi::c_void,
25090 prootstm: *mut core::ffi::c_void,
25091 poptions: *mut WEBPAGEOPTIONS,
25092 pcallback: *mut core::ffi::c_void,
25093 ppmoniker: *mut *mut core::ffi::c_void,
25094 ) -> windows_core::HRESULT {
25095 unsafe {
25096 let this: &Identity =
25097 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
25098 IMimeMessage_Impl::CreateWebPage(
25099 this,
25100 core::mem::transmute_copy(&prootstm),
25101 core::mem::transmute_copy(&poptions),
25102 core::mem::transmute_copy(&pcallback),
25103 core::mem::transmute_copy(&ppmoniker),
25104 )
25105 .into()
25106 }
25107 }
25108 unsafe extern "system" fn GetPropA<Identity: IMimeMessage_Impl, const OFFSET: isize>(
25109 this: *mut core::ffi::c_void,
25110 pszname: windows_core::PCSTR,
25111 dwflags: u32,
25112 pvalue: *mut windows::Win32::System::Com::StructuredStorage::PROPVARIANT,
25113 ) -> windows_core::HRESULT {
25114 unsafe {
25115 let this: &Identity =
25116 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
25117 IMimeMessage_Impl::GetPropA(
25118 this,
25119 core::mem::transmute(&pszname),
25120 core::mem::transmute_copy(&dwflags),
25121 core::mem::transmute_copy(&pvalue),
25122 )
25123 .into()
25124 }
25125 }
25126 unsafe extern "system" fn SetPropA<Identity: IMimeMessage_Impl, const OFFSET: isize>(
25127 this: *mut core::ffi::c_void,
25128 pszname: windows_core::PCSTR,
25129 dwflags: u32,
25130 pvalue: *mut windows::Win32::System::Com::StructuredStorage::PROPVARIANT,
25131 ) -> windows_core::HRESULT {
25132 unsafe {
25133 let this: &Identity =
25134 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
25135 IMimeMessage_Impl::SetPropA(
25136 this,
25137 core::mem::transmute(&pszname),
25138 core::mem::transmute_copy(&dwflags),
25139 core::mem::transmute_copy(&pvalue),
25140 )
25141 .into()
25142 }
25143 }
25144 unsafe extern "system" fn DeleteProp<Identity: IMimeMessage_Impl, const OFFSET: isize>(
25145 this: *mut core::ffi::c_void,
25146 pszname: windows_core::PCSTR,
25147 ) -> windows_core::HRESULT {
25148 unsafe {
25149 let this: &Identity =
25150 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
25151 IMimeMessage_Impl::DeleteProp(this, core::mem::transmute(&pszname)).into()
25152 }
25153 }
25154 unsafe extern "system" fn QueryProp<Identity: IMimeMessage_Impl, const OFFSET: isize>(
25155 this: *mut core::ffi::c_void,
25156 pszname: windows_core::PCSTR,
25157 pszcriteria: windows_core::PCSTR,
25158 fsubstring: u8,
25159 fcasesensitive: u8,
25160 ) -> windows_core::HRESULT {
25161 unsafe {
25162 let this: &Identity =
25163 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
25164 IMimeMessage_Impl::QueryProp(
25165 this,
25166 core::mem::transmute(&pszname),
25167 core::mem::transmute(&pszcriteria),
25168 core::mem::transmute_copy(&fsubstring),
25169 core::mem::transmute_copy(&fcasesensitive),
25170 )
25171 .into()
25172 }
25173 }
25174 unsafe extern "system" fn GetTextBody<Identity: IMimeMessage_Impl, const OFFSET: isize>(
25175 this: *mut core::ffi::c_void,
25176 dwtxttype: u32,
25177 ietencoding: ENCODINGTYPE,
25178 ppstream: *mut *mut core::ffi::c_void,
25179 phbody: *mut *mut HBODY__,
25180 ) -> windows_core::HRESULT {
25181 unsafe {
25182 let this: &Identity =
25183 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
25184 IMimeMessage_Impl::GetTextBody(
25185 this,
25186 core::mem::transmute_copy(&dwtxttype),
25187 core::mem::transmute_copy(&ietencoding),
25188 core::mem::transmute_copy(&ppstream),
25189 core::mem::transmute_copy(&phbody),
25190 )
25191 .into()
25192 }
25193 }
25194 unsafe extern "system" fn SetTextBody<Identity: IMimeMessage_Impl, const OFFSET: isize>(
25195 this: *mut core::ffi::c_void,
25196 dwtxttype: u32,
25197 ietencoding: ENCODINGTYPE,
25198 halternative: *mut HBODY__,
25199 pstream: *mut core::ffi::c_void,
25200 phbody: *mut *mut HBODY__,
25201 ) -> windows_core::HRESULT {
25202 unsafe {
25203 let this: &Identity =
25204 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
25205 IMimeMessage_Impl::SetTextBody(
25206 this,
25207 core::mem::transmute_copy(&dwtxttype),
25208 core::mem::transmute_copy(&ietencoding),
25209 core::mem::transmute_copy(&halternative),
25210 core::mem::transmute_copy(&pstream),
25211 core::mem::transmute_copy(&phbody),
25212 )
25213 .into()
25214 }
25215 }
25216 unsafe extern "system" fn AttachObject<Identity: IMimeMessage_Impl, const OFFSET: isize>(
25217 this: *mut core::ffi::c_void,
25218 riid: *const windows_core::GUID,
25219 pvobject: *mut core::ffi::c_void,
25220 phbody: *mut *mut HBODY__,
25221 ) -> windows_core::HRESULT {
25222 unsafe {
25223 let this: &Identity =
25224 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
25225 IMimeMessage_Impl::AttachObject(
25226 this,
25227 core::mem::transmute_copy(&riid),
25228 core::mem::transmute_copy(&pvobject),
25229 core::mem::transmute_copy(&phbody),
25230 )
25231 .into()
25232 }
25233 }
25234 unsafe extern "system" fn AttachFile<Identity: IMimeMessage_Impl, const OFFSET: isize>(
25235 this: *mut core::ffi::c_void,
25236 pszfilepath: windows_core::PCSTR,
25237 pstmfile: *mut core::ffi::c_void,
25238 phbody: *mut *mut HBODY__,
25239 ) -> windows_core::HRESULT {
25240 unsafe {
25241 let this: &Identity =
25242 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
25243 IMimeMessage_Impl::AttachFile(
25244 this,
25245 core::mem::transmute(&pszfilepath),
25246 core::mem::transmute_copy(&pstmfile),
25247 core::mem::transmute_copy(&phbody),
25248 )
25249 .into()
25250 }
25251 }
25252 unsafe extern "system" fn AttachURL<Identity: IMimeMessage_Impl, const OFFSET: isize>(
25253 this: *mut core::ffi::c_void,
25254 pszbase: windows_core::PCSTR,
25255 pszurl: windows_core::PCSTR,
25256 dwflags: u32,
25257 pstmurl: *mut core::ffi::c_void,
25258 ppszcidurl: *mut windows_core::PSTR,
25259 phbody: *mut *mut HBODY__,
25260 ) -> windows_core::HRESULT {
25261 unsafe {
25262 let this: &Identity =
25263 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
25264 IMimeMessage_Impl::AttachURL(
25265 this,
25266 core::mem::transmute(&pszbase),
25267 core::mem::transmute(&pszurl),
25268 core::mem::transmute_copy(&dwflags),
25269 core::mem::transmute_copy(&pstmurl),
25270 core::mem::transmute_copy(&ppszcidurl),
25271 core::mem::transmute_copy(&phbody),
25272 )
25273 .into()
25274 }
25275 }
25276 unsafe extern "system" fn GetAttachments<
25277 Identity: IMimeMessage_Impl,
25278 const OFFSET: isize,
25279 >(
25280 this: *mut core::ffi::c_void,
25281 pcattach: *mut u32,
25282 pprghattach: *mut *mut *mut HBODY__,
25283 ) -> windows_core::HRESULT {
25284 unsafe {
25285 let this: &Identity =
25286 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
25287 IMimeMessage_Impl::GetAttachments(
25288 this,
25289 core::mem::transmute_copy(&pcattach),
25290 core::mem::transmute_copy(&pprghattach),
25291 )
25292 .into()
25293 }
25294 }
25295 unsafe extern "system" fn GetAddressTable<
25296 Identity: IMimeMessage_Impl,
25297 const OFFSET: isize,
25298 >(
25299 this: *mut core::ffi::c_void,
25300 pptable: *mut *mut core::ffi::c_void,
25301 ) -> windows_core::HRESULT {
25302 unsafe {
25303 let this: &Identity =
25304 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
25305 match IMimeMessage_Impl::GetAddressTable(this) {
25306 Ok(ok__) => {
25307 pptable.write(core::mem::transmute(ok__));
25308 windows_core::HRESULT(0)
25309 }
25310 Err(err) => err.into(),
25311 }
25312 }
25313 }
25314 unsafe extern "system" fn GetSender<Identity: IMimeMessage_Impl, const OFFSET: isize>(
25315 this: *mut core::ffi::c_void,
25316 paddress: *mut ADDRESSPROPS,
25317 ) -> windows_core::HRESULT {
25318 unsafe {
25319 let this: &Identity =
25320 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
25321 IMimeMessage_Impl::GetSender(this, core::mem::transmute_copy(&paddress)).into()
25322 }
25323 }
25324 unsafe extern "system" fn GetAddressTypes<
25325 Identity: IMimeMessage_Impl,
25326 const OFFSET: isize,
25327 >(
25328 this: *mut core::ffi::c_void,
25329 dwadrtypes: u32,
25330 dwprops: u32,
25331 plist: *mut ADDRESSLIST,
25332 ) -> windows_core::HRESULT {
25333 unsafe {
25334 let this: &Identity =
25335 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
25336 IMimeMessage_Impl::GetAddressTypes(
25337 this,
25338 core::mem::transmute_copy(&dwadrtypes),
25339 core::mem::transmute_copy(&dwprops),
25340 core::mem::transmute_copy(&plist),
25341 )
25342 .into()
25343 }
25344 }
25345 unsafe extern "system" fn GetAddressFormat<
25346 Identity: IMimeMessage_Impl,
25347 const OFFSET: isize,
25348 >(
25349 this: *mut core::ffi::c_void,
25350 dwadrtype: u32,
25351 format: ADDRESSFORMAT,
25352 ppszformat: *mut windows_core::PSTR,
25353 ) -> windows_core::HRESULT {
25354 unsafe {
25355 let this: &Identity =
25356 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
25357 IMimeMessage_Impl::GetAddressFormat(
25358 this,
25359 core::mem::transmute_copy(&dwadrtype),
25360 core::mem::transmute_copy(&format),
25361 core::mem::transmute_copy(&ppszformat),
25362 )
25363 .into()
25364 }
25365 }
25366 unsafe extern "system" fn EnumAddressTypes<
25367 Identity: IMimeMessage_Impl,
25368 const OFFSET: isize,
25369 >(
25370 this: *mut core::ffi::c_void,
25371 dwadrtypes: u32,
25372 dwprops: u32,
25373 ppenum: *mut *mut core::ffi::c_void,
25374 ) -> windows_core::HRESULT {
25375 unsafe {
25376 let this: &Identity =
25377 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
25378 match IMimeMessage_Impl::EnumAddressTypes(
25379 this,
25380 core::mem::transmute_copy(&dwadrtypes),
25381 core::mem::transmute_copy(&dwprops),
25382 ) {
25383 Ok(ok__) => {
25384 ppenum.write(core::mem::transmute(ok__));
25385 windows_core::HRESULT(0)
25386 }
25387 Err(err) => err.into(),
25388 }
25389 }
25390 }
25391 unsafe extern "system" fn SplitMessage<Identity: IMimeMessage_Impl, const OFFSET: isize>(
25392 this: *mut core::ffi::c_void,
25393 cbmaxpart: u32,
25394 ppparts: *mut *mut core::ffi::c_void,
25395 ) -> windows_core::HRESULT {
25396 unsafe {
25397 let this: &Identity =
25398 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
25399 match IMimeMessage_Impl::SplitMessage(this, core::mem::transmute_copy(&cbmaxpart)) {
25400 Ok(ok__) => {
25401 ppparts.write(core::mem::transmute(ok__));
25402 windows_core::HRESULT(0)
25403 }
25404 Err(err) => err.into(),
25405 }
25406 }
25407 }
25408 unsafe extern "system" fn GetRootMoniker<
25409 Identity: IMimeMessage_Impl,
25410 const OFFSET: isize,
25411 >(
25412 this: *mut core::ffi::c_void,
25413 ppmoniker: *mut *mut core::ffi::c_void,
25414 ) -> windows_core::HRESULT {
25415 unsafe {
25416 let this: &Identity =
25417 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
25418 match IMimeMessage_Impl::GetRootMoniker(this) {
25419 Ok(ok__) => {
25420 ppmoniker.write(core::mem::transmute(ok__));
25421 windows_core::HRESULT(0)
25422 }
25423 Err(err) => err.into(),
25424 }
25425 }
25426 }
25427 Self {
25428 base__: IMimeMessageTree_Vtbl::new::<Identity, OFFSET>(),
25429 CreateWebPage: CreateWebPage::<Identity, OFFSET>,
25430 GetPropA: GetPropA::<Identity, OFFSET>,
25431 SetPropA: SetPropA::<Identity, OFFSET>,
25432 DeleteProp: DeleteProp::<Identity, OFFSET>,
25433 QueryProp: QueryProp::<Identity, OFFSET>,
25434 GetTextBody: GetTextBody::<Identity, OFFSET>,
25435 SetTextBody: SetTextBody::<Identity, OFFSET>,
25436 AttachObject: AttachObject::<Identity, OFFSET>,
25437 AttachFile: AttachFile::<Identity, OFFSET>,
25438 AttachURL: AttachURL::<Identity, OFFSET>,
25439 GetAttachments: GetAttachments::<Identity, OFFSET>,
25440 GetAddressTable: GetAddressTable::<Identity, OFFSET>,
25441 GetSender: GetSender::<Identity, OFFSET>,
25442 GetAddressTypes: GetAddressTypes::<Identity, OFFSET>,
25443 GetAddressFormat: GetAddressFormat::<Identity, OFFSET>,
25444 EnumAddressTypes: EnumAddressTypes::<Identity, OFFSET>,
25445 SplitMessage: SplitMessage::<Identity, OFFSET>,
25446 GetRootMoniker: GetRootMoniker::<Identity, OFFSET>,
25447 }
25448 }
25449 pub fn matches(iid: &windows_core::GUID) -> bool {
25450 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
25451 }
25452}
25453impl windows_core::RuntimeName for IMimeMessage {}
25454windows_core::imp::define_interface!(
25455 IMimeMessageCallback,
25456 IMimeMessageCallback_Vtbl,
25457 0x761aa641_7bda_11d1_8aa9_00c04fb951f3
25458);
25459windows_core::imp::interface_hierarchy!(IMimeMessageCallback, windows_core::IUnknown);
25460impl IMimeMessageCallback {
25461 pub unsafe fn OnWebPageSplitter<P1>(
25462 &self,
25463 cinlined: u32,
25464 ppstream: P1,
25465 ) -> windows_core::Result<()>
25466 where
25467 P1: windows_core::Param<windows::Win32::System::Com::IStream>,
25468 {
25469 unsafe {
25470 (windows_core::Interface::vtable(self).OnWebPageSplitter)(
25471 windows_core::Interface::as_raw(self),
25472 cinlined,
25473 ppstream.param().abi(),
25474 )
25475 .ok()
25476 }
25477 }
25478}
25479#[repr(C)]
25480#[doc(hidden)]
25481pub struct IMimeMessageCallback_Vtbl {
25482 pub base__: windows_core::IUnknown_Vtbl,
25483 pub OnWebPageSplitter: unsafe extern "system" fn(
25484 *mut core::ffi::c_void,
25485 u32,
25486 *mut core::ffi::c_void,
25487 ) -> windows_core::HRESULT,
25488}
25489pub trait IMimeMessageCallback_Impl: windows_core::IUnknownImpl {
25490 fn OnWebPageSplitter(
25491 &self,
25492 cinlined: u32,
25493 ppstream: windows_core::Ref<windows::Win32::System::Com::IStream>,
25494 ) -> windows_core::Result<()>;
25495}
25496impl IMimeMessageCallback_Vtbl {
25497 pub const fn new<Identity: IMimeMessageCallback_Impl, const OFFSET: isize>() -> Self {
25498 unsafe extern "system" fn OnWebPageSplitter<
25499 Identity: IMimeMessageCallback_Impl,
25500 const OFFSET: isize,
25501 >(
25502 this: *mut core::ffi::c_void,
25503 cinlined: u32,
25504 ppstream: *mut core::ffi::c_void,
25505 ) -> windows_core::HRESULT {
25506 unsafe {
25507 let this: &Identity =
25508 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
25509 IMimeMessageCallback_Impl::OnWebPageSplitter(
25510 this,
25511 core::mem::transmute_copy(&cinlined),
25512 core::mem::transmute_copy(&ppstream),
25513 )
25514 .into()
25515 }
25516 }
25517 Self {
25518 base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
25519 OnWebPageSplitter: OnWebPageSplitter::<Identity, OFFSET>,
25520 }
25521 }
25522 pub fn matches(iid: &windows_core::GUID) -> bool {
25523 iid == &<IMimeMessageCallback as windows_core::Interface>::IID
25524 }
25525}
25526impl windows_core::RuntimeName for IMimeMessageCallback {}
25527windows_core::imp::define_interface!(
25528 IMimeMessageParts,
25529 IMimeMessageParts_Vtbl,
25530 0xc558834f_7f86_11d0_8252_00c04fd85ab4
25531);
25532windows_core::imp::interface_hierarchy!(IMimeMessageParts, windows_core::IUnknown);
25533impl IMimeMessageParts {
25534 pub unsafe fn CombineParts(&self) -> windows_core::Result<IMimeMessage> {
25535 unsafe {
25536 let mut result__ = core::mem::zeroed();
25537 (windows_core::Interface::vtable(self).CombineParts)(
25538 windows_core::Interface::as_raw(self),
25539 &mut result__,
25540 )
25541 .and_then(|| windows_core::Type::from_abi(result__))
25542 }
25543 }
25544 pub unsafe fn AddPart<P0>(&self, pmessage: P0) -> windows_core::Result<()>
25545 where
25546 P0: windows_core::Param<IMimeMessage>,
25547 {
25548 unsafe {
25549 (windows_core::Interface::vtable(self).AddPart)(
25550 windows_core::Interface::as_raw(self),
25551 pmessage.param().abi(),
25552 )
25553 .ok()
25554 }
25555 }
25556 pub unsafe fn SetMaxParts(&self, cparts: u32) -> windows_core::Result<()> {
25557 unsafe {
25558 (windows_core::Interface::vtable(self).SetMaxParts)(
25559 windows_core::Interface::as_raw(self),
25560 cparts,
25561 )
25562 .ok()
25563 }
25564 }
25565 pub unsafe fn CountParts(&self, pcparts: *mut u32) -> windows_core::Result<()> {
25566 unsafe {
25567 (windows_core::Interface::vtable(self).CountParts)(
25568 windows_core::Interface::as_raw(self),
25569 pcparts as _,
25570 )
25571 .ok()
25572 }
25573 }
25574 pub unsafe fn EnumParts(&self) -> windows_core::Result<IMimeEnumMessageParts> {
25575 unsafe {
25576 let mut result__ = core::mem::zeroed();
25577 (windows_core::Interface::vtable(self).EnumParts)(
25578 windows_core::Interface::as_raw(self),
25579 &mut result__,
25580 )
25581 .and_then(|| windows_core::Type::from_abi(result__))
25582 }
25583 }
25584}
25585#[repr(C)]
25586#[doc(hidden)]
25587pub struct IMimeMessageParts_Vtbl {
25588 pub base__: windows_core::IUnknown_Vtbl,
25589 pub CombineParts: unsafe extern "system" fn(
25590 *mut core::ffi::c_void,
25591 *mut *mut core::ffi::c_void,
25592 ) -> windows_core::HRESULT,
25593 pub AddPart: unsafe extern "system" fn(
25594 *mut core::ffi::c_void,
25595 *mut core::ffi::c_void,
25596 ) -> windows_core::HRESULT,
25597 pub SetMaxParts:
25598 unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
25599 pub CountParts:
25600 unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
25601 pub EnumParts: unsafe extern "system" fn(
25602 *mut core::ffi::c_void,
25603 *mut *mut core::ffi::c_void,
25604 ) -> windows_core::HRESULT,
25605}
25606pub trait IMimeMessageParts_Impl: windows_core::IUnknownImpl {
25607 fn CombineParts(&self) -> windows_core::Result<IMimeMessage>;
25608 fn AddPart(&self, pmessage: windows_core::Ref<IMimeMessage>) -> windows_core::Result<()>;
25609 fn SetMaxParts(&self, cparts: u32) -> windows_core::Result<()>;
25610 fn CountParts(&self, pcparts: *mut u32) -> windows_core::Result<()>;
25611 fn EnumParts(&self) -> windows_core::Result<IMimeEnumMessageParts>;
25612}
25613impl IMimeMessageParts_Vtbl {
25614 pub const fn new<Identity: IMimeMessageParts_Impl, const OFFSET: isize>() -> Self {
25615 unsafe extern "system" fn CombineParts<
25616 Identity: IMimeMessageParts_Impl,
25617 const OFFSET: isize,
25618 >(
25619 this: *mut core::ffi::c_void,
25620 ppmessage: *mut *mut core::ffi::c_void,
25621 ) -> windows_core::HRESULT {
25622 unsafe {
25623 let this: &Identity =
25624 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
25625 match IMimeMessageParts_Impl::CombineParts(this) {
25626 Ok(ok__) => {
25627 ppmessage.write(core::mem::transmute(ok__));
25628 windows_core::HRESULT(0)
25629 }
25630 Err(err) => err.into(),
25631 }
25632 }
25633 }
25634 unsafe extern "system" fn AddPart<Identity: IMimeMessageParts_Impl, const OFFSET: isize>(
25635 this: *mut core::ffi::c_void,
25636 pmessage: *mut core::ffi::c_void,
25637 ) -> windows_core::HRESULT {
25638 unsafe {
25639 let this: &Identity =
25640 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
25641 IMimeMessageParts_Impl::AddPart(this, core::mem::transmute_copy(&pmessage)).into()
25642 }
25643 }
25644 unsafe extern "system" fn SetMaxParts<
25645 Identity: IMimeMessageParts_Impl,
25646 const OFFSET: isize,
25647 >(
25648 this: *mut core::ffi::c_void,
25649 cparts: u32,
25650 ) -> windows_core::HRESULT {
25651 unsafe {
25652 let this: &Identity =
25653 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
25654 IMimeMessageParts_Impl::SetMaxParts(this, core::mem::transmute_copy(&cparts)).into()
25655 }
25656 }
25657 unsafe extern "system" fn CountParts<
25658 Identity: IMimeMessageParts_Impl,
25659 const OFFSET: isize,
25660 >(
25661 this: *mut core::ffi::c_void,
25662 pcparts: *mut u32,
25663 ) -> windows_core::HRESULT {
25664 unsafe {
25665 let this: &Identity =
25666 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
25667 IMimeMessageParts_Impl::CountParts(this, core::mem::transmute_copy(&pcparts)).into()
25668 }
25669 }
25670 unsafe extern "system" fn EnumParts<
25671 Identity: IMimeMessageParts_Impl,
25672 const OFFSET: isize,
25673 >(
25674 this: *mut core::ffi::c_void,
25675 ppenum: *mut *mut core::ffi::c_void,
25676 ) -> windows_core::HRESULT {
25677 unsafe {
25678 let this: &Identity =
25679 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
25680 match IMimeMessageParts_Impl::EnumParts(this) {
25681 Ok(ok__) => {
25682 ppenum.write(core::mem::transmute(ok__));
25683 windows_core::HRESULT(0)
25684 }
25685 Err(err) => err.into(),
25686 }
25687 }
25688 }
25689 Self {
25690 base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
25691 CombineParts: CombineParts::<Identity, OFFSET>,
25692 AddPart: AddPart::<Identity, OFFSET>,
25693 SetMaxParts: SetMaxParts::<Identity, OFFSET>,
25694 CountParts: CountParts::<Identity, OFFSET>,
25695 EnumParts: EnumParts::<Identity, OFFSET>,
25696 }
25697 }
25698 pub fn matches(iid: &windows_core::GUID) -> bool {
25699 iid == &<IMimeMessageParts as windows_core::Interface>::IID
25700 }
25701}
25702impl windows_core::RuntimeName for IMimeMessageParts {}
25703windows_core::imp::define_interface!(
25704 IMimeMessageTree,
25705 IMimeMessageTree_Vtbl,
25706 0xfd853cd4_7f86_11d0_8252_00c04fd85ab4
25707);
25708impl core::ops::Deref for IMimeMessageTree {
25709 type Target = windows::Win32::System::Com::IPersistStreamInit;
25710 fn deref(&self) -> &Self::Target {
25711 unsafe { core::mem::transmute(self) }
25712 }
25713}
25714windows_core::imp::interface_hierarchy!(
25715 IMimeMessageTree,
25716 windows_core::IUnknown,
25717 windows::Win32::System::Com::IPersist,
25718 windows::Win32::System::Com::IPersistStreamInit
25719);
25720impl IMimeMessageTree {
25721 pub unsafe fn Save<P0>(&self, pstm: P0, fcleardirty: bool) -> windows_core::Result<()>
25722 where
25723 P0: windows_core::Param<windows::Win32::System::Com::IStream>,
25724 {
25725 unsafe {
25726 (windows_core::Interface::vtable(self).Save)(
25727 windows_core::Interface::as_raw(self),
25728 pstm.param().abi(),
25729 fcleardirty.into(),
25730 )
25731 .ok()
25732 }
25733 }
25734 pub unsafe fn GetSizeMax(&self) -> windows_core::Result<u64> {
25735 unsafe {
25736 let mut result__ = core::mem::zeroed();
25737 (windows_core::Interface::vtable(self).GetSizeMax)(
25738 windows_core::Interface::as_raw(self),
25739 &mut result__,
25740 )
25741 .map(|| result__)
25742 }
25743 }
25744 pub unsafe fn InitNew(&self) -> windows_core::Result<()> {
25745 unsafe {
25746 (windows_core::Interface::vtable(self).InitNew)(windows_core::Interface::as_raw(self))
25747 .ok()
25748 }
25749 }
25750 pub unsafe fn GetMessageSource(
25751 &self,
25752 ppstream: *mut Option<windows::Win32::System::Com::IStream>,
25753 dwflags: u32,
25754 ) -> windows_core::Result<()> {
25755 unsafe {
25756 (windows_core::Interface::vtable(self).GetMessageSource)(
25757 windows_core::Interface::as_raw(self),
25758 core::mem::transmute(ppstream),
25759 dwflags,
25760 )
25761 .ok()
25762 }
25763 }
25764 pub unsafe fn GetMessageSize(
25765 &self,
25766 pcbsize: *mut u32,
25767 dwflags: u32,
25768 ) -> windows_core::Result<()> {
25769 unsafe {
25770 (windows_core::Interface::vtable(self).GetMessageSize)(
25771 windows_core::Interface::as_raw(self),
25772 pcbsize as _,
25773 dwflags,
25774 )
25775 .ok()
25776 }
25777 }
25778 pub unsafe fn LoadOffsetTable<P0>(&self, pstream: P0) -> windows_core::Result<()>
25779 where
25780 P0: windows_core::Param<windows::Win32::System::Com::IStream>,
25781 {
25782 unsafe {
25783 (windows_core::Interface::vtable(self).LoadOffsetTable)(
25784 windows_core::Interface::as_raw(self),
25785 pstream.param().abi(),
25786 )
25787 .ok()
25788 }
25789 }
25790 pub unsafe fn SaveOffsetTable<P0>(&self, pstream: P0, dwflags: u32) -> windows_core::Result<()>
25791 where
25792 P0: windows_core::Param<windows::Win32::System::Com::IStream>,
25793 {
25794 unsafe {
25795 (windows_core::Interface::vtable(self).SaveOffsetTable)(
25796 windows_core::Interface::as_raw(self),
25797 pstream.param().abi(),
25798 dwflags,
25799 )
25800 .ok()
25801 }
25802 }
25803 pub unsafe fn GetFlags(&self, pdwflags: *mut u32) -> windows_core::Result<()> {
25804 unsafe {
25805 (windows_core::Interface::vtable(self).GetFlags)(
25806 windows_core::Interface::as_raw(self),
25807 pdwflags as _,
25808 )
25809 .ok()
25810 }
25811 }
25812 pub unsafe fn Commit(&self, dwflags: u32) -> windows_core::Result<()> {
25813 unsafe {
25814 (windows_core::Interface::vtable(self).Commit)(
25815 windows_core::Interface::as_raw(self),
25816 dwflags,
25817 )
25818 .ok()
25819 }
25820 }
25821 pub unsafe fn HandsOffStorage(&self) -> windows_core::Result<()> {
25822 unsafe {
25823 (windows_core::Interface::vtable(self).HandsOffStorage)(
25824 windows_core::Interface::as_raw(self),
25825 )
25826 .ok()
25827 }
25828 }
25829 pub unsafe fn BindToObject(
25830 &self,
25831 hbody: *const HBODY__,
25832 riid: *const windows_core::GUID,
25833 ppvobject: *mut *mut core::ffi::c_void,
25834 ) -> windows_core::Result<()> {
25835 unsafe {
25836 (windows_core::Interface::vtable(self).BindToObject)(
25837 windows_core::Interface::as_raw(self),
25838 hbody,
25839 riid,
25840 ppvobject as _,
25841 )
25842 .ok()
25843 }
25844 }
25845 pub unsafe fn SaveBody<P2>(
25846 &self,
25847 hbody: *mut HBODY__,
25848 dwflags: u32,
25849 pstream: P2,
25850 ) -> windows_core::Result<()>
25851 where
25852 P2: windows_core::Param<windows::Win32::System::Com::IStream>,
25853 {
25854 unsafe {
25855 (windows_core::Interface::vtable(self).SaveBody)(
25856 windows_core::Interface::as_raw(self),
25857 hbody as _,
25858 dwflags,
25859 pstream.param().abi(),
25860 )
25861 .ok()
25862 }
25863 }
25864 pub unsafe fn InsertBody(
25865 &self,
25866 location: BODYLOCATION,
25867 hpivot: *mut HBODY__,
25868 phbody: *mut *mut HBODY__,
25869 ) -> windows_core::Result<()> {
25870 unsafe {
25871 (windows_core::Interface::vtable(self).InsertBody)(
25872 windows_core::Interface::as_raw(self),
25873 location,
25874 hpivot as _,
25875 phbody as _,
25876 )
25877 .ok()
25878 }
25879 }
25880 pub unsafe fn GetBody(
25881 &self,
25882 location: BODYLOCATION,
25883 hpivot: *mut HBODY__,
25884 phbody: *mut *mut HBODY__,
25885 ) -> windows_core::Result<()> {
25886 unsafe {
25887 (windows_core::Interface::vtable(self).GetBody)(
25888 windows_core::Interface::as_raw(self),
25889 location,
25890 hpivot as _,
25891 phbody as _,
25892 )
25893 .ok()
25894 }
25895 }
25896 pub unsafe fn DeleteBody(&self, hbody: *mut HBODY__, dwflags: u32) -> windows_core::Result<()> {
25897 unsafe {
25898 (windows_core::Interface::vtable(self).DeleteBody)(
25899 windows_core::Interface::as_raw(self),
25900 hbody as _,
25901 dwflags,
25902 )
25903 .ok()
25904 }
25905 }
25906 pub unsafe fn MoveBody(
25907 &self,
25908 hbody: *mut HBODY__,
25909 location: BODYLOCATION,
25910 ) -> windows_core::Result<()> {
25911 unsafe {
25912 (windows_core::Interface::vtable(self).MoveBody)(
25913 windows_core::Interface::as_raw(self),
25914 hbody as _,
25915 location,
25916 )
25917 .ok()
25918 }
25919 }
25920 pub unsafe fn CountBodies(
25921 &self,
25922 hparent: *mut HBODY__,
25923 frecurse: u8,
25924 pcbodies: *mut u32,
25925 ) -> windows_core::Result<()> {
25926 unsafe {
25927 (windows_core::Interface::vtable(self).CountBodies)(
25928 windows_core::Interface::as_raw(self),
25929 hparent as _,
25930 frecurse,
25931 pcbodies as _,
25932 )
25933 .ok()
25934 }
25935 }
25936 pub unsafe fn FindFirst(
25937 &self,
25938 pfindbody: *mut FINDBODY,
25939 phbody: *mut *mut HBODY__,
25940 ) -> windows_core::Result<()> {
25941 unsafe {
25942 (windows_core::Interface::vtable(self).FindFirst)(
25943 windows_core::Interface::as_raw(self),
25944 pfindbody as _,
25945 phbody as _,
25946 )
25947 .ok()
25948 }
25949 }
25950 pub unsafe fn FindNext(
25951 &self,
25952 pfindbody: *mut FINDBODY,
25953 phbody: *mut *mut HBODY__,
25954 ) -> windows_core::Result<()> {
25955 unsafe {
25956 (windows_core::Interface::vtable(self).FindNext)(
25957 windows_core::Interface::as_raw(self),
25958 pfindbody as _,
25959 phbody as _,
25960 )
25961 .ok()
25962 }
25963 }
25964 pub unsafe fn ResolveURL<P1, P2>(
25965 &self,
25966 hrelated: *mut HBODY__,
25967 pszbase: P1,
25968 pszurl: P2,
25969 dwflags: u32,
25970 phbody: *mut *mut HBODY__,
25971 ) -> windows_core::Result<()>
25972 where
25973 P1: windows_core::Param<windows_core::PCSTR>,
25974 P2: windows_core::Param<windows_core::PCSTR>,
25975 {
25976 unsafe {
25977 (windows_core::Interface::vtable(self).ResolveURL)(
25978 windows_core::Interface::as_raw(self),
25979 hrelated as _,
25980 pszbase.param().abi(),
25981 pszurl.param().abi(),
25982 dwflags,
25983 phbody as _,
25984 )
25985 .ok()
25986 }
25987 }
25988 pub unsafe fn ToMultipart<P1>(
25989 &self,
25990 hbody: *mut HBODY__,
25991 pszsubtype: P1,
25992 phmultipart: *mut *mut HBODY__,
25993 ) -> windows_core::Result<()>
25994 where
25995 P1: windows_core::Param<windows_core::PCSTR>,
25996 {
25997 unsafe {
25998 (windows_core::Interface::vtable(self).ToMultipart)(
25999 windows_core::Interface::as_raw(self),
26000 hbody as _,
26001 pszsubtype.param().abi(),
26002 phmultipart as _,
26003 )
26004 .ok()
26005 }
26006 }
26007 pub unsafe fn GetBodyOffsets(
26008 &self,
26009 hbody: *mut HBODY__,
26010 poffsets: *mut BODYOFFSETS,
26011 ) -> windows_core::Result<()> {
26012 unsafe {
26013 (windows_core::Interface::vtable(self).GetBodyOffsets)(
26014 windows_core::Interface::as_raw(self),
26015 hbody as _,
26016 poffsets as _,
26017 )
26018 .ok()
26019 }
26020 }
26021 pub unsafe fn GetCharset(&self, phcharset: *mut *mut HCHARSET__) -> windows_core::Result<()> {
26022 unsafe {
26023 (windows_core::Interface::vtable(self).GetCharset)(
26024 windows_core::Interface::as_raw(self),
26025 phcharset as _,
26026 )
26027 .ok()
26028 }
26029 }
26030 pub unsafe fn SetCharset(
26031 &self,
26032 hcharset: *mut HCHARSET__,
26033 applytype: CSETAPPLYTYPE,
26034 ) -> windows_core::Result<()> {
26035 unsafe {
26036 (windows_core::Interface::vtable(self).SetCharset)(
26037 windows_core::Interface::as_raw(self),
26038 hcharset as _,
26039 applytype,
26040 )
26041 .ok()
26042 }
26043 }
26044 pub unsafe fn IsBodyType(
26045 &self,
26046 hbody: *mut HBODY__,
26047 bodytype: IMSGBODYTYPE,
26048 ) -> windows_core::Result<()> {
26049 unsafe {
26050 (windows_core::Interface::vtable(self).IsBodyType)(
26051 windows_core::Interface::as_raw(self),
26052 hbody as _,
26053 bodytype,
26054 )
26055 .ok()
26056 }
26057 }
26058 pub unsafe fn IsContentType<P1, P2>(
26059 &self,
26060 hbody: *mut HBODY__,
26061 pszpritype: P1,
26062 pszsubtype: P2,
26063 ) -> windows_core::Result<()>
26064 where
26065 P1: windows_core::Param<windows_core::PCSTR>,
26066 P2: windows_core::Param<windows_core::PCSTR>,
26067 {
26068 unsafe {
26069 (windows_core::Interface::vtable(self).IsContentType)(
26070 windows_core::Interface::as_raw(self),
26071 hbody as _,
26072 pszpritype.param().abi(),
26073 pszsubtype.param().abi(),
26074 )
26075 .ok()
26076 }
26077 }
26078 pub unsafe fn QueryBodyProp<P1, P2>(
26079 &self,
26080 hbody: *mut HBODY__,
26081 pszname: P1,
26082 pszcriteria: P2,
26083 fsubstring: u8,
26084 fcasesensitive: u8,
26085 ) -> windows_core::Result<()>
26086 where
26087 P1: windows_core::Param<windows_core::PCSTR>,
26088 P2: windows_core::Param<windows_core::PCSTR>,
26089 {
26090 unsafe {
26091 (windows_core::Interface::vtable(self).QueryBodyProp)(
26092 windows_core::Interface::as_raw(self),
26093 hbody as _,
26094 pszname.param().abi(),
26095 pszcriteria.param().abi(),
26096 fsubstring,
26097 fcasesensitive,
26098 )
26099 .ok()
26100 }
26101 }
26102 pub unsafe fn GetBodyProp<P1>(
26103 &self,
26104 hbody: *mut HBODY__,
26105 pszname: P1,
26106 dwflags: u32,
26107 pvalue: *mut windows::Win32::System::Com::StructuredStorage::PROPVARIANT,
26108 ) -> windows_core::Result<()>
26109 where
26110 P1: windows_core::Param<windows_core::PCSTR>,
26111 {
26112 unsafe {
26113 (windows_core::Interface::vtable(self).GetBodyProp)(
26114 windows_core::Interface::as_raw(self),
26115 hbody as _,
26116 pszname.param().abi(),
26117 dwflags,
26118 core::mem::transmute(pvalue),
26119 )
26120 .ok()
26121 }
26122 }
26123 pub unsafe fn SetBodyProp<P1>(
26124 &self,
26125 hbody: *mut HBODY__,
26126 pszname: P1,
26127 dwflags: u32,
26128 pvalue: *mut windows::Win32::System::Com::StructuredStorage::PROPVARIANT,
26129 ) -> windows_core::Result<()>
26130 where
26131 P1: windows_core::Param<windows_core::PCSTR>,
26132 {
26133 unsafe {
26134 (windows_core::Interface::vtable(self).SetBodyProp)(
26135 windows_core::Interface::as_raw(self),
26136 hbody as _,
26137 pszname.param().abi(),
26138 dwflags,
26139 core::mem::transmute(pvalue),
26140 )
26141 .ok()
26142 }
26143 }
26144 pub unsafe fn DeleteBodyProp<P1>(
26145 &self,
26146 hbody: *mut HBODY__,
26147 pszname: P1,
26148 ) -> windows_core::Result<()>
26149 where
26150 P1: windows_core::Param<windows_core::PCSTR>,
26151 {
26152 unsafe {
26153 (windows_core::Interface::vtable(self).DeleteBodyProp)(
26154 windows_core::Interface::as_raw(self),
26155 hbody as _,
26156 pszname.param().abi(),
26157 )
26158 .ok()
26159 }
26160 }
26161 pub unsafe fn SetOption(
26162 &self,
26163 oid: u32,
26164 pvalue: *mut windows::Win32::System::Com::StructuredStorage::PROPVARIANT,
26165 ) -> windows_core::Result<()> {
26166 unsafe {
26167 (windows_core::Interface::vtable(self).SetOption)(
26168 windows_core::Interface::as_raw(self),
26169 oid,
26170 core::mem::transmute(pvalue),
26171 )
26172 .ok()
26173 }
26174 }
26175 pub unsafe fn GetOption(
26176 &self,
26177 oid: u32,
26178 pvalue: *mut windows::Win32::System::Com::StructuredStorage::PROPVARIANT,
26179 ) -> windows_core::Result<()> {
26180 unsafe {
26181 (windows_core::Interface::vtable(self).GetOption)(
26182 windows_core::Interface::as_raw(self),
26183 oid,
26184 core::mem::transmute(pvalue),
26185 )
26186 .ok()
26187 }
26188 }
26189}
26190#[repr(C)]
26191#[doc(hidden)]
26192pub struct IMimeMessageTree_Vtbl {
26193 pub base__: windows::Win32::System::Com::IPersistStreamInit_Vtbl,
26194 pub Save: unsafe extern "system" fn(
26195 *mut core::ffi::c_void,
26196 *mut core::ffi::c_void,
26197 windows_core::BOOL,
26198 ) -> windows_core::HRESULT,
26199 pub GetSizeMax:
26200 unsafe extern "system" fn(*mut core::ffi::c_void, *mut u64) -> windows_core::HRESULT,
26201 pub InitNew: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
26202 pub GetMessageSource: unsafe extern "system" fn(
26203 *mut core::ffi::c_void,
26204 *mut *mut core::ffi::c_void,
26205 u32,
26206 ) -> windows_core::HRESULT,
26207 pub GetMessageSize:
26208 unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32, u32) -> windows_core::HRESULT,
26209 pub LoadOffsetTable: unsafe extern "system" fn(
26210 *mut core::ffi::c_void,
26211 *mut core::ffi::c_void,
26212 ) -> windows_core::HRESULT,
26213 pub SaveOffsetTable: unsafe extern "system" fn(
26214 *mut core::ffi::c_void,
26215 *mut core::ffi::c_void,
26216 u32,
26217 ) -> windows_core::HRESULT,
26218 pub GetFlags:
26219 unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
26220 pub Commit: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
26221 pub HandsOffStorage: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
26222 pub BindToObject: unsafe extern "system" fn(
26223 *mut core::ffi::c_void,
26224 *const HBODY__,
26225 *const windows_core::GUID,
26226 *mut *mut core::ffi::c_void,
26227 ) -> windows_core::HRESULT,
26228 pub SaveBody: unsafe extern "system" fn(
26229 *mut core::ffi::c_void,
26230 *mut HBODY__,
26231 u32,
26232 *mut core::ffi::c_void,
26233 ) -> windows_core::HRESULT,
26234 pub InsertBody: unsafe extern "system" fn(
26235 *mut core::ffi::c_void,
26236 BODYLOCATION,
26237 *mut HBODY__,
26238 *mut *mut HBODY__,
26239 ) -> windows_core::HRESULT,
26240 pub GetBody: unsafe extern "system" fn(
26241 *mut core::ffi::c_void,
26242 BODYLOCATION,
26243 *mut HBODY__,
26244 *mut *mut HBODY__,
26245 ) -> windows_core::HRESULT,
26246 pub DeleteBody: unsafe extern "system" fn(
26247 *mut core::ffi::c_void,
26248 *mut HBODY__,
26249 u32,
26250 ) -> windows_core::HRESULT,
26251 pub MoveBody: unsafe extern "system" fn(
26252 *mut core::ffi::c_void,
26253 *mut HBODY__,
26254 BODYLOCATION,
26255 ) -> windows_core::HRESULT,
26256 pub CountBodies: unsafe extern "system" fn(
26257 *mut core::ffi::c_void,
26258 *mut HBODY__,
26259 u8,
26260 *mut u32,
26261 ) -> windows_core::HRESULT,
26262 pub FindFirst: unsafe extern "system" fn(
26263 *mut core::ffi::c_void,
26264 *mut FINDBODY,
26265 *mut *mut HBODY__,
26266 ) -> windows_core::HRESULT,
26267 pub FindNext: unsafe extern "system" fn(
26268 *mut core::ffi::c_void,
26269 *mut FINDBODY,
26270 *mut *mut HBODY__,
26271 ) -> windows_core::HRESULT,
26272 pub ResolveURL: unsafe extern "system" fn(
26273 *mut core::ffi::c_void,
26274 *mut HBODY__,
26275 windows_core::PCSTR,
26276 windows_core::PCSTR,
26277 u32,
26278 *mut *mut HBODY__,
26279 ) -> windows_core::HRESULT,
26280 pub ToMultipart: unsafe extern "system" fn(
26281 *mut core::ffi::c_void,
26282 *mut HBODY__,
26283 windows_core::PCSTR,
26284 *mut *mut HBODY__,
26285 ) -> windows_core::HRESULT,
26286 pub GetBodyOffsets: unsafe extern "system" fn(
26287 *mut core::ffi::c_void,
26288 *mut HBODY__,
26289 *mut BODYOFFSETS,
26290 ) -> windows_core::HRESULT,
26291 pub GetCharset: unsafe extern "system" fn(
26292 *mut core::ffi::c_void,
26293 *mut *mut HCHARSET__,
26294 ) -> windows_core::HRESULT,
26295 pub SetCharset: unsafe extern "system" fn(
26296 *mut core::ffi::c_void,
26297 *mut HCHARSET__,
26298 CSETAPPLYTYPE,
26299 ) -> windows_core::HRESULT,
26300 pub IsBodyType: unsafe extern "system" fn(
26301 *mut core::ffi::c_void,
26302 *mut HBODY__,
26303 IMSGBODYTYPE,
26304 ) -> windows_core::HRESULT,
26305 pub IsContentType: unsafe extern "system" fn(
26306 *mut core::ffi::c_void,
26307 *mut HBODY__,
26308 windows_core::PCSTR,
26309 windows_core::PCSTR,
26310 ) -> windows_core::HRESULT,
26311 pub QueryBodyProp: unsafe extern "system" fn(
26312 *mut core::ffi::c_void,
26313 *mut HBODY__,
26314 windows_core::PCSTR,
26315 windows_core::PCSTR,
26316 u8,
26317 u8,
26318 ) -> windows_core::HRESULT,
26319 pub GetBodyProp: unsafe extern "system" fn(
26320 *mut core::ffi::c_void,
26321 *mut HBODY__,
26322 windows_core::PCSTR,
26323 u32,
26324 *mut windows::Win32::System::Com::StructuredStorage::PROPVARIANT,
26325 ) -> windows_core::HRESULT,
26326 pub SetBodyProp: unsafe extern "system" fn(
26327 *mut core::ffi::c_void,
26328 *mut HBODY__,
26329 windows_core::PCSTR,
26330 u32,
26331 *mut windows::Win32::System::Com::StructuredStorage::PROPVARIANT,
26332 ) -> windows_core::HRESULT,
26333 pub DeleteBodyProp: unsafe extern "system" fn(
26334 *mut core::ffi::c_void,
26335 *mut HBODY__,
26336 windows_core::PCSTR,
26337 ) -> windows_core::HRESULT,
26338 pub SetOption: unsafe extern "system" fn(
26339 *mut core::ffi::c_void,
26340 u32,
26341 *mut windows::Win32::System::Com::StructuredStorage::PROPVARIANT,
26342 ) -> windows_core::HRESULT,
26343 pub GetOption: unsafe extern "system" fn(
26344 *mut core::ffi::c_void,
26345 u32,
26346 *mut windows::Win32::System::Com::StructuredStorage::PROPVARIANT,
26347 ) -> windows_core::HRESULT,
26348}
26349pub trait IMimeMessageTree_Impl: windows::Win32::System::Com::IPersistStreamInit_Impl {
26350 fn Save(
26351 &self,
26352 pstm: windows_core::Ref<windows::Win32::System::Com::IStream>,
26353 fcleardirty: windows_core::BOOL,
26354 ) -> windows_core::Result<()>;
26355 fn GetSizeMax(&self) -> windows_core::Result<u64>;
26356 fn InitNew(&self) -> windows_core::Result<()>;
26357 fn GetMessageSource(
26358 &self,
26359 ppstream: windows_core::OutRef<windows::Win32::System::Com::IStream>,
26360 dwflags: u32,
26361 ) -> windows_core::Result<()>;
26362 fn GetMessageSize(&self, pcbsize: *mut u32, dwflags: u32) -> windows_core::Result<()>;
26363 fn LoadOffsetTable(
26364 &self,
26365 pstream: windows_core::Ref<windows::Win32::System::Com::IStream>,
26366 ) -> windows_core::Result<()>;
26367 fn SaveOffsetTable(
26368 &self,
26369 pstream: windows_core::Ref<windows::Win32::System::Com::IStream>,
26370 dwflags: u32,
26371 ) -> windows_core::Result<()>;
26372 fn GetFlags(&self, pdwflags: *mut u32) -> windows_core::Result<()>;
26373 fn Commit(&self, dwflags: u32) -> windows_core::Result<()>;
26374 fn HandsOffStorage(&self) -> windows_core::Result<()>;
26375 fn BindToObject(
26376 &self,
26377 hbody: *const HBODY__,
26378 riid: *const windows_core::GUID,
26379 ppvobject: *mut *mut core::ffi::c_void,
26380 ) -> windows_core::Result<()>;
26381 fn SaveBody(
26382 &self,
26383 hbody: *mut HBODY__,
26384 dwflags: u32,
26385 pstream: windows_core::Ref<windows::Win32::System::Com::IStream>,
26386 ) -> windows_core::Result<()>;
26387 fn InsertBody(
26388 &self,
26389 location: BODYLOCATION,
26390 hpivot: *mut HBODY__,
26391 phbody: *mut *mut HBODY__,
26392 ) -> windows_core::Result<()>;
26393 fn GetBody(
26394 &self,
26395 location: BODYLOCATION,
26396 hpivot: *mut HBODY__,
26397 phbody: *mut *mut HBODY__,
26398 ) -> windows_core::Result<()>;
26399 fn DeleteBody(&self, hbody: *mut HBODY__, dwflags: u32) -> windows_core::Result<()>;
26400 fn MoveBody(&self, hbody: *mut HBODY__, location: BODYLOCATION) -> windows_core::Result<()>;
26401 fn CountBodies(
26402 &self,
26403 hparent: *mut HBODY__,
26404 frecurse: u8,
26405 pcbodies: *mut u32,
26406 ) -> windows_core::Result<()>;
26407 fn FindFirst(
26408 &self,
26409 pfindbody: *mut FINDBODY,
26410 phbody: *mut *mut HBODY__,
26411 ) -> windows_core::Result<()>;
26412 fn FindNext(
26413 &self,
26414 pfindbody: *mut FINDBODY,
26415 phbody: *mut *mut HBODY__,
26416 ) -> windows_core::Result<()>;
26417 fn ResolveURL(
26418 &self,
26419 hrelated: *mut HBODY__,
26420 pszbase: &windows_core::PCSTR,
26421 pszurl: &windows_core::PCSTR,
26422 dwflags: u32,
26423 phbody: *mut *mut HBODY__,
26424 ) -> windows_core::Result<()>;
26425 fn ToMultipart(
26426 &self,
26427 hbody: *mut HBODY__,
26428 pszsubtype: &windows_core::PCSTR,
26429 phmultipart: *mut *mut HBODY__,
26430 ) -> windows_core::Result<()>;
26431 fn GetBodyOffsets(
26432 &self,
26433 hbody: *mut HBODY__,
26434 poffsets: *mut BODYOFFSETS,
26435 ) -> windows_core::Result<()>;
26436 fn GetCharset(&self, phcharset: *mut *mut HCHARSET__) -> windows_core::Result<()>;
26437 fn SetCharset(
26438 &self,
26439 hcharset: *mut HCHARSET__,
26440 applytype: CSETAPPLYTYPE,
26441 ) -> windows_core::Result<()>;
26442 fn IsBodyType(&self, hbody: *mut HBODY__, bodytype: IMSGBODYTYPE) -> windows_core::Result<()>;
26443 fn IsContentType(
26444 &self,
26445 hbody: *mut HBODY__,
26446 pszpritype: &windows_core::PCSTR,
26447 pszsubtype: &windows_core::PCSTR,
26448 ) -> windows_core::Result<()>;
26449 fn QueryBodyProp(
26450 &self,
26451 hbody: *mut HBODY__,
26452 pszname: &windows_core::PCSTR,
26453 pszcriteria: &windows_core::PCSTR,
26454 fsubstring: u8,
26455 fcasesensitive: u8,
26456 ) -> windows_core::Result<()>;
26457 fn GetBodyProp(
26458 &self,
26459 hbody: *mut HBODY__,
26460 pszname: &windows_core::PCSTR,
26461 dwflags: u32,
26462 pvalue: *mut windows::Win32::System::Com::StructuredStorage::PROPVARIANT,
26463 ) -> windows_core::Result<()>;
26464 fn SetBodyProp(
26465 &self,
26466 hbody: *mut HBODY__,
26467 pszname: &windows_core::PCSTR,
26468 dwflags: u32,
26469 pvalue: *mut windows::Win32::System::Com::StructuredStorage::PROPVARIANT,
26470 ) -> windows_core::Result<()>;
26471 fn DeleteBodyProp(
26472 &self,
26473 hbody: *mut HBODY__,
26474 pszname: &windows_core::PCSTR,
26475 ) -> windows_core::Result<()>;
26476 fn SetOption(
26477 &self,
26478 oid: u32,
26479 pvalue: *mut windows::Win32::System::Com::StructuredStorage::PROPVARIANT,
26480 ) -> windows_core::Result<()>;
26481 fn GetOption(
26482 &self,
26483 oid: u32,
26484 pvalue: *mut windows::Win32::System::Com::StructuredStorage::PROPVARIANT,
26485 ) -> windows_core::Result<()>;
26486}
26487impl IMimeMessageTree_Vtbl {
26488 pub const fn new<Identity: IMimeMessageTree_Impl, const OFFSET: isize>() -> Self {
26489 unsafe extern "system" fn Save<Identity: IMimeMessageTree_Impl, const OFFSET: isize>(
26490 this: *mut core::ffi::c_void,
26491 pstm: *mut core::ffi::c_void,
26492 fcleardirty: windows_core::BOOL,
26493 ) -> windows_core::HRESULT {
26494 unsafe {
26495 let this: &Identity =
26496 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
26497 IMimeMessageTree_Impl::Save(
26498 this,
26499 core::mem::transmute_copy(&pstm),
26500 core::mem::transmute_copy(&fcleardirty),
26501 )
26502 .into()
26503 }
26504 }
26505 unsafe extern "system" fn GetSizeMax<
26506 Identity: IMimeMessageTree_Impl,
26507 const OFFSET: isize,
26508 >(
26509 this: *mut core::ffi::c_void,
26510 pcbsize: *mut u64,
26511 ) -> windows_core::HRESULT {
26512 unsafe {
26513 let this: &Identity =
26514 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
26515 match IMimeMessageTree_Impl::GetSizeMax(this) {
26516 Ok(ok__) => {
26517 pcbsize.write(core::mem::transmute(ok__));
26518 windows_core::HRESULT(0)
26519 }
26520 Err(err) => err.into(),
26521 }
26522 }
26523 }
26524 unsafe extern "system" fn InitNew<Identity: IMimeMessageTree_Impl, const OFFSET: isize>(
26525 this: *mut core::ffi::c_void,
26526 ) -> windows_core::HRESULT {
26527 unsafe {
26528 let this: &Identity =
26529 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
26530 IMimeMessageTree_Impl::InitNew(this).into()
26531 }
26532 }
26533 unsafe extern "system" fn GetMessageSource<
26534 Identity: IMimeMessageTree_Impl,
26535 const OFFSET: isize,
26536 >(
26537 this: *mut core::ffi::c_void,
26538 ppstream: *mut *mut core::ffi::c_void,
26539 dwflags: u32,
26540 ) -> windows_core::HRESULT {
26541 unsafe {
26542 let this: &Identity =
26543 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
26544 IMimeMessageTree_Impl::GetMessageSource(
26545 this,
26546 core::mem::transmute_copy(&ppstream),
26547 core::mem::transmute_copy(&dwflags),
26548 )
26549 .into()
26550 }
26551 }
26552 unsafe extern "system" fn GetMessageSize<
26553 Identity: IMimeMessageTree_Impl,
26554 const OFFSET: isize,
26555 >(
26556 this: *mut core::ffi::c_void,
26557 pcbsize: *mut u32,
26558 dwflags: u32,
26559 ) -> windows_core::HRESULT {
26560 unsafe {
26561 let this: &Identity =
26562 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
26563 IMimeMessageTree_Impl::GetMessageSize(
26564 this,
26565 core::mem::transmute_copy(&pcbsize),
26566 core::mem::transmute_copy(&dwflags),
26567 )
26568 .into()
26569 }
26570 }
26571 unsafe extern "system" fn LoadOffsetTable<
26572 Identity: IMimeMessageTree_Impl,
26573 const OFFSET: isize,
26574 >(
26575 this: *mut core::ffi::c_void,
26576 pstream: *mut core::ffi::c_void,
26577 ) -> windows_core::HRESULT {
26578 unsafe {
26579 let this: &Identity =
26580 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
26581 IMimeMessageTree_Impl::LoadOffsetTable(this, core::mem::transmute_copy(&pstream))
26582 .into()
26583 }
26584 }
26585 unsafe extern "system" fn SaveOffsetTable<
26586 Identity: IMimeMessageTree_Impl,
26587 const OFFSET: isize,
26588 >(
26589 this: *mut core::ffi::c_void,
26590 pstream: *mut core::ffi::c_void,
26591 dwflags: u32,
26592 ) -> windows_core::HRESULT {
26593 unsafe {
26594 let this: &Identity =
26595 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
26596 IMimeMessageTree_Impl::SaveOffsetTable(
26597 this,
26598 core::mem::transmute_copy(&pstream),
26599 core::mem::transmute_copy(&dwflags),
26600 )
26601 .into()
26602 }
26603 }
26604 unsafe extern "system" fn GetFlags<Identity: IMimeMessageTree_Impl, const OFFSET: isize>(
26605 this: *mut core::ffi::c_void,
26606 pdwflags: *mut u32,
26607 ) -> windows_core::HRESULT {
26608 unsafe {
26609 let this: &Identity =
26610 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
26611 IMimeMessageTree_Impl::GetFlags(this, core::mem::transmute_copy(&pdwflags)).into()
26612 }
26613 }
26614 unsafe extern "system" fn Commit<Identity: IMimeMessageTree_Impl, const OFFSET: isize>(
26615 this: *mut core::ffi::c_void,
26616 dwflags: u32,
26617 ) -> windows_core::HRESULT {
26618 unsafe {
26619 let this: &Identity =
26620 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
26621 IMimeMessageTree_Impl::Commit(this, core::mem::transmute_copy(&dwflags)).into()
26622 }
26623 }
26624 unsafe extern "system" fn HandsOffStorage<
26625 Identity: IMimeMessageTree_Impl,
26626 const OFFSET: isize,
26627 >(
26628 this: *mut core::ffi::c_void,
26629 ) -> windows_core::HRESULT {
26630 unsafe {
26631 let this: &Identity =
26632 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
26633 IMimeMessageTree_Impl::HandsOffStorage(this).into()
26634 }
26635 }
26636 unsafe extern "system" fn BindToObject<
26637 Identity: IMimeMessageTree_Impl,
26638 const OFFSET: isize,
26639 >(
26640 this: *mut core::ffi::c_void,
26641 hbody: *const HBODY__,
26642 riid: *const windows_core::GUID,
26643 ppvobject: *mut *mut core::ffi::c_void,
26644 ) -> windows_core::HRESULT {
26645 unsafe {
26646 let this: &Identity =
26647 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
26648 IMimeMessageTree_Impl::BindToObject(
26649 this,
26650 core::mem::transmute_copy(&hbody),
26651 core::mem::transmute_copy(&riid),
26652 core::mem::transmute_copy(&ppvobject),
26653 )
26654 .into()
26655 }
26656 }
26657 unsafe extern "system" fn SaveBody<Identity: IMimeMessageTree_Impl, const OFFSET: isize>(
26658 this: *mut core::ffi::c_void,
26659 hbody: *mut HBODY__,
26660 dwflags: u32,
26661 pstream: *mut core::ffi::c_void,
26662 ) -> windows_core::HRESULT {
26663 unsafe {
26664 let this: &Identity =
26665 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
26666 IMimeMessageTree_Impl::SaveBody(
26667 this,
26668 core::mem::transmute_copy(&hbody),
26669 core::mem::transmute_copy(&dwflags),
26670 core::mem::transmute_copy(&pstream),
26671 )
26672 .into()
26673 }
26674 }
26675 unsafe extern "system" fn InsertBody<
26676 Identity: IMimeMessageTree_Impl,
26677 const OFFSET: isize,
26678 >(
26679 this: *mut core::ffi::c_void,
26680 location: BODYLOCATION,
26681 hpivot: *mut HBODY__,
26682 phbody: *mut *mut HBODY__,
26683 ) -> windows_core::HRESULT {
26684 unsafe {
26685 let this: &Identity =
26686 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
26687 IMimeMessageTree_Impl::InsertBody(
26688 this,
26689 core::mem::transmute_copy(&location),
26690 core::mem::transmute_copy(&hpivot),
26691 core::mem::transmute_copy(&phbody),
26692 )
26693 .into()
26694 }
26695 }
26696 unsafe extern "system" fn GetBody<Identity: IMimeMessageTree_Impl, const OFFSET: isize>(
26697 this: *mut core::ffi::c_void,
26698 location: BODYLOCATION,
26699 hpivot: *mut HBODY__,
26700 phbody: *mut *mut HBODY__,
26701 ) -> windows_core::HRESULT {
26702 unsafe {
26703 let this: &Identity =
26704 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
26705 IMimeMessageTree_Impl::GetBody(
26706 this,
26707 core::mem::transmute_copy(&location),
26708 core::mem::transmute_copy(&hpivot),
26709 core::mem::transmute_copy(&phbody),
26710 )
26711 .into()
26712 }
26713 }
26714 unsafe extern "system" fn DeleteBody<
26715 Identity: IMimeMessageTree_Impl,
26716 const OFFSET: isize,
26717 >(
26718 this: *mut core::ffi::c_void,
26719 hbody: *mut HBODY__,
26720 dwflags: u32,
26721 ) -> windows_core::HRESULT {
26722 unsafe {
26723 let this: &Identity =
26724 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
26725 IMimeMessageTree_Impl::DeleteBody(
26726 this,
26727 core::mem::transmute_copy(&hbody),
26728 core::mem::transmute_copy(&dwflags),
26729 )
26730 .into()
26731 }
26732 }
26733 unsafe extern "system" fn MoveBody<Identity: IMimeMessageTree_Impl, const OFFSET: isize>(
26734 this: *mut core::ffi::c_void,
26735 hbody: *mut HBODY__,
26736 location: BODYLOCATION,
26737 ) -> windows_core::HRESULT {
26738 unsafe {
26739 let this: &Identity =
26740 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
26741 IMimeMessageTree_Impl::MoveBody(
26742 this,
26743 core::mem::transmute_copy(&hbody),
26744 core::mem::transmute_copy(&location),
26745 )
26746 .into()
26747 }
26748 }
26749 unsafe extern "system" fn CountBodies<
26750 Identity: IMimeMessageTree_Impl,
26751 const OFFSET: isize,
26752 >(
26753 this: *mut core::ffi::c_void,
26754 hparent: *mut HBODY__,
26755 frecurse: u8,
26756 pcbodies: *mut u32,
26757 ) -> windows_core::HRESULT {
26758 unsafe {
26759 let this: &Identity =
26760 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
26761 IMimeMessageTree_Impl::CountBodies(
26762 this,
26763 core::mem::transmute_copy(&hparent),
26764 core::mem::transmute_copy(&frecurse),
26765 core::mem::transmute_copy(&pcbodies),
26766 )
26767 .into()
26768 }
26769 }
26770 unsafe extern "system" fn FindFirst<
26771 Identity: IMimeMessageTree_Impl,
26772 const OFFSET: isize,
26773 >(
26774 this: *mut core::ffi::c_void,
26775 pfindbody: *mut FINDBODY,
26776 phbody: *mut *mut HBODY__,
26777 ) -> windows_core::HRESULT {
26778 unsafe {
26779 let this: &Identity =
26780 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
26781 IMimeMessageTree_Impl::FindFirst(
26782 this,
26783 core::mem::transmute_copy(&pfindbody),
26784 core::mem::transmute_copy(&phbody),
26785 )
26786 .into()
26787 }
26788 }
26789 unsafe extern "system" fn FindNext<Identity: IMimeMessageTree_Impl, const OFFSET: isize>(
26790 this: *mut core::ffi::c_void,
26791 pfindbody: *mut FINDBODY,
26792 phbody: *mut *mut HBODY__,
26793 ) -> windows_core::HRESULT {
26794 unsafe {
26795 let this: &Identity =
26796 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
26797 IMimeMessageTree_Impl::FindNext(
26798 this,
26799 core::mem::transmute_copy(&pfindbody),
26800 core::mem::transmute_copy(&phbody),
26801 )
26802 .into()
26803 }
26804 }
26805 unsafe extern "system" fn ResolveURL<
26806 Identity: IMimeMessageTree_Impl,
26807 const OFFSET: isize,
26808 >(
26809 this: *mut core::ffi::c_void,
26810 hrelated: *mut HBODY__,
26811 pszbase: windows_core::PCSTR,
26812 pszurl: windows_core::PCSTR,
26813 dwflags: u32,
26814 phbody: *mut *mut HBODY__,
26815 ) -> windows_core::HRESULT {
26816 unsafe {
26817 let this: &Identity =
26818 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
26819 IMimeMessageTree_Impl::ResolveURL(
26820 this,
26821 core::mem::transmute_copy(&hrelated),
26822 core::mem::transmute(&pszbase),
26823 core::mem::transmute(&pszurl),
26824 core::mem::transmute_copy(&dwflags),
26825 core::mem::transmute_copy(&phbody),
26826 )
26827 .into()
26828 }
26829 }
26830 unsafe extern "system" fn ToMultipart<
26831 Identity: IMimeMessageTree_Impl,
26832 const OFFSET: isize,
26833 >(
26834 this: *mut core::ffi::c_void,
26835 hbody: *mut HBODY__,
26836 pszsubtype: windows_core::PCSTR,
26837 phmultipart: *mut *mut HBODY__,
26838 ) -> windows_core::HRESULT {
26839 unsafe {
26840 let this: &Identity =
26841 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
26842 IMimeMessageTree_Impl::ToMultipart(
26843 this,
26844 core::mem::transmute_copy(&hbody),
26845 core::mem::transmute(&pszsubtype),
26846 core::mem::transmute_copy(&phmultipart),
26847 )
26848 .into()
26849 }
26850 }
26851 unsafe extern "system" fn GetBodyOffsets<
26852 Identity: IMimeMessageTree_Impl,
26853 const OFFSET: isize,
26854 >(
26855 this: *mut core::ffi::c_void,
26856 hbody: *mut HBODY__,
26857 poffsets: *mut BODYOFFSETS,
26858 ) -> windows_core::HRESULT {
26859 unsafe {
26860 let this: &Identity =
26861 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
26862 IMimeMessageTree_Impl::GetBodyOffsets(
26863 this,
26864 core::mem::transmute_copy(&hbody),
26865 core::mem::transmute_copy(&poffsets),
26866 )
26867 .into()
26868 }
26869 }
26870 unsafe extern "system" fn GetCharset<
26871 Identity: IMimeMessageTree_Impl,
26872 const OFFSET: isize,
26873 >(
26874 this: *mut core::ffi::c_void,
26875 phcharset: *mut *mut HCHARSET__,
26876 ) -> windows_core::HRESULT {
26877 unsafe {
26878 let this: &Identity =
26879 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
26880 IMimeMessageTree_Impl::GetCharset(this, core::mem::transmute_copy(&phcharset))
26881 .into()
26882 }
26883 }
26884 unsafe extern "system" fn SetCharset<
26885 Identity: IMimeMessageTree_Impl,
26886 const OFFSET: isize,
26887 >(
26888 this: *mut core::ffi::c_void,
26889 hcharset: *mut HCHARSET__,
26890 applytype: CSETAPPLYTYPE,
26891 ) -> windows_core::HRESULT {
26892 unsafe {
26893 let this: &Identity =
26894 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
26895 IMimeMessageTree_Impl::SetCharset(
26896 this,
26897 core::mem::transmute_copy(&hcharset),
26898 core::mem::transmute_copy(&applytype),
26899 )
26900 .into()
26901 }
26902 }
26903 unsafe extern "system" fn IsBodyType<
26904 Identity: IMimeMessageTree_Impl,
26905 const OFFSET: isize,
26906 >(
26907 this: *mut core::ffi::c_void,
26908 hbody: *mut HBODY__,
26909 bodytype: IMSGBODYTYPE,
26910 ) -> windows_core::HRESULT {
26911 unsafe {
26912 let this: &Identity =
26913 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
26914 IMimeMessageTree_Impl::IsBodyType(
26915 this,
26916 core::mem::transmute_copy(&hbody),
26917 core::mem::transmute_copy(&bodytype),
26918 )
26919 .into()
26920 }
26921 }
26922 unsafe extern "system" fn IsContentType<
26923 Identity: IMimeMessageTree_Impl,
26924 const OFFSET: isize,
26925 >(
26926 this: *mut core::ffi::c_void,
26927 hbody: *mut HBODY__,
26928 pszpritype: windows_core::PCSTR,
26929 pszsubtype: windows_core::PCSTR,
26930 ) -> windows_core::HRESULT {
26931 unsafe {
26932 let this: &Identity =
26933 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
26934 IMimeMessageTree_Impl::IsContentType(
26935 this,
26936 core::mem::transmute_copy(&hbody),
26937 core::mem::transmute(&pszpritype),
26938 core::mem::transmute(&pszsubtype),
26939 )
26940 .into()
26941 }
26942 }
26943 unsafe extern "system" fn QueryBodyProp<
26944 Identity: IMimeMessageTree_Impl,
26945 const OFFSET: isize,
26946 >(
26947 this: *mut core::ffi::c_void,
26948 hbody: *mut HBODY__,
26949 pszname: windows_core::PCSTR,
26950 pszcriteria: windows_core::PCSTR,
26951 fsubstring: u8,
26952 fcasesensitive: u8,
26953 ) -> windows_core::HRESULT {
26954 unsafe {
26955 let this: &Identity =
26956 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
26957 IMimeMessageTree_Impl::QueryBodyProp(
26958 this,
26959 core::mem::transmute_copy(&hbody),
26960 core::mem::transmute(&pszname),
26961 core::mem::transmute(&pszcriteria),
26962 core::mem::transmute_copy(&fsubstring),
26963 core::mem::transmute_copy(&fcasesensitive),
26964 )
26965 .into()
26966 }
26967 }
26968 unsafe extern "system" fn GetBodyProp<
26969 Identity: IMimeMessageTree_Impl,
26970 const OFFSET: isize,
26971 >(
26972 this: *mut core::ffi::c_void,
26973 hbody: *mut HBODY__,
26974 pszname: windows_core::PCSTR,
26975 dwflags: u32,
26976 pvalue: *mut windows::Win32::System::Com::StructuredStorage::PROPVARIANT,
26977 ) -> windows_core::HRESULT {
26978 unsafe {
26979 let this: &Identity =
26980 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
26981 IMimeMessageTree_Impl::GetBodyProp(
26982 this,
26983 core::mem::transmute_copy(&hbody),
26984 core::mem::transmute(&pszname),
26985 core::mem::transmute_copy(&dwflags),
26986 core::mem::transmute_copy(&pvalue),
26987 )
26988 .into()
26989 }
26990 }
26991 unsafe extern "system" fn SetBodyProp<
26992 Identity: IMimeMessageTree_Impl,
26993 const OFFSET: isize,
26994 >(
26995 this: *mut core::ffi::c_void,
26996 hbody: *mut HBODY__,
26997 pszname: windows_core::PCSTR,
26998 dwflags: u32,
26999 pvalue: *mut windows::Win32::System::Com::StructuredStorage::PROPVARIANT,
27000 ) -> windows_core::HRESULT {
27001 unsafe {
27002 let this: &Identity =
27003 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
27004 IMimeMessageTree_Impl::SetBodyProp(
27005 this,
27006 core::mem::transmute_copy(&hbody),
27007 core::mem::transmute(&pszname),
27008 core::mem::transmute_copy(&dwflags),
27009 core::mem::transmute_copy(&pvalue),
27010 )
27011 .into()
27012 }
27013 }
27014 unsafe extern "system" fn DeleteBodyProp<
27015 Identity: IMimeMessageTree_Impl,
27016 const OFFSET: isize,
27017 >(
27018 this: *mut core::ffi::c_void,
27019 hbody: *mut HBODY__,
27020 pszname: windows_core::PCSTR,
27021 ) -> windows_core::HRESULT {
27022 unsafe {
27023 let this: &Identity =
27024 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
27025 IMimeMessageTree_Impl::DeleteBodyProp(
27026 this,
27027 core::mem::transmute_copy(&hbody),
27028 core::mem::transmute(&pszname),
27029 )
27030 .into()
27031 }
27032 }
27033 unsafe extern "system" fn SetOption<
27034 Identity: IMimeMessageTree_Impl,
27035 const OFFSET: isize,
27036 >(
27037 this: *mut core::ffi::c_void,
27038 oid: u32,
27039 pvalue: *mut windows::Win32::System::Com::StructuredStorage::PROPVARIANT,
27040 ) -> windows_core::HRESULT {
27041 unsafe {
27042 let this: &Identity =
27043 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
27044 IMimeMessageTree_Impl::SetOption(
27045 this,
27046 core::mem::transmute_copy(&oid),
27047 core::mem::transmute_copy(&pvalue),
27048 )
27049 .into()
27050 }
27051 }
27052 unsafe extern "system" fn GetOption<
27053 Identity: IMimeMessageTree_Impl,
27054 const OFFSET: isize,
27055 >(
27056 this: *mut core::ffi::c_void,
27057 oid: u32,
27058 pvalue: *mut windows::Win32::System::Com::StructuredStorage::PROPVARIANT,
27059 ) -> windows_core::HRESULT {
27060 unsafe {
27061 let this: &Identity =
27062 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
27063 IMimeMessageTree_Impl::GetOption(
27064 this,
27065 core::mem::transmute_copy(&oid),
27066 core::mem::transmute_copy(&pvalue),
27067 )
27068 .into()
27069 }
27070 }
27071 Self {
27072 base__: windows::Win32::System::Com::IPersistStreamInit_Vtbl::new::<Identity, OFFSET>(),
27073 Save: Save::<Identity, OFFSET>,
27074 GetSizeMax: GetSizeMax::<Identity, OFFSET>,
27075 InitNew: InitNew::<Identity, OFFSET>,
27076 GetMessageSource: GetMessageSource::<Identity, OFFSET>,
27077 GetMessageSize: GetMessageSize::<Identity, OFFSET>,
27078 LoadOffsetTable: LoadOffsetTable::<Identity, OFFSET>,
27079 SaveOffsetTable: SaveOffsetTable::<Identity, OFFSET>,
27080 GetFlags: GetFlags::<Identity, OFFSET>,
27081 Commit: Commit::<Identity, OFFSET>,
27082 HandsOffStorage: HandsOffStorage::<Identity, OFFSET>,
27083 BindToObject: BindToObject::<Identity, OFFSET>,
27084 SaveBody: SaveBody::<Identity, OFFSET>,
27085 InsertBody: InsertBody::<Identity, OFFSET>,
27086 GetBody: GetBody::<Identity, OFFSET>,
27087 DeleteBody: DeleteBody::<Identity, OFFSET>,
27088 MoveBody: MoveBody::<Identity, OFFSET>,
27089 CountBodies: CountBodies::<Identity, OFFSET>,
27090 FindFirst: FindFirst::<Identity, OFFSET>,
27091 FindNext: FindNext::<Identity, OFFSET>,
27092 ResolveURL: ResolveURL::<Identity, OFFSET>,
27093 ToMultipart: ToMultipart::<Identity, OFFSET>,
27094 GetBodyOffsets: GetBodyOffsets::<Identity, OFFSET>,
27095 GetCharset: GetCharset::<Identity, OFFSET>,
27096 SetCharset: SetCharset::<Identity, OFFSET>,
27097 IsBodyType: IsBodyType::<Identity, OFFSET>,
27098 IsContentType: IsContentType::<Identity, OFFSET>,
27099 QueryBodyProp: QueryBodyProp::<Identity, OFFSET>,
27100 GetBodyProp: GetBodyProp::<Identity, OFFSET>,
27101 SetBodyProp: SetBodyProp::<Identity, OFFSET>,
27102 DeleteBodyProp: DeleteBodyProp::<Identity, OFFSET>,
27103 SetOption: SetOption::<Identity, OFFSET>,
27104 GetOption: GetOption::<Identity, OFFSET>,
27105 }
27106 }
27107 pub fn matches(iid: &windows_core::GUID) -> bool {
27108 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
27109 }
27110}
27111impl windows_core::RuntimeName for IMimeMessageTree {}
27112windows_core::imp::define_interface!(
27113 IMimeObjResolver,
27114 IMimeObjResolver_Vtbl,
27115 0xfeceaffd_c441_11d1_960e_00c04fbd7c09
27116);
27117windows_core::imp::interface_hierarchy!(IMimeObjResolver, windows_core::IUnknown);
27118impl IMimeObjResolver {
27119 pub unsafe fn MimeOleObjectFromMoniker<P1, P2>(
27120 &self,
27121 bindf: windows::Win32::System::Com::Urlmon::BINDF,
27122 pmkoriginal: P1,
27123 pbindctx: P2,
27124 riid: *const windows_core::GUID,
27125 ppvobject: *mut *mut core::ffi::c_void,
27126 ppmknew: *mut Option<windows::Win32::System::Com::IMoniker>,
27127 ) -> windows_core::Result<()>
27128 where
27129 P1: windows_core::Param<windows::Win32::System::Com::IMoniker>,
27130 P2: windows_core::Param<windows::Win32::System::Com::IBindCtx>,
27131 {
27132 unsafe {
27133 (windows_core::Interface::vtable(self).MimeOleObjectFromMoniker)(
27134 windows_core::Interface::as_raw(self),
27135 bindf,
27136 pmkoriginal.param().abi(),
27137 pbindctx.param().abi(),
27138 riid,
27139 ppvobject as _,
27140 core::mem::transmute(ppmknew),
27141 )
27142 .ok()
27143 }
27144 }
27145}
27146#[repr(C)]
27147#[doc(hidden)]
27148pub struct IMimeObjResolver_Vtbl {
27149 pub base__: windows_core::IUnknown_Vtbl,
27150 pub MimeOleObjectFromMoniker: unsafe extern "system" fn(
27151 *mut core::ffi::c_void,
27152 windows::Win32::System::Com::Urlmon::BINDF,
27153 *mut core::ffi::c_void,
27154 *mut core::ffi::c_void,
27155 *const windows_core::GUID,
27156 *mut *mut core::ffi::c_void,
27157 *mut *mut core::ffi::c_void,
27158 ) -> windows_core::HRESULT,
27159}
27160pub trait IMimeObjResolver_Impl: windows_core::IUnknownImpl {
27161 fn MimeOleObjectFromMoniker(
27162 &self,
27163 bindf: windows::Win32::System::Com::Urlmon::BINDF,
27164 pmkoriginal: windows_core::Ref<windows::Win32::System::Com::IMoniker>,
27165 pbindctx: windows_core::Ref<windows::Win32::System::Com::IBindCtx>,
27166 riid: *const windows_core::GUID,
27167 ppvobject: *mut *mut core::ffi::c_void,
27168 ppmknew: windows_core::OutRef<windows::Win32::System::Com::IMoniker>,
27169 ) -> windows_core::Result<()>;
27170}
27171impl IMimeObjResolver_Vtbl {
27172 pub const fn new<Identity: IMimeObjResolver_Impl, const OFFSET: isize>() -> Self {
27173 unsafe extern "system" fn MimeOleObjectFromMoniker<
27174 Identity: IMimeObjResolver_Impl,
27175 const OFFSET: isize,
27176 >(
27177 this: *mut core::ffi::c_void,
27178 bindf: windows::Win32::System::Com::Urlmon::BINDF,
27179 pmkoriginal: *mut core::ffi::c_void,
27180 pbindctx: *mut core::ffi::c_void,
27181 riid: *const windows_core::GUID,
27182 ppvobject: *mut *mut core::ffi::c_void,
27183 ppmknew: *mut *mut core::ffi::c_void,
27184 ) -> windows_core::HRESULT {
27185 unsafe {
27186 let this: &Identity =
27187 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
27188 IMimeObjResolver_Impl::MimeOleObjectFromMoniker(
27189 this,
27190 core::mem::transmute_copy(&bindf),
27191 core::mem::transmute_copy(&pmkoriginal),
27192 core::mem::transmute_copy(&pbindctx),
27193 core::mem::transmute_copy(&riid),
27194 core::mem::transmute_copy(&ppvobject),
27195 core::mem::transmute_copy(&ppmknew),
27196 )
27197 .into()
27198 }
27199 }
27200 Self {
27201 base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
27202 MimeOleObjectFromMoniker: MimeOleObjectFromMoniker::<Identity, OFFSET>,
27203 }
27204 }
27205 pub fn matches(iid: &windows_core::GUID) -> bool {
27206 iid == &<IMimeObjResolver as windows_core::Interface>::IID
27207 }
27208}
27209impl windows_core::RuntimeName for IMimeObjResolver {}
27210windows_core::imp::define_interface!(
27211 IMimePropertySchema,
27212 IMimePropertySchema_Vtbl,
27213 0xfd853cec_7f86_11d0_8252_00c04fd85ab4
27214);
27215windows_core::imp::interface_hierarchy!(IMimePropertySchema, windows_core::IUnknown);
27216impl IMimePropertySchema {
27217 pub unsafe fn RegisterProperty<P0>(
27218 &self,
27219 pszname: P0,
27220 dwflags: u32,
27221 dwrownumber: u32,
27222 vtdefault: u16,
27223 pdwpropid: *mut u32,
27224 ) -> windows_core::Result<()>
27225 where
27226 P0: windows_core::Param<windows_core::PCSTR>,
27227 {
27228 unsafe {
27229 (windows_core::Interface::vtable(self).RegisterProperty)(
27230 windows_core::Interface::as_raw(self),
27231 pszname.param().abi(),
27232 dwflags,
27233 dwrownumber,
27234 vtdefault,
27235 pdwpropid as _,
27236 )
27237 .ok()
27238 }
27239 }
27240 pub unsafe fn ModifyProperty<P0>(
27241 &self,
27242 pszname: P0,
27243 dwflags: u32,
27244 dwrownumber: u32,
27245 vtdefault: u16,
27246 ) -> windows_core::Result<()>
27247 where
27248 P0: windows_core::Param<windows_core::PCSTR>,
27249 {
27250 unsafe {
27251 (windows_core::Interface::vtable(self).ModifyProperty)(
27252 windows_core::Interface::as_raw(self),
27253 pszname.param().abi(),
27254 dwflags,
27255 dwrownumber,
27256 vtdefault,
27257 )
27258 .ok()
27259 }
27260 }
27261 pub unsafe fn GetPropertyId<P0>(
27262 &self,
27263 pszname: P0,
27264 pdwpropid: *mut u32,
27265 ) -> windows_core::Result<()>
27266 where
27267 P0: windows_core::Param<windows_core::PCSTR>,
27268 {
27269 unsafe {
27270 (windows_core::Interface::vtable(self).GetPropertyId)(
27271 windows_core::Interface::as_raw(self),
27272 pszname.param().abi(),
27273 pdwpropid as _,
27274 )
27275 .ok()
27276 }
27277 }
27278 pub unsafe fn GetPropertyName(
27279 &self,
27280 dwpropid: u32,
27281 ppszname: *mut windows_core::PSTR,
27282 ) -> windows_core::Result<()> {
27283 unsafe {
27284 (windows_core::Interface::vtable(self).GetPropertyName)(
27285 windows_core::Interface::as_raw(self),
27286 dwpropid,
27287 ppszname as _,
27288 )
27289 .ok()
27290 }
27291 }
27292 pub unsafe fn RegisterAddressType<P0>(
27293 &self,
27294 pszname: P0,
27295 pdwadrtype: *mut u32,
27296 ) -> windows_core::Result<()>
27297 where
27298 P0: windows_core::Param<windows_core::PCSTR>,
27299 {
27300 unsafe {
27301 (windows_core::Interface::vtable(self).RegisterAddressType)(
27302 windows_core::Interface::as_raw(self),
27303 pszname.param().abi(),
27304 pdwadrtype as _,
27305 )
27306 .ok()
27307 }
27308 }
27309}
27310#[repr(C)]
27311#[doc(hidden)]
27312pub struct IMimePropertySchema_Vtbl {
27313 pub base__: windows_core::IUnknown_Vtbl,
27314 pub RegisterProperty: unsafe extern "system" fn(
27315 *mut core::ffi::c_void,
27316 windows_core::PCSTR,
27317 u32,
27318 u32,
27319 u16,
27320 *mut u32,
27321 ) -> windows_core::HRESULT,
27322 pub ModifyProperty: unsafe extern "system" fn(
27323 *mut core::ffi::c_void,
27324 windows_core::PCSTR,
27325 u32,
27326 u32,
27327 u16,
27328 ) -> windows_core::HRESULT,
27329 pub GetPropertyId: unsafe extern "system" fn(
27330 *mut core::ffi::c_void,
27331 windows_core::PCSTR,
27332 *mut u32,
27333 ) -> windows_core::HRESULT,
27334 pub GetPropertyName: unsafe extern "system" fn(
27335 *mut core::ffi::c_void,
27336 u32,
27337 *mut windows_core::PSTR,
27338 ) -> windows_core::HRESULT,
27339 pub RegisterAddressType: unsafe extern "system" fn(
27340 *mut core::ffi::c_void,
27341 windows_core::PCSTR,
27342 *mut u32,
27343 ) -> windows_core::HRESULT,
27344}
27345pub trait IMimePropertySchema_Impl: windows_core::IUnknownImpl {
27346 fn RegisterProperty(
27347 &self,
27348 pszname: &windows_core::PCSTR,
27349 dwflags: u32,
27350 dwrownumber: u32,
27351 vtdefault: u16,
27352 pdwpropid: *mut u32,
27353 ) -> windows_core::Result<()>;
27354 fn ModifyProperty(
27355 &self,
27356 pszname: &windows_core::PCSTR,
27357 dwflags: u32,
27358 dwrownumber: u32,
27359 vtdefault: u16,
27360 ) -> windows_core::Result<()>;
27361 fn GetPropertyId(
27362 &self,
27363 pszname: &windows_core::PCSTR,
27364 pdwpropid: *mut u32,
27365 ) -> windows_core::Result<()>;
27366 fn GetPropertyName(
27367 &self,
27368 dwpropid: u32,
27369 ppszname: *mut windows_core::PSTR,
27370 ) -> windows_core::Result<()>;
27371 fn RegisterAddressType(
27372 &self,
27373 pszname: &windows_core::PCSTR,
27374 pdwadrtype: *mut u32,
27375 ) -> windows_core::Result<()>;
27376}
27377impl IMimePropertySchema_Vtbl {
27378 pub const fn new<Identity: IMimePropertySchema_Impl, const OFFSET: isize>() -> Self {
27379 unsafe extern "system" fn RegisterProperty<
27380 Identity: IMimePropertySchema_Impl,
27381 const OFFSET: isize,
27382 >(
27383 this: *mut core::ffi::c_void,
27384 pszname: windows_core::PCSTR,
27385 dwflags: u32,
27386 dwrownumber: u32,
27387 vtdefault: u16,
27388 pdwpropid: *mut u32,
27389 ) -> windows_core::HRESULT {
27390 unsafe {
27391 let this: &Identity =
27392 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
27393 IMimePropertySchema_Impl::RegisterProperty(
27394 this,
27395 core::mem::transmute(&pszname),
27396 core::mem::transmute_copy(&dwflags),
27397 core::mem::transmute_copy(&dwrownumber),
27398 core::mem::transmute_copy(&vtdefault),
27399 core::mem::transmute_copy(&pdwpropid),
27400 )
27401 .into()
27402 }
27403 }
27404 unsafe extern "system" fn ModifyProperty<
27405 Identity: IMimePropertySchema_Impl,
27406 const OFFSET: isize,
27407 >(
27408 this: *mut core::ffi::c_void,
27409 pszname: windows_core::PCSTR,
27410 dwflags: u32,
27411 dwrownumber: u32,
27412 vtdefault: u16,
27413 ) -> windows_core::HRESULT {
27414 unsafe {
27415 let this: &Identity =
27416 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
27417 IMimePropertySchema_Impl::ModifyProperty(
27418 this,
27419 core::mem::transmute(&pszname),
27420 core::mem::transmute_copy(&dwflags),
27421 core::mem::transmute_copy(&dwrownumber),
27422 core::mem::transmute_copy(&vtdefault),
27423 )
27424 .into()
27425 }
27426 }
27427 unsafe extern "system" fn GetPropertyId<
27428 Identity: IMimePropertySchema_Impl,
27429 const OFFSET: isize,
27430 >(
27431 this: *mut core::ffi::c_void,
27432 pszname: windows_core::PCSTR,
27433 pdwpropid: *mut u32,
27434 ) -> windows_core::HRESULT {
27435 unsafe {
27436 let this: &Identity =
27437 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
27438 IMimePropertySchema_Impl::GetPropertyId(
27439 this,
27440 core::mem::transmute(&pszname),
27441 core::mem::transmute_copy(&pdwpropid),
27442 )
27443 .into()
27444 }
27445 }
27446 unsafe extern "system" fn GetPropertyName<
27447 Identity: IMimePropertySchema_Impl,
27448 const OFFSET: isize,
27449 >(
27450 this: *mut core::ffi::c_void,
27451 dwpropid: u32,
27452 ppszname: *mut windows_core::PSTR,
27453 ) -> windows_core::HRESULT {
27454 unsafe {
27455 let this: &Identity =
27456 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
27457 IMimePropertySchema_Impl::GetPropertyName(
27458 this,
27459 core::mem::transmute_copy(&dwpropid),
27460 core::mem::transmute_copy(&ppszname),
27461 )
27462 .into()
27463 }
27464 }
27465 unsafe extern "system" fn RegisterAddressType<
27466 Identity: IMimePropertySchema_Impl,
27467 const OFFSET: isize,
27468 >(
27469 this: *mut core::ffi::c_void,
27470 pszname: windows_core::PCSTR,
27471 pdwadrtype: *mut u32,
27472 ) -> windows_core::HRESULT {
27473 unsafe {
27474 let this: &Identity =
27475 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
27476 IMimePropertySchema_Impl::RegisterAddressType(
27477 this,
27478 core::mem::transmute(&pszname),
27479 core::mem::transmute_copy(&pdwadrtype),
27480 )
27481 .into()
27482 }
27483 }
27484 Self {
27485 base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
27486 RegisterProperty: RegisterProperty::<Identity, OFFSET>,
27487 ModifyProperty: ModifyProperty::<Identity, OFFSET>,
27488 GetPropertyId: GetPropertyId::<Identity, OFFSET>,
27489 GetPropertyName: GetPropertyName::<Identity, OFFSET>,
27490 RegisterAddressType: RegisterAddressType::<Identity, OFFSET>,
27491 }
27492 }
27493 pub fn matches(iid: &windows_core::GUID) -> bool {
27494 iid == &<IMimePropertySchema as windows_core::Interface>::IID
27495 }
27496}
27497impl windows_core::RuntimeName for IMimePropertySchema {}
27498windows_core::imp::define_interface!(
27499 IMimePropertySet,
27500 IMimePropertySet_Vtbl,
27501 0xfd853cd3_7f86_11d0_8252_00c04fd85ab4
27502);
27503impl core::ops::Deref for IMimePropertySet {
27504 type Target = windows::Win32::System::Com::IPersistStreamInit;
27505 fn deref(&self) -> &Self::Target {
27506 unsafe { core::mem::transmute(self) }
27507 }
27508}
27509windows_core::imp::interface_hierarchy!(
27510 IMimePropertySet,
27511 windows_core::IUnknown,
27512 windows::Win32::System::Com::IPersist,
27513 windows::Win32::System::Com::IPersistStreamInit
27514);
27515impl IMimePropertySet {
27516 pub unsafe fn Save<P0>(&self, pstm: P0, fcleardirty: bool) -> windows_core::Result<()>
27517 where
27518 P0: windows_core::Param<windows::Win32::System::Com::IStream>,
27519 {
27520 unsafe {
27521 (windows_core::Interface::vtable(self).Save)(
27522 windows_core::Interface::as_raw(self),
27523 pstm.param().abi(),
27524 fcleardirty.into(),
27525 )
27526 .ok()
27527 }
27528 }
27529 pub unsafe fn GetSizeMax(&self) -> windows_core::Result<u64> {
27530 unsafe {
27531 let mut result__ = core::mem::zeroed();
27532 (windows_core::Interface::vtable(self).GetSizeMax)(
27533 windows_core::Interface::as_raw(self),
27534 &mut result__,
27535 )
27536 .map(|| result__)
27537 }
27538 }
27539 pub unsafe fn InitNew(&self) -> windows_core::Result<()> {
27540 unsafe {
27541 (windows_core::Interface::vtable(self).InitNew)(windows_core::Interface::as_raw(self))
27542 .ok()
27543 }
27544 }
27545 pub unsafe fn GetPropInfo<P0>(
27546 &self,
27547 pszname: P0,
27548 pinfo: *mut MIMEPROPINFO,
27549 ) -> windows_core::Result<()>
27550 where
27551 P0: windows_core::Param<windows_core::PCSTR>,
27552 {
27553 unsafe {
27554 (windows_core::Interface::vtable(self).GetPropInfo)(
27555 windows_core::Interface::as_raw(self),
27556 pszname.param().abi(),
27557 pinfo as _,
27558 )
27559 .ok()
27560 }
27561 }
27562 pub unsafe fn SetPropInfo<P0>(
27563 &self,
27564 pszname: P0,
27565 pinfo: *mut MIMEPROPINFO,
27566 ) -> windows_core::Result<()>
27567 where
27568 P0: windows_core::Param<windows_core::PCSTR>,
27569 {
27570 unsafe {
27571 (windows_core::Interface::vtable(self).SetPropInfo)(
27572 windows_core::Interface::as_raw(self),
27573 pszname.param().abi(),
27574 pinfo as _,
27575 )
27576 .ok()
27577 }
27578 }
27579 pub unsafe fn GetPropA<P0>(
27580 &self,
27581 pszname: P0,
27582 dwflags: u32,
27583 pvalue: *mut windows::Win32::System::Com::StructuredStorage::PROPVARIANT,
27584 ) -> windows_core::Result<()>
27585 where
27586 P0: windows_core::Param<windows_core::PCSTR>,
27587 {
27588 unsafe {
27589 (windows_core::Interface::vtable(self).GetPropA)(
27590 windows_core::Interface::as_raw(self),
27591 pszname.param().abi(),
27592 dwflags,
27593 core::mem::transmute(pvalue),
27594 )
27595 .ok()
27596 }
27597 }
27598 pub unsafe fn SetPropA<P0>(
27599 &self,
27600 pszname: P0,
27601 dwflags: u32,
27602 pvalue: *mut windows::Win32::System::Com::StructuredStorage::PROPVARIANT,
27603 ) -> windows_core::Result<()>
27604 where
27605 P0: windows_core::Param<windows_core::PCSTR>,
27606 {
27607 unsafe {
27608 (windows_core::Interface::vtable(self).SetPropA)(
27609 windows_core::Interface::as_raw(self),
27610 pszname.param().abi(),
27611 dwflags,
27612 core::mem::transmute(pvalue),
27613 )
27614 .ok()
27615 }
27616 }
27617 pub unsafe fn AppendProp<P0>(
27618 &self,
27619 pszname: P0,
27620 dwflags: u32,
27621 pvalue: *mut windows::Win32::System::Com::StructuredStorage::PROPVARIANT,
27622 ) -> windows_core::Result<()>
27623 where
27624 P0: windows_core::Param<windows_core::PCSTR>,
27625 {
27626 unsafe {
27627 (windows_core::Interface::vtable(self).AppendProp)(
27628 windows_core::Interface::as_raw(self),
27629 pszname.param().abi(),
27630 dwflags,
27631 core::mem::transmute(pvalue),
27632 )
27633 .ok()
27634 }
27635 }
27636 pub unsafe fn DeleteProp<P0>(&self, pszname: P0) -> windows_core::Result<()>
27637 where
27638 P0: windows_core::Param<windows_core::PCSTR>,
27639 {
27640 unsafe {
27641 (windows_core::Interface::vtable(self).DeleteProp)(
27642 windows_core::Interface::as_raw(self),
27643 pszname.param().abi(),
27644 )
27645 .ok()
27646 }
27647 }
27648 pub unsafe fn CopyProps<P2>(
27649 &self,
27650 cnames: u32,
27651 prgszname: *const windows_core::PCSTR,
27652 ppropertyset: P2,
27653 ) -> windows_core::Result<()>
27654 where
27655 P2: windows_core::Param<IMimePropertySet>,
27656 {
27657 unsafe {
27658 (windows_core::Interface::vtable(self).CopyProps)(
27659 windows_core::Interface::as_raw(self),
27660 cnames,
27661 prgszname,
27662 ppropertyset.param().abi(),
27663 )
27664 .ok()
27665 }
27666 }
27667 pub unsafe fn MoveProps<P2>(
27668 &self,
27669 cnames: u32,
27670 prgszname: *const windows_core::PCSTR,
27671 ppropertyset: P2,
27672 ) -> windows_core::Result<()>
27673 where
27674 P2: windows_core::Param<IMimePropertySet>,
27675 {
27676 unsafe {
27677 (windows_core::Interface::vtable(self).MoveProps)(
27678 windows_core::Interface::as_raw(self),
27679 cnames,
27680 prgszname,
27681 ppropertyset.param().abi(),
27682 )
27683 .ok()
27684 }
27685 }
27686 pub unsafe fn DeleteExcept(
27687 &self,
27688 cnames: u32,
27689 prgszname: *const windows_core::PCSTR,
27690 ) -> windows_core::Result<()> {
27691 unsafe {
27692 (windows_core::Interface::vtable(self).DeleteExcept)(
27693 windows_core::Interface::as_raw(self),
27694 cnames,
27695 prgszname,
27696 )
27697 .ok()
27698 }
27699 }
27700 pub unsafe fn QueryProp<P0, P1>(
27701 &self,
27702 pszname: P0,
27703 pszcriteria: P1,
27704 fsubstring: u8,
27705 fcasesensitive: u8,
27706 ) -> windows_core::Result<()>
27707 where
27708 P0: windows_core::Param<windows_core::PCSTR>,
27709 P1: windows_core::Param<windows_core::PCSTR>,
27710 {
27711 unsafe {
27712 (windows_core::Interface::vtable(self).QueryProp)(
27713 windows_core::Interface::as_raw(self),
27714 pszname.param().abi(),
27715 pszcriteria.param().abi(),
27716 fsubstring,
27717 fcasesensitive,
27718 )
27719 .ok()
27720 }
27721 }
27722 pub unsafe fn GetCharset(&self, phcharset: *mut *mut HCHARSET__) -> windows_core::Result<()> {
27723 unsafe {
27724 (windows_core::Interface::vtable(self).GetCharset)(
27725 windows_core::Interface::as_raw(self),
27726 phcharset as _,
27727 )
27728 .ok()
27729 }
27730 }
27731 pub unsafe fn SetCharset(
27732 &self,
27733 hcharset: *mut HCHARSET__,
27734 applytype: CSETAPPLYTYPE,
27735 ) -> windows_core::Result<()> {
27736 unsafe {
27737 (windows_core::Interface::vtable(self).SetCharset)(
27738 windows_core::Interface::as_raw(self),
27739 hcharset as _,
27740 applytype,
27741 )
27742 .ok()
27743 }
27744 }
27745 pub unsafe fn GetParameters<P0>(
27746 &self,
27747 pszname: P0,
27748 pcparams: *mut u32,
27749 pprgparam: *mut *mut MIMEPARAMINFO,
27750 ) -> windows_core::Result<()>
27751 where
27752 P0: windows_core::Param<windows_core::PCSTR>,
27753 {
27754 unsafe {
27755 (windows_core::Interface::vtable(self).GetParameters)(
27756 windows_core::Interface::as_raw(self),
27757 pszname.param().abi(),
27758 pcparams as _,
27759 pprgparam as _,
27760 )
27761 .ok()
27762 }
27763 }
27764 pub unsafe fn IsContentType<P0, P1>(
27765 &self,
27766 pszpritype: P0,
27767 pszsubtype: P1,
27768 ) -> windows_core::Result<()>
27769 where
27770 P0: windows_core::Param<windows_core::PCSTR>,
27771 P1: windows_core::Param<windows_core::PCSTR>,
27772 {
27773 unsafe {
27774 (windows_core::Interface::vtable(self).IsContentType)(
27775 windows_core::Interface::as_raw(self),
27776 pszpritype.param().abi(),
27777 pszsubtype.param().abi(),
27778 )
27779 .ok()
27780 }
27781 }
27782 pub unsafe fn BindToObject(
27783 &self,
27784 riid: *const windows_core::GUID,
27785 ppvobject: *mut *mut core::ffi::c_void,
27786 ) -> windows_core::Result<()> {
27787 unsafe {
27788 (windows_core::Interface::vtable(self).BindToObject)(
27789 windows_core::Interface::as_raw(self),
27790 riid,
27791 ppvobject as _,
27792 )
27793 .ok()
27794 }
27795 }
27796 pub unsafe fn Clone(&self) -> windows_core::Result<IMimePropertySet> {
27797 unsafe {
27798 let mut result__ = core::mem::zeroed();
27799 (windows_core::Interface::vtable(self).Clone)(
27800 windows_core::Interface::as_raw(self),
27801 &mut result__,
27802 )
27803 .and_then(|| windows_core::Type::from_abi(result__))
27804 }
27805 }
27806 pub unsafe fn SetOption(
27807 &self,
27808 oid: u32,
27809 pvalue: *mut windows::Win32::System::Com::StructuredStorage::PROPVARIANT,
27810 ) -> windows_core::Result<()> {
27811 unsafe {
27812 (windows_core::Interface::vtable(self).SetOption)(
27813 windows_core::Interface::as_raw(self),
27814 oid,
27815 core::mem::transmute(pvalue),
27816 )
27817 .ok()
27818 }
27819 }
27820 pub unsafe fn GetOption(
27821 &self,
27822 oid: u32,
27823 pvalue: *mut windows::Win32::System::Com::StructuredStorage::PROPVARIANT,
27824 ) -> windows_core::Result<()> {
27825 unsafe {
27826 (windows_core::Interface::vtable(self).GetOption)(
27827 windows_core::Interface::as_raw(self),
27828 oid,
27829 core::mem::transmute(pvalue),
27830 )
27831 .ok()
27832 }
27833 }
27834 pub unsafe fn EnumPropsA(&self, dwflags: u32) -> windows_core::Result<IMimeEnumProperties> {
27835 unsafe {
27836 let mut result__ = core::mem::zeroed();
27837 (windows_core::Interface::vtable(self).EnumPropsA)(
27838 windows_core::Interface::as_raw(self),
27839 dwflags,
27840 &mut result__,
27841 )
27842 .and_then(|| windows_core::Type::from_abi(result__))
27843 }
27844 }
27845}
27846#[repr(C)]
27847#[doc(hidden)]
27848pub struct IMimePropertySet_Vtbl {
27849 pub base__: windows::Win32::System::Com::IPersistStreamInit_Vtbl,
27850 pub Save: unsafe extern "system" fn(
27851 *mut core::ffi::c_void,
27852 *mut core::ffi::c_void,
27853 windows_core::BOOL,
27854 ) -> windows_core::HRESULT,
27855 pub GetSizeMax:
27856 unsafe extern "system" fn(*mut core::ffi::c_void, *mut u64) -> windows_core::HRESULT,
27857 pub InitNew: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
27858 pub GetPropInfo: unsafe extern "system" fn(
27859 *mut core::ffi::c_void,
27860 windows_core::PCSTR,
27861 *mut MIMEPROPINFO,
27862 ) -> windows_core::HRESULT,
27863 pub SetPropInfo: unsafe extern "system" fn(
27864 *mut core::ffi::c_void,
27865 windows_core::PCSTR,
27866 *mut MIMEPROPINFO,
27867 ) -> windows_core::HRESULT,
27868 pub GetPropA: 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 SetPropA: unsafe extern "system" fn(
27875 *mut core::ffi::c_void,
27876 windows_core::PCSTR,
27877 u32,
27878 *mut windows::Win32::System::Com::StructuredStorage::PROPVARIANT,
27879 ) -> windows_core::HRESULT,
27880 pub AppendProp: unsafe extern "system" fn(
27881 *mut core::ffi::c_void,
27882 windows_core::PCSTR,
27883 u32,
27884 *mut windows::Win32::System::Com::StructuredStorage::PROPVARIANT,
27885 ) -> windows_core::HRESULT,
27886 pub DeleteProp: unsafe extern "system" fn(
27887 *mut core::ffi::c_void,
27888 windows_core::PCSTR,
27889 ) -> windows_core::HRESULT,
27890 pub CopyProps: unsafe extern "system" fn(
27891 *mut core::ffi::c_void,
27892 u32,
27893 *const windows_core::PCSTR,
27894 *mut core::ffi::c_void,
27895 ) -> windows_core::HRESULT,
27896 pub MoveProps: unsafe extern "system" fn(
27897 *mut core::ffi::c_void,
27898 u32,
27899 *const windows_core::PCSTR,
27900 *mut core::ffi::c_void,
27901 ) -> windows_core::HRESULT,
27902 pub DeleteExcept: unsafe extern "system" fn(
27903 *mut core::ffi::c_void,
27904 u32,
27905 *const windows_core::PCSTR,
27906 ) -> windows_core::HRESULT,
27907 pub QueryProp: unsafe extern "system" fn(
27908 *mut core::ffi::c_void,
27909 windows_core::PCSTR,
27910 windows_core::PCSTR,
27911 u8,
27912 u8,
27913 ) -> windows_core::HRESULT,
27914 pub GetCharset: unsafe extern "system" fn(
27915 *mut core::ffi::c_void,
27916 *mut *mut HCHARSET__,
27917 ) -> windows_core::HRESULT,
27918 pub SetCharset: unsafe extern "system" fn(
27919 *mut core::ffi::c_void,
27920 *mut HCHARSET__,
27921 CSETAPPLYTYPE,
27922 ) -> windows_core::HRESULT,
27923 pub GetParameters: unsafe extern "system" fn(
27924 *mut core::ffi::c_void,
27925 windows_core::PCSTR,
27926 *mut u32,
27927 *mut *mut MIMEPARAMINFO,
27928 ) -> windows_core::HRESULT,
27929 pub IsContentType: unsafe extern "system" fn(
27930 *mut core::ffi::c_void,
27931 windows_core::PCSTR,
27932 windows_core::PCSTR,
27933 ) -> windows_core::HRESULT,
27934 pub BindToObject: unsafe extern "system" fn(
27935 *mut core::ffi::c_void,
27936 *const windows_core::GUID,
27937 *mut *mut core::ffi::c_void,
27938 ) -> windows_core::HRESULT,
27939 pub Clone: unsafe extern "system" fn(
27940 *mut core::ffi::c_void,
27941 *mut *mut core::ffi::c_void,
27942 ) -> windows_core::HRESULT,
27943 pub SetOption: unsafe extern "system" fn(
27944 *mut core::ffi::c_void,
27945 u32,
27946 *mut windows::Win32::System::Com::StructuredStorage::PROPVARIANT,
27947 ) -> windows_core::HRESULT,
27948 pub GetOption: unsafe extern "system" fn(
27949 *mut core::ffi::c_void,
27950 u32,
27951 *mut windows::Win32::System::Com::StructuredStorage::PROPVARIANT,
27952 ) -> windows_core::HRESULT,
27953 pub EnumPropsA: unsafe extern "system" fn(
27954 *mut core::ffi::c_void,
27955 u32,
27956 *mut *mut core::ffi::c_void,
27957 ) -> windows_core::HRESULT,
27958}
27959pub trait IMimePropertySet_Impl: windows::Win32::System::Com::IPersistStreamInit_Impl {
27960 fn Save(
27961 &self,
27962 pstm: windows_core::Ref<windows::Win32::System::Com::IStream>,
27963 fcleardirty: windows_core::BOOL,
27964 ) -> windows_core::Result<()>;
27965 fn GetSizeMax(&self) -> windows_core::Result<u64>;
27966 fn InitNew(&self) -> windows_core::Result<()>;
27967 fn GetPropInfo(
27968 &self,
27969 pszname: &windows_core::PCSTR,
27970 pinfo: *mut MIMEPROPINFO,
27971 ) -> windows_core::Result<()>;
27972 fn SetPropInfo(
27973 &self,
27974 pszname: &windows_core::PCSTR,
27975 pinfo: *mut MIMEPROPINFO,
27976 ) -> windows_core::Result<()>;
27977 fn GetPropA(
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 SetPropA(
27984 &self,
27985 pszname: &windows_core::PCSTR,
27986 dwflags: u32,
27987 pvalue: *mut windows::Win32::System::Com::StructuredStorage::PROPVARIANT,
27988 ) -> windows_core::Result<()>;
27989 fn AppendProp(
27990 &self,
27991 pszname: &windows_core::PCSTR,
27992 dwflags: u32,
27993 pvalue: *mut windows::Win32::System::Com::StructuredStorage::PROPVARIANT,
27994 ) -> windows_core::Result<()>;
27995 fn DeleteProp(&self, pszname: &windows_core::PCSTR) -> windows_core::Result<()>;
27996 fn CopyProps(
27997 &self,
27998 cnames: u32,
27999 prgszname: *const windows_core::PCSTR,
28000 ppropertyset: windows_core::Ref<IMimePropertySet>,
28001 ) -> windows_core::Result<()>;
28002 fn MoveProps(
28003 &self,
28004 cnames: u32,
28005 prgszname: *const windows_core::PCSTR,
28006 ppropertyset: windows_core::Ref<IMimePropertySet>,
28007 ) -> windows_core::Result<()>;
28008 fn DeleteExcept(
28009 &self,
28010 cnames: u32,
28011 prgszname: *const windows_core::PCSTR,
28012 ) -> windows_core::Result<()>;
28013 fn QueryProp(
28014 &self,
28015 pszname: &windows_core::PCSTR,
28016 pszcriteria: &windows_core::PCSTR,
28017 fsubstring: u8,
28018 fcasesensitive: u8,
28019 ) -> windows_core::Result<()>;
28020 fn GetCharset(&self, phcharset: *mut *mut HCHARSET__) -> windows_core::Result<()>;
28021 fn SetCharset(
28022 &self,
28023 hcharset: *mut HCHARSET__,
28024 applytype: CSETAPPLYTYPE,
28025 ) -> windows_core::Result<()>;
28026 fn GetParameters(
28027 &self,
28028 pszname: &windows_core::PCSTR,
28029 pcparams: *mut u32,
28030 pprgparam: *mut *mut MIMEPARAMINFO,
28031 ) -> windows_core::Result<()>;
28032 fn IsContentType(
28033 &self,
28034 pszpritype: &windows_core::PCSTR,
28035 pszsubtype: &windows_core::PCSTR,
28036 ) -> windows_core::Result<()>;
28037 fn BindToObject(
28038 &self,
28039 riid: *const windows_core::GUID,
28040 ppvobject: *mut *mut core::ffi::c_void,
28041 ) -> windows_core::Result<()>;
28042 fn Clone(&self) -> windows_core::Result<IMimePropertySet>;
28043 fn SetOption(
28044 &self,
28045 oid: u32,
28046 pvalue: *mut windows::Win32::System::Com::StructuredStorage::PROPVARIANT,
28047 ) -> windows_core::Result<()>;
28048 fn GetOption(
28049 &self,
28050 oid: u32,
28051 pvalue: *mut windows::Win32::System::Com::StructuredStorage::PROPVARIANT,
28052 ) -> windows_core::Result<()>;
28053 fn EnumPropsA(&self, dwflags: u32) -> windows_core::Result<IMimeEnumProperties>;
28054}
28055impl IMimePropertySet_Vtbl {
28056 pub const fn new<Identity: IMimePropertySet_Impl, const OFFSET: isize>() -> Self {
28057 unsafe extern "system" fn Save<Identity: IMimePropertySet_Impl, const OFFSET: isize>(
28058 this: *mut core::ffi::c_void,
28059 pstm: *mut core::ffi::c_void,
28060 fcleardirty: windows_core::BOOL,
28061 ) -> windows_core::HRESULT {
28062 unsafe {
28063 let this: &Identity =
28064 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
28065 IMimePropertySet_Impl::Save(
28066 this,
28067 core::mem::transmute_copy(&pstm),
28068 core::mem::transmute_copy(&fcleardirty),
28069 )
28070 .into()
28071 }
28072 }
28073 unsafe extern "system" fn GetSizeMax<
28074 Identity: IMimePropertySet_Impl,
28075 const OFFSET: isize,
28076 >(
28077 this: *mut core::ffi::c_void,
28078 pcbsize: *mut u64,
28079 ) -> windows_core::HRESULT {
28080 unsafe {
28081 let this: &Identity =
28082 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
28083 match IMimePropertySet_Impl::GetSizeMax(this) {
28084 Ok(ok__) => {
28085 pcbsize.write(core::mem::transmute(ok__));
28086 windows_core::HRESULT(0)
28087 }
28088 Err(err) => err.into(),
28089 }
28090 }
28091 }
28092 unsafe extern "system" fn InitNew<Identity: IMimePropertySet_Impl, const OFFSET: isize>(
28093 this: *mut core::ffi::c_void,
28094 ) -> windows_core::HRESULT {
28095 unsafe {
28096 let this: &Identity =
28097 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
28098 IMimePropertySet_Impl::InitNew(this).into()
28099 }
28100 }
28101 unsafe extern "system" fn GetPropInfo<
28102 Identity: IMimePropertySet_Impl,
28103 const OFFSET: isize,
28104 >(
28105 this: *mut core::ffi::c_void,
28106 pszname: windows_core::PCSTR,
28107 pinfo: *mut MIMEPROPINFO,
28108 ) -> windows_core::HRESULT {
28109 unsafe {
28110 let this: &Identity =
28111 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
28112 IMimePropertySet_Impl::GetPropInfo(
28113 this,
28114 core::mem::transmute(&pszname),
28115 core::mem::transmute_copy(&pinfo),
28116 )
28117 .into()
28118 }
28119 }
28120 unsafe extern "system" fn SetPropInfo<
28121 Identity: IMimePropertySet_Impl,
28122 const OFFSET: isize,
28123 >(
28124 this: *mut core::ffi::c_void,
28125 pszname: windows_core::PCSTR,
28126 pinfo: *mut MIMEPROPINFO,
28127 ) -> windows_core::HRESULT {
28128 unsafe {
28129 let this: &Identity =
28130 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
28131 IMimePropertySet_Impl::SetPropInfo(
28132 this,
28133 core::mem::transmute(&pszname),
28134 core::mem::transmute_copy(&pinfo),
28135 )
28136 .into()
28137 }
28138 }
28139 unsafe extern "system" fn GetPropA<Identity: IMimePropertySet_Impl, const OFFSET: isize>(
28140 this: *mut core::ffi::c_void,
28141 pszname: windows_core::PCSTR,
28142 dwflags: u32,
28143 pvalue: *mut windows::Win32::System::Com::StructuredStorage::PROPVARIANT,
28144 ) -> windows_core::HRESULT {
28145 unsafe {
28146 let this: &Identity =
28147 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
28148 IMimePropertySet_Impl::GetPropA(
28149 this,
28150 core::mem::transmute(&pszname),
28151 core::mem::transmute_copy(&dwflags),
28152 core::mem::transmute_copy(&pvalue),
28153 )
28154 .into()
28155 }
28156 }
28157 unsafe extern "system" fn SetPropA<Identity: IMimePropertySet_Impl, const OFFSET: isize>(
28158 this: *mut core::ffi::c_void,
28159 pszname: windows_core::PCSTR,
28160 dwflags: u32,
28161 pvalue: *mut windows::Win32::System::Com::StructuredStorage::PROPVARIANT,
28162 ) -> windows_core::HRESULT {
28163 unsafe {
28164 let this: &Identity =
28165 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
28166 IMimePropertySet_Impl::SetPropA(
28167 this,
28168 core::mem::transmute(&pszname),
28169 core::mem::transmute_copy(&dwflags),
28170 core::mem::transmute_copy(&pvalue),
28171 )
28172 .into()
28173 }
28174 }
28175 unsafe extern "system" fn AppendProp<
28176 Identity: IMimePropertySet_Impl,
28177 const OFFSET: isize,
28178 >(
28179 this: *mut core::ffi::c_void,
28180 pszname: windows_core::PCSTR,
28181 dwflags: u32,
28182 pvalue: *mut windows::Win32::System::Com::StructuredStorage::PROPVARIANT,
28183 ) -> windows_core::HRESULT {
28184 unsafe {
28185 let this: &Identity =
28186 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
28187 IMimePropertySet_Impl::AppendProp(
28188 this,
28189 core::mem::transmute(&pszname),
28190 core::mem::transmute_copy(&dwflags),
28191 core::mem::transmute_copy(&pvalue),
28192 )
28193 .into()
28194 }
28195 }
28196 unsafe extern "system" fn DeleteProp<
28197 Identity: IMimePropertySet_Impl,
28198 const OFFSET: isize,
28199 >(
28200 this: *mut core::ffi::c_void,
28201 pszname: windows_core::PCSTR,
28202 ) -> windows_core::HRESULT {
28203 unsafe {
28204 let this: &Identity =
28205 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
28206 IMimePropertySet_Impl::DeleteProp(this, core::mem::transmute(&pszname)).into()
28207 }
28208 }
28209 unsafe extern "system" fn CopyProps<
28210 Identity: IMimePropertySet_Impl,
28211 const OFFSET: isize,
28212 >(
28213 this: *mut core::ffi::c_void,
28214 cnames: u32,
28215 prgszname: *const windows_core::PCSTR,
28216 ppropertyset: *mut core::ffi::c_void,
28217 ) -> windows_core::HRESULT {
28218 unsafe {
28219 let this: &Identity =
28220 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
28221 IMimePropertySet_Impl::CopyProps(
28222 this,
28223 core::mem::transmute_copy(&cnames),
28224 core::mem::transmute_copy(&prgszname),
28225 core::mem::transmute_copy(&ppropertyset),
28226 )
28227 .into()
28228 }
28229 }
28230 unsafe extern "system" fn MoveProps<
28231 Identity: IMimePropertySet_Impl,
28232 const OFFSET: isize,
28233 >(
28234 this: *mut core::ffi::c_void,
28235 cnames: u32,
28236 prgszname: *const windows_core::PCSTR,
28237 ppropertyset: *mut core::ffi::c_void,
28238 ) -> windows_core::HRESULT {
28239 unsafe {
28240 let this: &Identity =
28241 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
28242 IMimePropertySet_Impl::MoveProps(
28243 this,
28244 core::mem::transmute_copy(&cnames),
28245 core::mem::transmute_copy(&prgszname),
28246 core::mem::transmute_copy(&ppropertyset),
28247 )
28248 .into()
28249 }
28250 }
28251 unsafe extern "system" fn DeleteExcept<
28252 Identity: IMimePropertySet_Impl,
28253 const OFFSET: isize,
28254 >(
28255 this: *mut core::ffi::c_void,
28256 cnames: u32,
28257 prgszname: *const windows_core::PCSTR,
28258 ) -> windows_core::HRESULT {
28259 unsafe {
28260 let this: &Identity =
28261 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
28262 IMimePropertySet_Impl::DeleteExcept(
28263 this,
28264 core::mem::transmute_copy(&cnames),
28265 core::mem::transmute_copy(&prgszname),
28266 )
28267 .into()
28268 }
28269 }
28270 unsafe extern "system" fn QueryProp<
28271 Identity: IMimePropertySet_Impl,
28272 const OFFSET: isize,
28273 >(
28274 this: *mut core::ffi::c_void,
28275 pszname: windows_core::PCSTR,
28276 pszcriteria: windows_core::PCSTR,
28277 fsubstring: u8,
28278 fcasesensitive: u8,
28279 ) -> windows_core::HRESULT {
28280 unsafe {
28281 let this: &Identity =
28282 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
28283 IMimePropertySet_Impl::QueryProp(
28284 this,
28285 core::mem::transmute(&pszname),
28286 core::mem::transmute(&pszcriteria),
28287 core::mem::transmute_copy(&fsubstring),
28288 core::mem::transmute_copy(&fcasesensitive),
28289 )
28290 .into()
28291 }
28292 }
28293 unsafe extern "system" fn GetCharset<
28294 Identity: IMimePropertySet_Impl,
28295 const OFFSET: isize,
28296 >(
28297 this: *mut core::ffi::c_void,
28298 phcharset: *mut *mut HCHARSET__,
28299 ) -> windows_core::HRESULT {
28300 unsafe {
28301 let this: &Identity =
28302 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
28303 IMimePropertySet_Impl::GetCharset(this, core::mem::transmute_copy(&phcharset))
28304 .into()
28305 }
28306 }
28307 unsafe extern "system" fn SetCharset<
28308 Identity: IMimePropertySet_Impl,
28309 const OFFSET: isize,
28310 >(
28311 this: *mut core::ffi::c_void,
28312 hcharset: *mut HCHARSET__,
28313 applytype: CSETAPPLYTYPE,
28314 ) -> windows_core::HRESULT {
28315 unsafe {
28316 let this: &Identity =
28317 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
28318 IMimePropertySet_Impl::SetCharset(
28319 this,
28320 core::mem::transmute_copy(&hcharset),
28321 core::mem::transmute_copy(&applytype),
28322 )
28323 .into()
28324 }
28325 }
28326 unsafe extern "system" fn GetParameters<
28327 Identity: IMimePropertySet_Impl,
28328 const OFFSET: isize,
28329 >(
28330 this: *mut core::ffi::c_void,
28331 pszname: windows_core::PCSTR,
28332 pcparams: *mut u32,
28333 pprgparam: *mut *mut MIMEPARAMINFO,
28334 ) -> windows_core::HRESULT {
28335 unsafe {
28336 let this: &Identity =
28337 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
28338 IMimePropertySet_Impl::GetParameters(
28339 this,
28340 core::mem::transmute(&pszname),
28341 core::mem::transmute_copy(&pcparams),
28342 core::mem::transmute_copy(&pprgparam),
28343 )
28344 .into()
28345 }
28346 }
28347 unsafe extern "system" fn IsContentType<
28348 Identity: IMimePropertySet_Impl,
28349 const OFFSET: isize,
28350 >(
28351 this: *mut core::ffi::c_void,
28352 pszpritype: windows_core::PCSTR,
28353 pszsubtype: windows_core::PCSTR,
28354 ) -> windows_core::HRESULT {
28355 unsafe {
28356 let this: &Identity =
28357 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
28358 IMimePropertySet_Impl::IsContentType(
28359 this,
28360 core::mem::transmute(&pszpritype),
28361 core::mem::transmute(&pszsubtype),
28362 )
28363 .into()
28364 }
28365 }
28366 unsafe extern "system" fn BindToObject<
28367 Identity: IMimePropertySet_Impl,
28368 const OFFSET: isize,
28369 >(
28370 this: *mut core::ffi::c_void,
28371 riid: *const windows_core::GUID,
28372 ppvobject: *mut *mut core::ffi::c_void,
28373 ) -> windows_core::HRESULT {
28374 unsafe {
28375 let this: &Identity =
28376 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
28377 IMimePropertySet_Impl::BindToObject(
28378 this,
28379 core::mem::transmute_copy(&riid),
28380 core::mem::transmute_copy(&ppvobject),
28381 )
28382 .into()
28383 }
28384 }
28385 unsafe extern "system" fn Clone<Identity: IMimePropertySet_Impl, const OFFSET: isize>(
28386 this: *mut core::ffi::c_void,
28387 pppropertyset: *mut *mut core::ffi::c_void,
28388 ) -> windows_core::HRESULT {
28389 unsafe {
28390 let this: &Identity =
28391 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
28392 match IMimePropertySet_Impl::Clone(this) {
28393 Ok(ok__) => {
28394 pppropertyset.write(core::mem::transmute(ok__));
28395 windows_core::HRESULT(0)
28396 }
28397 Err(err) => err.into(),
28398 }
28399 }
28400 }
28401 unsafe extern "system" fn SetOption<
28402 Identity: IMimePropertySet_Impl,
28403 const OFFSET: isize,
28404 >(
28405 this: *mut core::ffi::c_void,
28406 oid: u32,
28407 pvalue: *mut windows::Win32::System::Com::StructuredStorage::PROPVARIANT,
28408 ) -> windows_core::HRESULT {
28409 unsafe {
28410 let this: &Identity =
28411 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
28412 IMimePropertySet_Impl::SetOption(
28413 this,
28414 core::mem::transmute_copy(&oid),
28415 core::mem::transmute_copy(&pvalue),
28416 )
28417 .into()
28418 }
28419 }
28420 unsafe extern "system" fn GetOption<
28421 Identity: IMimePropertySet_Impl,
28422 const OFFSET: isize,
28423 >(
28424 this: *mut core::ffi::c_void,
28425 oid: u32,
28426 pvalue: *mut windows::Win32::System::Com::StructuredStorage::PROPVARIANT,
28427 ) -> windows_core::HRESULT {
28428 unsafe {
28429 let this: &Identity =
28430 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
28431 IMimePropertySet_Impl::GetOption(
28432 this,
28433 core::mem::transmute_copy(&oid),
28434 core::mem::transmute_copy(&pvalue),
28435 )
28436 .into()
28437 }
28438 }
28439 unsafe extern "system" fn EnumPropsA<
28440 Identity: IMimePropertySet_Impl,
28441 const OFFSET: isize,
28442 >(
28443 this: *mut core::ffi::c_void,
28444 dwflags: u32,
28445 ppenum: *mut *mut core::ffi::c_void,
28446 ) -> windows_core::HRESULT {
28447 unsafe {
28448 let this: &Identity =
28449 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
28450 match IMimePropertySet_Impl::EnumPropsA(this, core::mem::transmute_copy(&dwflags)) {
28451 Ok(ok__) => {
28452 ppenum.write(core::mem::transmute(ok__));
28453 windows_core::HRESULT(0)
28454 }
28455 Err(err) => err.into(),
28456 }
28457 }
28458 }
28459 Self {
28460 base__: windows::Win32::System::Com::IPersistStreamInit_Vtbl::new::<Identity, OFFSET>(),
28461 Save: Save::<Identity, OFFSET>,
28462 GetSizeMax: GetSizeMax::<Identity, OFFSET>,
28463 InitNew: InitNew::<Identity, OFFSET>,
28464 GetPropInfo: GetPropInfo::<Identity, OFFSET>,
28465 SetPropInfo: SetPropInfo::<Identity, OFFSET>,
28466 GetPropA: GetPropA::<Identity, OFFSET>,
28467 SetPropA: SetPropA::<Identity, OFFSET>,
28468 AppendProp: AppendProp::<Identity, OFFSET>,
28469 DeleteProp: DeleteProp::<Identity, OFFSET>,
28470 CopyProps: CopyProps::<Identity, OFFSET>,
28471 MoveProps: MoveProps::<Identity, OFFSET>,
28472 DeleteExcept: DeleteExcept::<Identity, OFFSET>,
28473 QueryProp: QueryProp::<Identity, OFFSET>,
28474 GetCharset: GetCharset::<Identity, OFFSET>,
28475 SetCharset: SetCharset::<Identity, OFFSET>,
28476 GetParameters: GetParameters::<Identity, OFFSET>,
28477 IsContentType: IsContentType::<Identity, OFFSET>,
28478 BindToObject: BindToObject::<Identity, OFFSET>,
28479 Clone: Clone::<Identity, OFFSET>,
28480 SetOption: SetOption::<Identity, OFFSET>,
28481 GetOption: GetOption::<Identity, OFFSET>,
28482 EnumPropsA: EnumPropsA::<Identity, OFFSET>,
28483 }
28484 }
28485 pub fn matches(iid: &windows_core::GUID) -> bool {
28486 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
28487 }
28488}
28489impl windows_core::RuntimeName for IMimePropertySet {}
28490windows_core::imp::define_interface!(
28491 IMimeSecurity,
28492 IMimeSecurity_Vtbl,
28493 0xc5588353_7f86_11d0_8252_00c04fd85ab4
28494);
28495windows_core::imp::interface_hierarchy!(IMimeSecurity, windows_core::IUnknown);
28496impl IMimeSecurity {
28497 pub unsafe fn InitNew(&self) -> windows_core::Result<()> {
28498 unsafe {
28499 (windows_core::Interface::vtable(self).InitNew)(windows_core::Interface::as_raw(self))
28500 .ok()
28501 }
28502 }
28503 pub unsafe fn CheckInit(&self) -> windows_core::Result<()> {
28504 unsafe {
28505 (windows_core::Interface::vtable(self).CheckInit)(windows_core::Interface::as_raw(self))
28506 .ok()
28507 }
28508 }
28509 pub unsafe fn EncodeMessage<P0>(&self, ptree: P0, dwflags: u32) -> windows_core::Result<()>
28510 where
28511 P0: windows_core::Param<IMimeMessageTree>,
28512 {
28513 unsafe {
28514 (windows_core::Interface::vtable(self).EncodeMessage)(
28515 windows_core::Interface::as_raw(self),
28516 ptree.param().abi(),
28517 dwflags,
28518 )
28519 .ok()
28520 }
28521 }
28522 pub unsafe fn EncodeBody<P0>(
28523 &self,
28524 ptree: P0,
28525 hencoderoot: *mut HBODY__,
28526 dwflags: u32,
28527 ) -> windows_core::Result<()>
28528 where
28529 P0: windows_core::Param<IMimeMessageTree>,
28530 {
28531 unsafe {
28532 (windows_core::Interface::vtable(self).EncodeBody)(
28533 windows_core::Interface::as_raw(self),
28534 ptree.param().abi(),
28535 hencoderoot as _,
28536 dwflags,
28537 )
28538 .ok()
28539 }
28540 }
28541 pub unsafe fn DecodeMessage<P0>(&self, ptree: P0, dwflags: u32) -> windows_core::Result<()>
28542 where
28543 P0: windows_core::Param<IMimeMessageTree>,
28544 {
28545 unsafe {
28546 (windows_core::Interface::vtable(self).DecodeMessage)(
28547 windows_core::Interface::as_raw(self),
28548 ptree.param().abi(),
28549 dwflags,
28550 )
28551 .ok()
28552 }
28553 }
28554 pub unsafe fn DecodeBody<P0>(
28555 &self,
28556 ptree: P0,
28557 hdecoderoot: *mut HBODY__,
28558 dwflags: u32,
28559 ) -> windows_core::Result<()>
28560 where
28561 P0: windows_core::Param<IMimeMessageTree>,
28562 {
28563 unsafe {
28564 (windows_core::Interface::vtable(self).DecodeBody)(
28565 windows_core::Interface::as_raw(self),
28566 ptree.param().abi(),
28567 hdecoderoot as _,
28568 dwflags,
28569 )
28570 .ok()
28571 }
28572 }
28573 pub unsafe fn EnumCertificates(
28574 &self,
28575 hc: *mut core::ffi::c_void,
28576 dwusage: u32,
28577 pprev: *mut windows::Win32::Security::Cryptography::CERT_CONTEXT,
28578 ppcert: *mut *mut windows::Win32::Security::Cryptography::CERT_CONTEXT,
28579 ) -> windows_core::Result<()> {
28580 unsafe {
28581 (windows_core::Interface::vtable(self).EnumCertificates)(
28582 windows_core::Interface::as_raw(self),
28583 hc as _,
28584 dwusage,
28585 pprev as _,
28586 ppcert as _,
28587 )
28588 .ok()
28589 }
28590 }
28591 pub unsafe fn GetCertificateName(
28592 &self,
28593 px509cert: *const windows::Win32::Security::Cryptography::CERT_CONTEXT,
28594 cn: CERTNAMETYPE,
28595 ppszname: *mut windows_core::PSTR,
28596 ) -> windows_core::Result<()> {
28597 unsafe {
28598 (windows_core::Interface::vtable(self).GetCertificateName)(
28599 windows_core::Interface::as_raw(self),
28600 px509cert,
28601 cn,
28602 ppszname as _,
28603 )
28604 .ok()
28605 }
28606 }
28607 pub unsafe fn GetMessageType<P1>(
28608 &self,
28609 hwndparent: windows::Win32::Foundation::HWND,
28610 pbody: P1,
28611 pdwsectype: *mut u32,
28612 ) -> windows_core::Result<()>
28613 where
28614 P1: windows_core::Param<IMimeBody>,
28615 {
28616 unsafe {
28617 (windows_core::Interface::vtable(self).GetMessageType)(
28618 windows_core::Interface::as_raw(self),
28619 hwndparent,
28620 pbody.param().abi(),
28621 pdwsectype as _,
28622 )
28623 .ok()
28624 }
28625 }
28626 pub unsafe fn GetCertData(
28627 &self,
28628 px509cert: *const windows::Win32::Security::Cryptography::CERT_CONTEXT,
28629 dataid: CERTDATAID,
28630 pvalue: *mut windows::Win32::System::Com::StructuredStorage::PROPVARIANT,
28631 ) -> windows_core::Result<()> {
28632 unsafe {
28633 (windows_core::Interface::vtable(self).GetCertData)(
28634 windows_core::Interface::as_raw(self),
28635 px509cert,
28636 dataid,
28637 core::mem::transmute(pvalue),
28638 )
28639 .ok()
28640 }
28641 }
28642}
28643#[repr(C)]
28644#[doc(hidden)]
28645pub struct IMimeSecurity_Vtbl {
28646 pub base__: windows_core::IUnknown_Vtbl,
28647 pub InitNew: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
28648 pub CheckInit: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
28649 pub EncodeMessage: unsafe extern "system" fn(
28650 *mut core::ffi::c_void,
28651 *mut core::ffi::c_void,
28652 u32,
28653 ) -> windows_core::HRESULT,
28654 pub EncodeBody: unsafe extern "system" fn(
28655 *mut core::ffi::c_void,
28656 *mut core::ffi::c_void,
28657 *mut HBODY__,
28658 u32,
28659 ) -> windows_core::HRESULT,
28660 pub DecodeMessage: unsafe extern "system" fn(
28661 *mut core::ffi::c_void,
28662 *mut core::ffi::c_void,
28663 u32,
28664 ) -> windows_core::HRESULT,
28665 pub DecodeBody: unsafe extern "system" fn(
28666 *mut core::ffi::c_void,
28667 *mut core::ffi::c_void,
28668 *mut HBODY__,
28669 u32,
28670 ) -> windows_core::HRESULT,
28671 pub EnumCertificates: unsafe extern "system" fn(
28672 *mut core::ffi::c_void,
28673 *mut core::ffi::c_void,
28674 u32,
28675 *mut windows::Win32::Security::Cryptography::CERT_CONTEXT,
28676 *mut *mut windows::Win32::Security::Cryptography::CERT_CONTEXT,
28677 ) -> windows_core::HRESULT,
28678 pub GetCertificateName: unsafe extern "system" fn(
28679 *mut core::ffi::c_void,
28680 *const windows::Win32::Security::Cryptography::CERT_CONTEXT,
28681 CERTNAMETYPE,
28682 *mut windows_core::PSTR,
28683 ) -> windows_core::HRESULT,
28684 pub GetMessageType: unsafe extern "system" fn(
28685 *mut core::ffi::c_void,
28686 windows::Win32::Foundation::HWND,
28687 *mut core::ffi::c_void,
28688 *mut u32,
28689 ) -> windows_core::HRESULT,
28690 pub GetCertData: unsafe extern "system" fn(
28691 *mut core::ffi::c_void,
28692 *const windows::Win32::Security::Cryptography::CERT_CONTEXT,
28693 CERTDATAID,
28694 *mut windows::Win32::System::Com::StructuredStorage::PROPVARIANT,
28695 ) -> windows_core::HRESULT,
28696}
28697pub trait IMimeSecurity_Impl: windows_core::IUnknownImpl {
28698 fn InitNew(&self) -> windows_core::Result<()>;
28699 fn CheckInit(&self) -> windows_core::Result<()>;
28700 fn EncodeMessage(
28701 &self,
28702 ptree: windows_core::Ref<IMimeMessageTree>,
28703 dwflags: u32,
28704 ) -> windows_core::Result<()>;
28705 fn EncodeBody(
28706 &self,
28707 ptree: windows_core::Ref<IMimeMessageTree>,
28708 hencoderoot: *mut HBODY__,
28709 dwflags: u32,
28710 ) -> windows_core::Result<()>;
28711 fn DecodeMessage(
28712 &self,
28713 ptree: windows_core::Ref<IMimeMessageTree>,
28714 dwflags: u32,
28715 ) -> windows_core::Result<()>;
28716 fn DecodeBody(
28717 &self,
28718 ptree: windows_core::Ref<IMimeMessageTree>,
28719 hdecoderoot: *mut HBODY__,
28720 dwflags: u32,
28721 ) -> windows_core::Result<()>;
28722 fn EnumCertificates(
28723 &self,
28724 hc: *mut core::ffi::c_void,
28725 dwusage: u32,
28726 pprev: *mut windows::Win32::Security::Cryptography::CERT_CONTEXT,
28727 ppcert: *mut *mut windows::Win32::Security::Cryptography::CERT_CONTEXT,
28728 ) -> windows_core::Result<()>;
28729 fn GetCertificateName(
28730 &self,
28731 px509cert: *const windows::Win32::Security::Cryptography::CERT_CONTEXT,
28732 cn: CERTNAMETYPE,
28733 ppszname: *mut windows_core::PSTR,
28734 ) -> windows_core::Result<()>;
28735 fn GetMessageType(
28736 &self,
28737 hwndparent: windows::Win32::Foundation::HWND,
28738 pbody: windows_core::Ref<IMimeBody>,
28739 pdwsectype: *mut u32,
28740 ) -> windows_core::Result<()>;
28741 fn GetCertData(
28742 &self,
28743 px509cert: *const windows::Win32::Security::Cryptography::CERT_CONTEXT,
28744 dataid: CERTDATAID,
28745 pvalue: *mut windows::Win32::System::Com::StructuredStorage::PROPVARIANT,
28746 ) -> windows_core::Result<()>;
28747}
28748impl IMimeSecurity_Vtbl {
28749 pub const fn new<Identity: IMimeSecurity_Impl, const OFFSET: isize>() -> Self {
28750 unsafe extern "system" fn InitNew<Identity: IMimeSecurity_Impl, const OFFSET: isize>(
28751 this: *mut core::ffi::c_void,
28752 ) -> windows_core::HRESULT {
28753 unsafe {
28754 let this: &Identity =
28755 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
28756 IMimeSecurity_Impl::InitNew(this).into()
28757 }
28758 }
28759 unsafe extern "system" fn CheckInit<Identity: IMimeSecurity_Impl, const OFFSET: isize>(
28760 this: *mut core::ffi::c_void,
28761 ) -> windows_core::HRESULT {
28762 unsafe {
28763 let this: &Identity =
28764 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
28765 IMimeSecurity_Impl::CheckInit(this).into()
28766 }
28767 }
28768 unsafe extern "system" fn EncodeMessage<
28769 Identity: IMimeSecurity_Impl,
28770 const OFFSET: isize,
28771 >(
28772 this: *mut core::ffi::c_void,
28773 ptree: *mut core::ffi::c_void,
28774 dwflags: u32,
28775 ) -> windows_core::HRESULT {
28776 unsafe {
28777 let this: &Identity =
28778 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
28779 IMimeSecurity_Impl::EncodeMessage(
28780 this,
28781 core::mem::transmute_copy(&ptree),
28782 core::mem::transmute_copy(&dwflags),
28783 )
28784 .into()
28785 }
28786 }
28787 unsafe extern "system" fn EncodeBody<Identity: IMimeSecurity_Impl, const OFFSET: isize>(
28788 this: *mut core::ffi::c_void,
28789 ptree: *mut core::ffi::c_void,
28790 hencoderoot: *mut HBODY__,
28791 dwflags: u32,
28792 ) -> windows_core::HRESULT {
28793 unsafe {
28794 let this: &Identity =
28795 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
28796 IMimeSecurity_Impl::EncodeBody(
28797 this,
28798 core::mem::transmute_copy(&ptree),
28799 core::mem::transmute_copy(&hencoderoot),
28800 core::mem::transmute_copy(&dwflags),
28801 )
28802 .into()
28803 }
28804 }
28805 unsafe extern "system" fn DecodeMessage<
28806 Identity: IMimeSecurity_Impl,
28807 const OFFSET: isize,
28808 >(
28809 this: *mut core::ffi::c_void,
28810 ptree: *mut core::ffi::c_void,
28811 dwflags: u32,
28812 ) -> windows_core::HRESULT {
28813 unsafe {
28814 let this: &Identity =
28815 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
28816 IMimeSecurity_Impl::DecodeMessage(
28817 this,
28818 core::mem::transmute_copy(&ptree),
28819 core::mem::transmute_copy(&dwflags),
28820 )
28821 .into()
28822 }
28823 }
28824 unsafe extern "system" fn DecodeBody<Identity: IMimeSecurity_Impl, const OFFSET: isize>(
28825 this: *mut core::ffi::c_void,
28826 ptree: *mut core::ffi::c_void,
28827 hdecoderoot: *mut HBODY__,
28828 dwflags: u32,
28829 ) -> windows_core::HRESULT {
28830 unsafe {
28831 let this: &Identity =
28832 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
28833 IMimeSecurity_Impl::DecodeBody(
28834 this,
28835 core::mem::transmute_copy(&ptree),
28836 core::mem::transmute_copy(&hdecoderoot),
28837 core::mem::transmute_copy(&dwflags),
28838 )
28839 .into()
28840 }
28841 }
28842 unsafe extern "system" fn EnumCertificates<
28843 Identity: IMimeSecurity_Impl,
28844 const OFFSET: isize,
28845 >(
28846 this: *mut core::ffi::c_void,
28847 hc: *mut core::ffi::c_void,
28848 dwusage: u32,
28849 pprev: *mut windows::Win32::Security::Cryptography::CERT_CONTEXT,
28850 ppcert: *mut *mut windows::Win32::Security::Cryptography::CERT_CONTEXT,
28851 ) -> windows_core::HRESULT {
28852 unsafe {
28853 let this: &Identity =
28854 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
28855 IMimeSecurity_Impl::EnumCertificates(
28856 this,
28857 core::mem::transmute_copy(&hc),
28858 core::mem::transmute_copy(&dwusage),
28859 core::mem::transmute_copy(&pprev),
28860 core::mem::transmute_copy(&ppcert),
28861 )
28862 .into()
28863 }
28864 }
28865 unsafe extern "system" fn GetCertificateName<
28866 Identity: IMimeSecurity_Impl,
28867 const OFFSET: isize,
28868 >(
28869 this: *mut core::ffi::c_void,
28870 px509cert: *const windows::Win32::Security::Cryptography::CERT_CONTEXT,
28871 cn: CERTNAMETYPE,
28872 ppszname: *mut windows_core::PSTR,
28873 ) -> windows_core::HRESULT {
28874 unsafe {
28875 let this: &Identity =
28876 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
28877 IMimeSecurity_Impl::GetCertificateName(
28878 this,
28879 core::mem::transmute_copy(&px509cert),
28880 core::mem::transmute_copy(&cn),
28881 core::mem::transmute_copy(&ppszname),
28882 )
28883 .into()
28884 }
28885 }
28886 unsafe extern "system" fn GetMessageType<
28887 Identity: IMimeSecurity_Impl,
28888 const OFFSET: isize,
28889 >(
28890 this: *mut core::ffi::c_void,
28891 hwndparent: windows::Win32::Foundation::HWND,
28892 pbody: *mut core::ffi::c_void,
28893 pdwsectype: *mut u32,
28894 ) -> windows_core::HRESULT {
28895 unsafe {
28896 let this: &Identity =
28897 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
28898 IMimeSecurity_Impl::GetMessageType(
28899 this,
28900 core::mem::transmute_copy(&hwndparent),
28901 core::mem::transmute_copy(&pbody),
28902 core::mem::transmute_copy(&pdwsectype),
28903 )
28904 .into()
28905 }
28906 }
28907 unsafe extern "system" fn GetCertData<Identity: IMimeSecurity_Impl, const OFFSET: isize>(
28908 this: *mut core::ffi::c_void,
28909 px509cert: *const windows::Win32::Security::Cryptography::CERT_CONTEXT,
28910 dataid: CERTDATAID,
28911 pvalue: *mut windows::Win32::System::Com::StructuredStorage::PROPVARIANT,
28912 ) -> windows_core::HRESULT {
28913 unsafe {
28914 let this: &Identity =
28915 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
28916 IMimeSecurity_Impl::GetCertData(
28917 this,
28918 core::mem::transmute_copy(&px509cert),
28919 core::mem::transmute_copy(&dataid),
28920 core::mem::transmute_copy(&pvalue),
28921 )
28922 .into()
28923 }
28924 }
28925 Self {
28926 base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
28927 InitNew: InitNew::<Identity, OFFSET>,
28928 CheckInit: CheckInit::<Identity, OFFSET>,
28929 EncodeMessage: EncodeMessage::<Identity, OFFSET>,
28930 EncodeBody: EncodeBody::<Identity, OFFSET>,
28931 DecodeMessage: DecodeMessage::<Identity, OFFSET>,
28932 DecodeBody: DecodeBody::<Identity, OFFSET>,
28933 EnumCertificates: EnumCertificates::<Identity, OFFSET>,
28934 GetCertificateName: GetCertificateName::<Identity, OFFSET>,
28935 GetMessageType: GetMessageType::<Identity, OFFSET>,
28936 GetCertData: GetCertData::<Identity, OFFSET>,
28937 }
28938 }
28939 pub fn matches(iid: &windows_core::GUID) -> bool {
28940 iid == &<IMimeSecurity as windows_core::Interface>::IID
28941 }
28942}
28943impl windows_core::RuntimeName for IMimeSecurity {}
28944windows_core::imp::define_interface!(
28945 IMimeWebDocument,
28946 IMimeWebDocument_Vtbl,
28947 0xee519f11_851a_11d0_825c_00c04fd85ab4
28948);
28949windows_core::imp::interface_hierarchy!(IMimeWebDocument, windows_core::IUnknown);
28950impl IMimeWebDocument {
28951 pub unsafe fn GetURL(&self, ppszurl: *mut windows_core::PSTR) -> windows_core::Result<()> {
28952 unsafe {
28953 (windows_core::Interface::vtable(self).GetURL)(
28954 windows_core::Interface::as_raw(self),
28955 ppszurl as _,
28956 )
28957 .ok()
28958 }
28959 }
28960 pub unsafe fn BindToStorage(
28961 &self,
28962 riid: *const windows_core::GUID,
28963 ppvobject: *mut *mut core::ffi::c_void,
28964 ) -> windows_core::Result<()> {
28965 unsafe {
28966 (windows_core::Interface::vtable(self).BindToStorage)(
28967 windows_core::Interface::as_raw(self),
28968 riid,
28969 ppvobject as _,
28970 )
28971 .ok()
28972 }
28973 }
28974}
28975#[repr(C)]
28976#[doc(hidden)]
28977pub struct IMimeWebDocument_Vtbl {
28978 pub base__: windows_core::IUnknown_Vtbl,
28979 pub GetURL: unsafe extern "system" fn(
28980 *mut core::ffi::c_void,
28981 *mut windows_core::PSTR,
28982 ) -> windows_core::HRESULT,
28983 pub BindToStorage: unsafe extern "system" fn(
28984 *mut core::ffi::c_void,
28985 *const windows_core::GUID,
28986 *mut *mut core::ffi::c_void,
28987 ) -> windows_core::HRESULT,
28988}
28989pub trait IMimeWebDocument_Impl: windows_core::IUnknownImpl {
28990 fn GetURL(&self, ppszurl: *mut windows_core::PSTR) -> windows_core::Result<()>;
28991 fn BindToStorage(
28992 &self,
28993 riid: *const windows_core::GUID,
28994 ppvobject: *mut *mut core::ffi::c_void,
28995 ) -> windows_core::Result<()>;
28996}
28997impl IMimeWebDocument_Vtbl {
28998 pub const fn new<Identity: IMimeWebDocument_Impl, const OFFSET: isize>() -> Self {
28999 unsafe extern "system" fn GetURL<Identity: IMimeWebDocument_Impl, const OFFSET: isize>(
29000 this: *mut core::ffi::c_void,
29001 ppszurl: *mut windows_core::PSTR,
29002 ) -> windows_core::HRESULT {
29003 unsafe {
29004 let this: &Identity =
29005 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
29006 IMimeWebDocument_Impl::GetURL(this, core::mem::transmute_copy(&ppszurl)).into()
29007 }
29008 }
29009 unsafe extern "system" fn BindToStorage<
29010 Identity: IMimeWebDocument_Impl,
29011 const OFFSET: isize,
29012 >(
29013 this: *mut core::ffi::c_void,
29014 riid: *const windows_core::GUID,
29015 ppvobject: *mut *mut core::ffi::c_void,
29016 ) -> windows_core::HRESULT {
29017 unsafe {
29018 let this: &Identity =
29019 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
29020 IMimeWebDocument_Impl::BindToStorage(
29021 this,
29022 core::mem::transmute_copy(&riid),
29023 core::mem::transmute_copy(&ppvobject),
29024 )
29025 .into()
29026 }
29027 }
29028 Self {
29029 base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
29030 GetURL: GetURL::<Identity, OFFSET>,
29031 BindToStorage: BindToStorage::<Identity, OFFSET>,
29032 }
29033 }
29034 pub fn matches(iid: &windows_core::GUID) -> bool {
29035 iid == &<IMimeWebDocument as windows_core::Interface>::IID
29036 }
29037}
29038impl windows_core::RuntimeName for IMimeWebDocument {}
29039windows_core::imp::define_interface!(
29040 IMsgServiceAdmin,
29041 IMsgServiceAdmin_Vtbl,
29042 0x0002031d_0000_0000_c000_000000000046
29043);
29044windows_core::imp::interface_hierarchy!(IMsgServiceAdmin, windows_core::IUnknown);
29045impl IMsgServiceAdmin {
29046 pub unsafe fn GetLastError(
29047 &self,
29048 hresult: windows_core::HRESULT,
29049 ulflags: u32,
29050 lppmapierror: *mut *mut MAPIERROR,
29051 ) -> windows_core::Result<()> {
29052 unsafe {
29053 (windows_core::Interface::vtable(self).GetLastError)(
29054 windows_core::Interface::as_raw(self),
29055 hresult,
29056 ulflags,
29057 lppmapierror as _,
29058 )
29059 .ok()
29060 }
29061 }
29062 pub unsafe fn GetMsgServiceTable(&self, ulflags: u32) -> windows_core::Result<IMAPITable> {
29063 unsafe {
29064 let mut result__ = core::mem::zeroed();
29065 (windows_core::Interface::vtable(self).GetMsgServiceTable)(
29066 windows_core::Interface::as_raw(self),
29067 ulflags,
29068 &mut result__,
29069 )
29070 .and_then(|| windows_core::Type::from_abi(result__))
29071 }
29072 }
29073 pub unsafe fn CreateMsgService(
29074 &self,
29075 lpszservice: *mut i8,
29076 lpszdisplayname: *mut i8,
29077 uluiparam: usize,
29078 ulflags: u32,
29079 ) -> windows_core::Result<()> {
29080 unsafe {
29081 (windows_core::Interface::vtable(self).CreateMsgService)(
29082 windows_core::Interface::as_raw(self),
29083 lpszservice as _,
29084 lpszdisplayname as _,
29085 uluiparam,
29086 ulflags,
29087 )
29088 .ok()
29089 }
29090 }
29091 pub unsafe fn DeleteMsgService(&self, lpuid: *mut MAPIUID) -> windows_core::Result<()> {
29092 unsafe {
29093 (windows_core::Interface::vtable(self).DeleteMsgService)(
29094 windows_core::Interface::as_raw(self),
29095 lpuid as _,
29096 )
29097 .ok()
29098 }
29099 }
29100 pub unsafe fn CopyMsgService(
29101 &self,
29102 lpuid: *mut MAPIUID,
29103 lpszdisplayname: *mut i8,
29104 lpinterfacetocopy: *mut windows_core::GUID,
29105 lpinterfacedst: *mut windows_core::GUID,
29106 lpobjectdst: *mut core::ffi::c_void,
29107 uluiparam: usize,
29108 ulflags: u32,
29109 ) -> windows_core::Result<()> {
29110 unsafe {
29111 (windows_core::Interface::vtable(self).CopyMsgService)(
29112 windows_core::Interface::as_raw(self),
29113 lpuid as _,
29114 lpszdisplayname as _,
29115 lpinterfacetocopy as _,
29116 lpinterfacedst as _,
29117 lpobjectdst as _,
29118 uluiparam,
29119 ulflags,
29120 )
29121 .ok()
29122 }
29123 }
29124 pub unsafe fn RenameMsgService(
29125 &self,
29126 lpuid: *mut MAPIUID,
29127 ulflags: u32,
29128 lpszdisplayname: *mut i8,
29129 ) -> windows_core::Result<()> {
29130 unsafe {
29131 (windows_core::Interface::vtable(self).RenameMsgService)(
29132 windows_core::Interface::as_raw(self),
29133 lpuid as _,
29134 ulflags,
29135 lpszdisplayname as _,
29136 )
29137 .ok()
29138 }
29139 }
29140 pub unsafe fn ConfigureMsgService(
29141 &self,
29142 lpuid: *mut MAPIUID,
29143 uluiparam: usize,
29144 ulflags: u32,
29145 cvalues: u32,
29146 lpprops: *mut SPropValue,
29147 ) -> windows_core::Result<()> {
29148 unsafe {
29149 (windows_core::Interface::vtable(self).ConfigureMsgService)(
29150 windows_core::Interface::as_raw(self),
29151 lpuid as _,
29152 uluiparam,
29153 ulflags,
29154 cvalues,
29155 lpprops as _,
29156 )
29157 .ok()
29158 }
29159 }
29160 pub unsafe fn OpenProfileSection(
29161 &self,
29162 lpuid: *mut MAPIUID,
29163 lpinterface: *mut windows_core::GUID,
29164 ulflags: u32,
29165 lppprofsect: *mut Option<IProfSect>,
29166 ) -> windows_core::Result<()> {
29167 unsafe {
29168 (windows_core::Interface::vtable(self).OpenProfileSection)(
29169 windows_core::Interface::as_raw(self),
29170 lpuid as _,
29171 lpinterface as _,
29172 ulflags,
29173 core::mem::transmute(lppprofsect),
29174 )
29175 .ok()
29176 }
29177 }
29178 pub unsafe fn MsgServiceTransportOrder(
29179 &self,
29180 cuid: u32,
29181 lpuidlist: *mut MAPIUID,
29182 ulflags: u32,
29183 ) -> windows_core::Result<()> {
29184 unsafe {
29185 (windows_core::Interface::vtable(self).MsgServiceTransportOrder)(
29186 windows_core::Interface::as_raw(self),
29187 cuid,
29188 lpuidlist as _,
29189 ulflags,
29190 )
29191 .ok()
29192 }
29193 }
29194 pub unsafe fn AdminProviders(
29195 &self,
29196 lpuid: *mut MAPIUID,
29197 ulflags: u32,
29198 lppprovideradmin: *mut Option<IProviderAdmin>,
29199 ) -> windows_core::Result<()> {
29200 unsafe {
29201 (windows_core::Interface::vtable(self).AdminProviders)(
29202 windows_core::Interface::as_raw(self),
29203 lpuid as _,
29204 ulflags,
29205 core::mem::transmute(lppprovideradmin),
29206 )
29207 .ok()
29208 }
29209 }
29210 pub unsafe fn SetPrimaryIdentity(
29211 &self,
29212 lpuid: *mut MAPIUID,
29213 ulflags: u32,
29214 ) -> windows_core::Result<()> {
29215 unsafe {
29216 (windows_core::Interface::vtable(self).SetPrimaryIdentity)(
29217 windows_core::Interface::as_raw(self),
29218 lpuid as _,
29219 ulflags,
29220 )
29221 .ok()
29222 }
29223 }
29224 pub unsafe fn GetProviderTable(&self, ulflags: u32) -> windows_core::Result<IMAPITable> {
29225 unsafe {
29226 let mut result__ = core::mem::zeroed();
29227 (windows_core::Interface::vtable(self).GetProviderTable)(
29228 windows_core::Interface::as_raw(self),
29229 ulflags,
29230 &mut result__,
29231 )
29232 .and_then(|| windows_core::Type::from_abi(result__))
29233 }
29234 }
29235}
29236#[repr(C)]
29237#[doc(hidden)]
29238pub struct IMsgServiceAdmin_Vtbl {
29239 pub base__: windows_core::IUnknown_Vtbl,
29240 pub GetLastError: unsafe extern "system" fn(
29241 *mut core::ffi::c_void,
29242 windows_core::HRESULT,
29243 u32,
29244 *mut *mut MAPIERROR,
29245 ) -> windows_core::HRESULT,
29246 pub GetMsgServiceTable: unsafe extern "system" fn(
29247 *mut core::ffi::c_void,
29248 u32,
29249 *mut *mut core::ffi::c_void,
29250 ) -> windows_core::HRESULT,
29251 pub CreateMsgService: unsafe extern "system" fn(
29252 *mut core::ffi::c_void,
29253 *mut i8,
29254 *mut i8,
29255 usize,
29256 u32,
29257 ) -> windows_core::HRESULT,
29258 pub DeleteMsgService:
29259 unsafe extern "system" fn(*mut core::ffi::c_void, *mut MAPIUID) -> windows_core::HRESULT,
29260 pub CopyMsgService: unsafe extern "system" fn(
29261 *mut core::ffi::c_void,
29262 *mut MAPIUID,
29263 *mut i8,
29264 *mut windows_core::GUID,
29265 *mut windows_core::GUID,
29266 *mut core::ffi::c_void,
29267 usize,
29268 u32,
29269 ) -> windows_core::HRESULT,
29270 pub RenameMsgService: unsafe extern "system" fn(
29271 *mut core::ffi::c_void,
29272 *mut MAPIUID,
29273 u32,
29274 *mut i8,
29275 ) -> windows_core::HRESULT,
29276 pub ConfigureMsgService: unsafe extern "system" fn(
29277 *mut core::ffi::c_void,
29278 *mut MAPIUID,
29279 usize,
29280 u32,
29281 u32,
29282 *mut SPropValue,
29283 ) -> windows_core::HRESULT,
29284 pub OpenProfileSection: unsafe extern "system" fn(
29285 *mut core::ffi::c_void,
29286 *mut MAPIUID,
29287 *mut windows_core::GUID,
29288 u32,
29289 *mut *mut core::ffi::c_void,
29290 ) -> windows_core::HRESULT,
29291 pub MsgServiceTransportOrder: unsafe extern "system" fn(
29292 *mut core::ffi::c_void,
29293 u32,
29294 *mut MAPIUID,
29295 u32,
29296 ) -> windows_core::HRESULT,
29297 pub AdminProviders: unsafe extern "system" fn(
29298 *mut core::ffi::c_void,
29299 *mut MAPIUID,
29300 u32,
29301 *mut *mut core::ffi::c_void,
29302 ) -> windows_core::HRESULT,
29303 pub SetPrimaryIdentity: unsafe extern "system" fn(
29304 *mut core::ffi::c_void,
29305 *mut MAPIUID,
29306 u32,
29307 ) -> windows_core::HRESULT,
29308 pub GetProviderTable: unsafe extern "system" fn(
29309 *mut core::ffi::c_void,
29310 u32,
29311 *mut *mut core::ffi::c_void,
29312 ) -> windows_core::HRESULT,
29313}
29314pub trait IMsgServiceAdmin_Impl: windows_core::IUnknownImpl {
29315 fn GetLastError(
29316 &self,
29317 hresult: windows_core::HRESULT,
29318 ulflags: u32,
29319 lppmapierror: *mut *mut MAPIERROR,
29320 ) -> windows_core::Result<()>;
29321 fn GetMsgServiceTable(&self, ulflags: u32) -> windows_core::Result<IMAPITable>;
29322 fn CreateMsgService(
29323 &self,
29324 lpszservice: *mut i8,
29325 lpszdisplayname: *mut i8,
29326 uluiparam: usize,
29327 ulflags: u32,
29328 ) -> windows_core::Result<()>;
29329 fn DeleteMsgService(&self, lpuid: *mut MAPIUID) -> windows_core::Result<()>;
29330 fn CopyMsgService(
29331 &self,
29332 lpuid: *mut MAPIUID,
29333 lpszdisplayname: *mut i8,
29334 lpinterfacetocopy: *mut windows_core::GUID,
29335 lpinterfacedst: *mut windows_core::GUID,
29336 lpobjectdst: *mut core::ffi::c_void,
29337 uluiparam: usize,
29338 ulflags: u32,
29339 ) -> windows_core::Result<()>;
29340 fn RenameMsgService(
29341 &self,
29342 lpuid: *mut MAPIUID,
29343 ulflags: u32,
29344 lpszdisplayname: *mut i8,
29345 ) -> windows_core::Result<()>;
29346 fn ConfigureMsgService(
29347 &self,
29348 lpuid: *mut MAPIUID,
29349 uluiparam: usize,
29350 ulflags: u32,
29351 cvalues: u32,
29352 lpprops: *mut SPropValue,
29353 ) -> windows_core::Result<()>;
29354 fn OpenProfileSection(
29355 &self,
29356 lpuid: *mut MAPIUID,
29357 lpinterface: *mut windows_core::GUID,
29358 ulflags: u32,
29359 lppprofsect: windows_core::OutRef<IProfSect>,
29360 ) -> windows_core::Result<()>;
29361 fn MsgServiceTransportOrder(
29362 &self,
29363 cuid: u32,
29364 lpuidlist: *mut MAPIUID,
29365 ulflags: u32,
29366 ) -> windows_core::Result<()>;
29367 fn AdminProviders(
29368 &self,
29369 lpuid: *mut MAPIUID,
29370 ulflags: u32,
29371 lppprovideradmin: windows_core::OutRef<IProviderAdmin>,
29372 ) -> windows_core::Result<()>;
29373 fn SetPrimaryIdentity(&self, lpuid: *mut MAPIUID, ulflags: u32) -> windows_core::Result<()>;
29374 fn GetProviderTable(&self, ulflags: u32) -> windows_core::Result<IMAPITable>;
29375}
29376impl IMsgServiceAdmin_Vtbl {
29377 pub const fn new<Identity: IMsgServiceAdmin_Impl, const OFFSET: isize>() -> Self {
29378 unsafe extern "system" fn GetLastError<
29379 Identity: IMsgServiceAdmin_Impl,
29380 const OFFSET: isize,
29381 >(
29382 this: *mut core::ffi::c_void,
29383 hresult: windows_core::HRESULT,
29384 ulflags: u32,
29385 lppmapierror: *mut *mut MAPIERROR,
29386 ) -> windows_core::HRESULT {
29387 unsafe {
29388 let this: &Identity =
29389 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
29390 IMsgServiceAdmin_Impl::GetLastError(
29391 this,
29392 core::mem::transmute_copy(&hresult),
29393 core::mem::transmute_copy(&ulflags),
29394 core::mem::transmute_copy(&lppmapierror),
29395 )
29396 .into()
29397 }
29398 }
29399 unsafe extern "system" fn GetMsgServiceTable<
29400 Identity: IMsgServiceAdmin_Impl,
29401 const OFFSET: isize,
29402 >(
29403 this: *mut core::ffi::c_void,
29404 ulflags: u32,
29405 lpptable: *mut *mut core::ffi::c_void,
29406 ) -> windows_core::HRESULT {
29407 unsafe {
29408 let this: &Identity =
29409 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
29410 match IMsgServiceAdmin_Impl::GetMsgServiceTable(
29411 this,
29412 core::mem::transmute_copy(&ulflags),
29413 ) {
29414 Ok(ok__) => {
29415 lpptable.write(core::mem::transmute(ok__));
29416 windows_core::HRESULT(0)
29417 }
29418 Err(err) => err.into(),
29419 }
29420 }
29421 }
29422 unsafe extern "system" fn CreateMsgService<
29423 Identity: IMsgServiceAdmin_Impl,
29424 const OFFSET: isize,
29425 >(
29426 this: *mut core::ffi::c_void,
29427 lpszservice: *mut i8,
29428 lpszdisplayname: *mut i8,
29429 uluiparam: usize,
29430 ulflags: u32,
29431 ) -> windows_core::HRESULT {
29432 unsafe {
29433 let this: &Identity =
29434 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
29435 IMsgServiceAdmin_Impl::CreateMsgService(
29436 this,
29437 core::mem::transmute_copy(&lpszservice),
29438 core::mem::transmute_copy(&lpszdisplayname),
29439 core::mem::transmute_copy(&uluiparam),
29440 core::mem::transmute_copy(&ulflags),
29441 )
29442 .into()
29443 }
29444 }
29445 unsafe extern "system" fn DeleteMsgService<
29446 Identity: IMsgServiceAdmin_Impl,
29447 const OFFSET: isize,
29448 >(
29449 this: *mut core::ffi::c_void,
29450 lpuid: *mut MAPIUID,
29451 ) -> windows_core::HRESULT {
29452 unsafe {
29453 let this: &Identity =
29454 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
29455 IMsgServiceAdmin_Impl::DeleteMsgService(this, core::mem::transmute_copy(&lpuid))
29456 .into()
29457 }
29458 }
29459 unsafe extern "system" fn CopyMsgService<
29460 Identity: IMsgServiceAdmin_Impl,
29461 const OFFSET: isize,
29462 >(
29463 this: *mut core::ffi::c_void,
29464 lpuid: *mut MAPIUID,
29465 lpszdisplayname: *mut i8,
29466 lpinterfacetocopy: *mut windows_core::GUID,
29467 lpinterfacedst: *mut windows_core::GUID,
29468 lpobjectdst: *mut core::ffi::c_void,
29469 uluiparam: usize,
29470 ulflags: u32,
29471 ) -> windows_core::HRESULT {
29472 unsafe {
29473 let this: &Identity =
29474 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
29475 IMsgServiceAdmin_Impl::CopyMsgService(
29476 this,
29477 core::mem::transmute_copy(&lpuid),
29478 core::mem::transmute_copy(&lpszdisplayname),
29479 core::mem::transmute_copy(&lpinterfacetocopy),
29480 core::mem::transmute_copy(&lpinterfacedst),
29481 core::mem::transmute_copy(&lpobjectdst),
29482 core::mem::transmute_copy(&uluiparam),
29483 core::mem::transmute_copy(&ulflags),
29484 )
29485 .into()
29486 }
29487 }
29488 unsafe extern "system" fn RenameMsgService<
29489 Identity: IMsgServiceAdmin_Impl,
29490 const OFFSET: isize,
29491 >(
29492 this: *mut core::ffi::c_void,
29493 lpuid: *mut MAPIUID,
29494 ulflags: u32,
29495 lpszdisplayname: *mut i8,
29496 ) -> windows_core::HRESULT {
29497 unsafe {
29498 let this: &Identity =
29499 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
29500 IMsgServiceAdmin_Impl::RenameMsgService(
29501 this,
29502 core::mem::transmute_copy(&lpuid),
29503 core::mem::transmute_copy(&ulflags),
29504 core::mem::transmute_copy(&lpszdisplayname),
29505 )
29506 .into()
29507 }
29508 }
29509 unsafe extern "system" fn ConfigureMsgService<
29510 Identity: IMsgServiceAdmin_Impl,
29511 const OFFSET: isize,
29512 >(
29513 this: *mut core::ffi::c_void,
29514 lpuid: *mut MAPIUID,
29515 uluiparam: usize,
29516 ulflags: u32,
29517 cvalues: u32,
29518 lpprops: *mut SPropValue,
29519 ) -> windows_core::HRESULT {
29520 unsafe {
29521 let this: &Identity =
29522 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
29523 IMsgServiceAdmin_Impl::ConfigureMsgService(
29524 this,
29525 core::mem::transmute_copy(&lpuid),
29526 core::mem::transmute_copy(&uluiparam),
29527 core::mem::transmute_copy(&ulflags),
29528 core::mem::transmute_copy(&cvalues),
29529 core::mem::transmute_copy(&lpprops),
29530 )
29531 .into()
29532 }
29533 }
29534 unsafe extern "system" fn OpenProfileSection<
29535 Identity: IMsgServiceAdmin_Impl,
29536 const OFFSET: isize,
29537 >(
29538 this: *mut core::ffi::c_void,
29539 lpuid: *mut MAPIUID,
29540 lpinterface: *mut windows_core::GUID,
29541 ulflags: u32,
29542 lppprofsect: *mut *mut core::ffi::c_void,
29543 ) -> windows_core::HRESULT {
29544 unsafe {
29545 let this: &Identity =
29546 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
29547 IMsgServiceAdmin_Impl::OpenProfileSection(
29548 this,
29549 core::mem::transmute_copy(&lpuid),
29550 core::mem::transmute_copy(&lpinterface),
29551 core::mem::transmute_copy(&ulflags),
29552 core::mem::transmute_copy(&lppprofsect),
29553 )
29554 .into()
29555 }
29556 }
29557 unsafe extern "system" fn MsgServiceTransportOrder<
29558 Identity: IMsgServiceAdmin_Impl,
29559 const OFFSET: isize,
29560 >(
29561 this: *mut core::ffi::c_void,
29562 cuid: u32,
29563 lpuidlist: *mut MAPIUID,
29564 ulflags: u32,
29565 ) -> windows_core::HRESULT {
29566 unsafe {
29567 let this: &Identity =
29568 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
29569 IMsgServiceAdmin_Impl::MsgServiceTransportOrder(
29570 this,
29571 core::mem::transmute_copy(&cuid),
29572 core::mem::transmute_copy(&lpuidlist),
29573 core::mem::transmute_copy(&ulflags),
29574 )
29575 .into()
29576 }
29577 }
29578 unsafe extern "system" fn AdminProviders<
29579 Identity: IMsgServiceAdmin_Impl,
29580 const OFFSET: isize,
29581 >(
29582 this: *mut core::ffi::c_void,
29583 lpuid: *mut MAPIUID,
29584 ulflags: u32,
29585 lppprovideradmin: *mut *mut core::ffi::c_void,
29586 ) -> windows_core::HRESULT {
29587 unsafe {
29588 let this: &Identity =
29589 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
29590 IMsgServiceAdmin_Impl::AdminProviders(
29591 this,
29592 core::mem::transmute_copy(&lpuid),
29593 core::mem::transmute_copy(&ulflags),
29594 core::mem::transmute_copy(&lppprovideradmin),
29595 )
29596 .into()
29597 }
29598 }
29599 unsafe extern "system" fn SetPrimaryIdentity<
29600 Identity: IMsgServiceAdmin_Impl,
29601 const OFFSET: isize,
29602 >(
29603 this: *mut core::ffi::c_void,
29604 lpuid: *mut MAPIUID,
29605 ulflags: u32,
29606 ) -> windows_core::HRESULT {
29607 unsafe {
29608 let this: &Identity =
29609 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
29610 IMsgServiceAdmin_Impl::SetPrimaryIdentity(
29611 this,
29612 core::mem::transmute_copy(&lpuid),
29613 core::mem::transmute_copy(&ulflags),
29614 )
29615 .into()
29616 }
29617 }
29618 unsafe extern "system" fn GetProviderTable<
29619 Identity: IMsgServiceAdmin_Impl,
29620 const OFFSET: isize,
29621 >(
29622 this: *mut core::ffi::c_void,
29623 ulflags: u32,
29624 lpptable: *mut *mut core::ffi::c_void,
29625 ) -> windows_core::HRESULT {
29626 unsafe {
29627 let this: &Identity =
29628 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
29629 match IMsgServiceAdmin_Impl::GetProviderTable(
29630 this,
29631 core::mem::transmute_copy(&ulflags),
29632 ) {
29633 Ok(ok__) => {
29634 lpptable.write(core::mem::transmute(ok__));
29635 windows_core::HRESULT(0)
29636 }
29637 Err(err) => err.into(),
29638 }
29639 }
29640 }
29641 Self {
29642 base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
29643 GetLastError: GetLastError::<Identity, OFFSET>,
29644 GetMsgServiceTable: GetMsgServiceTable::<Identity, OFFSET>,
29645 CreateMsgService: CreateMsgService::<Identity, OFFSET>,
29646 DeleteMsgService: DeleteMsgService::<Identity, OFFSET>,
29647 CopyMsgService: CopyMsgService::<Identity, OFFSET>,
29648 RenameMsgService: RenameMsgService::<Identity, OFFSET>,
29649 ConfigureMsgService: ConfigureMsgService::<Identity, OFFSET>,
29650 OpenProfileSection: OpenProfileSection::<Identity, OFFSET>,
29651 MsgServiceTransportOrder: MsgServiceTransportOrder::<Identity, OFFSET>,
29652 AdminProviders: AdminProviders::<Identity, OFFSET>,
29653 SetPrimaryIdentity: SetPrimaryIdentity::<Identity, OFFSET>,
29654 GetProviderTable: GetProviderTable::<Identity, OFFSET>,
29655 }
29656 }
29657 pub fn matches(iid: &windows_core::GUID) -> bool {
29658 iid == &<IMsgServiceAdmin as windows_core::Interface>::IID
29659 }
29660}
29661impl windows_core::RuntimeName for IMsgServiceAdmin {}
29662windows_core::imp::define_interface!(
29663 IMsgServiceAdmin2,
29664 IMsgServiceAdmin2_Vtbl,
29665 0x00020387_0000_0000_c000_000000000046
29666);
29667windows_core::imp::interface_hierarchy!(IMsgServiceAdmin2, windows_core::IUnknown);
29668impl IMsgServiceAdmin2 {
29669 pub unsafe fn GetLastError(
29670 &self,
29671 hresult: windows_core::HRESULT,
29672 ulflags: u32,
29673 lppmapierror: *mut *mut MAPIERROR,
29674 ) -> windows_core::Result<()> {
29675 unsafe {
29676 (windows_core::Interface::vtable(self).GetLastError)(
29677 windows_core::Interface::as_raw(self),
29678 hresult,
29679 ulflags,
29680 lppmapierror as _,
29681 )
29682 .ok()
29683 }
29684 }
29685 pub unsafe fn GetMsgServiceTable(&self, ulflags: u32) -> windows_core::Result<IMAPITable> {
29686 unsafe {
29687 let mut result__ = core::mem::zeroed();
29688 (windows_core::Interface::vtable(self).GetMsgServiceTable)(
29689 windows_core::Interface::as_raw(self),
29690 ulflags,
29691 &mut result__,
29692 )
29693 .and_then(|| windows_core::Type::from_abi(result__))
29694 }
29695 }
29696 pub unsafe fn CreateMsgService(
29697 &self,
29698 lpszservice: *mut i8,
29699 lpszdisplayname: *mut i8,
29700 uluiparam: usize,
29701 ulflags: u32,
29702 ) -> windows_core::Result<()> {
29703 unsafe {
29704 (windows_core::Interface::vtable(self).CreateMsgService)(
29705 windows_core::Interface::as_raw(self),
29706 lpszservice as _,
29707 lpszdisplayname as _,
29708 uluiparam,
29709 ulflags,
29710 )
29711 .ok()
29712 }
29713 }
29714 pub unsafe fn DeleteMsgService(&self, lpuid: *mut MAPIUID) -> windows_core::Result<()> {
29715 unsafe {
29716 (windows_core::Interface::vtable(self).DeleteMsgService)(
29717 windows_core::Interface::as_raw(self),
29718 lpuid as _,
29719 )
29720 .ok()
29721 }
29722 }
29723 pub unsafe fn CopyMsgService(
29724 &self,
29725 lpuid: *mut MAPIUID,
29726 lpszdisplayname: *mut i8,
29727 lpinterfacetocopy: *mut windows_core::GUID,
29728 lpinterfacedst: *mut windows_core::GUID,
29729 lpobjectdst: *mut core::ffi::c_void,
29730 uluiparam: usize,
29731 ulflags: u32,
29732 ) -> windows_core::Result<()> {
29733 unsafe {
29734 (windows_core::Interface::vtable(self).CopyMsgService)(
29735 windows_core::Interface::as_raw(self),
29736 lpuid as _,
29737 lpszdisplayname as _,
29738 lpinterfacetocopy as _,
29739 lpinterfacedst as _,
29740 lpobjectdst as _,
29741 uluiparam,
29742 ulflags,
29743 )
29744 .ok()
29745 }
29746 }
29747 pub unsafe fn RenameMsgService(
29748 &self,
29749 lpuid: *mut MAPIUID,
29750 ulflags: u32,
29751 lpszdisplayname: *mut i8,
29752 ) -> windows_core::Result<()> {
29753 unsafe {
29754 (windows_core::Interface::vtable(self).RenameMsgService)(
29755 windows_core::Interface::as_raw(self),
29756 lpuid as _,
29757 ulflags,
29758 lpszdisplayname as _,
29759 )
29760 .ok()
29761 }
29762 }
29763 pub unsafe fn ConfigureMsgService(
29764 &self,
29765 lpuid: *mut MAPIUID,
29766 uluiparam: usize,
29767 ulflags: u32,
29768 cvalues: u32,
29769 lpprops: *mut SPropValue,
29770 ) -> windows_core::Result<()> {
29771 unsafe {
29772 (windows_core::Interface::vtable(self).ConfigureMsgService)(
29773 windows_core::Interface::as_raw(self),
29774 lpuid as _,
29775 uluiparam,
29776 ulflags,
29777 cvalues,
29778 lpprops as _,
29779 )
29780 .ok()
29781 }
29782 }
29783 pub unsafe fn OpenProfileSection(
29784 &self,
29785 lpuid: *mut MAPIUID,
29786 lpinterface: *mut windows_core::GUID,
29787 ulflags: u32,
29788 lppprofsect: *mut Option<IProfSect>,
29789 ) -> windows_core::Result<()> {
29790 unsafe {
29791 (windows_core::Interface::vtable(self).OpenProfileSection)(
29792 windows_core::Interface::as_raw(self),
29793 lpuid as _,
29794 lpinterface as _,
29795 ulflags,
29796 core::mem::transmute(lppprofsect),
29797 )
29798 .ok()
29799 }
29800 }
29801 pub unsafe fn MsgServiceTransportOrder(
29802 &self,
29803 cuid: u32,
29804 lpuidlist: *mut MAPIUID,
29805 ulflags: u32,
29806 ) -> windows_core::Result<()> {
29807 unsafe {
29808 (windows_core::Interface::vtable(self).MsgServiceTransportOrder)(
29809 windows_core::Interface::as_raw(self),
29810 cuid,
29811 lpuidlist as _,
29812 ulflags,
29813 )
29814 .ok()
29815 }
29816 }
29817 pub unsafe fn AdminProviders(
29818 &self,
29819 lpuid: *mut MAPIUID,
29820 ulflags: u32,
29821 lppprovideradmin: *mut Option<IProviderAdmin>,
29822 ) -> windows_core::Result<()> {
29823 unsafe {
29824 (windows_core::Interface::vtable(self).AdminProviders)(
29825 windows_core::Interface::as_raw(self),
29826 lpuid as _,
29827 ulflags,
29828 core::mem::transmute(lppprovideradmin),
29829 )
29830 .ok()
29831 }
29832 }
29833 pub unsafe fn SetPrimaryIdentity(
29834 &self,
29835 lpuid: *mut MAPIUID,
29836 ulflags: u32,
29837 ) -> windows_core::Result<()> {
29838 unsafe {
29839 (windows_core::Interface::vtable(self).SetPrimaryIdentity)(
29840 windows_core::Interface::as_raw(self),
29841 lpuid as _,
29842 ulflags,
29843 )
29844 .ok()
29845 }
29846 }
29847 pub unsafe fn GetProviderTable(&self, ulflags: u32) -> windows_core::Result<IMAPITable> {
29848 unsafe {
29849 let mut result__ = core::mem::zeroed();
29850 (windows_core::Interface::vtable(self).GetProviderTable)(
29851 windows_core::Interface::as_raw(self),
29852 ulflags,
29853 &mut result__,
29854 )
29855 .and_then(|| windows_core::Type::from_abi(result__))
29856 }
29857 }
29858 pub unsafe fn CreateMsgServiceEx(
29859 &self,
29860 lpszservice: *mut i8,
29861 lpszdisplayname: *mut i8,
29862 uluiparam: usize,
29863 ulflags: u32,
29864 lpuidservice: *mut MAPIUID,
29865 ) -> windows_core::Result<()> {
29866 unsafe {
29867 (windows_core::Interface::vtable(self).CreateMsgServiceEx)(
29868 windows_core::Interface::as_raw(self),
29869 lpszservice as _,
29870 lpszdisplayname as _,
29871 uluiparam,
29872 ulflags,
29873 lpuidservice as _,
29874 )
29875 .ok()
29876 }
29877 }
29878}
29879#[repr(C)]
29880#[doc(hidden)]
29881pub struct IMsgServiceAdmin2_Vtbl {
29882 pub base__: windows_core::IUnknown_Vtbl,
29883 pub GetLastError: unsafe extern "system" fn(
29884 *mut core::ffi::c_void,
29885 windows_core::HRESULT,
29886 u32,
29887 *mut *mut MAPIERROR,
29888 ) -> windows_core::HRESULT,
29889 pub GetMsgServiceTable: unsafe extern "system" fn(
29890 *mut core::ffi::c_void,
29891 u32,
29892 *mut *mut core::ffi::c_void,
29893 ) -> windows_core::HRESULT,
29894 pub CreateMsgService: unsafe extern "system" fn(
29895 *mut core::ffi::c_void,
29896 *mut i8,
29897 *mut i8,
29898 usize,
29899 u32,
29900 ) -> windows_core::HRESULT,
29901 pub DeleteMsgService:
29902 unsafe extern "system" fn(*mut core::ffi::c_void, *mut MAPIUID) -> windows_core::HRESULT,
29903 pub CopyMsgService: unsafe extern "system" fn(
29904 *mut core::ffi::c_void,
29905 *mut MAPIUID,
29906 *mut i8,
29907 *mut windows_core::GUID,
29908 *mut windows_core::GUID,
29909 *mut core::ffi::c_void,
29910 usize,
29911 u32,
29912 ) -> windows_core::HRESULT,
29913 pub RenameMsgService: unsafe extern "system" fn(
29914 *mut core::ffi::c_void,
29915 *mut MAPIUID,
29916 u32,
29917 *mut i8,
29918 ) -> windows_core::HRESULT,
29919 pub ConfigureMsgService: unsafe extern "system" fn(
29920 *mut core::ffi::c_void,
29921 *mut MAPIUID,
29922 usize,
29923 u32,
29924 u32,
29925 *mut SPropValue,
29926 ) -> windows_core::HRESULT,
29927 pub OpenProfileSection: unsafe extern "system" fn(
29928 *mut core::ffi::c_void,
29929 *mut MAPIUID,
29930 *mut windows_core::GUID,
29931 u32,
29932 *mut *mut core::ffi::c_void,
29933 ) -> windows_core::HRESULT,
29934 pub MsgServiceTransportOrder: unsafe extern "system" fn(
29935 *mut core::ffi::c_void,
29936 u32,
29937 *mut MAPIUID,
29938 u32,
29939 ) -> windows_core::HRESULT,
29940 pub AdminProviders: unsafe extern "system" fn(
29941 *mut core::ffi::c_void,
29942 *mut MAPIUID,
29943 u32,
29944 *mut *mut core::ffi::c_void,
29945 ) -> windows_core::HRESULT,
29946 pub SetPrimaryIdentity: unsafe extern "system" fn(
29947 *mut core::ffi::c_void,
29948 *mut MAPIUID,
29949 u32,
29950 ) -> windows_core::HRESULT,
29951 pub GetProviderTable: unsafe extern "system" fn(
29952 *mut core::ffi::c_void,
29953 u32,
29954 *mut *mut core::ffi::c_void,
29955 ) -> windows_core::HRESULT,
29956 pub CreateMsgServiceEx: unsafe extern "system" fn(
29957 *mut core::ffi::c_void,
29958 *mut i8,
29959 *mut i8,
29960 usize,
29961 u32,
29962 *mut MAPIUID,
29963 ) -> windows_core::HRESULT,
29964}
29965pub trait IMsgServiceAdmin2_Impl: windows_core::IUnknownImpl {
29966 fn GetLastError(
29967 &self,
29968 hresult: windows_core::HRESULT,
29969 ulflags: u32,
29970 lppmapierror: *mut *mut MAPIERROR,
29971 ) -> windows_core::Result<()>;
29972 fn GetMsgServiceTable(&self, ulflags: u32) -> windows_core::Result<IMAPITable>;
29973 fn CreateMsgService(
29974 &self,
29975 lpszservice: *mut i8,
29976 lpszdisplayname: *mut i8,
29977 uluiparam: usize,
29978 ulflags: u32,
29979 ) -> windows_core::Result<()>;
29980 fn DeleteMsgService(&self, lpuid: *mut MAPIUID) -> windows_core::Result<()>;
29981 fn CopyMsgService(
29982 &self,
29983 lpuid: *mut MAPIUID,
29984 lpszdisplayname: *mut i8,
29985 lpinterfacetocopy: *mut windows_core::GUID,
29986 lpinterfacedst: *mut windows_core::GUID,
29987 lpobjectdst: *mut core::ffi::c_void,
29988 uluiparam: usize,
29989 ulflags: u32,
29990 ) -> windows_core::Result<()>;
29991 fn RenameMsgService(
29992 &self,
29993 lpuid: *mut MAPIUID,
29994 ulflags: u32,
29995 lpszdisplayname: *mut i8,
29996 ) -> windows_core::Result<()>;
29997 fn ConfigureMsgService(
29998 &self,
29999 lpuid: *mut MAPIUID,
30000 uluiparam: usize,
30001 ulflags: u32,
30002 cvalues: u32,
30003 lpprops: *mut SPropValue,
30004 ) -> windows_core::Result<()>;
30005 fn OpenProfileSection(
30006 &self,
30007 lpuid: *mut MAPIUID,
30008 lpinterface: *mut windows_core::GUID,
30009 ulflags: u32,
30010 lppprofsect: windows_core::OutRef<IProfSect>,
30011 ) -> windows_core::Result<()>;
30012 fn MsgServiceTransportOrder(
30013 &self,
30014 cuid: u32,
30015 lpuidlist: *mut MAPIUID,
30016 ulflags: u32,
30017 ) -> windows_core::Result<()>;
30018 fn AdminProviders(
30019 &self,
30020 lpuid: *mut MAPIUID,
30021 ulflags: u32,
30022 lppprovideradmin: windows_core::OutRef<IProviderAdmin>,
30023 ) -> windows_core::Result<()>;
30024 fn SetPrimaryIdentity(&self, lpuid: *mut MAPIUID, ulflags: u32) -> windows_core::Result<()>;
30025 fn GetProviderTable(&self, ulflags: u32) -> windows_core::Result<IMAPITable>;
30026 fn CreateMsgServiceEx(
30027 &self,
30028 lpszservice: *mut i8,
30029 lpszdisplayname: *mut i8,
30030 uluiparam: usize,
30031 ulflags: u32,
30032 lpuidservice: *mut MAPIUID,
30033 ) -> windows_core::Result<()>;
30034}
30035impl IMsgServiceAdmin2_Vtbl {
30036 pub const fn new<Identity: IMsgServiceAdmin2_Impl, const OFFSET: isize>() -> Self {
30037 unsafe extern "system" fn GetLastError<
30038 Identity: IMsgServiceAdmin2_Impl,
30039 const OFFSET: isize,
30040 >(
30041 this: *mut core::ffi::c_void,
30042 hresult: windows_core::HRESULT,
30043 ulflags: u32,
30044 lppmapierror: *mut *mut MAPIERROR,
30045 ) -> windows_core::HRESULT {
30046 unsafe {
30047 let this: &Identity =
30048 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
30049 IMsgServiceAdmin2_Impl::GetLastError(
30050 this,
30051 core::mem::transmute_copy(&hresult),
30052 core::mem::transmute_copy(&ulflags),
30053 core::mem::transmute_copy(&lppmapierror),
30054 )
30055 .into()
30056 }
30057 }
30058 unsafe extern "system" fn GetMsgServiceTable<
30059 Identity: IMsgServiceAdmin2_Impl,
30060 const OFFSET: isize,
30061 >(
30062 this: *mut core::ffi::c_void,
30063 ulflags: u32,
30064 lpptable: *mut *mut core::ffi::c_void,
30065 ) -> windows_core::HRESULT {
30066 unsafe {
30067 let this: &Identity =
30068 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
30069 match IMsgServiceAdmin2_Impl::GetMsgServiceTable(
30070 this,
30071 core::mem::transmute_copy(&ulflags),
30072 ) {
30073 Ok(ok__) => {
30074 lpptable.write(core::mem::transmute(ok__));
30075 windows_core::HRESULT(0)
30076 }
30077 Err(err) => err.into(),
30078 }
30079 }
30080 }
30081 unsafe extern "system" fn CreateMsgService<
30082 Identity: IMsgServiceAdmin2_Impl,
30083 const OFFSET: isize,
30084 >(
30085 this: *mut core::ffi::c_void,
30086 lpszservice: *mut i8,
30087 lpszdisplayname: *mut i8,
30088 uluiparam: usize,
30089 ulflags: u32,
30090 ) -> windows_core::HRESULT {
30091 unsafe {
30092 let this: &Identity =
30093 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
30094 IMsgServiceAdmin2_Impl::CreateMsgService(
30095 this,
30096 core::mem::transmute_copy(&lpszservice),
30097 core::mem::transmute_copy(&lpszdisplayname),
30098 core::mem::transmute_copy(&uluiparam),
30099 core::mem::transmute_copy(&ulflags),
30100 )
30101 .into()
30102 }
30103 }
30104 unsafe extern "system" fn DeleteMsgService<
30105 Identity: IMsgServiceAdmin2_Impl,
30106 const OFFSET: isize,
30107 >(
30108 this: *mut core::ffi::c_void,
30109 lpuid: *mut MAPIUID,
30110 ) -> windows_core::HRESULT {
30111 unsafe {
30112 let this: &Identity =
30113 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
30114 IMsgServiceAdmin2_Impl::DeleteMsgService(this, core::mem::transmute_copy(&lpuid))
30115 .into()
30116 }
30117 }
30118 unsafe extern "system" fn CopyMsgService<
30119 Identity: IMsgServiceAdmin2_Impl,
30120 const OFFSET: isize,
30121 >(
30122 this: *mut core::ffi::c_void,
30123 lpuid: *mut MAPIUID,
30124 lpszdisplayname: *mut i8,
30125 lpinterfacetocopy: *mut windows_core::GUID,
30126 lpinterfacedst: *mut windows_core::GUID,
30127 lpobjectdst: *mut core::ffi::c_void,
30128 uluiparam: usize,
30129 ulflags: u32,
30130 ) -> windows_core::HRESULT {
30131 unsafe {
30132 let this: &Identity =
30133 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
30134 IMsgServiceAdmin2_Impl::CopyMsgService(
30135 this,
30136 core::mem::transmute_copy(&lpuid),
30137 core::mem::transmute_copy(&lpszdisplayname),
30138 core::mem::transmute_copy(&lpinterfacetocopy),
30139 core::mem::transmute_copy(&lpinterfacedst),
30140 core::mem::transmute_copy(&lpobjectdst),
30141 core::mem::transmute_copy(&uluiparam),
30142 core::mem::transmute_copy(&ulflags),
30143 )
30144 .into()
30145 }
30146 }
30147 unsafe extern "system" fn RenameMsgService<
30148 Identity: IMsgServiceAdmin2_Impl,
30149 const OFFSET: isize,
30150 >(
30151 this: *mut core::ffi::c_void,
30152 lpuid: *mut MAPIUID,
30153 ulflags: u32,
30154 lpszdisplayname: *mut i8,
30155 ) -> windows_core::HRESULT {
30156 unsafe {
30157 let this: &Identity =
30158 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
30159 IMsgServiceAdmin2_Impl::RenameMsgService(
30160 this,
30161 core::mem::transmute_copy(&lpuid),
30162 core::mem::transmute_copy(&ulflags),
30163 core::mem::transmute_copy(&lpszdisplayname),
30164 )
30165 .into()
30166 }
30167 }
30168 unsafe extern "system" fn ConfigureMsgService<
30169 Identity: IMsgServiceAdmin2_Impl,
30170 const OFFSET: isize,
30171 >(
30172 this: *mut core::ffi::c_void,
30173 lpuid: *mut MAPIUID,
30174 uluiparam: usize,
30175 ulflags: u32,
30176 cvalues: u32,
30177 lpprops: *mut SPropValue,
30178 ) -> windows_core::HRESULT {
30179 unsafe {
30180 let this: &Identity =
30181 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
30182 IMsgServiceAdmin2_Impl::ConfigureMsgService(
30183 this,
30184 core::mem::transmute_copy(&lpuid),
30185 core::mem::transmute_copy(&uluiparam),
30186 core::mem::transmute_copy(&ulflags),
30187 core::mem::transmute_copy(&cvalues),
30188 core::mem::transmute_copy(&lpprops),
30189 )
30190 .into()
30191 }
30192 }
30193 unsafe extern "system" fn OpenProfileSection<
30194 Identity: IMsgServiceAdmin2_Impl,
30195 const OFFSET: isize,
30196 >(
30197 this: *mut core::ffi::c_void,
30198 lpuid: *mut MAPIUID,
30199 lpinterface: *mut windows_core::GUID,
30200 ulflags: u32,
30201 lppprofsect: *mut *mut core::ffi::c_void,
30202 ) -> windows_core::HRESULT {
30203 unsafe {
30204 let this: &Identity =
30205 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
30206 IMsgServiceAdmin2_Impl::OpenProfileSection(
30207 this,
30208 core::mem::transmute_copy(&lpuid),
30209 core::mem::transmute_copy(&lpinterface),
30210 core::mem::transmute_copy(&ulflags),
30211 core::mem::transmute_copy(&lppprofsect),
30212 )
30213 .into()
30214 }
30215 }
30216 unsafe extern "system" fn MsgServiceTransportOrder<
30217 Identity: IMsgServiceAdmin2_Impl,
30218 const OFFSET: isize,
30219 >(
30220 this: *mut core::ffi::c_void,
30221 cuid: u32,
30222 lpuidlist: *mut MAPIUID,
30223 ulflags: u32,
30224 ) -> windows_core::HRESULT {
30225 unsafe {
30226 let this: &Identity =
30227 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
30228 IMsgServiceAdmin2_Impl::MsgServiceTransportOrder(
30229 this,
30230 core::mem::transmute_copy(&cuid),
30231 core::mem::transmute_copy(&lpuidlist),
30232 core::mem::transmute_copy(&ulflags),
30233 )
30234 .into()
30235 }
30236 }
30237 unsafe extern "system" fn AdminProviders<
30238 Identity: IMsgServiceAdmin2_Impl,
30239 const OFFSET: isize,
30240 >(
30241 this: *mut core::ffi::c_void,
30242 lpuid: *mut MAPIUID,
30243 ulflags: u32,
30244 lppprovideradmin: *mut *mut core::ffi::c_void,
30245 ) -> windows_core::HRESULT {
30246 unsafe {
30247 let this: &Identity =
30248 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
30249 IMsgServiceAdmin2_Impl::AdminProviders(
30250 this,
30251 core::mem::transmute_copy(&lpuid),
30252 core::mem::transmute_copy(&ulflags),
30253 core::mem::transmute_copy(&lppprovideradmin),
30254 )
30255 .into()
30256 }
30257 }
30258 unsafe extern "system" fn SetPrimaryIdentity<
30259 Identity: IMsgServiceAdmin2_Impl,
30260 const OFFSET: isize,
30261 >(
30262 this: *mut core::ffi::c_void,
30263 lpuid: *mut MAPIUID,
30264 ulflags: u32,
30265 ) -> windows_core::HRESULT {
30266 unsafe {
30267 let this: &Identity =
30268 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
30269 IMsgServiceAdmin2_Impl::SetPrimaryIdentity(
30270 this,
30271 core::mem::transmute_copy(&lpuid),
30272 core::mem::transmute_copy(&ulflags),
30273 )
30274 .into()
30275 }
30276 }
30277 unsafe extern "system" fn GetProviderTable<
30278 Identity: IMsgServiceAdmin2_Impl,
30279 const OFFSET: isize,
30280 >(
30281 this: *mut core::ffi::c_void,
30282 ulflags: u32,
30283 lpptable: *mut *mut core::ffi::c_void,
30284 ) -> windows_core::HRESULT {
30285 unsafe {
30286 let this: &Identity =
30287 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
30288 match IMsgServiceAdmin2_Impl::GetProviderTable(
30289 this,
30290 core::mem::transmute_copy(&ulflags),
30291 ) {
30292 Ok(ok__) => {
30293 lpptable.write(core::mem::transmute(ok__));
30294 windows_core::HRESULT(0)
30295 }
30296 Err(err) => err.into(),
30297 }
30298 }
30299 }
30300 unsafe extern "system" fn CreateMsgServiceEx<
30301 Identity: IMsgServiceAdmin2_Impl,
30302 const OFFSET: isize,
30303 >(
30304 this: *mut core::ffi::c_void,
30305 lpszservice: *mut i8,
30306 lpszdisplayname: *mut i8,
30307 uluiparam: usize,
30308 ulflags: u32,
30309 lpuidservice: *mut MAPIUID,
30310 ) -> windows_core::HRESULT {
30311 unsafe {
30312 let this: &Identity =
30313 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
30314 IMsgServiceAdmin2_Impl::CreateMsgServiceEx(
30315 this,
30316 core::mem::transmute_copy(&lpszservice),
30317 core::mem::transmute_copy(&lpszdisplayname),
30318 core::mem::transmute_copy(&uluiparam),
30319 core::mem::transmute_copy(&ulflags),
30320 core::mem::transmute_copy(&lpuidservice),
30321 )
30322 .into()
30323 }
30324 }
30325 Self {
30326 base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
30327 GetLastError: GetLastError::<Identity, OFFSET>,
30328 GetMsgServiceTable: GetMsgServiceTable::<Identity, OFFSET>,
30329 CreateMsgService: CreateMsgService::<Identity, OFFSET>,
30330 DeleteMsgService: DeleteMsgService::<Identity, OFFSET>,
30331 CopyMsgService: CopyMsgService::<Identity, OFFSET>,
30332 RenameMsgService: RenameMsgService::<Identity, OFFSET>,
30333 ConfigureMsgService: ConfigureMsgService::<Identity, OFFSET>,
30334 OpenProfileSection: OpenProfileSection::<Identity, OFFSET>,
30335 MsgServiceTransportOrder: MsgServiceTransportOrder::<Identity, OFFSET>,
30336 AdminProviders: AdminProviders::<Identity, OFFSET>,
30337 SetPrimaryIdentity: SetPrimaryIdentity::<Identity, OFFSET>,
30338 GetProviderTable: GetProviderTable::<Identity, OFFSET>,
30339 CreateMsgServiceEx: CreateMsgServiceEx::<Identity, OFFSET>,
30340 }
30341 }
30342 pub fn matches(iid: &windows_core::GUID) -> bool {
30343 iid == &<IMsgServiceAdmin2 as windows_core::Interface>::IID
30344 }
30345}
30346impl windows_core::RuntimeName for IMsgServiceAdmin2 {}
30347windows_core::imp::define_interface!(
30348 IMsgStore,
30349 IMsgStore_Vtbl,
30350 0x00020306_0000_0000_c000_000000000046
30351);
30352impl core::ops::Deref for IMsgStore {
30353 type Target = IMAPIProp;
30354 fn deref(&self) -> &Self::Target {
30355 unsafe { core::mem::transmute(self) }
30356 }
30357}
30358windows_core::imp::interface_hierarchy!(IMsgStore, windows_core::IUnknown, IMAPIProp);
30359impl IMsgStore {
30360 pub unsafe fn Advise<P3>(
30361 &self,
30362 cbentryid: u32,
30363 lpentryid: *mut ENTRYID,
30364 uleventmask: u32,
30365 lpadvisesink: P3,
30366 lpulconnection: *mut usize,
30367 ) -> windows_core::Result<()>
30368 where
30369 P3: windows_core::Param<IMAPIAdviseSink>,
30370 {
30371 unsafe {
30372 (windows_core::Interface::vtable(self).Advise)(
30373 windows_core::Interface::as_raw(self),
30374 cbentryid,
30375 lpentryid as _,
30376 uleventmask,
30377 lpadvisesink.param().abi(),
30378 lpulconnection as _,
30379 )
30380 .ok()
30381 }
30382 }
30383 pub unsafe fn Unadvise(&self, ulconnection: usize) -> windows_core::Result<()> {
30384 unsafe {
30385 (windows_core::Interface::vtable(self).Unadvise)(
30386 windows_core::Interface::as_raw(self),
30387 ulconnection,
30388 )
30389 .ok()
30390 }
30391 }
30392 pub unsafe fn CompareEntryIDs(
30393 &self,
30394 cbentryid1: u32,
30395 lpentryid1: *mut ENTRYID,
30396 cbentryid2: u32,
30397 lpentryid2: *mut ENTRYID,
30398 ulflags: u32,
30399 lpulresult: *mut u32,
30400 ) -> windows_core::Result<()> {
30401 unsafe {
30402 (windows_core::Interface::vtable(self).CompareEntryIDs)(
30403 windows_core::Interface::as_raw(self),
30404 cbentryid1,
30405 lpentryid1 as _,
30406 cbentryid2,
30407 lpentryid2 as _,
30408 ulflags,
30409 lpulresult as _,
30410 )
30411 .ok()
30412 }
30413 }
30414 pub unsafe fn OpenEntry(
30415 &self,
30416 cbentryid: u32,
30417 lpentryid: *mut ENTRYID,
30418 lpinterface: *mut windows_core::GUID,
30419 ulflags: u32,
30420 lpulobjtype: *mut u32,
30421 lppunk: *mut Option<windows_core::IUnknown>,
30422 ) -> windows_core::Result<()> {
30423 unsafe {
30424 (windows_core::Interface::vtable(self).OpenEntry)(
30425 windows_core::Interface::as_raw(self),
30426 cbentryid,
30427 lpentryid as _,
30428 lpinterface as _,
30429 ulflags,
30430 lpulobjtype as _,
30431 core::mem::transmute(lppunk),
30432 )
30433 .ok()
30434 }
30435 }
30436 pub unsafe fn SetReceiveFolder(
30437 &self,
30438 lpszmessageclass: *mut i8,
30439 ulflags: u32,
30440 cbentryid: u32,
30441 lpentryid: *mut ENTRYID,
30442 ) -> windows_core::Result<()> {
30443 unsafe {
30444 (windows_core::Interface::vtable(self).SetReceiveFolder)(
30445 windows_core::Interface::as_raw(self),
30446 lpszmessageclass as _,
30447 ulflags,
30448 cbentryid,
30449 lpentryid as _,
30450 )
30451 .ok()
30452 }
30453 }
30454 pub unsafe fn GetReceiveFolder(
30455 &self,
30456 lpszmessageclass: *mut i8,
30457 ulflags: u32,
30458 lpcbentryid: *mut u32,
30459 lppentryid: *mut *mut ENTRYID,
30460 lppszexplicitclass: *mut *mut i8,
30461 ) -> windows_core::Result<()> {
30462 unsafe {
30463 (windows_core::Interface::vtable(self).GetReceiveFolder)(
30464 windows_core::Interface::as_raw(self),
30465 lpszmessageclass as _,
30466 ulflags,
30467 lpcbentryid as _,
30468 lppentryid as _,
30469 lppszexplicitclass as _,
30470 )
30471 .ok()
30472 }
30473 }
30474 pub unsafe fn GetReceiveFolderTable(&self, ulflags: u32) -> windows_core::Result<IMAPITable> {
30475 unsafe {
30476 let mut result__ = core::mem::zeroed();
30477 (windows_core::Interface::vtable(self).GetReceiveFolderTable)(
30478 windows_core::Interface::as_raw(self),
30479 ulflags,
30480 &mut result__,
30481 )
30482 .and_then(|| windows_core::Type::from_abi(result__))
30483 }
30484 }
30485 pub unsafe fn StoreLogoff(&self, lpulflags: *mut u32) -> windows_core::Result<()> {
30486 unsafe {
30487 (windows_core::Interface::vtable(self).StoreLogoff)(
30488 windows_core::Interface::as_raw(self),
30489 lpulflags as _,
30490 )
30491 .ok()
30492 }
30493 }
30494 pub unsafe fn AbortSubmit(
30495 &self,
30496 cbentryid: u32,
30497 lpentryid: *mut ENTRYID,
30498 ulflags: u32,
30499 ) -> windows_core::Result<()> {
30500 unsafe {
30501 (windows_core::Interface::vtable(self).AbortSubmit)(
30502 windows_core::Interface::as_raw(self),
30503 cbentryid,
30504 lpentryid as _,
30505 ulflags,
30506 )
30507 .ok()
30508 }
30509 }
30510 pub unsafe fn GetOutgoingQueue(&self, ulflags: u32) -> windows_core::Result<IMAPITable> {
30511 unsafe {
30512 let mut result__ = core::mem::zeroed();
30513 (windows_core::Interface::vtable(self).GetOutgoingQueue)(
30514 windows_core::Interface::as_raw(self),
30515 ulflags,
30516 &mut result__,
30517 )
30518 .and_then(|| windows_core::Type::from_abi(result__))
30519 }
30520 }
30521 pub unsafe fn SetLockState<P0>(
30522 &self,
30523 lpmessage: P0,
30524 ullockstate: u32,
30525 ) -> windows_core::Result<()>
30526 where
30527 P0: windows_core::Param<IMessage>,
30528 {
30529 unsafe {
30530 (windows_core::Interface::vtable(self).SetLockState)(
30531 windows_core::Interface::as_raw(self),
30532 lpmessage.param().abi(),
30533 ullockstate,
30534 )
30535 .ok()
30536 }
30537 }
30538 pub unsafe fn FinishedMsg(
30539 &self,
30540 ulflags: u32,
30541 cbentryid: u32,
30542 lpentryid: *mut ENTRYID,
30543 ) -> windows_core::Result<()> {
30544 unsafe {
30545 (windows_core::Interface::vtable(self).FinishedMsg)(
30546 windows_core::Interface::as_raw(self),
30547 ulflags,
30548 cbentryid,
30549 lpentryid as _,
30550 )
30551 .ok()
30552 }
30553 }
30554 pub unsafe fn NotifyNewMail(
30555 &self,
30556 lpnotification: *mut NOTIFICATION,
30557 ) -> windows_core::Result<()> {
30558 unsafe {
30559 (windows_core::Interface::vtable(self).NotifyNewMail)(
30560 windows_core::Interface::as_raw(self),
30561 lpnotification as _,
30562 )
30563 .ok()
30564 }
30565 }
30566}
30567#[repr(C)]
30568#[doc(hidden)]
30569pub struct IMsgStore_Vtbl {
30570 pub base__: IMAPIProp_Vtbl,
30571 pub Advise: unsafe extern "system" fn(
30572 *mut core::ffi::c_void,
30573 u32,
30574 *mut ENTRYID,
30575 u32,
30576 *mut core::ffi::c_void,
30577 *mut usize,
30578 ) -> windows_core::HRESULT,
30579 pub Unadvise: unsafe extern "system" fn(*mut core::ffi::c_void, usize) -> windows_core::HRESULT,
30580 pub CompareEntryIDs: unsafe extern "system" fn(
30581 *mut core::ffi::c_void,
30582 u32,
30583 *mut ENTRYID,
30584 u32,
30585 *mut ENTRYID,
30586 u32,
30587 *mut u32,
30588 ) -> windows_core::HRESULT,
30589 pub OpenEntry: unsafe extern "system" fn(
30590 *mut core::ffi::c_void,
30591 u32,
30592 *mut ENTRYID,
30593 *mut windows_core::GUID,
30594 u32,
30595 *mut u32,
30596 *mut *mut core::ffi::c_void,
30597 ) -> windows_core::HRESULT,
30598 pub SetReceiveFolder: unsafe extern "system" fn(
30599 *mut core::ffi::c_void,
30600 *mut i8,
30601 u32,
30602 u32,
30603 *mut ENTRYID,
30604 ) -> windows_core::HRESULT,
30605 pub GetReceiveFolder: unsafe extern "system" fn(
30606 *mut core::ffi::c_void,
30607 *mut i8,
30608 u32,
30609 *mut u32,
30610 *mut *mut ENTRYID,
30611 *mut *mut i8,
30612 ) -> windows_core::HRESULT,
30613 pub GetReceiveFolderTable: unsafe extern "system" fn(
30614 *mut core::ffi::c_void,
30615 u32,
30616 *mut *mut core::ffi::c_void,
30617 ) -> windows_core::HRESULT,
30618 pub StoreLogoff:
30619 unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
30620 pub AbortSubmit: unsafe extern "system" fn(
30621 *mut core::ffi::c_void,
30622 u32,
30623 *mut ENTRYID,
30624 u32,
30625 ) -> windows_core::HRESULT,
30626 pub GetOutgoingQueue: unsafe extern "system" fn(
30627 *mut core::ffi::c_void,
30628 u32,
30629 *mut *mut core::ffi::c_void,
30630 ) -> windows_core::HRESULT,
30631 pub SetLockState: unsafe extern "system" fn(
30632 *mut core::ffi::c_void,
30633 *mut core::ffi::c_void,
30634 u32,
30635 ) -> windows_core::HRESULT,
30636 pub FinishedMsg: unsafe extern "system" fn(
30637 *mut core::ffi::c_void,
30638 u32,
30639 u32,
30640 *mut ENTRYID,
30641 ) -> windows_core::HRESULT,
30642 pub NotifyNewMail: unsafe extern "system" fn(
30643 *mut core::ffi::c_void,
30644 *mut NOTIFICATION,
30645 ) -> windows_core::HRESULT,
30646}
30647pub trait IMsgStore_Impl: IMAPIProp_Impl {
30648 fn Advise(
30649 &self,
30650 cbentryid: u32,
30651 lpentryid: *mut ENTRYID,
30652 uleventmask: u32,
30653 lpadvisesink: windows_core::Ref<IMAPIAdviseSink>,
30654 lpulconnection: *mut usize,
30655 ) -> windows_core::Result<()>;
30656 fn Unadvise(&self, ulconnection: usize) -> windows_core::Result<()>;
30657 fn CompareEntryIDs(
30658 &self,
30659 cbentryid1: u32,
30660 lpentryid1: *mut ENTRYID,
30661 cbentryid2: u32,
30662 lpentryid2: *mut ENTRYID,
30663 ulflags: u32,
30664 lpulresult: *mut u32,
30665 ) -> windows_core::Result<()>;
30666 fn OpenEntry(
30667 &self,
30668 cbentryid: u32,
30669 lpentryid: *mut ENTRYID,
30670 lpinterface: *mut windows_core::GUID,
30671 ulflags: u32,
30672 lpulobjtype: *mut u32,
30673 lppunk: windows_core::OutRef<windows_core::IUnknown>,
30674 ) -> windows_core::Result<()>;
30675 fn SetReceiveFolder(
30676 &self,
30677 lpszmessageclass: *mut i8,
30678 ulflags: u32,
30679 cbentryid: u32,
30680 lpentryid: *mut ENTRYID,
30681 ) -> windows_core::Result<()>;
30682 fn GetReceiveFolder(
30683 &self,
30684 lpszmessageclass: *mut i8,
30685 ulflags: u32,
30686 lpcbentryid: *mut u32,
30687 lppentryid: *mut *mut ENTRYID,
30688 lppszexplicitclass: *mut *mut i8,
30689 ) -> windows_core::Result<()>;
30690 fn GetReceiveFolderTable(&self, ulflags: u32) -> windows_core::Result<IMAPITable>;
30691 fn StoreLogoff(&self, lpulflags: *mut u32) -> windows_core::Result<()>;
30692 fn AbortSubmit(
30693 &self,
30694 cbentryid: u32,
30695 lpentryid: *mut ENTRYID,
30696 ulflags: u32,
30697 ) -> windows_core::Result<()>;
30698 fn GetOutgoingQueue(&self, ulflags: u32) -> windows_core::Result<IMAPITable>;
30699 fn SetLockState(
30700 &self,
30701 lpmessage: windows_core::Ref<IMessage>,
30702 ullockstate: u32,
30703 ) -> windows_core::Result<()>;
30704 fn FinishedMsg(
30705 &self,
30706 ulflags: u32,
30707 cbentryid: u32,
30708 lpentryid: *mut ENTRYID,
30709 ) -> windows_core::Result<()>;
30710 fn NotifyNewMail(&self, lpnotification: *mut NOTIFICATION) -> windows_core::Result<()>;
30711}
30712impl IMsgStore_Vtbl {
30713 pub const fn new<Identity: IMsgStore_Impl, const OFFSET: isize>() -> Self {
30714 unsafe extern "system" fn Advise<Identity: IMsgStore_Impl, const OFFSET: isize>(
30715 this: *mut core::ffi::c_void,
30716 cbentryid: u32,
30717 lpentryid: *mut ENTRYID,
30718 uleventmask: u32,
30719 lpadvisesink: *mut core::ffi::c_void,
30720 lpulconnection: *mut usize,
30721 ) -> windows_core::HRESULT {
30722 unsafe {
30723 let this: &Identity =
30724 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
30725 IMsgStore_Impl::Advise(
30726 this,
30727 core::mem::transmute_copy(&cbentryid),
30728 core::mem::transmute_copy(&lpentryid),
30729 core::mem::transmute_copy(&uleventmask),
30730 core::mem::transmute_copy(&lpadvisesink),
30731 core::mem::transmute_copy(&lpulconnection),
30732 )
30733 .into()
30734 }
30735 }
30736 unsafe extern "system" fn Unadvise<Identity: IMsgStore_Impl, const OFFSET: isize>(
30737 this: *mut core::ffi::c_void,
30738 ulconnection: usize,
30739 ) -> windows_core::HRESULT {
30740 unsafe {
30741 let this: &Identity =
30742 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
30743 IMsgStore_Impl::Unadvise(this, core::mem::transmute_copy(&ulconnection)).into()
30744 }
30745 }
30746 unsafe extern "system" fn CompareEntryIDs<Identity: IMsgStore_Impl, const OFFSET: isize>(
30747 this: *mut core::ffi::c_void,
30748 cbentryid1: u32,
30749 lpentryid1: *mut ENTRYID,
30750 cbentryid2: u32,
30751 lpentryid2: *mut ENTRYID,
30752 ulflags: u32,
30753 lpulresult: *mut u32,
30754 ) -> windows_core::HRESULT {
30755 unsafe {
30756 let this: &Identity =
30757 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
30758 IMsgStore_Impl::CompareEntryIDs(
30759 this,
30760 core::mem::transmute_copy(&cbentryid1),
30761 core::mem::transmute_copy(&lpentryid1),
30762 core::mem::transmute_copy(&cbentryid2),
30763 core::mem::transmute_copy(&lpentryid2),
30764 core::mem::transmute_copy(&ulflags),
30765 core::mem::transmute_copy(&lpulresult),
30766 )
30767 .into()
30768 }
30769 }
30770 unsafe extern "system" fn OpenEntry<Identity: IMsgStore_Impl, const OFFSET: isize>(
30771 this: *mut core::ffi::c_void,
30772 cbentryid: u32,
30773 lpentryid: *mut ENTRYID,
30774 lpinterface: *mut windows_core::GUID,
30775 ulflags: u32,
30776 lpulobjtype: *mut u32,
30777 lppunk: *mut *mut core::ffi::c_void,
30778 ) -> windows_core::HRESULT {
30779 unsafe {
30780 let this: &Identity =
30781 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
30782 IMsgStore_Impl::OpenEntry(
30783 this,
30784 core::mem::transmute_copy(&cbentryid),
30785 core::mem::transmute_copy(&lpentryid),
30786 core::mem::transmute_copy(&lpinterface),
30787 core::mem::transmute_copy(&ulflags),
30788 core::mem::transmute_copy(&lpulobjtype),
30789 core::mem::transmute_copy(&lppunk),
30790 )
30791 .into()
30792 }
30793 }
30794 unsafe extern "system" fn SetReceiveFolder<
30795 Identity: IMsgStore_Impl,
30796 const OFFSET: isize,
30797 >(
30798 this: *mut core::ffi::c_void,
30799 lpszmessageclass: *mut i8,
30800 ulflags: u32,
30801 cbentryid: u32,
30802 lpentryid: *mut ENTRYID,
30803 ) -> windows_core::HRESULT {
30804 unsafe {
30805 let this: &Identity =
30806 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
30807 IMsgStore_Impl::SetReceiveFolder(
30808 this,
30809 core::mem::transmute_copy(&lpszmessageclass),
30810 core::mem::transmute_copy(&ulflags),
30811 core::mem::transmute_copy(&cbentryid),
30812 core::mem::transmute_copy(&lpentryid),
30813 )
30814 .into()
30815 }
30816 }
30817 unsafe extern "system" fn GetReceiveFolder<
30818 Identity: IMsgStore_Impl,
30819 const OFFSET: isize,
30820 >(
30821 this: *mut core::ffi::c_void,
30822 lpszmessageclass: *mut i8,
30823 ulflags: u32,
30824 lpcbentryid: *mut u32,
30825 lppentryid: *mut *mut ENTRYID,
30826 lppszexplicitclass: *mut *mut i8,
30827 ) -> windows_core::HRESULT {
30828 unsafe {
30829 let this: &Identity =
30830 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
30831 IMsgStore_Impl::GetReceiveFolder(
30832 this,
30833 core::mem::transmute_copy(&lpszmessageclass),
30834 core::mem::transmute_copy(&ulflags),
30835 core::mem::transmute_copy(&lpcbentryid),
30836 core::mem::transmute_copy(&lppentryid),
30837 core::mem::transmute_copy(&lppszexplicitclass),
30838 )
30839 .into()
30840 }
30841 }
30842 unsafe extern "system" fn GetReceiveFolderTable<
30843 Identity: IMsgStore_Impl,
30844 const OFFSET: isize,
30845 >(
30846 this: *mut core::ffi::c_void,
30847 ulflags: u32,
30848 lpptable: *mut *mut core::ffi::c_void,
30849 ) -> windows_core::HRESULT {
30850 unsafe {
30851 let this: &Identity =
30852 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
30853 match IMsgStore_Impl::GetReceiveFolderTable(
30854 this,
30855 core::mem::transmute_copy(&ulflags),
30856 ) {
30857 Ok(ok__) => {
30858 lpptable.write(core::mem::transmute(ok__));
30859 windows_core::HRESULT(0)
30860 }
30861 Err(err) => err.into(),
30862 }
30863 }
30864 }
30865 unsafe extern "system" fn StoreLogoff<Identity: IMsgStore_Impl, const OFFSET: isize>(
30866 this: *mut core::ffi::c_void,
30867 lpulflags: *mut u32,
30868 ) -> windows_core::HRESULT {
30869 unsafe {
30870 let this: &Identity =
30871 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
30872 IMsgStore_Impl::StoreLogoff(this, core::mem::transmute_copy(&lpulflags)).into()
30873 }
30874 }
30875 unsafe extern "system" fn AbortSubmit<Identity: IMsgStore_Impl, const OFFSET: isize>(
30876 this: *mut core::ffi::c_void,
30877 cbentryid: u32,
30878 lpentryid: *mut ENTRYID,
30879 ulflags: u32,
30880 ) -> windows_core::HRESULT {
30881 unsafe {
30882 let this: &Identity =
30883 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
30884 IMsgStore_Impl::AbortSubmit(
30885 this,
30886 core::mem::transmute_copy(&cbentryid),
30887 core::mem::transmute_copy(&lpentryid),
30888 core::mem::transmute_copy(&ulflags),
30889 )
30890 .into()
30891 }
30892 }
30893 unsafe extern "system" fn GetOutgoingQueue<
30894 Identity: IMsgStore_Impl,
30895 const OFFSET: isize,
30896 >(
30897 this: *mut core::ffi::c_void,
30898 ulflags: u32,
30899 lpptable: *mut *mut core::ffi::c_void,
30900 ) -> windows_core::HRESULT {
30901 unsafe {
30902 let this: &Identity =
30903 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
30904 match IMsgStore_Impl::GetOutgoingQueue(this, core::mem::transmute_copy(&ulflags)) {
30905 Ok(ok__) => {
30906 lpptable.write(core::mem::transmute(ok__));
30907 windows_core::HRESULT(0)
30908 }
30909 Err(err) => err.into(),
30910 }
30911 }
30912 }
30913 unsafe extern "system" fn SetLockState<Identity: IMsgStore_Impl, const OFFSET: isize>(
30914 this: *mut core::ffi::c_void,
30915 lpmessage: *mut core::ffi::c_void,
30916 ullockstate: u32,
30917 ) -> windows_core::HRESULT {
30918 unsafe {
30919 let this: &Identity =
30920 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
30921 IMsgStore_Impl::SetLockState(
30922 this,
30923 core::mem::transmute_copy(&lpmessage),
30924 core::mem::transmute_copy(&ullockstate),
30925 )
30926 .into()
30927 }
30928 }
30929 unsafe extern "system" fn FinishedMsg<Identity: IMsgStore_Impl, const OFFSET: isize>(
30930 this: *mut core::ffi::c_void,
30931 ulflags: u32,
30932 cbentryid: u32,
30933 lpentryid: *mut ENTRYID,
30934 ) -> windows_core::HRESULT {
30935 unsafe {
30936 let this: &Identity =
30937 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
30938 IMsgStore_Impl::FinishedMsg(
30939 this,
30940 core::mem::transmute_copy(&ulflags),
30941 core::mem::transmute_copy(&cbentryid),
30942 core::mem::transmute_copy(&lpentryid),
30943 )
30944 .into()
30945 }
30946 }
30947 unsafe extern "system" fn NotifyNewMail<Identity: IMsgStore_Impl, const OFFSET: isize>(
30948 this: *mut core::ffi::c_void,
30949 lpnotification: *mut NOTIFICATION,
30950 ) -> windows_core::HRESULT {
30951 unsafe {
30952 let this: &Identity =
30953 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
30954 IMsgStore_Impl::NotifyNewMail(this, core::mem::transmute_copy(&lpnotification))
30955 .into()
30956 }
30957 }
30958 Self {
30959 base__: IMAPIProp_Vtbl::new::<Identity, OFFSET>(),
30960 Advise: Advise::<Identity, OFFSET>,
30961 Unadvise: Unadvise::<Identity, OFFSET>,
30962 CompareEntryIDs: CompareEntryIDs::<Identity, OFFSET>,
30963 OpenEntry: OpenEntry::<Identity, OFFSET>,
30964 SetReceiveFolder: SetReceiveFolder::<Identity, OFFSET>,
30965 GetReceiveFolder: GetReceiveFolder::<Identity, OFFSET>,
30966 GetReceiveFolderTable: GetReceiveFolderTable::<Identity, OFFSET>,
30967 StoreLogoff: StoreLogoff::<Identity, OFFSET>,
30968 AbortSubmit: AbortSubmit::<Identity, OFFSET>,
30969 GetOutgoingQueue: GetOutgoingQueue::<Identity, OFFSET>,
30970 SetLockState: SetLockState::<Identity, OFFSET>,
30971 FinishedMsg: FinishedMsg::<Identity, OFFSET>,
30972 NotifyNewMail: NotifyNewMail::<Identity, OFFSET>,
30973 }
30974 }
30975 pub fn matches(iid: &windows_core::GUID) -> bool {
30976 iid == &<IMsgStore as windows_core::Interface>::IID
30977 || iid == &<IMAPIProp as windows_core::Interface>::IID
30978 }
30979}
30980impl windows_core::RuntimeName for IMsgStore {}
30981pub const IMsgStore_AbortSubmit: METHODS = METHODS(69i32);
30982pub const IMsgStore_Advise: METHODS = METHODS(61i32);
30983pub const IMsgStore_CompareEntryIDs: METHODS = METHODS(63i32);
30984pub const IMsgStore_FinishedMsg: METHODS = METHODS(72i32);
30985pub const IMsgStore_GetOutgoingQueue: METHODS = METHODS(70i32);
30986pub const IMsgStore_GetReceiveFolder: METHODS = METHODS(66i32);
30987pub const IMsgStore_GetReceiveFolderTable: METHODS = METHODS(67i32);
30988pub const IMsgStore_NotifyNewMail: METHODS = METHODS(73i32);
30989pub const IMsgStore_OpenEntry: METHODS = METHODS(64i32);
30990pub const IMsgStore_SetLockState: METHODS = METHODS(71i32);
30991pub const IMsgStore_SetReceiveFolder: METHODS = METHODS(65i32);
30992pub const IMsgStore_StoreLogoff: METHODS = METHODS(68i32);
30993pub const IMsgStore_Unadvise: METHODS = METHODS(62i32);
30994#[repr(C)]
30995#[derive(Clone, Copy, Debug, PartialEq)]
30996pub struct INETCSETINFO {
30997 pub szName: [i8; 128],
30998 pub hCharset: *mut HCHARSET__,
30999 pub cpiWindows: u32,
31000 pub cpiInternet: u32,
31001 pub dwReserved1: u32,
31002}
31003impl Default for INETCSETINFO {
31004 fn default() -> Self {
31005 unsafe { core::mem::zeroed() }
31006 }
31007}
31008#[repr(transparent)]
31009#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
31010pub struct INETLANGMASK(pub i32);
31011#[repr(C)]
31012#[derive(Clone, Copy, Debug, PartialEq)]
31013pub struct INTTRACEENTRY {
31014 pub lAction: i32,
31015 pub ftArrivalTime: windows::Win32::Foundation::FILETIME,
31016 pub ftDeferredTime: windows::Win32::Foundation::FILETIME,
31017 pub rgchADMDName: [i8; 20],
31018 pub rgchCountryName: [i8; 4],
31019 pub rgchPRMDId: [i8; 20],
31020 pub rgchAttADMDName: [i8; 20],
31021 pub rgchAttCountryName: [i8; 4],
31022 pub rgchAttPRMDId: [i8; 20],
31023 pub rgchMTAName: [i8; 36],
31024 pub rgchAttMTAName: [i8; 35],
31025 pub bAdditionalActions: u8,
31026}
31027impl Default for INTTRACEENTRY {
31028 fn default() -> Self {
31029 unsafe { core::mem::zeroed() }
31030 }
31031}
31032#[repr(C)]
31033#[derive(Clone, Copy, Debug, PartialEq)]
31034pub struct INTTRACEINFO {
31035 pub cEntries: u32,
31036 pub rgIntTraceEntry: [INTTRACEENTRY; 1],
31037}
31038impl Default for INTTRACEINFO {
31039 fn default() -> Self {
31040 unsafe { core::mem::zeroed() }
31041 }
31042}
31043windows_core::imp::define_interface!(
31044 IOlkAccount,
31045 IOlkAccount_Vtbl,
31046 0x9240a6d2_af41_11d2_8c3b_00104b2a6676
31047);
31048impl core::ops::Deref for IOlkAccount {
31049 type Target = IOlkErrorUnknown;
31050 fn deref(&self) -> &Self::Target {
31051 unsafe { core::mem::transmute(self) }
31052 }
31053}
31054windows_core::imp::interface_hierarchy!(IOlkAccount, windows_core::IUnknown, IOlkErrorUnknown);
31055impl IOlkAccount {
31056 pub unsafe fn PlaceHolder1(&self) -> windows_core::Result<()> {
31057 unsafe {
31058 (windows_core::Interface::vtable(self).PlaceHolder1)(windows_core::Interface::as_raw(
31059 self,
31060 ))
31061 .ok()
31062 }
31063 }
31064 pub unsafe fn PlaceHolder2(&self) -> windows_core::Result<()> {
31065 unsafe {
31066 (windows_core::Interface::vtable(self).PlaceHolder2)(windows_core::Interface::as_raw(
31067 self,
31068 ))
31069 .ok()
31070 }
31071 }
31072 pub unsafe fn PlaceHolder3(&self) -> windows_core::Result<()> {
31073 unsafe {
31074 (windows_core::Interface::vtable(self).PlaceHolder3)(windows_core::Interface::as_raw(
31075 self,
31076 ))
31077 .ok()
31078 }
31079 }
31080 pub unsafe fn PlaceHolder4(&self) -> windows_core::Result<()> {
31081 unsafe {
31082 (windows_core::Interface::vtable(self).PlaceHolder4)(windows_core::Interface::as_raw(
31083 self,
31084 ))
31085 .ok()
31086 }
31087 }
31088 pub unsafe fn PlaceHolder5(&self) -> windows_core::Result<()> {
31089 unsafe {
31090 (windows_core::Interface::vtable(self).PlaceHolder5)(windows_core::Interface::as_raw(
31091 self,
31092 ))
31093 .ok()
31094 }
31095 }
31096 pub unsafe fn PlaceHolder6(&self) -> windows_core::Result<()> {
31097 unsafe {
31098 (windows_core::Interface::vtable(self).PlaceHolder6)(windows_core::Interface::as_raw(
31099 self,
31100 ))
31101 .ok()
31102 }
31103 }
31104 pub unsafe fn GetAccountInfo(
31105 &self,
31106 pclsidtype: *mut windows_core::GUID,
31107 pccategories: *mut u32,
31108 prgclsidcategory: *mut *mut windows_core::GUID,
31109 ) -> windows_core::Result<()> {
31110 unsafe {
31111 (windows_core::Interface::vtable(self).GetAccountInfo)(
31112 windows_core::Interface::as_raw(self),
31113 pclsidtype as _,
31114 pccategories as _,
31115 prgclsidcategory as _,
31116 )
31117 .ok()
31118 }
31119 }
31120 pub unsafe fn GetPropA(
31121 &self,
31122 dwprop: u32,
31123 pvar: *mut ACCT_VARIANT,
31124 ) -> windows_core::Result<()> {
31125 unsafe {
31126 (windows_core::Interface::vtable(self).GetPropA)(
31127 windows_core::Interface::as_raw(self),
31128 dwprop,
31129 pvar as _,
31130 )
31131 .ok()
31132 }
31133 }
31134 pub unsafe fn SetPropA(
31135 &self,
31136 dwprop: u32,
31137 pvar: *mut ACCT_VARIANT,
31138 ) -> windows_core::Result<()> {
31139 unsafe {
31140 (windows_core::Interface::vtable(self).SetPropA)(
31141 windows_core::Interface::as_raw(self),
31142 dwprop,
31143 pvar as _,
31144 )
31145 .ok()
31146 }
31147 }
31148 pub unsafe fn PlaceHolder7(&self) -> windows_core::Result<()> {
31149 unsafe {
31150 (windows_core::Interface::vtable(self).PlaceHolder7)(windows_core::Interface::as_raw(
31151 self,
31152 ))
31153 .ok()
31154 }
31155 }
31156 pub unsafe fn PlaceHolder8(&self) -> windows_core::Result<()> {
31157 unsafe {
31158 (windows_core::Interface::vtable(self).PlaceHolder8)(windows_core::Interface::as_raw(
31159 self,
31160 ))
31161 .ok()
31162 }
31163 }
31164 pub unsafe fn PlaceHolder9(&self) -> windows_core::Result<()> {
31165 unsafe {
31166 (windows_core::Interface::vtable(self).PlaceHolder9)(windows_core::Interface::as_raw(
31167 self,
31168 ))
31169 .ok()
31170 }
31171 }
31172 pub unsafe fn FreeMemory(&self, pv: *mut u8) -> windows_core::Result<()> {
31173 unsafe {
31174 (windows_core::Interface::vtable(self).FreeMemory)(
31175 windows_core::Interface::as_raw(self),
31176 pv as _,
31177 )
31178 .ok()
31179 }
31180 }
31181 pub unsafe fn PlaceHolder10(&self) -> windows_core::Result<()> {
31182 unsafe {
31183 (windows_core::Interface::vtable(self).PlaceHolder10)(windows_core::Interface::as_raw(
31184 self,
31185 ))
31186 .ok()
31187 }
31188 }
31189 pub unsafe fn SaveChanges(&self, dwflags: u32) -> windows_core::Result<()> {
31190 unsafe {
31191 (windows_core::Interface::vtable(self).SaveChanges)(
31192 windows_core::Interface::as_raw(self),
31193 dwflags,
31194 )
31195 .ok()
31196 }
31197 }
31198}
31199#[repr(C)]
31200#[doc(hidden)]
31201pub struct IOlkAccount_Vtbl {
31202 pub base__: IOlkErrorUnknown_Vtbl,
31203 pub PlaceHolder1: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
31204 pub PlaceHolder2: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
31205 pub PlaceHolder3: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
31206 pub PlaceHolder4: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
31207 pub PlaceHolder5: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
31208 pub PlaceHolder6: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
31209 pub GetAccountInfo: unsafe extern "system" fn(
31210 *mut core::ffi::c_void,
31211 *mut windows_core::GUID,
31212 *mut u32,
31213 *mut *mut windows_core::GUID,
31214 ) -> windows_core::HRESULT,
31215 pub GetPropA: unsafe extern "system" fn(
31216 *mut core::ffi::c_void,
31217 u32,
31218 *mut ACCT_VARIANT,
31219 ) -> windows_core::HRESULT,
31220 pub SetPropA: unsafe extern "system" fn(
31221 *mut core::ffi::c_void,
31222 u32,
31223 *mut ACCT_VARIANT,
31224 ) -> windows_core::HRESULT,
31225 pub PlaceHolder7: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
31226 pub PlaceHolder8: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
31227 pub PlaceHolder9: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
31228 pub FreeMemory:
31229 unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
31230 pub PlaceHolder10: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
31231 pub SaveChanges:
31232 unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
31233}
31234pub trait IOlkAccount_Impl: IOlkErrorUnknown_Impl {
31235 fn PlaceHolder1(&self) -> windows_core::Result<()>;
31236 fn PlaceHolder2(&self) -> windows_core::Result<()>;
31237 fn PlaceHolder3(&self) -> windows_core::Result<()>;
31238 fn PlaceHolder4(&self) -> windows_core::Result<()>;
31239 fn PlaceHolder5(&self) -> windows_core::Result<()>;
31240 fn PlaceHolder6(&self) -> windows_core::Result<()>;
31241 fn GetAccountInfo(
31242 &self,
31243 pclsidtype: *mut windows_core::GUID,
31244 pccategories: *mut u32,
31245 prgclsidcategory: *mut *mut windows_core::GUID,
31246 ) -> windows_core::Result<()>;
31247 fn GetPropA(&self, dwprop: u32, pvar: *mut ACCT_VARIANT) -> windows_core::Result<()>;
31248 fn SetPropA(&self, dwprop: u32, pvar: *mut ACCT_VARIANT) -> windows_core::Result<()>;
31249 fn PlaceHolder7(&self) -> windows_core::Result<()>;
31250 fn PlaceHolder8(&self) -> windows_core::Result<()>;
31251 fn PlaceHolder9(&self) -> windows_core::Result<()>;
31252 fn FreeMemory(&self, pv: *mut u8) -> windows_core::Result<()>;
31253 fn PlaceHolder10(&self) -> windows_core::Result<()>;
31254 fn SaveChanges(&self, dwflags: u32) -> windows_core::Result<()>;
31255}
31256impl IOlkAccount_Vtbl {
31257 pub const fn new<Identity: IOlkAccount_Impl, const OFFSET: isize>() -> Self {
31258 unsafe extern "system" fn PlaceHolder1<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::PlaceHolder1(this).into()
31265 }
31266 }
31267 unsafe extern "system" fn PlaceHolder2<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::PlaceHolder2(this).into()
31274 }
31275 }
31276 unsafe extern "system" fn PlaceHolder3<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::PlaceHolder3(this).into()
31283 }
31284 }
31285 unsafe extern "system" fn PlaceHolder4<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::PlaceHolder4(this).into()
31292 }
31293 }
31294 unsafe extern "system" fn PlaceHolder5<Identity: IOlkAccount_Impl, const OFFSET: isize>(
31295 this: *mut core::ffi::c_void,
31296 ) -> windows_core::HRESULT {
31297 unsafe {
31298 let this: &Identity =
31299 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
31300 IOlkAccount_Impl::PlaceHolder5(this).into()
31301 }
31302 }
31303 unsafe extern "system" fn PlaceHolder6<Identity: IOlkAccount_Impl, const OFFSET: isize>(
31304 this: *mut core::ffi::c_void,
31305 ) -> windows_core::HRESULT {
31306 unsafe {
31307 let this: &Identity =
31308 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
31309 IOlkAccount_Impl::PlaceHolder6(this).into()
31310 }
31311 }
31312 unsafe extern "system" fn GetAccountInfo<
31313 Identity: IOlkAccount_Impl,
31314 const OFFSET: isize,
31315 >(
31316 this: *mut core::ffi::c_void,
31317 pclsidtype: *mut windows_core::GUID,
31318 pccategories: *mut u32,
31319 prgclsidcategory: *mut *mut windows_core::GUID,
31320 ) -> windows_core::HRESULT {
31321 unsafe {
31322 let this: &Identity =
31323 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
31324 IOlkAccount_Impl::GetAccountInfo(
31325 this,
31326 core::mem::transmute_copy(&pclsidtype),
31327 core::mem::transmute_copy(&pccategories),
31328 core::mem::transmute_copy(&prgclsidcategory),
31329 )
31330 .into()
31331 }
31332 }
31333 unsafe extern "system" fn GetPropA<Identity: IOlkAccount_Impl, const OFFSET: isize>(
31334 this: *mut core::ffi::c_void,
31335 dwprop: u32,
31336 pvar: *mut ACCT_VARIANT,
31337 ) -> windows_core::HRESULT {
31338 unsafe {
31339 let this: &Identity =
31340 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
31341 IOlkAccount_Impl::GetPropA(
31342 this,
31343 core::mem::transmute_copy(&dwprop),
31344 core::mem::transmute_copy(&pvar),
31345 )
31346 .into()
31347 }
31348 }
31349 unsafe extern "system" fn SetPropA<Identity: IOlkAccount_Impl, const OFFSET: isize>(
31350 this: *mut core::ffi::c_void,
31351 dwprop: u32,
31352 pvar: *mut ACCT_VARIANT,
31353 ) -> windows_core::HRESULT {
31354 unsafe {
31355 let this: &Identity =
31356 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
31357 IOlkAccount_Impl::SetPropA(
31358 this,
31359 core::mem::transmute_copy(&dwprop),
31360 core::mem::transmute_copy(&pvar),
31361 )
31362 .into()
31363 }
31364 }
31365 unsafe extern "system" fn PlaceHolder7<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::PlaceHolder7(this).into()
31372 }
31373 }
31374 unsafe extern "system" fn PlaceHolder8<Identity: IOlkAccount_Impl, const OFFSET: isize>(
31375 this: *mut core::ffi::c_void,
31376 ) -> windows_core::HRESULT {
31377 unsafe {
31378 let this: &Identity =
31379 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
31380 IOlkAccount_Impl::PlaceHolder8(this).into()
31381 }
31382 }
31383 unsafe extern "system" fn PlaceHolder9<Identity: IOlkAccount_Impl, const OFFSET: isize>(
31384 this: *mut core::ffi::c_void,
31385 ) -> windows_core::HRESULT {
31386 unsafe {
31387 let this: &Identity =
31388 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
31389 IOlkAccount_Impl::PlaceHolder9(this).into()
31390 }
31391 }
31392 unsafe extern "system" fn FreeMemory<Identity: IOlkAccount_Impl, const OFFSET: isize>(
31393 this: *mut core::ffi::c_void,
31394 pv: *mut u8,
31395 ) -> windows_core::HRESULT {
31396 unsafe {
31397 let this: &Identity =
31398 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
31399 IOlkAccount_Impl::FreeMemory(this, core::mem::transmute_copy(&pv)).into()
31400 }
31401 }
31402 unsafe extern "system" fn PlaceHolder10<Identity: IOlkAccount_Impl, const OFFSET: isize>(
31403 this: *mut core::ffi::c_void,
31404 ) -> windows_core::HRESULT {
31405 unsafe {
31406 let this: &Identity =
31407 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
31408 IOlkAccount_Impl::PlaceHolder10(this).into()
31409 }
31410 }
31411 unsafe extern "system" fn SaveChanges<Identity: IOlkAccount_Impl, const OFFSET: isize>(
31412 this: *mut core::ffi::c_void,
31413 dwflags: u32,
31414 ) -> windows_core::HRESULT {
31415 unsafe {
31416 let this: &Identity =
31417 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
31418 IOlkAccount_Impl::SaveChanges(this, core::mem::transmute_copy(&dwflags)).into()
31419 }
31420 }
31421 Self {
31422 base__: IOlkErrorUnknown_Vtbl::new::<Identity, OFFSET>(),
31423 PlaceHolder1: PlaceHolder1::<Identity, OFFSET>,
31424 PlaceHolder2: PlaceHolder2::<Identity, OFFSET>,
31425 PlaceHolder3: PlaceHolder3::<Identity, OFFSET>,
31426 PlaceHolder4: PlaceHolder4::<Identity, OFFSET>,
31427 PlaceHolder5: PlaceHolder5::<Identity, OFFSET>,
31428 PlaceHolder6: PlaceHolder6::<Identity, OFFSET>,
31429 GetAccountInfo: GetAccountInfo::<Identity, OFFSET>,
31430 GetPropA: GetPropA::<Identity, OFFSET>,
31431 SetPropA: SetPropA::<Identity, OFFSET>,
31432 PlaceHolder7: PlaceHolder7::<Identity, OFFSET>,
31433 PlaceHolder8: PlaceHolder8::<Identity, OFFSET>,
31434 PlaceHolder9: PlaceHolder9::<Identity, OFFSET>,
31435 FreeMemory: FreeMemory::<Identity, OFFSET>,
31436 PlaceHolder10: PlaceHolder10::<Identity, OFFSET>,
31437 SaveChanges: SaveChanges::<Identity, OFFSET>,
31438 }
31439 }
31440 pub fn matches(iid: &windows_core::GUID) -> bool {
31441 iid == &<IOlkAccount as windows_core::Interface>::IID
31442 || iid == &<IOlkErrorUnknown as windows_core::Interface>::IID
31443 }
31444}
31445impl windows_core::RuntimeName for IOlkAccount {}
31446windows_core::imp::define_interface!(
31447 IOlkAccountHelper,
31448 IOlkAccountHelper_Vtbl,
31449 0x9240a6cb_af41_11d2_8c3b_00104b2a6676
31450);
31451windows_core::imp::interface_hierarchy!(IOlkAccountHelper, windows_core::IUnknown);
31452impl IOlkAccountHelper {
31453 pub unsafe fn PlaceHolder1(&self, param0: *mut core::ffi::c_void) -> windows_core::Result<()> {
31454 unsafe {
31455 (windows_core::Interface::vtable(self).PlaceHolder1)(
31456 windows_core::Interface::as_raw(self),
31457 param0 as _,
31458 )
31459 .ok()
31460 }
31461 }
31462 pub unsafe fn GetIdentity<P0>(
31463 &self,
31464 pwszidentity: P0,
31465 pcch: *mut u32,
31466 ) -> windows_core::Result<()>
31467 where
31468 P0: windows_core::Param<windows_core::PCWSTR>,
31469 {
31470 unsafe {
31471 (windows_core::Interface::vtable(self).GetIdentity)(
31472 windows_core::Interface::as_raw(self),
31473 pwszidentity.param().abi(),
31474 pcch as _,
31475 )
31476 .ok()
31477 }
31478 }
31479 pub unsafe fn GetMapiSession(&self) -> windows_core::Result<windows_core::IUnknown> {
31480 unsafe {
31481 let mut result__ = core::mem::zeroed();
31482 (windows_core::Interface::vtable(self).GetMapiSession)(
31483 windows_core::Interface::as_raw(self),
31484 &mut result__,
31485 )
31486 .and_then(|| windows_core::Type::from_abi(result__))
31487 }
31488 }
31489 pub unsafe fn HandsOffSession(&self) -> windows_core::Result<()> {
31490 unsafe {
31491 (windows_core::Interface::vtable(self).HandsOffSession)(
31492 windows_core::Interface::as_raw(self),
31493 )
31494 .ok()
31495 }
31496 }
31497}
31498#[repr(C)]
31499#[doc(hidden)]
31500pub struct IOlkAccountHelper_Vtbl {
31501 pub base__: windows_core::IUnknown_Vtbl,
31502 pub PlaceHolder1: unsafe extern "system" fn(
31503 *mut core::ffi::c_void,
31504 *mut core::ffi::c_void,
31505 ) -> windows_core::HRESULT,
31506 pub GetIdentity: unsafe extern "system" fn(
31507 *mut core::ffi::c_void,
31508 windows_core::PCWSTR,
31509 *mut u32,
31510 ) -> windows_core::HRESULT,
31511 pub GetMapiSession: unsafe extern "system" fn(
31512 *mut core::ffi::c_void,
31513 *mut *mut core::ffi::c_void,
31514 ) -> windows_core::HRESULT,
31515 pub HandsOffSession: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
31516}
31517pub trait IOlkAccountHelper_Impl: windows_core::IUnknownImpl {
31518 fn PlaceHolder1(&self, param0: *mut core::ffi::c_void) -> windows_core::Result<()>;
31519 fn GetIdentity(
31520 &self,
31521 pwszidentity: &windows_core::PCWSTR,
31522 pcch: *mut u32,
31523 ) -> windows_core::Result<()>;
31524 fn GetMapiSession(&self) -> windows_core::Result<windows_core::IUnknown>;
31525 fn HandsOffSession(&self) -> windows_core::Result<()>;
31526}
31527impl IOlkAccountHelper_Vtbl {
31528 pub const fn new<Identity: IOlkAccountHelper_Impl, const OFFSET: isize>() -> Self {
31529 unsafe extern "system" fn PlaceHolder1<
31530 Identity: IOlkAccountHelper_Impl,
31531 const OFFSET: isize,
31532 >(
31533 this: *mut core::ffi::c_void,
31534 param0: *mut core::ffi::c_void,
31535 ) -> windows_core::HRESULT {
31536 unsafe {
31537 let this: &Identity =
31538 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
31539 IOlkAccountHelper_Impl::PlaceHolder1(this, core::mem::transmute_copy(¶m0))
31540 .into()
31541 }
31542 }
31543 unsafe extern "system" fn GetIdentity<
31544 Identity: IOlkAccountHelper_Impl,
31545 const OFFSET: isize,
31546 >(
31547 this: *mut core::ffi::c_void,
31548 pwszidentity: windows_core::PCWSTR,
31549 pcch: *mut u32,
31550 ) -> windows_core::HRESULT {
31551 unsafe {
31552 let this: &Identity =
31553 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
31554 IOlkAccountHelper_Impl::GetIdentity(
31555 this,
31556 core::mem::transmute(&pwszidentity),
31557 core::mem::transmute_copy(&pcch),
31558 )
31559 .into()
31560 }
31561 }
31562 unsafe extern "system" fn GetMapiSession<
31563 Identity: IOlkAccountHelper_Impl,
31564 const OFFSET: isize,
31565 >(
31566 this: *mut core::ffi::c_void,
31567 ppmsess: *mut *mut core::ffi::c_void,
31568 ) -> windows_core::HRESULT {
31569 unsafe {
31570 let this: &Identity =
31571 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
31572 match IOlkAccountHelper_Impl::GetMapiSession(this) {
31573 Ok(ok__) => {
31574 ppmsess.write(core::mem::transmute(ok__));
31575 windows_core::HRESULT(0)
31576 }
31577 Err(err) => err.into(),
31578 }
31579 }
31580 }
31581 unsafe extern "system" fn HandsOffSession<
31582 Identity: IOlkAccountHelper_Impl,
31583 const OFFSET: isize,
31584 >(
31585 this: *mut core::ffi::c_void,
31586 ) -> windows_core::HRESULT {
31587 unsafe {
31588 let this: &Identity =
31589 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
31590 IOlkAccountHelper_Impl::HandsOffSession(this).into()
31591 }
31592 }
31593 Self {
31594 base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
31595 PlaceHolder1: PlaceHolder1::<Identity, OFFSET>,
31596 GetIdentity: GetIdentity::<Identity, OFFSET>,
31597 GetMapiSession: GetMapiSession::<Identity, OFFSET>,
31598 HandsOffSession: HandsOffSession::<Identity, OFFSET>,
31599 }
31600 }
31601 pub fn matches(iid: &windows_core::GUID) -> bool {
31602 iid == &<IOlkAccountHelper as windows_core::Interface>::IID
31603 }
31604}
31605impl windows_core::RuntimeName for IOlkAccountHelper {}
31606windows_core::imp::define_interface!(
31607 IOlkAccountManager,
31608 IOlkAccountManager_Vtbl,
31609 0x9240a6cd_af41_11d2_8c3b_00104b2a6676
31610);
31611impl core::ops::Deref for IOlkAccountManager {
31612 type Target = IOlkErrorUnknown;
31613 fn deref(&self) -> &Self::Target {
31614 unsafe { core::mem::transmute(self) }
31615 }
31616}
31617windows_core::imp::interface_hierarchy!(
31618 IOlkAccountManager,
31619 windows_core::IUnknown,
31620 IOlkErrorUnknown
31621);
31622impl IOlkAccountManager {
31623 pub unsafe fn Init<P0>(&self, paccthelper: P0, dwflags: u32) -> windows_core::Result<()>
31624 where
31625 P0: windows_core::Param<IOlkAccountHelper>,
31626 {
31627 unsafe {
31628 (windows_core::Interface::vtable(self).Init)(
31629 windows_core::Interface::as_raw(self),
31630 paccthelper.param().abi(),
31631 dwflags,
31632 )
31633 .ok()
31634 }
31635 }
31636 pub unsafe fn DisplayAccountList<P2>(
31637 &self,
31638 hwnd: windows::Win32::Foundation::HWND,
31639 dwflags: u32,
31640 wsztitle: P2,
31641 ccategories: u32,
31642 rgclsidcategories: *const windows_core::GUID,
31643 pclsidtype: *const windows_core::GUID,
31644 ) -> windows_core::Result<()>
31645 where
31646 P2: windows_core::Param<windows_core::PCWSTR>,
31647 {
31648 unsafe {
31649 (windows_core::Interface::vtable(self).DisplayAccountList)(
31650 windows_core::Interface::as_raw(self),
31651 hwnd,
31652 dwflags,
31653 wsztitle.param().abi(),
31654 ccategories,
31655 rgclsidcategories,
31656 pclsidtype,
31657 )
31658 .ok()
31659 }
31660 }
31661 pub unsafe fn PlaceHolder1(&self) -> windows_core::Result<()> {
31662 unsafe {
31663 (windows_core::Interface::vtable(self).PlaceHolder1)(windows_core::Interface::as_raw(
31664 self,
31665 ))
31666 .ok()
31667 }
31668 }
31669 pub unsafe fn PlaceHolder2(&self) -> windows_core::Result<()> {
31670 unsafe {
31671 (windows_core::Interface::vtable(self).PlaceHolder2)(windows_core::Interface::as_raw(
31672 self,
31673 ))
31674 .ok()
31675 }
31676 }
31677 pub unsafe fn PlaceHolder3(&self) -> windows_core::Result<()> {
31678 unsafe {
31679 (windows_core::Interface::vtable(self).PlaceHolder3)(windows_core::Interface::as_raw(
31680 self,
31681 ))
31682 .ok()
31683 }
31684 }
31685 pub unsafe fn PlaceHolder4(&self) -> windows_core::Result<()> {
31686 unsafe {
31687 (windows_core::Interface::vtable(self).PlaceHolder4)(windows_core::Interface::as_raw(
31688 self,
31689 ))
31690 .ok()
31691 }
31692 }
31693 pub unsafe fn PlaceHolder5(&self) -> windows_core::Result<()> {
31694 unsafe {
31695 (windows_core::Interface::vtable(self).PlaceHolder5)(windows_core::Interface::as_raw(
31696 self,
31697 ))
31698 .ok()
31699 }
31700 }
31701 pub unsafe fn FindAccount(
31702 &self,
31703 dwprop: u32,
31704 pvar: *mut ACCT_VARIANT,
31705 ppaccount: *mut Option<IOlkAccount>,
31706 ) -> windows_core::Result<()> {
31707 unsafe {
31708 (windows_core::Interface::vtable(self).FindAccount)(
31709 windows_core::Interface::as_raw(self),
31710 dwprop,
31711 pvar as _,
31712 core::mem::transmute(ppaccount),
31713 )
31714 .ok()
31715 }
31716 }
31717 pub unsafe fn PlaceHolder6(&self) -> windows_core::Result<()> {
31718 unsafe {
31719 (windows_core::Interface::vtable(self).PlaceHolder6)(windows_core::Interface::as_raw(
31720 self,
31721 ))
31722 .ok()
31723 }
31724 }
31725 pub unsafe fn PlaceHolder7(&self) -> windows_core::Result<()> {
31726 unsafe {
31727 (windows_core::Interface::vtable(self).PlaceHolder7)(windows_core::Interface::as_raw(
31728 self,
31729 ))
31730 .ok()
31731 }
31732 }
31733 pub unsafe fn PlaceHolder8(&self) -> windows_core::Result<()> {
31734 unsafe {
31735 (windows_core::Interface::vtable(self).PlaceHolder8)(windows_core::Interface::as_raw(
31736 self,
31737 ))
31738 .ok()
31739 }
31740 }
31741 pub unsafe fn DeleteAccount(&self, dwacctid: u32) -> windows_core::Result<()> {
31742 unsafe {
31743 (windows_core::Interface::vtable(self).DeleteAccount)(
31744 windows_core::Interface::as_raw(self),
31745 dwacctid,
31746 )
31747 .ok()
31748 }
31749 }
31750 pub unsafe fn PlaceHolder9(&self) -> windows_core::Result<()> {
31751 unsafe {
31752 (windows_core::Interface::vtable(self).PlaceHolder9)(windows_core::Interface::as_raw(
31753 self,
31754 ))
31755 .ok()
31756 }
31757 }
31758 pub unsafe fn SaveChanges(&self, dwacctid: u32, dwflags: u32) -> windows_core::Result<()> {
31759 unsafe {
31760 (windows_core::Interface::vtable(self).SaveChanges)(
31761 windows_core::Interface::as_raw(self),
31762 dwacctid,
31763 dwflags,
31764 )
31765 .ok()
31766 }
31767 }
31768 pub unsafe fn GetOrder(
31769 &self,
31770 pclsidcategory: *const windows_core::GUID,
31771 pcaccts: *mut u32,
31772 prgaccts: *mut *mut u32,
31773 ) -> windows_core::Result<()> {
31774 unsafe {
31775 (windows_core::Interface::vtable(self).GetOrder)(
31776 windows_core::Interface::as_raw(self),
31777 pclsidcategory,
31778 pcaccts as _,
31779 prgaccts as _,
31780 )
31781 .ok()
31782 }
31783 }
31784 pub unsafe fn SetOrder(
31785 &self,
31786 pclsidcategory: *const windows_core::GUID,
31787 pcaccts: *mut u32,
31788 prgaccts: *mut *mut u32,
31789 ) -> windows_core::Result<()> {
31790 unsafe {
31791 (windows_core::Interface::vtable(self).SetOrder)(
31792 windows_core::Interface::as_raw(self),
31793 pclsidcategory,
31794 pcaccts as _,
31795 prgaccts as _,
31796 )
31797 .ok()
31798 }
31799 }
31800 pub unsafe fn EnumerateAccounts(
31801 &self,
31802 pclsidcategory: *const windows_core::GUID,
31803 pclsidtype: *const windows_core::GUID,
31804 dwflags: u32,
31805 ) -> windows_core::Result<IOlkEnum> {
31806 unsafe {
31807 let mut result__ = core::mem::zeroed();
31808 (windows_core::Interface::vtable(self).EnumerateAccounts)(
31809 windows_core::Interface::as_raw(self),
31810 pclsidcategory,
31811 pclsidtype,
31812 dwflags,
31813 &mut result__,
31814 )
31815 .and_then(|| windows_core::Type::from_abi(result__))
31816 }
31817 }
31818 pub unsafe fn PlaceHolder10(&self) -> windows_core::Result<()> {
31819 unsafe {
31820 (windows_core::Interface::vtable(self).PlaceHolder10)(windows_core::Interface::as_raw(
31821 self,
31822 ))
31823 .ok()
31824 }
31825 }
31826 pub unsafe fn PlaceHolder11(&self) -> windows_core::Result<()> {
31827 unsafe {
31828 (windows_core::Interface::vtable(self).PlaceHolder11)(windows_core::Interface::as_raw(
31829 self,
31830 ))
31831 .ok()
31832 }
31833 }
31834 pub unsafe fn FreeMemory(&self, pv: *mut u8) -> windows_core::Result<()> {
31835 unsafe {
31836 (windows_core::Interface::vtable(self).FreeMemory)(
31837 windows_core::Interface::as_raw(self),
31838 pv as _,
31839 )
31840 .ok()
31841 }
31842 }
31843 pub unsafe fn Advise<P0>(&self, pnotify: P0, pdwcookie: *mut u32) -> windows_core::Result<()>
31844 where
31845 P0: windows_core::Param<IOlkAccountNotify>,
31846 {
31847 unsafe {
31848 (windows_core::Interface::vtable(self).Advise)(
31849 windows_core::Interface::as_raw(self),
31850 pnotify.param().abi(),
31851 pdwcookie as _,
31852 )
31853 .ok()
31854 }
31855 }
31856 pub unsafe fn Unadvise(&self, pdwcookie: *mut u32) -> windows_core::Result<()> {
31857 unsafe {
31858 (windows_core::Interface::vtable(self).Unadvise)(
31859 windows_core::Interface::as_raw(self),
31860 pdwcookie as _,
31861 )
31862 .ok()
31863 }
31864 }
31865 pub unsafe fn PlaceHolder12(&self) -> windows_core::Result<()> {
31866 unsafe {
31867 (windows_core::Interface::vtable(self).PlaceHolder12)(windows_core::Interface::as_raw(
31868 self,
31869 ))
31870 .ok()
31871 }
31872 }
31873 pub unsafe fn PlaceHolder13(&self) -> windows_core::Result<()> {
31874 unsafe {
31875 (windows_core::Interface::vtable(self).PlaceHolder13)(windows_core::Interface::as_raw(
31876 self,
31877 ))
31878 .ok()
31879 }
31880 }
31881 pub unsafe fn PlaceHolder14(&self) -> windows_core::Result<()> {
31882 unsafe {
31883 (windows_core::Interface::vtable(self).PlaceHolder14)(windows_core::Interface::as_raw(
31884 self,
31885 ))
31886 .ok()
31887 }
31888 }
31889}
31890#[repr(C)]
31891#[doc(hidden)]
31892pub struct IOlkAccountManager_Vtbl {
31893 pub base__: IOlkErrorUnknown_Vtbl,
31894 pub Init: unsafe extern "system" fn(
31895 *mut core::ffi::c_void,
31896 *mut core::ffi::c_void,
31897 u32,
31898 ) -> windows_core::HRESULT,
31899 pub DisplayAccountList: unsafe extern "system" fn(
31900 *mut core::ffi::c_void,
31901 windows::Win32::Foundation::HWND,
31902 u32,
31903 windows_core::PCWSTR,
31904 u32,
31905 *const windows_core::GUID,
31906 *const windows_core::GUID,
31907 ) -> windows_core::HRESULT,
31908 pub PlaceHolder1: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
31909 pub PlaceHolder2: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
31910 pub PlaceHolder3: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
31911 pub PlaceHolder4: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
31912 pub PlaceHolder5: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
31913 pub FindAccount: unsafe extern "system" fn(
31914 *mut core::ffi::c_void,
31915 u32,
31916 *mut ACCT_VARIANT,
31917 *mut *mut core::ffi::c_void,
31918 ) -> windows_core::HRESULT,
31919 pub PlaceHolder6: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
31920 pub PlaceHolder7: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
31921 pub PlaceHolder8: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
31922 pub DeleteAccount:
31923 unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
31924 pub PlaceHolder9: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
31925 pub SaveChanges:
31926 unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32) -> windows_core::HRESULT,
31927 pub GetOrder: unsafe extern "system" fn(
31928 *mut core::ffi::c_void,
31929 *const windows_core::GUID,
31930 *mut u32,
31931 *mut *mut u32,
31932 ) -> windows_core::HRESULT,
31933 pub SetOrder: unsafe extern "system" fn(
31934 *mut core::ffi::c_void,
31935 *const windows_core::GUID,
31936 *mut u32,
31937 *mut *mut u32,
31938 ) -> windows_core::HRESULT,
31939 pub EnumerateAccounts: unsafe extern "system" fn(
31940 *mut core::ffi::c_void,
31941 *const windows_core::GUID,
31942 *const windows_core::GUID,
31943 u32,
31944 *mut *mut core::ffi::c_void,
31945 ) -> windows_core::HRESULT,
31946 pub PlaceHolder10: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
31947 pub PlaceHolder11: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
31948 pub FreeMemory:
31949 unsafe extern "system" fn(*mut core::ffi::c_void, *mut u8) -> windows_core::HRESULT,
31950 pub Advise: unsafe extern "system" fn(
31951 *mut core::ffi::c_void,
31952 *mut core::ffi::c_void,
31953 *mut u32,
31954 ) -> windows_core::HRESULT,
31955 pub Unadvise:
31956 unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
31957 pub PlaceHolder12: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
31958 pub PlaceHolder13: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
31959 pub PlaceHolder14: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
31960}
31961pub trait IOlkAccountManager_Impl: IOlkErrorUnknown_Impl {
31962 fn Init(
31963 &self,
31964 paccthelper: windows_core::Ref<IOlkAccountHelper>,
31965 dwflags: u32,
31966 ) -> windows_core::Result<()>;
31967 fn DisplayAccountList(
31968 &self,
31969 hwnd: windows::Win32::Foundation::HWND,
31970 dwflags: u32,
31971 wsztitle: &windows_core::PCWSTR,
31972 ccategories: u32,
31973 rgclsidcategories: *const windows_core::GUID,
31974 pclsidtype: *const windows_core::GUID,
31975 ) -> windows_core::Result<()>;
31976 fn PlaceHolder1(&self) -> windows_core::Result<()>;
31977 fn PlaceHolder2(&self) -> windows_core::Result<()>;
31978 fn PlaceHolder3(&self) -> windows_core::Result<()>;
31979 fn PlaceHolder4(&self) -> windows_core::Result<()>;
31980 fn PlaceHolder5(&self) -> windows_core::Result<()>;
31981 fn FindAccount(
31982 &self,
31983 dwprop: u32,
31984 pvar: *mut ACCT_VARIANT,
31985 ppaccount: windows_core::OutRef<IOlkAccount>,
31986 ) -> windows_core::Result<()>;
31987 fn PlaceHolder6(&self) -> windows_core::Result<()>;
31988 fn PlaceHolder7(&self) -> windows_core::Result<()>;
31989 fn PlaceHolder8(&self) -> windows_core::Result<()>;
31990 fn DeleteAccount(&self, dwacctid: u32) -> windows_core::Result<()>;
31991 fn PlaceHolder9(&self) -> windows_core::Result<()>;
31992 fn SaveChanges(&self, dwacctid: u32, dwflags: u32) -> windows_core::Result<()>;
31993 fn GetOrder(
31994 &self,
31995 pclsidcategory: *const windows_core::GUID,
31996 pcaccts: *mut u32,
31997 prgaccts: *mut *mut u32,
31998 ) -> windows_core::Result<()>;
31999 fn SetOrder(
32000 &self,
32001 pclsidcategory: *const windows_core::GUID,
32002 pcaccts: *mut u32,
32003 prgaccts: *mut *mut u32,
32004 ) -> windows_core::Result<()>;
32005 fn EnumerateAccounts(
32006 &self,
32007 pclsidcategory: *const windows_core::GUID,
32008 pclsidtype: *const windows_core::GUID,
32009 dwflags: u32,
32010 ) -> windows_core::Result<IOlkEnum>;
32011 fn PlaceHolder10(&self) -> windows_core::Result<()>;
32012 fn PlaceHolder11(&self) -> windows_core::Result<()>;
32013 fn FreeMemory(&self, pv: *mut u8) -> windows_core::Result<()>;
32014 fn Advise(
32015 &self,
32016 pnotify: windows_core::Ref<IOlkAccountNotify>,
32017 pdwcookie: *mut u32,
32018 ) -> windows_core::Result<()>;
32019 fn Unadvise(&self, pdwcookie: *mut u32) -> windows_core::Result<()>;
32020 fn PlaceHolder12(&self) -> windows_core::Result<()>;
32021 fn PlaceHolder13(&self) -> windows_core::Result<()>;
32022 fn PlaceHolder14(&self) -> windows_core::Result<()>;
32023}
32024impl IOlkAccountManager_Vtbl {
32025 pub const fn new<Identity: IOlkAccountManager_Impl, const OFFSET: isize>() -> Self {
32026 unsafe extern "system" fn Init<Identity: IOlkAccountManager_Impl, const OFFSET: isize>(
32027 this: *mut core::ffi::c_void,
32028 paccthelper: *mut core::ffi::c_void,
32029 dwflags: u32,
32030 ) -> windows_core::HRESULT {
32031 unsafe {
32032 let this: &Identity =
32033 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
32034 IOlkAccountManager_Impl::Init(
32035 this,
32036 core::mem::transmute_copy(&paccthelper),
32037 core::mem::transmute_copy(&dwflags),
32038 )
32039 .into()
32040 }
32041 }
32042 unsafe extern "system" fn DisplayAccountList<
32043 Identity: IOlkAccountManager_Impl,
32044 const OFFSET: isize,
32045 >(
32046 this: *mut core::ffi::c_void,
32047 hwnd: windows::Win32::Foundation::HWND,
32048 dwflags: u32,
32049 wsztitle: windows_core::PCWSTR,
32050 ccategories: u32,
32051 rgclsidcategories: *const windows_core::GUID,
32052 pclsidtype: *const windows_core::GUID,
32053 ) -> windows_core::HRESULT {
32054 unsafe {
32055 let this: &Identity =
32056 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
32057 IOlkAccountManager_Impl::DisplayAccountList(
32058 this,
32059 core::mem::transmute_copy(&hwnd),
32060 core::mem::transmute_copy(&dwflags),
32061 core::mem::transmute(&wsztitle),
32062 core::mem::transmute_copy(&ccategories),
32063 core::mem::transmute_copy(&rgclsidcategories),
32064 core::mem::transmute_copy(&pclsidtype),
32065 )
32066 .into()
32067 }
32068 }
32069 unsafe extern "system" fn PlaceHolder1<
32070 Identity: IOlkAccountManager_Impl,
32071 const OFFSET: isize,
32072 >(
32073 this: *mut core::ffi::c_void,
32074 ) -> windows_core::HRESULT {
32075 unsafe {
32076 let this: &Identity =
32077 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
32078 IOlkAccountManager_Impl::PlaceHolder1(this).into()
32079 }
32080 }
32081 unsafe extern "system" fn PlaceHolder2<
32082 Identity: IOlkAccountManager_Impl,
32083 const OFFSET: isize,
32084 >(
32085 this: *mut core::ffi::c_void,
32086 ) -> windows_core::HRESULT {
32087 unsafe {
32088 let this: &Identity =
32089 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
32090 IOlkAccountManager_Impl::PlaceHolder2(this).into()
32091 }
32092 }
32093 unsafe extern "system" fn PlaceHolder3<
32094 Identity: IOlkAccountManager_Impl,
32095 const OFFSET: isize,
32096 >(
32097 this: *mut core::ffi::c_void,
32098 ) -> windows_core::HRESULT {
32099 unsafe {
32100 let this: &Identity =
32101 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
32102 IOlkAccountManager_Impl::PlaceHolder3(this).into()
32103 }
32104 }
32105 unsafe extern "system" fn PlaceHolder4<
32106 Identity: IOlkAccountManager_Impl,
32107 const OFFSET: isize,
32108 >(
32109 this: *mut core::ffi::c_void,
32110 ) -> windows_core::HRESULT {
32111 unsafe {
32112 let this: &Identity =
32113 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
32114 IOlkAccountManager_Impl::PlaceHolder4(this).into()
32115 }
32116 }
32117 unsafe extern "system" fn PlaceHolder5<
32118 Identity: IOlkAccountManager_Impl,
32119 const OFFSET: isize,
32120 >(
32121 this: *mut core::ffi::c_void,
32122 ) -> windows_core::HRESULT {
32123 unsafe {
32124 let this: &Identity =
32125 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
32126 IOlkAccountManager_Impl::PlaceHolder5(this).into()
32127 }
32128 }
32129 unsafe extern "system" fn FindAccount<
32130 Identity: IOlkAccountManager_Impl,
32131 const OFFSET: isize,
32132 >(
32133 this: *mut core::ffi::c_void,
32134 dwprop: u32,
32135 pvar: *mut ACCT_VARIANT,
32136 ppaccount: *mut *mut core::ffi::c_void,
32137 ) -> windows_core::HRESULT {
32138 unsafe {
32139 let this: &Identity =
32140 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
32141 IOlkAccountManager_Impl::FindAccount(
32142 this,
32143 core::mem::transmute_copy(&dwprop),
32144 core::mem::transmute_copy(&pvar),
32145 core::mem::transmute_copy(&ppaccount),
32146 )
32147 .into()
32148 }
32149 }
32150 unsafe extern "system" fn PlaceHolder6<
32151 Identity: IOlkAccountManager_Impl,
32152 const OFFSET: isize,
32153 >(
32154 this: *mut core::ffi::c_void,
32155 ) -> windows_core::HRESULT {
32156 unsafe {
32157 let this: &Identity =
32158 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
32159 IOlkAccountManager_Impl::PlaceHolder6(this).into()
32160 }
32161 }
32162 unsafe extern "system" fn PlaceHolder7<
32163 Identity: IOlkAccountManager_Impl,
32164 const OFFSET: isize,
32165 >(
32166 this: *mut core::ffi::c_void,
32167 ) -> windows_core::HRESULT {
32168 unsafe {
32169 let this: &Identity =
32170 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
32171 IOlkAccountManager_Impl::PlaceHolder7(this).into()
32172 }
32173 }
32174 unsafe extern "system" fn PlaceHolder8<
32175 Identity: IOlkAccountManager_Impl,
32176 const OFFSET: isize,
32177 >(
32178 this: *mut core::ffi::c_void,
32179 ) -> windows_core::HRESULT {
32180 unsafe {
32181 let this: &Identity =
32182 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
32183 IOlkAccountManager_Impl::PlaceHolder8(this).into()
32184 }
32185 }
32186 unsafe extern "system" fn DeleteAccount<
32187 Identity: IOlkAccountManager_Impl,
32188 const OFFSET: isize,
32189 >(
32190 this: *mut core::ffi::c_void,
32191 dwacctid: u32,
32192 ) -> windows_core::HRESULT {
32193 unsafe {
32194 let this: &Identity =
32195 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
32196 IOlkAccountManager_Impl::DeleteAccount(this, core::mem::transmute_copy(&dwacctid))
32197 .into()
32198 }
32199 }
32200 unsafe extern "system" fn PlaceHolder9<
32201 Identity: IOlkAccountManager_Impl,
32202 const OFFSET: isize,
32203 >(
32204 this: *mut core::ffi::c_void,
32205 ) -> windows_core::HRESULT {
32206 unsafe {
32207 let this: &Identity =
32208 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
32209 IOlkAccountManager_Impl::PlaceHolder9(this).into()
32210 }
32211 }
32212 unsafe extern "system" fn SaveChanges<
32213 Identity: IOlkAccountManager_Impl,
32214 const OFFSET: isize,
32215 >(
32216 this: *mut core::ffi::c_void,
32217 dwacctid: u32,
32218 dwflags: u32,
32219 ) -> windows_core::HRESULT {
32220 unsafe {
32221 let this: &Identity =
32222 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
32223 IOlkAccountManager_Impl::SaveChanges(
32224 this,
32225 core::mem::transmute_copy(&dwacctid),
32226 core::mem::transmute_copy(&dwflags),
32227 )
32228 .into()
32229 }
32230 }
32231 unsafe extern "system" fn GetOrder<
32232 Identity: IOlkAccountManager_Impl,
32233 const OFFSET: isize,
32234 >(
32235 this: *mut core::ffi::c_void,
32236 pclsidcategory: *const windows_core::GUID,
32237 pcaccts: *mut u32,
32238 prgaccts: *mut *mut u32,
32239 ) -> windows_core::HRESULT {
32240 unsafe {
32241 let this: &Identity =
32242 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
32243 IOlkAccountManager_Impl::GetOrder(
32244 this,
32245 core::mem::transmute_copy(&pclsidcategory),
32246 core::mem::transmute_copy(&pcaccts),
32247 core::mem::transmute_copy(&prgaccts),
32248 )
32249 .into()
32250 }
32251 }
32252 unsafe extern "system" fn SetOrder<
32253 Identity: IOlkAccountManager_Impl,
32254 const OFFSET: isize,
32255 >(
32256 this: *mut core::ffi::c_void,
32257 pclsidcategory: *const windows_core::GUID,
32258 pcaccts: *mut u32,
32259 prgaccts: *mut *mut u32,
32260 ) -> windows_core::HRESULT {
32261 unsafe {
32262 let this: &Identity =
32263 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
32264 IOlkAccountManager_Impl::SetOrder(
32265 this,
32266 core::mem::transmute_copy(&pclsidcategory),
32267 core::mem::transmute_copy(&pcaccts),
32268 core::mem::transmute_copy(&prgaccts),
32269 )
32270 .into()
32271 }
32272 }
32273 unsafe extern "system" fn EnumerateAccounts<
32274 Identity: IOlkAccountManager_Impl,
32275 const OFFSET: isize,
32276 >(
32277 this: *mut core::ffi::c_void,
32278 pclsidcategory: *const windows_core::GUID,
32279 pclsidtype: *const windows_core::GUID,
32280 dwflags: u32,
32281 ppenum: *mut *mut core::ffi::c_void,
32282 ) -> windows_core::HRESULT {
32283 unsafe {
32284 let this: &Identity =
32285 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
32286 match IOlkAccountManager_Impl::EnumerateAccounts(
32287 this,
32288 core::mem::transmute_copy(&pclsidcategory),
32289 core::mem::transmute_copy(&pclsidtype),
32290 core::mem::transmute_copy(&dwflags),
32291 ) {
32292 Ok(ok__) => {
32293 ppenum.write(core::mem::transmute(ok__));
32294 windows_core::HRESULT(0)
32295 }
32296 Err(err) => err.into(),
32297 }
32298 }
32299 }
32300 unsafe extern "system" fn PlaceHolder10<
32301 Identity: IOlkAccountManager_Impl,
32302 const OFFSET: isize,
32303 >(
32304 this: *mut core::ffi::c_void,
32305 ) -> windows_core::HRESULT {
32306 unsafe {
32307 let this: &Identity =
32308 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
32309 IOlkAccountManager_Impl::PlaceHolder10(this).into()
32310 }
32311 }
32312 unsafe extern "system" fn PlaceHolder11<
32313 Identity: IOlkAccountManager_Impl,
32314 const OFFSET: isize,
32315 >(
32316 this: *mut core::ffi::c_void,
32317 ) -> windows_core::HRESULT {
32318 unsafe {
32319 let this: &Identity =
32320 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
32321 IOlkAccountManager_Impl::PlaceHolder11(this).into()
32322 }
32323 }
32324 unsafe extern "system" fn FreeMemory<
32325 Identity: IOlkAccountManager_Impl,
32326 const OFFSET: isize,
32327 >(
32328 this: *mut core::ffi::c_void,
32329 pv: *mut u8,
32330 ) -> windows_core::HRESULT {
32331 unsafe {
32332 let this: &Identity =
32333 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
32334 IOlkAccountManager_Impl::FreeMemory(this, core::mem::transmute_copy(&pv)).into()
32335 }
32336 }
32337 unsafe extern "system" fn Advise<Identity: IOlkAccountManager_Impl, const OFFSET: isize>(
32338 this: *mut core::ffi::c_void,
32339 pnotify: *mut core::ffi::c_void,
32340 pdwcookie: *mut u32,
32341 ) -> windows_core::HRESULT {
32342 unsafe {
32343 let this: &Identity =
32344 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
32345 IOlkAccountManager_Impl::Advise(
32346 this,
32347 core::mem::transmute_copy(&pnotify),
32348 core::mem::transmute_copy(&pdwcookie),
32349 )
32350 .into()
32351 }
32352 }
32353 unsafe extern "system" fn Unadvise<
32354 Identity: IOlkAccountManager_Impl,
32355 const OFFSET: isize,
32356 >(
32357 this: *mut core::ffi::c_void,
32358 pdwcookie: *mut u32,
32359 ) -> windows_core::HRESULT {
32360 unsafe {
32361 let this: &Identity =
32362 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
32363 IOlkAccountManager_Impl::Unadvise(this, core::mem::transmute_copy(&pdwcookie))
32364 .into()
32365 }
32366 }
32367 unsafe extern "system" fn PlaceHolder12<
32368 Identity: IOlkAccountManager_Impl,
32369 const OFFSET: isize,
32370 >(
32371 this: *mut core::ffi::c_void,
32372 ) -> windows_core::HRESULT {
32373 unsafe {
32374 let this: &Identity =
32375 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
32376 IOlkAccountManager_Impl::PlaceHolder12(this).into()
32377 }
32378 }
32379 unsafe extern "system" fn PlaceHolder13<
32380 Identity: IOlkAccountManager_Impl,
32381 const OFFSET: isize,
32382 >(
32383 this: *mut core::ffi::c_void,
32384 ) -> windows_core::HRESULT {
32385 unsafe {
32386 let this: &Identity =
32387 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
32388 IOlkAccountManager_Impl::PlaceHolder13(this).into()
32389 }
32390 }
32391 unsafe extern "system" fn PlaceHolder14<
32392 Identity: IOlkAccountManager_Impl,
32393 const OFFSET: isize,
32394 >(
32395 this: *mut core::ffi::c_void,
32396 ) -> windows_core::HRESULT {
32397 unsafe {
32398 let this: &Identity =
32399 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
32400 IOlkAccountManager_Impl::PlaceHolder14(this).into()
32401 }
32402 }
32403 Self {
32404 base__: IOlkErrorUnknown_Vtbl::new::<Identity, OFFSET>(),
32405 Init: Init::<Identity, OFFSET>,
32406 DisplayAccountList: DisplayAccountList::<Identity, OFFSET>,
32407 PlaceHolder1: PlaceHolder1::<Identity, OFFSET>,
32408 PlaceHolder2: PlaceHolder2::<Identity, OFFSET>,
32409 PlaceHolder3: PlaceHolder3::<Identity, OFFSET>,
32410 PlaceHolder4: PlaceHolder4::<Identity, OFFSET>,
32411 PlaceHolder5: PlaceHolder5::<Identity, OFFSET>,
32412 FindAccount: FindAccount::<Identity, OFFSET>,
32413 PlaceHolder6: PlaceHolder6::<Identity, OFFSET>,
32414 PlaceHolder7: PlaceHolder7::<Identity, OFFSET>,
32415 PlaceHolder8: PlaceHolder8::<Identity, OFFSET>,
32416 DeleteAccount: DeleteAccount::<Identity, OFFSET>,
32417 PlaceHolder9: PlaceHolder9::<Identity, OFFSET>,
32418 SaveChanges: SaveChanges::<Identity, OFFSET>,
32419 GetOrder: GetOrder::<Identity, OFFSET>,
32420 SetOrder: SetOrder::<Identity, OFFSET>,
32421 EnumerateAccounts: EnumerateAccounts::<Identity, OFFSET>,
32422 PlaceHolder10: PlaceHolder10::<Identity, OFFSET>,
32423 PlaceHolder11: PlaceHolder11::<Identity, OFFSET>,
32424 FreeMemory: FreeMemory::<Identity, OFFSET>,
32425 Advise: Advise::<Identity, OFFSET>,
32426 Unadvise: Unadvise::<Identity, OFFSET>,
32427 PlaceHolder12: PlaceHolder12::<Identity, OFFSET>,
32428 PlaceHolder13: PlaceHolder13::<Identity, OFFSET>,
32429 PlaceHolder14: PlaceHolder14::<Identity, OFFSET>,
32430 }
32431 }
32432 pub fn matches(iid: &windows_core::GUID) -> bool {
32433 iid == &<IOlkAccountManager as windows_core::Interface>::IID
32434 || iid == &<IOlkErrorUnknown as windows_core::Interface>::IID
32435 }
32436}
32437impl windows_core::RuntimeName for IOlkAccountManager {}
32438windows_core::imp::define_interface!(
32439 IOlkAccountNotify,
32440 IOlkAccountNotify_Vtbl,
32441 0x9240a6c3_af41_11d2_8c3b_00104b2a6676
32442);
32443impl core::ops::Deref for IOlkAccountNotify {
32444 type Target = IOlkErrorUnknown;
32445 fn deref(&self) -> &Self::Target {
32446 unsafe { core::mem::transmute(self) }
32447 }
32448}
32449windows_core::imp::interface_hierarchy!(
32450 IOlkAccountNotify,
32451 windows_core::IUnknown,
32452 IOlkErrorUnknown
32453);
32454#[repr(C)]
32455#[doc(hidden)]
32456pub struct IOlkAccountNotify_Vtbl {
32457 pub base__: IOlkErrorUnknown_Vtbl,
32458}
32459pub trait IOlkAccountNotify_Impl: IOlkErrorUnknown_Impl {}
32460impl IOlkAccountNotify_Vtbl {
32461 pub const fn new<Identity: IOlkAccountNotify_Impl, const OFFSET: isize>() -> Self {
32462 Self {
32463 base__: IOlkErrorUnknown_Vtbl::new::<Identity, OFFSET>(),
32464 }
32465 }
32466 pub fn matches(iid: &windows_core::GUID) -> bool {
32467 iid == &<IOlkAccountNotify as windows_core::Interface>::IID
32468 || iid == &<IOlkErrorUnknown as windows_core::Interface>::IID
32469 }
32470}
32471impl windows_core::RuntimeName for IOlkAccountNotify {}
32472windows_core::imp::define_interface!(
32473 IOlkEnum,
32474 IOlkEnum_Vtbl,
32475 0x9240a6c0_af41_11d2_8c3b_00104b2a6676
32476);
32477windows_core::imp::interface_hierarchy!(IOlkEnum, windows_core::IUnknown);
32478impl IOlkEnum {
32479 pub unsafe fn GetCount(&self, pulcount: *mut u32) -> windows_core::Result<()> {
32480 unsafe {
32481 (windows_core::Interface::vtable(self).GetCount)(
32482 windows_core::Interface::as_raw(self),
32483 pulcount as _,
32484 )
32485 .ok()
32486 }
32487 }
32488 pub unsafe fn Reset(&self) -> windows_core::Result<()> {
32489 unsafe {
32490 (windows_core::Interface::vtable(self).Reset)(windows_core::Interface::as_raw(self))
32491 .ok()
32492 }
32493 }
32494 pub unsafe fn GetNext(&self) -> windows_core::Result<windows_core::IUnknown> {
32495 unsafe {
32496 let mut result__ = core::mem::zeroed();
32497 (windows_core::Interface::vtable(self).GetNext)(
32498 windows_core::Interface::as_raw(self),
32499 &mut result__,
32500 )
32501 .and_then(|| windows_core::Type::from_abi(result__))
32502 }
32503 }
32504 pub unsafe fn Skip(&self, cskip: u32) -> windows_core::Result<()> {
32505 unsafe {
32506 (windows_core::Interface::vtable(self).Skip)(
32507 windows_core::Interface::as_raw(self),
32508 cskip,
32509 )
32510 .ok()
32511 }
32512 }
32513}
32514#[repr(C)]
32515#[doc(hidden)]
32516pub struct IOlkEnum_Vtbl {
32517 pub base__: windows_core::IUnknown_Vtbl,
32518 pub GetCount:
32519 unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
32520 pub Reset: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
32521 pub GetNext: unsafe extern "system" fn(
32522 *mut core::ffi::c_void,
32523 *mut *mut core::ffi::c_void,
32524 ) -> windows_core::HRESULT,
32525 pub Skip: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
32526}
32527pub trait IOlkEnum_Impl: windows_core::IUnknownImpl {
32528 fn GetCount(&self, pulcount: *mut u32) -> windows_core::Result<()>;
32529 fn Reset(&self) -> windows_core::Result<()>;
32530 fn GetNext(&self) -> windows_core::Result<windows_core::IUnknown>;
32531 fn Skip(&self, cskip: u32) -> windows_core::Result<()>;
32532}
32533impl IOlkEnum_Vtbl {
32534 pub const fn new<Identity: IOlkEnum_Impl, const OFFSET: isize>() -> Self {
32535 unsafe extern "system" fn GetCount<Identity: IOlkEnum_Impl, const OFFSET: isize>(
32536 this: *mut core::ffi::c_void,
32537 pulcount: *mut u32,
32538 ) -> windows_core::HRESULT {
32539 unsafe {
32540 let this: &Identity =
32541 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
32542 IOlkEnum_Impl::GetCount(this, core::mem::transmute_copy(&pulcount)).into()
32543 }
32544 }
32545 unsafe extern "system" fn Reset<Identity: IOlkEnum_Impl, const OFFSET: isize>(
32546 this: *mut core::ffi::c_void,
32547 ) -> windows_core::HRESULT {
32548 unsafe {
32549 let this: &Identity =
32550 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
32551 IOlkEnum_Impl::Reset(this).into()
32552 }
32553 }
32554 unsafe extern "system" fn GetNext<Identity: IOlkEnum_Impl, const OFFSET: isize>(
32555 this: *mut core::ffi::c_void,
32556 ppunk: *mut *mut core::ffi::c_void,
32557 ) -> windows_core::HRESULT {
32558 unsafe {
32559 let this: &Identity =
32560 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
32561 match IOlkEnum_Impl::GetNext(this) {
32562 Ok(ok__) => {
32563 ppunk.write(core::mem::transmute(ok__));
32564 windows_core::HRESULT(0)
32565 }
32566 Err(err) => err.into(),
32567 }
32568 }
32569 }
32570 unsafe extern "system" fn Skip<Identity: IOlkEnum_Impl, const OFFSET: isize>(
32571 this: *mut core::ffi::c_void,
32572 cskip: u32,
32573 ) -> windows_core::HRESULT {
32574 unsafe {
32575 let this: &Identity =
32576 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
32577 IOlkEnum_Impl::Skip(this, core::mem::transmute_copy(&cskip)).into()
32578 }
32579 }
32580 Self {
32581 base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
32582 GetCount: GetCount::<Identity, OFFSET>,
32583 Reset: Reset::<Identity, OFFSET>,
32584 GetNext: GetNext::<Identity, OFFSET>,
32585 Skip: Skip::<Identity, OFFSET>,
32586 }
32587 }
32588 pub fn matches(iid: &windows_core::GUID) -> bool {
32589 iid == &<IOlkEnum as windows_core::Interface>::IID
32590 }
32591}
32592impl windows_core::RuntimeName for IOlkEnum {}
32593windows_core::imp::define_interface!(
32594 IOlkErrorUnknown,
32595 IOlkErrorUnknown_Vtbl,
32596 0x9240a6c0_af41_11d2_8c3b_00104b2a6676
32597);
32598windows_core::imp::interface_hierarchy!(IOlkErrorUnknown, windows_core::IUnknown);
32599impl IOlkErrorUnknown {
32600 pub unsafe fn GetLastError(
32601 &self,
32602 hr: windows_core::HRESULT,
32603 ppwszerror: *mut windows_core::PWSTR,
32604 ) -> windows_core::Result<()> {
32605 unsafe {
32606 (windows_core::Interface::vtable(self).GetLastError)(
32607 windows_core::Interface::as_raw(self),
32608 hr,
32609 ppwszerror as _,
32610 )
32611 .ok()
32612 }
32613 }
32614}
32615#[repr(C)]
32616#[doc(hidden)]
32617pub struct IOlkErrorUnknown_Vtbl {
32618 pub base__: windows_core::IUnknown_Vtbl,
32619 pub GetLastError: unsafe extern "system" fn(
32620 *mut core::ffi::c_void,
32621 windows_core::HRESULT,
32622 *mut windows_core::PWSTR,
32623 ) -> windows_core::HRESULT,
32624}
32625pub trait IOlkErrorUnknown_Impl: windows_core::IUnknownImpl {
32626 fn GetLastError(
32627 &self,
32628 hr: windows_core::HRESULT,
32629 ppwszerror: *mut windows_core::PWSTR,
32630 ) -> windows_core::Result<()>;
32631}
32632impl IOlkErrorUnknown_Vtbl {
32633 pub const fn new<Identity: IOlkErrorUnknown_Impl, const OFFSET: isize>() -> Self {
32634 unsafe extern "system" fn GetLastError<
32635 Identity: IOlkErrorUnknown_Impl,
32636 const OFFSET: isize,
32637 >(
32638 this: *mut core::ffi::c_void,
32639 hr: windows_core::HRESULT,
32640 ppwszerror: *mut windows_core::PWSTR,
32641 ) -> windows_core::HRESULT {
32642 unsafe {
32643 let this: &Identity =
32644 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
32645 IOlkErrorUnknown_Impl::GetLastError(
32646 this,
32647 core::mem::transmute_copy(&hr),
32648 core::mem::transmute_copy(&ppwszerror),
32649 )
32650 .into()
32651 }
32652 }
32653 Self {
32654 base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
32655 GetLastError: GetLastError::<Identity, OFFSET>,
32656 }
32657 }
32658 pub fn matches(iid: &windows_core::GUID) -> bool {
32659 iid == &<IOlkErrorUnknown as windows_core::Interface>::IID
32660 }
32661}
32662impl windows_core::RuntimeName for IOlkErrorUnknown {}
32663pub const IPROP_CLEAN: u32 = 65536u32;
32664pub const IPROP_DIRTY: u32 = 131072u32;
32665pub const IPROP_READONLY: u32 = 1u32;
32666pub const IPROP_READWRITE: u32 = 2u32;
32667windows_core::imp::define_interface!(
32668 IPersistMessage,
32669 IPersistMessage_Vtbl,
32670 0x0002032a_0000_0000_c000_000000000046
32671);
32672windows_core::imp::interface_hierarchy!(IPersistMessage, windows_core::IUnknown);
32673impl IPersistMessage {
32674 pub unsafe fn GetLastError(
32675 &self,
32676 hresult: windows_core::HRESULT,
32677 ulflags: u32,
32678 lppmapierror: *mut *mut MAPIERROR,
32679 ) -> windows_core::Result<()> {
32680 unsafe {
32681 (windows_core::Interface::vtable(self).GetLastError)(
32682 windows_core::Interface::as_raw(self),
32683 hresult,
32684 ulflags,
32685 lppmapierror as _,
32686 )
32687 .ok()
32688 }
32689 }
32690 pub unsafe fn GetClassID(
32691 &self,
32692 lpclassid: *mut windows_core::GUID,
32693 ) -> windows_core::Result<()> {
32694 unsafe {
32695 (windows_core::Interface::vtable(self).GetClassID)(
32696 windows_core::Interface::as_raw(self),
32697 lpclassid as _,
32698 )
32699 .ok()
32700 }
32701 }
32702 pub unsafe fn IsDirty(&self) -> windows_core::Result<()> {
32703 unsafe {
32704 (windows_core::Interface::vtable(self).IsDirty)(windows_core::Interface::as_raw(self))
32705 .ok()
32706 }
32707 }
32708 pub unsafe fn InitNew<P0, P1>(&self, pmessagesite: P0, pmessage: P1) -> windows_core::Result<()>
32709 where
32710 P0: windows_core::Param<IMAPIMessageSite>,
32711 P1: windows_core::Param<IMessage>,
32712 {
32713 unsafe {
32714 (windows_core::Interface::vtable(self).InitNew)(
32715 windows_core::Interface::as_raw(self),
32716 pmessagesite.param().abi(),
32717 pmessage.param().abi(),
32718 )
32719 .ok()
32720 }
32721 }
32722 pub unsafe fn Load<P0, P1>(
32723 &self,
32724 pmessagesite: P0,
32725 pmessage: P1,
32726 ulmessagestatus: u32,
32727 ulmessageflags: u32,
32728 ) -> windows_core::Result<()>
32729 where
32730 P0: windows_core::Param<IMAPIMessageSite>,
32731 P1: windows_core::Param<IMessage>,
32732 {
32733 unsafe {
32734 (windows_core::Interface::vtable(self).Load)(
32735 windows_core::Interface::as_raw(self),
32736 pmessagesite.param().abi(),
32737 pmessage.param().abi(),
32738 ulmessagestatus,
32739 ulmessageflags,
32740 )
32741 .ok()
32742 }
32743 }
32744 pub unsafe fn Save<P0>(&self, pmessage: P0, fsameasload: u32) -> windows_core::Result<()>
32745 where
32746 P0: windows_core::Param<IMessage>,
32747 {
32748 unsafe {
32749 (windows_core::Interface::vtable(self).Save)(
32750 windows_core::Interface::as_raw(self),
32751 pmessage.param().abi(),
32752 fsameasload,
32753 )
32754 .ok()
32755 }
32756 }
32757 pub unsafe fn SaveCompleted<P0>(&self, pmessage: P0) -> windows_core::Result<()>
32758 where
32759 P0: windows_core::Param<IMessage>,
32760 {
32761 unsafe {
32762 (windows_core::Interface::vtable(self).SaveCompleted)(
32763 windows_core::Interface::as_raw(self),
32764 pmessage.param().abi(),
32765 )
32766 .ok()
32767 }
32768 }
32769 pub unsafe fn HandsOffMessage(&self) -> windows_core::Result<()> {
32770 unsafe {
32771 (windows_core::Interface::vtable(self).HandsOffMessage)(
32772 windows_core::Interface::as_raw(self),
32773 )
32774 .ok()
32775 }
32776 }
32777}
32778#[repr(C)]
32779#[doc(hidden)]
32780pub struct IPersistMessage_Vtbl {
32781 pub base__: windows_core::IUnknown_Vtbl,
32782 pub GetLastError: unsafe extern "system" fn(
32783 *mut core::ffi::c_void,
32784 windows_core::HRESULT,
32785 u32,
32786 *mut *mut MAPIERROR,
32787 ) -> windows_core::HRESULT,
32788 pub GetClassID: unsafe extern "system" fn(
32789 *mut core::ffi::c_void,
32790 *mut windows_core::GUID,
32791 ) -> windows_core::HRESULT,
32792 pub IsDirty: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
32793 pub InitNew: unsafe extern "system" fn(
32794 *mut core::ffi::c_void,
32795 *mut core::ffi::c_void,
32796 *mut core::ffi::c_void,
32797 ) -> windows_core::HRESULT,
32798 pub Load: unsafe extern "system" fn(
32799 *mut core::ffi::c_void,
32800 *mut core::ffi::c_void,
32801 *mut core::ffi::c_void,
32802 u32,
32803 u32,
32804 ) -> windows_core::HRESULT,
32805 pub Save: unsafe extern "system" fn(
32806 *mut core::ffi::c_void,
32807 *mut core::ffi::c_void,
32808 u32,
32809 ) -> windows_core::HRESULT,
32810 pub SaveCompleted: unsafe extern "system" fn(
32811 *mut core::ffi::c_void,
32812 *mut core::ffi::c_void,
32813 ) -> windows_core::HRESULT,
32814 pub HandsOffMessage: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
32815}
32816pub trait IPersistMessage_Impl: windows_core::IUnknownImpl {
32817 fn GetLastError(
32818 &self,
32819 hresult: windows_core::HRESULT,
32820 ulflags: u32,
32821 lppmapierror: *mut *mut MAPIERROR,
32822 ) -> windows_core::Result<()>;
32823 fn GetClassID(&self, lpclassid: *mut windows_core::GUID) -> windows_core::Result<()>;
32824 fn IsDirty(&self) -> windows_core::Result<()>;
32825 fn InitNew(
32826 &self,
32827 pmessagesite: windows_core::Ref<IMAPIMessageSite>,
32828 pmessage: windows_core::Ref<IMessage>,
32829 ) -> windows_core::Result<()>;
32830 fn Load(
32831 &self,
32832 pmessagesite: windows_core::Ref<IMAPIMessageSite>,
32833 pmessage: windows_core::Ref<IMessage>,
32834 ulmessagestatus: u32,
32835 ulmessageflags: u32,
32836 ) -> windows_core::Result<()>;
32837 fn Save(
32838 &self,
32839 pmessage: windows_core::Ref<IMessage>,
32840 fsameasload: u32,
32841 ) -> windows_core::Result<()>;
32842 fn SaveCompleted(&self, pmessage: windows_core::Ref<IMessage>) -> windows_core::Result<()>;
32843 fn HandsOffMessage(&self) -> windows_core::Result<()>;
32844}
32845impl IPersistMessage_Vtbl {
32846 pub const fn new<Identity: IPersistMessage_Impl, const OFFSET: isize>() -> Self {
32847 unsafe extern "system" fn GetLastError<
32848 Identity: IPersistMessage_Impl,
32849 const OFFSET: isize,
32850 >(
32851 this: *mut core::ffi::c_void,
32852 hresult: windows_core::HRESULT,
32853 ulflags: u32,
32854 lppmapierror: *mut *mut MAPIERROR,
32855 ) -> windows_core::HRESULT {
32856 unsafe {
32857 let this: &Identity =
32858 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
32859 IPersistMessage_Impl::GetLastError(
32860 this,
32861 core::mem::transmute_copy(&hresult),
32862 core::mem::transmute_copy(&ulflags),
32863 core::mem::transmute_copy(&lppmapierror),
32864 )
32865 .into()
32866 }
32867 }
32868 unsafe extern "system" fn GetClassID<
32869 Identity: IPersistMessage_Impl,
32870 const OFFSET: isize,
32871 >(
32872 this: *mut core::ffi::c_void,
32873 lpclassid: *mut windows_core::GUID,
32874 ) -> windows_core::HRESULT {
32875 unsafe {
32876 let this: &Identity =
32877 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
32878 IPersistMessage_Impl::GetClassID(this, core::mem::transmute_copy(&lpclassid)).into()
32879 }
32880 }
32881 unsafe extern "system" fn IsDirty<Identity: IPersistMessage_Impl, const OFFSET: isize>(
32882 this: *mut core::ffi::c_void,
32883 ) -> windows_core::HRESULT {
32884 unsafe {
32885 let this: &Identity =
32886 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
32887 IPersistMessage_Impl::IsDirty(this).into()
32888 }
32889 }
32890 unsafe extern "system" fn InitNew<Identity: IPersistMessage_Impl, const OFFSET: isize>(
32891 this: *mut core::ffi::c_void,
32892 pmessagesite: *mut core::ffi::c_void,
32893 pmessage: *mut core::ffi::c_void,
32894 ) -> windows_core::HRESULT {
32895 unsafe {
32896 let this: &Identity =
32897 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
32898 IPersistMessage_Impl::InitNew(
32899 this,
32900 core::mem::transmute_copy(&pmessagesite),
32901 core::mem::transmute_copy(&pmessage),
32902 )
32903 .into()
32904 }
32905 }
32906 unsafe extern "system" fn Load<Identity: IPersistMessage_Impl, const OFFSET: isize>(
32907 this: *mut core::ffi::c_void,
32908 pmessagesite: *mut core::ffi::c_void,
32909 pmessage: *mut core::ffi::c_void,
32910 ulmessagestatus: u32,
32911 ulmessageflags: u32,
32912 ) -> windows_core::HRESULT {
32913 unsafe {
32914 let this: &Identity =
32915 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
32916 IPersistMessage_Impl::Load(
32917 this,
32918 core::mem::transmute_copy(&pmessagesite),
32919 core::mem::transmute_copy(&pmessage),
32920 core::mem::transmute_copy(&ulmessagestatus),
32921 core::mem::transmute_copy(&ulmessageflags),
32922 )
32923 .into()
32924 }
32925 }
32926 unsafe extern "system" fn Save<Identity: IPersistMessage_Impl, const OFFSET: isize>(
32927 this: *mut core::ffi::c_void,
32928 pmessage: *mut core::ffi::c_void,
32929 fsameasload: u32,
32930 ) -> windows_core::HRESULT {
32931 unsafe {
32932 let this: &Identity =
32933 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
32934 IPersistMessage_Impl::Save(
32935 this,
32936 core::mem::transmute_copy(&pmessage),
32937 core::mem::transmute_copy(&fsameasload),
32938 )
32939 .into()
32940 }
32941 }
32942 unsafe extern "system" fn SaveCompleted<
32943 Identity: IPersistMessage_Impl,
32944 const OFFSET: isize,
32945 >(
32946 this: *mut core::ffi::c_void,
32947 pmessage: *mut core::ffi::c_void,
32948 ) -> windows_core::HRESULT {
32949 unsafe {
32950 let this: &Identity =
32951 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
32952 IPersistMessage_Impl::SaveCompleted(this, core::mem::transmute_copy(&pmessage))
32953 .into()
32954 }
32955 }
32956 unsafe extern "system" fn HandsOffMessage<
32957 Identity: IPersistMessage_Impl,
32958 const OFFSET: isize,
32959 >(
32960 this: *mut core::ffi::c_void,
32961 ) -> windows_core::HRESULT {
32962 unsafe {
32963 let this: &Identity =
32964 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
32965 IPersistMessage_Impl::HandsOffMessage(this).into()
32966 }
32967 }
32968 Self {
32969 base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
32970 GetLastError: GetLastError::<Identity, OFFSET>,
32971 GetClassID: GetClassID::<Identity, OFFSET>,
32972 IsDirty: IsDirty::<Identity, OFFSET>,
32973 InitNew: InitNew::<Identity, OFFSET>,
32974 Load: Load::<Identity, OFFSET>,
32975 Save: Save::<Identity, OFFSET>,
32976 SaveCompleted: SaveCompleted::<Identity, OFFSET>,
32977 HandsOffMessage: HandsOffMessage::<Identity, OFFSET>,
32978 }
32979 }
32980 pub fn matches(iid: &windows_core::GUID) -> bool {
32981 iid == &<IPersistMessage as windows_core::Interface>::IID
32982 }
32983}
32984impl windows_core::RuntimeName for IPersistMessage {}
32985windows_core::imp::define_interface!(
32986 IPersistMime,
32987 IPersistMime_Vtbl,
32988 0xde4ad8da_555f_11d1_8dd0_00c04fb951f9
32989);
32990impl core::ops::Deref for IPersistMime {
32991 type Target = windows::Win32::System::Com::IPersist;
32992 fn deref(&self) -> &Self::Target {
32993 unsafe { core::mem::transmute(self) }
32994 }
32995}
32996windows_core::imp::interface_hierarchy!(
32997 IPersistMime,
32998 windows_core::IUnknown,
32999 windows::Win32::System::Com::IPersist
33000);
33001impl IPersistMime {
33002 pub unsafe fn Load<P0>(&self, pmsg: P0) -> windows_core::Result<()>
33003 where
33004 P0: windows_core::Param<IMimeMessage>,
33005 {
33006 unsafe {
33007 (windows_core::Interface::vtable(self).Load)(
33008 windows_core::Interface::as_raw(self),
33009 pmsg.param().abi(),
33010 )
33011 .ok()
33012 }
33013 }
33014 pub unsafe fn Save<P0>(&self, pmsg: P0, dwflags: u32) -> windows_core::Result<()>
33015 where
33016 P0: windows_core::Param<IMimeMessage>,
33017 {
33018 unsafe {
33019 (windows_core::Interface::vtable(self).Save)(
33020 windows_core::Interface::as_raw(self),
33021 pmsg.param().abi(),
33022 dwflags,
33023 )
33024 .ok()
33025 }
33026 }
33027}
33028#[repr(C)]
33029#[doc(hidden)]
33030pub struct IPersistMime_Vtbl {
33031 pub base__: windows::Win32::System::Com::IPersist_Vtbl,
33032 pub Load: unsafe extern "system" fn(
33033 *mut core::ffi::c_void,
33034 *mut core::ffi::c_void,
33035 ) -> windows_core::HRESULT,
33036 pub Save: unsafe extern "system" fn(
33037 *mut core::ffi::c_void,
33038 *mut core::ffi::c_void,
33039 u32,
33040 ) -> windows_core::HRESULT,
33041}
33042pub trait IPersistMime_Impl: windows::Win32::System::Com::IPersist_Impl {
33043 fn Load(&self, pmsg: windows_core::Ref<IMimeMessage>) -> windows_core::Result<()>;
33044 fn Save(&self, pmsg: windows_core::Ref<IMimeMessage>, dwflags: u32)
33045 -> windows_core::Result<()>;
33046}
33047impl IPersistMime_Vtbl {
33048 pub const fn new<Identity: IPersistMime_Impl, const OFFSET: isize>() -> Self {
33049 unsafe extern "system" fn Load<Identity: IPersistMime_Impl, const OFFSET: isize>(
33050 this: *mut core::ffi::c_void,
33051 pmsg: *mut core::ffi::c_void,
33052 ) -> windows_core::HRESULT {
33053 unsafe {
33054 let this: &Identity =
33055 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
33056 IPersistMime_Impl::Load(this, core::mem::transmute_copy(&pmsg)).into()
33057 }
33058 }
33059 unsafe extern "system" fn Save<Identity: IPersistMime_Impl, const OFFSET: isize>(
33060 this: *mut core::ffi::c_void,
33061 pmsg: *mut core::ffi::c_void,
33062 dwflags: u32,
33063 ) -> windows_core::HRESULT {
33064 unsafe {
33065 let this: &Identity =
33066 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
33067 IPersistMime_Impl::Save(
33068 this,
33069 core::mem::transmute_copy(&pmsg),
33070 core::mem::transmute_copy(&dwflags),
33071 )
33072 .into()
33073 }
33074 }
33075 Self {
33076 base__: windows::Win32::System::Com::IPersist_Vtbl::new::<Identity, OFFSET>(),
33077 Load: Load::<Identity, OFFSET>,
33078 Save: Save::<Identity, OFFSET>,
33079 }
33080 }
33081 pub fn matches(iid: &windows_core::GUID) -> bool {
33082 iid == &<IPersistMime as windows_core::Interface>::IID
33083 || iid == &<windows::Win32::System::Com::IPersist as windows_core::Interface>::IID
33084 }
33085}
33086impl windows_core::RuntimeName for IPersistMime {}
33087windows_core::imp::define_interface!(
33088 IProfAdmin,
33089 IProfAdmin_Vtbl,
33090 0x0002031c_0000_0000_c000_000000000046
33091);
33092windows_core::imp::interface_hierarchy!(IProfAdmin, windows_core::IUnknown);
33093impl IProfAdmin {
33094 pub unsafe fn GetLastError(
33095 &self,
33096 hresult: windows_core::HRESULT,
33097 ulflags: u32,
33098 lppmapierror: *mut *mut MAPIERROR,
33099 ) -> windows_core::Result<()> {
33100 unsafe {
33101 (windows_core::Interface::vtable(self).GetLastError)(
33102 windows_core::Interface::as_raw(self),
33103 hresult,
33104 ulflags,
33105 lppmapierror as _,
33106 )
33107 .ok()
33108 }
33109 }
33110 pub unsafe fn GetProfileTable(&self, ulflags: u32) -> windows_core::Result<IMAPITable> {
33111 unsafe {
33112 let mut result__ = core::mem::zeroed();
33113 (windows_core::Interface::vtable(self).GetProfileTable)(
33114 windows_core::Interface::as_raw(self),
33115 ulflags,
33116 &mut result__,
33117 )
33118 .and_then(|| windows_core::Type::from_abi(result__))
33119 }
33120 }
33121 pub unsafe fn CreateProfile(
33122 &self,
33123 lpszprofilename: *mut i8,
33124 lpszpassword: *mut i8,
33125 uluiparam: usize,
33126 ulflags: u32,
33127 ) -> windows_core::Result<()> {
33128 unsafe {
33129 (windows_core::Interface::vtable(self).CreateProfile)(
33130 windows_core::Interface::as_raw(self),
33131 lpszprofilename as _,
33132 lpszpassword as _,
33133 uluiparam,
33134 ulflags,
33135 )
33136 .ok()
33137 }
33138 }
33139 pub unsafe fn DeleteProfile(
33140 &self,
33141 lpszprofilename: *mut i8,
33142 ulflags: u32,
33143 ) -> windows_core::Result<()> {
33144 unsafe {
33145 (windows_core::Interface::vtable(self).DeleteProfile)(
33146 windows_core::Interface::as_raw(self),
33147 lpszprofilename as _,
33148 ulflags,
33149 )
33150 .ok()
33151 }
33152 }
33153 pub unsafe fn ChangeProfilePassword(
33154 &self,
33155 lpszprofilename: *mut i8,
33156 lpszoldpassword: *mut i8,
33157 lpsznewpassword: *mut i8,
33158 ulflags: u32,
33159 ) -> windows_core::Result<()> {
33160 unsafe {
33161 (windows_core::Interface::vtable(self).ChangeProfilePassword)(
33162 windows_core::Interface::as_raw(self),
33163 lpszprofilename as _,
33164 lpszoldpassword as _,
33165 lpsznewpassword as _,
33166 ulflags,
33167 )
33168 .ok()
33169 }
33170 }
33171 pub unsafe fn CopyProfile(
33172 &self,
33173 lpszoldprofilename: *mut i8,
33174 lpszoldpassword: *mut i8,
33175 lpsznewprofilename: *mut i8,
33176 uluiparam: usize,
33177 ulflags: u32,
33178 ) -> windows_core::Result<()> {
33179 unsafe {
33180 (windows_core::Interface::vtable(self).CopyProfile)(
33181 windows_core::Interface::as_raw(self),
33182 lpszoldprofilename as _,
33183 lpszoldpassword as _,
33184 lpsznewprofilename as _,
33185 uluiparam,
33186 ulflags,
33187 )
33188 .ok()
33189 }
33190 }
33191 pub unsafe fn RenameProfile(
33192 &self,
33193 lpszoldprofilename: *mut i8,
33194 lpszoldpassword: *mut i8,
33195 lpsznewprofilename: *mut i8,
33196 uluiparam: usize,
33197 ulflags: u32,
33198 ) -> windows_core::Result<()> {
33199 unsafe {
33200 (windows_core::Interface::vtable(self).RenameProfile)(
33201 windows_core::Interface::as_raw(self),
33202 lpszoldprofilename as _,
33203 lpszoldpassword as _,
33204 lpsznewprofilename as _,
33205 uluiparam,
33206 ulflags,
33207 )
33208 .ok()
33209 }
33210 }
33211 pub unsafe fn SetDefaultProfile(
33212 &self,
33213 lpszprofilename: *mut i8,
33214 ulflags: u32,
33215 ) -> windows_core::Result<()> {
33216 unsafe {
33217 (windows_core::Interface::vtable(self).SetDefaultProfile)(
33218 windows_core::Interface::as_raw(self),
33219 lpszprofilename as _,
33220 ulflags,
33221 )
33222 .ok()
33223 }
33224 }
33225 pub unsafe fn AdminServices(
33226 &self,
33227 lpszprofilename: *mut i8,
33228 lpszpassword: *mut i8,
33229 uluiparam: usize,
33230 ulflags: u32,
33231 lppserviceadmin: *mut Option<IMsgServiceAdmin>,
33232 ) -> windows_core::Result<()> {
33233 unsafe {
33234 (windows_core::Interface::vtable(self).AdminServices)(
33235 windows_core::Interface::as_raw(self),
33236 lpszprofilename as _,
33237 lpszpassword as _,
33238 uluiparam,
33239 ulflags,
33240 core::mem::transmute(lppserviceadmin),
33241 )
33242 .ok()
33243 }
33244 }
33245}
33246#[repr(C)]
33247#[doc(hidden)]
33248pub struct IProfAdmin_Vtbl {
33249 pub base__: windows_core::IUnknown_Vtbl,
33250 pub GetLastError: unsafe extern "system" fn(
33251 *mut core::ffi::c_void,
33252 windows_core::HRESULT,
33253 u32,
33254 *mut *mut MAPIERROR,
33255 ) -> windows_core::HRESULT,
33256 pub GetProfileTable: unsafe extern "system" fn(
33257 *mut core::ffi::c_void,
33258 u32,
33259 *mut *mut core::ffi::c_void,
33260 ) -> windows_core::HRESULT,
33261 pub CreateProfile: unsafe extern "system" fn(
33262 *mut core::ffi::c_void,
33263 *mut i8,
33264 *mut i8,
33265 usize,
33266 u32,
33267 ) -> windows_core::HRESULT,
33268 pub DeleteProfile:
33269 unsafe extern "system" fn(*mut core::ffi::c_void, *mut i8, u32) -> windows_core::HRESULT,
33270 pub ChangeProfilePassword: unsafe extern "system" fn(
33271 *mut core::ffi::c_void,
33272 *mut i8,
33273 *mut i8,
33274 *mut i8,
33275 u32,
33276 ) -> windows_core::HRESULT,
33277 pub CopyProfile: unsafe extern "system" fn(
33278 *mut core::ffi::c_void,
33279 *mut i8,
33280 *mut i8,
33281 *mut i8,
33282 usize,
33283 u32,
33284 ) -> windows_core::HRESULT,
33285 pub RenameProfile: unsafe extern "system" fn(
33286 *mut core::ffi::c_void,
33287 *mut i8,
33288 *mut i8,
33289 *mut i8,
33290 usize,
33291 u32,
33292 ) -> windows_core::HRESULT,
33293 pub SetDefaultProfile:
33294 unsafe extern "system" fn(*mut core::ffi::c_void, *mut i8, u32) -> windows_core::HRESULT,
33295 pub AdminServices: unsafe extern "system" fn(
33296 *mut core::ffi::c_void,
33297 *mut i8,
33298 *mut i8,
33299 usize,
33300 u32,
33301 *mut *mut core::ffi::c_void,
33302 ) -> windows_core::HRESULT,
33303}
33304pub trait IProfAdmin_Impl: windows_core::IUnknownImpl {
33305 fn GetLastError(
33306 &self,
33307 hresult: windows_core::HRESULT,
33308 ulflags: u32,
33309 lppmapierror: *mut *mut MAPIERROR,
33310 ) -> windows_core::Result<()>;
33311 fn GetProfileTable(&self, ulflags: u32) -> windows_core::Result<IMAPITable>;
33312 fn CreateProfile(
33313 &self,
33314 lpszprofilename: *mut i8,
33315 lpszpassword: *mut i8,
33316 uluiparam: usize,
33317 ulflags: u32,
33318 ) -> windows_core::Result<()>;
33319 fn DeleteProfile(&self, lpszprofilename: *mut i8, ulflags: u32) -> windows_core::Result<()>;
33320 fn ChangeProfilePassword(
33321 &self,
33322 lpszprofilename: *mut i8,
33323 lpszoldpassword: *mut i8,
33324 lpsznewpassword: *mut i8,
33325 ulflags: u32,
33326 ) -> windows_core::Result<()>;
33327 fn CopyProfile(
33328 &self,
33329 lpszoldprofilename: *mut i8,
33330 lpszoldpassword: *mut i8,
33331 lpsznewprofilename: *mut i8,
33332 uluiparam: usize,
33333 ulflags: u32,
33334 ) -> windows_core::Result<()>;
33335 fn RenameProfile(
33336 &self,
33337 lpszoldprofilename: *mut i8,
33338 lpszoldpassword: *mut i8,
33339 lpsznewprofilename: *mut i8,
33340 uluiparam: usize,
33341 ulflags: u32,
33342 ) -> windows_core::Result<()>;
33343 fn SetDefaultProfile(&self, lpszprofilename: *mut i8, ulflags: u32)
33344 -> windows_core::Result<()>;
33345 fn AdminServices(
33346 &self,
33347 lpszprofilename: *mut i8,
33348 lpszpassword: *mut i8,
33349 uluiparam: usize,
33350 ulflags: u32,
33351 lppserviceadmin: windows_core::OutRef<IMsgServiceAdmin>,
33352 ) -> windows_core::Result<()>;
33353}
33354impl IProfAdmin_Vtbl {
33355 pub const fn new<Identity: IProfAdmin_Impl, const OFFSET: isize>() -> Self {
33356 unsafe extern "system" fn GetLastError<Identity: IProfAdmin_Impl, const OFFSET: isize>(
33357 this: *mut core::ffi::c_void,
33358 hresult: windows_core::HRESULT,
33359 ulflags: u32,
33360 lppmapierror: *mut *mut MAPIERROR,
33361 ) -> windows_core::HRESULT {
33362 unsafe {
33363 let this: &Identity =
33364 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
33365 IProfAdmin_Impl::GetLastError(
33366 this,
33367 core::mem::transmute_copy(&hresult),
33368 core::mem::transmute_copy(&ulflags),
33369 core::mem::transmute_copy(&lppmapierror),
33370 )
33371 .into()
33372 }
33373 }
33374 unsafe extern "system" fn GetProfileTable<
33375 Identity: IProfAdmin_Impl,
33376 const OFFSET: isize,
33377 >(
33378 this: *mut core::ffi::c_void,
33379 ulflags: u32,
33380 lpptable: *mut *mut core::ffi::c_void,
33381 ) -> windows_core::HRESULT {
33382 unsafe {
33383 let this: &Identity =
33384 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
33385 match IProfAdmin_Impl::GetProfileTable(this, core::mem::transmute_copy(&ulflags)) {
33386 Ok(ok__) => {
33387 lpptable.write(core::mem::transmute(ok__));
33388 windows_core::HRESULT(0)
33389 }
33390 Err(err) => err.into(),
33391 }
33392 }
33393 }
33394 unsafe extern "system" fn CreateProfile<Identity: IProfAdmin_Impl, const OFFSET: isize>(
33395 this: *mut core::ffi::c_void,
33396 lpszprofilename: *mut i8,
33397 lpszpassword: *mut i8,
33398 uluiparam: usize,
33399 ulflags: u32,
33400 ) -> windows_core::HRESULT {
33401 unsafe {
33402 let this: &Identity =
33403 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
33404 IProfAdmin_Impl::CreateProfile(
33405 this,
33406 core::mem::transmute_copy(&lpszprofilename),
33407 core::mem::transmute_copy(&lpszpassword),
33408 core::mem::transmute_copy(&uluiparam),
33409 core::mem::transmute_copy(&ulflags),
33410 )
33411 .into()
33412 }
33413 }
33414 unsafe extern "system" fn DeleteProfile<Identity: IProfAdmin_Impl, const OFFSET: isize>(
33415 this: *mut core::ffi::c_void,
33416 lpszprofilename: *mut i8,
33417 ulflags: u32,
33418 ) -> windows_core::HRESULT {
33419 unsafe {
33420 let this: &Identity =
33421 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
33422 IProfAdmin_Impl::DeleteProfile(
33423 this,
33424 core::mem::transmute_copy(&lpszprofilename),
33425 core::mem::transmute_copy(&ulflags),
33426 )
33427 .into()
33428 }
33429 }
33430 unsafe extern "system" fn ChangeProfilePassword<
33431 Identity: IProfAdmin_Impl,
33432 const OFFSET: isize,
33433 >(
33434 this: *mut core::ffi::c_void,
33435 lpszprofilename: *mut i8,
33436 lpszoldpassword: *mut i8,
33437 lpsznewpassword: *mut i8,
33438 ulflags: u32,
33439 ) -> windows_core::HRESULT {
33440 unsafe {
33441 let this: &Identity =
33442 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
33443 IProfAdmin_Impl::ChangeProfilePassword(
33444 this,
33445 core::mem::transmute_copy(&lpszprofilename),
33446 core::mem::transmute_copy(&lpszoldpassword),
33447 core::mem::transmute_copy(&lpsznewpassword),
33448 core::mem::transmute_copy(&ulflags),
33449 )
33450 .into()
33451 }
33452 }
33453 unsafe extern "system" fn CopyProfile<Identity: IProfAdmin_Impl, const OFFSET: isize>(
33454 this: *mut core::ffi::c_void,
33455 lpszoldprofilename: *mut i8,
33456 lpszoldpassword: *mut i8,
33457 lpsznewprofilename: *mut i8,
33458 uluiparam: usize,
33459 ulflags: u32,
33460 ) -> windows_core::HRESULT {
33461 unsafe {
33462 let this: &Identity =
33463 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
33464 IProfAdmin_Impl::CopyProfile(
33465 this,
33466 core::mem::transmute_copy(&lpszoldprofilename),
33467 core::mem::transmute_copy(&lpszoldpassword),
33468 core::mem::transmute_copy(&lpsznewprofilename),
33469 core::mem::transmute_copy(&uluiparam),
33470 core::mem::transmute_copy(&ulflags),
33471 )
33472 .into()
33473 }
33474 }
33475 unsafe extern "system" fn RenameProfile<Identity: IProfAdmin_Impl, const OFFSET: isize>(
33476 this: *mut core::ffi::c_void,
33477 lpszoldprofilename: *mut i8,
33478 lpszoldpassword: *mut i8,
33479 lpsznewprofilename: *mut i8,
33480 uluiparam: usize,
33481 ulflags: u32,
33482 ) -> windows_core::HRESULT {
33483 unsafe {
33484 let this: &Identity =
33485 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
33486 IProfAdmin_Impl::RenameProfile(
33487 this,
33488 core::mem::transmute_copy(&lpszoldprofilename),
33489 core::mem::transmute_copy(&lpszoldpassword),
33490 core::mem::transmute_copy(&lpsznewprofilename),
33491 core::mem::transmute_copy(&uluiparam),
33492 core::mem::transmute_copy(&ulflags),
33493 )
33494 .into()
33495 }
33496 }
33497 unsafe extern "system" fn SetDefaultProfile<
33498 Identity: IProfAdmin_Impl,
33499 const OFFSET: isize,
33500 >(
33501 this: *mut core::ffi::c_void,
33502 lpszprofilename: *mut i8,
33503 ulflags: u32,
33504 ) -> windows_core::HRESULT {
33505 unsafe {
33506 let this: &Identity =
33507 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
33508 IProfAdmin_Impl::SetDefaultProfile(
33509 this,
33510 core::mem::transmute_copy(&lpszprofilename),
33511 core::mem::transmute_copy(&ulflags),
33512 )
33513 .into()
33514 }
33515 }
33516 unsafe extern "system" fn AdminServices<Identity: IProfAdmin_Impl, const OFFSET: isize>(
33517 this: *mut core::ffi::c_void,
33518 lpszprofilename: *mut i8,
33519 lpszpassword: *mut i8,
33520 uluiparam: usize,
33521 ulflags: u32,
33522 lppserviceadmin: *mut *mut core::ffi::c_void,
33523 ) -> windows_core::HRESULT {
33524 unsafe {
33525 let this: &Identity =
33526 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
33527 IProfAdmin_Impl::AdminServices(
33528 this,
33529 core::mem::transmute_copy(&lpszprofilename),
33530 core::mem::transmute_copy(&lpszpassword),
33531 core::mem::transmute_copy(&uluiparam),
33532 core::mem::transmute_copy(&ulflags),
33533 core::mem::transmute_copy(&lppserviceadmin),
33534 )
33535 .into()
33536 }
33537 }
33538 Self {
33539 base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
33540 GetLastError: GetLastError::<Identity, OFFSET>,
33541 GetProfileTable: GetProfileTable::<Identity, OFFSET>,
33542 CreateProfile: CreateProfile::<Identity, OFFSET>,
33543 DeleteProfile: DeleteProfile::<Identity, OFFSET>,
33544 ChangeProfilePassword: ChangeProfilePassword::<Identity, OFFSET>,
33545 CopyProfile: CopyProfile::<Identity, OFFSET>,
33546 RenameProfile: RenameProfile::<Identity, OFFSET>,
33547 SetDefaultProfile: SetDefaultProfile::<Identity, OFFSET>,
33548 AdminServices: AdminServices::<Identity, OFFSET>,
33549 }
33550 }
33551 pub fn matches(iid: &windows_core::GUID) -> bool {
33552 iid == &<IProfAdmin as windows_core::Interface>::IID
33553 }
33554}
33555impl windows_core::RuntimeName for IProfAdmin {}
33556windows_core::imp::define_interface!(
33557 IProfSect,
33558 IProfSect_Vtbl,
33559 0x00020304_0000_0000_c000_000000000046
33560);
33561impl core::ops::Deref for IProfSect {
33562 type Target = IMAPIProp;
33563 fn deref(&self) -> &Self::Target {
33564 unsafe { core::mem::transmute(self) }
33565 }
33566}
33567windows_core::imp::interface_hierarchy!(IProfSect, windows_core::IUnknown, IMAPIProp);
33568#[repr(C)]
33569#[doc(hidden)]
33570pub struct IProfSect_Vtbl {
33571 pub base__: IMAPIProp_Vtbl,
33572}
33573pub trait IProfSect_Impl: IMAPIProp_Impl {}
33574impl IProfSect_Vtbl {
33575 pub const fn new<Identity: IProfSect_Impl, const OFFSET: isize>() -> Self {
33576 Self {
33577 base__: IMAPIProp_Vtbl::new::<Identity, OFFSET>(),
33578 }
33579 }
33580 pub fn matches(iid: &windows_core::GUID) -> bool {
33581 iid == &<IProfSect as windows_core::Interface>::IID
33582 || iid == &<IMAPIProp as windows_core::Interface>::IID
33583 }
33584}
33585impl windows_core::RuntimeName for IProfSect {}
33586windows_core::imp::define_interface!(IPropData, IPropData_Vtbl, 0);
33587impl core::ops::Deref for IPropData {
33588 type Target = IMAPIProp;
33589 fn deref(&self) -> &Self::Target {
33590 unsafe { core::mem::transmute(self) }
33591 }
33592}
33593windows_core::imp::interface_hierarchy!(IPropData, windows_core::IUnknown, IMAPIProp);
33594impl IPropData {
33595 pub unsafe fn HrSetObjAccess(&self, ulaccess: u32) -> windows_core::Result<()> {
33596 unsafe {
33597 (windows_core::Interface::vtable(self).HrSetObjAccess)(
33598 windows_core::Interface::as_raw(self),
33599 ulaccess,
33600 )
33601 .ok()
33602 }
33603 }
33604 pub unsafe fn HrSetPropAccess(
33605 &self,
33606 lpproptagarray: *mut SPropTagArray,
33607 rgulaccess: *mut u32,
33608 ) -> windows_core::Result<()> {
33609 unsafe {
33610 (windows_core::Interface::vtable(self).HrSetPropAccess)(
33611 windows_core::Interface::as_raw(self),
33612 lpproptagarray as _,
33613 rgulaccess as _,
33614 )
33615 .ok()
33616 }
33617 }
33618 pub unsafe fn HrGetPropAccess(
33619 &self,
33620 lppproptagarray: *mut *mut SPropTagArray,
33621 lprgulaccess: *mut *mut u32,
33622 ) -> windows_core::Result<()> {
33623 unsafe {
33624 (windows_core::Interface::vtable(self).HrGetPropAccess)(
33625 windows_core::Interface::as_raw(self),
33626 lppproptagarray as _,
33627 lprgulaccess as _,
33628 )
33629 .ok()
33630 }
33631 }
33632 pub unsafe fn HrAddObjProps(
33633 &self,
33634 lppproptagarray: *mut SPropTagArray,
33635 lprgulaccess: *mut *mut SPropProblemArray,
33636 ) -> windows_core::Result<()> {
33637 unsafe {
33638 (windows_core::Interface::vtable(self).HrAddObjProps)(
33639 windows_core::Interface::as_raw(self),
33640 lppproptagarray as _,
33641 lprgulaccess as _,
33642 )
33643 .ok()
33644 }
33645 }
33646}
33647#[repr(C)]
33648#[doc(hidden)]
33649pub struct IPropData_Vtbl {
33650 pub base__: IMAPIProp_Vtbl,
33651 pub HrSetObjAccess:
33652 unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
33653 pub HrSetPropAccess: unsafe extern "system" fn(
33654 *mut core::ffi::c_void,
33655 *mut SPropTagArray,
33656 *mut u32,
33657 ) -> windows_core::HRESULT,
33658 pub HrGetPropAccess: unsafe extern "system" fn(
33659 *mut core::ffi::c_void,
33660 *mut *mut SPropTagArray,
33661 *mut *mut u32,
33662 ) -> windows_core::HRESULT,
33663 pub HrAddObjProps: unsafe extern "system" fn(
33664 *mut core::ffi::c_void,
33665 *mut SPropTagArray,
33666 *mut *mut SPropProblemArray,
33667 ) -> windows_core::HRESULT,
33668}
33669pub trait IPropData_Impl: IMAPIProp_Impl {
33670 fn HrSetObjAccess(&self, ulaccess: u32) -> windows_core::Result<()>;
33671 fn HrSetPropAccess(
33672 &self,
33673 lpproptagarray: *mut SPropTagArray,
33674 rgulaccess: *mut u32,
33675 ) -> windows_core::Result<()>;
33676 fn HrGetPropAccess(
33677 &self,
33678 lppproptagarray: *mut *mut SPropTagArray,
33679 lprgulaccess: *mut *mut u32,
33680 ) -> windows_core::Result<()>;
33681 fn HrAddObjProps(
33682 &self,
33683 lppproptagarray: *mut SPropTagArray,
33684 lprgulaccess: *mut *mut SPropProblemArray,
33685 ) -> windows_core::Result<()>;
33686}
33687impl IPropData_Vtbl {
33688 pub const fn new<Identity: IPropData_Impl, const OFFSET: isize>() -> Self {
33689 unsafe extern "system" fn HrSetObjAccess<Identity: IPropData_Impl, const OFFSET: isize>(
33690 this: *mut core::ffi::c_void,
33691 ulaccess: u32,
33692 ) -> windows_core::HRESULT {
33693 unsafe {
33694 let this: &Identity =
33695 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
33696 IPropData_Impl::HrSetObjAccess(this, core::mem::transmute_copy(&ulaccess)).into()
33697 }
33698 }
33699 unsafe extern "system" fn HrSetPropAccess<Identity: IPropData_Impl, const OFFSET: isize>(
33700 this: *mut core::ffi::c_void,
33701 lpproptagarray: *mut SPropTagArray,
33702 rgulaccess: *mut u32,
33703 ) -> windows_core::HRESULT {
33704 unsafe {
33705 let this: &Identity =
33706 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
33707 IPropData_Impl::HrSetPropAccess(
33708 this,
33709 core::mem::transmute_copy(&lpproptagarray),
33710 core::mem::transmute_copy(&rgulaccess),
33711 )
33712 .into()
33713 }
33714 }
33715 unsafe extern "system" fn HrGetPropAccess<Identity: IPropData_Impl, const OFFSET: isize>(
33716 this: *mut core::ffi::c_void,
33717 lppproptagarray: *mut *mut SPropTagArray,
33718 lprgulaccess: *mut *mut u32,
33719 ) -> windows_core::HRESULT {
33720 unsafe {
33721 let this: &Identity =
33722 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
33723 IPropData_Impl::HrGetPropAccess(
33724 this,
33725 core::mem::transmute_copy(&lppproptagarray),
33726 core::mem::transmute_copy(&lprgulaccess),
33727 )
33728 .into()
33729 }
33730 }
33731 unsafe extern "system" fn HrAddObjProps<Identity: IPropData_Impl, const OFFSET: isize>(
33732 this: *mut core::ffi::c_void,
33733 lppproptagarray: *mut SPropTagArray,
33734 lprgulaccess: *mut *mut SPropProblemArray,
33735 ) -> windows_core::HRESULT {
33736 unsafe {
33737 let this: &Identity =
33738 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
33739 IPropData_Impl::HrAddObjProps(
33740 this,
33741 core::mem::transmute_copy(&lppproptagarray),
33742 core::mem::transmute_copy(&lprgulaccess),
33743 )
33744 .into()
33745 }
33746 }
33747 Self {
33748 base__: IMAPIProp_Vtbl::new::<Identity, OFFSET>(),
33749 HrSetObjAccess: HrSetObjAccess::<Identity, OFFSET>,
33750 HrSetPropAccess: HrSetPropAccess::<Identity, OFFSET>,
33751 HrGetPropAccess: HrGetPropAccess::<Identity, OFFSET>,
33752 HrAddObjProps: HrAddObjProps::<Identity, OFFSET>,
33753 }
33754 }
33755 pub fn matches(iid: &windows_core::GUID) -> bool {
33756 iid == &<IPropData as windows_core::Interface>::IID
33757 || iid == &<IMAPIProp as windows_core::Interface>::IID
33758 }
33759}
33760impl windows_core::RuntimeName for IPropData {}
33761windows_core::imp::define_interface!(
33762 IProviderAdmin,
33763 IProviderAdmin_Vtbl,
33764 0x00020325_0000_0000_c000_000000000046
33765);
33766windows_core::imp::interface_hierarchy!(IProviderAdmin, windows_core::IUnknown);
33767impl IProviderAdmin {
33768 pub unsafe fn GetLastError(
33769 &self,
33770 hresult: windows_core::HRESULT,
33771 ulflags: u32,
33772 lppmapierror: *mut *mut MAPIERROR,
33773 ) -> windows_core::Result<()> {
33774 unsafe {
33775 (windows_core::Interface::vtable(self).GetLastError)(
33776 windows_core::Interface::as_raw(self),
33777 hresult,
33778 ulflags,
33779 lppmapierror as _,
33780 )
33781 .ok()
33782 }
33783 }
33784 pub unsafe fn GetProviderTable(&self, ulflags: u32) -> windows_core::Result<IMAPITable> {
33785 unsafe {
33786 let mut result__ = core::mem::zeroed();
33787 (windows_core::Interface::vtable(self).GetProviderTable)(
33788 windows_core::Interface::as_raw(self),
33789 ulflags,
33790 &mut result__,
33791 )
33792 .and_then(|| windows_core::Type::from_abi(result__))
33793 }
33794 }
33795 pub unsafe fn CreateProvider(
33796 &self,
33797 lpszprovider: *mut i8,
33798 cvalues: u32,
33799 lpprops: *mut SPropValue,
33800 uluiparam: usize,
33801 ulflags: u32,
33802 lpuid: *mut MAPIUID,
33803 ) -> windows_core::Result<()> {
33804 unsafe {
33805 (windows_core::Interface::vtable(self).CreateProvider)(
33806 windows_core::Interface::as_raw(self),
33807 lpszprovider as _,
33808 cvalues,
33809 lpprops as _,
33810 uluiparam,
33811 ulflags,
33812 lpuid as _,
33813 )
33814 .ok()
33815 }
33816 }
33817 pub unsafe fn DeleteProvider(&self, lpuid: *mut MAPIUID) -> windows_core::Result<()> {
33818 unsafe {
33819 (windows_core::Interface::vtable(self).DeleteProvider)(
33820 windows_core::Interface::as_raw(self),
33821 lpuid as _,
33822 )
33823 .ok()
33824 }
33825 }
33826 pub unsafe fn OpenProfileSection(
33827 &self,
33828 lpuid: *mut MAPIUID,
33829 lpinterface: *mut windows_core::GUID,
33830 ulflags: u32,
33831 lppprofsect: *mut Option<IProfSect>,
33832 ) -> windows_core::Result<()> {
33833 unsafe {
33834 (windows_core::Interface::vtable(self).OpenProfileSection)(
33835 windows_core::Interface::as_raw(self),
33836 lpuid as _,
33837 lpinterface as _,
33838 ulflags,
33839 core::mem::transmute(lppprofsect),
33840 )
33841 .ok()
33842 }
33843 }
33844}
33845#[repr(C)]
33846#[doc(hidden)]
33847pub struct IProviderAdmin_Vtbl {
33848 pub base__: windows_core::IUnknown_Vtbl,
33849 pub GetLastError: unsafe extern "system" fn(
33850 *mut core::ffi::c_void,
33851 windows_core::HRESULT,
33852 u32,
33853 *mut *mut MAPIERROR,
33854 ) -> windows_core::HRESULT,
33855 pub GetProviderTable: unsafe extern "system" fn(
33856 *mut core::ffi::c_void,
33857 u32,
33858 *mut *mut core::ffi::c_void,
33859 ) -> windows_core::HRESULT,
33860 pub CreateProvider: unsafe extern "system" fn(
33861 *mut core::ffi::c_void,
33862 *mut i8,
33863 u32,
33864 *mut SPropValue,
33865 usize,
33866 u32,
33867 *mut MAPIUID,
33868 ) -> windows_core::HRESULT,
33869 pub DeleteProvider:
33870 unsafe extern "system" fn(*mut core::ffi::c_void, *mut MAPIUID) -> windows_core::HRESULT,
33871 pub OpenProfileSection: unsafe extern "system" fn(
33872 *mut core::ffi::c_void,
33873 *mut MAPIUID,
33874 *mut windows_core::GUID,
33875 u32,
33876 *mut *mut core::ffi::c_void,
33877 ) -> windows_core::HRESULT,
33878}
33879pub trait IProviderAdmin_Impl: windows_core::IUnknownImpl {
33880 fn GetLastError(
33881 &self,
33882 hresult: windows_core::HRESULT,
33883 ulflags: u32,
33884 lppmapierror: *mut *mut MAPIERROR,
33885 ) -> windows_core::Result<()>;
33886 fn GetProviderTable(&self, ulflags: u32) -> windows_core::Result<IMAPITable>;
33887 fn CreateProvider(
33888 &self,
33889 lpszprovider: *mut i8,
33890 cvalues: u32,
33891 lpprops: *mut SPropValue,
33892 uluiparam: usize,
33893 ulflags: u32,
33894 lpuid: *mut MAPIUID,
33895 ) -> windows_core::Result<()>;
33896 fn DeleteProvider(&self, lpuid: *mut MAPIUID) -> windows_core::Result<()>;
33897 fn OpenProfileSection(
33898 &self,
33899 lpuid: *mut MAPIUID,
33900 lpinterface: *mut windows_core::GUID,
33901 ulflags: u32,
33902 lppprofsect: windows_core::OutRef<IProfSect>,
33903 ) -> windows_core::Result<()>;
33904}
33905impl IProviderAdmin_Vtbl {
33906 pub const fn new<Identity: IProviderAdmin_Impl, const OFFSET: isize>() -> Self {
33907 unsafe extern "system" fn GetLastError<
33908 Identity: IProviderAdmin_Impl,
33909 const OFFSET: isize,
33910 >(
33911 this: *mut core::ffi::c_void,
33912 hresult: windows_core::HRESULT,
33913 ulflags: u32,
33914 lppmapierror: *mut *mut MAPIERROR,
33915 ) -> windows_core::HRESULT {
33916 unsafe {
33917 let this: &Identity =
33918 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
33919 IProviderAdmin_Impl::GetLastError(
33920 this,
33921 core::mem::transmute_copy(&hresult),
33922 core::mem::transmute_copy(&ulflags),
33923 core::mem::transmute_copy(&lppmapierror),
33924 )
33925 .into()
33926 }
33927 }
33928 unsafe extern "system" fn GetProviderTable<
33929 Identity: IProviderAdmin_Impl,
33930 const OFFSET: isize,
33931 >(
33932 this: *mut core::ffi::c_void,
33933 ulflags: u32,
33934 lpptable: *mut *mut core::ffi::c_void,
33935 ) -> windows_core::HRESULT {
33936 unsafe {
33937 let this: &Identity =
33938 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
33939 match IProviderAdmin_Impl::GetProviderTable(
33940 this,
33941 core::mem::transmute_copy(&ulflags),
33942 ) {
33943 Ok(ok__) => {
33944 lpptable.write(core::mem::transmute(ok__));
33945 windows_core::HRESULT(0)
33946 }
33947 Err(err) => err.into(),
33948 }
33949 }
33950 }
33951 unsafe extern "system" fn CreateProvider<
33952 Identity: IProviderAdmin_Impl,
33953 const OFFSET: isize,
33954 >(
33955 this: *mut core::ffi::c_void,
33956 lpszprovider: *mut i8,
33957 cvalues: u32,
33958 lpprops: *mut SPropValue,
33959 uluiparam: usize,
33960 ulflags: u32,
33961 lpuid: *mut MAPIUID,
33962 ) -> windows_core::HRESULT {
33963 unsafe {
33964 let this: &Identity =
33965 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
33966 IProviderAdmin_Impl::CreateProvider(
33967 this,
33968 core::mem::transmute_copy(&lpszprovider),
33969 core::mem::transmute_copy(&cvalues),
33970 core::mem::transmute_copy(&lpprops),
33971 core::mem::transmute_copy(&uluiparam),
33972 core::mem::transmute_copy(&ulflags),
33973 core::mem::transmute_copy(&lpuid),
33974 )
33975 .into()
33976 }
33977 }
33978 unsafe extern "system" fn DeleteProvider<
33979 Identity: IProviderAdmin_Impl,
33980 const OFFSET: isize,
33981 >(
33982 this: *mut core::ffi::c_void,
33983 lpuid: *mut MAPIUID,
33984 ) -> windows_core::HRESULT {
33985 unsafe {
33986 let this: &Identity =
33987 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
33988 IProviderAdmin_Impl::DeleteProvider(this, core::mem::transmute_copy(&lpuid)).into()
33989 }
33990 }
33991 unsafe extern "system" fn OpenProfileSection<
33992 Identity: IProviderAdmin_Impl,
33993 const OFFSET: isize,
33994 >(
33995 this: *mut core::ffi::c_void,
33996 lpuid: *mut MAPIUID,
33997 lpinterface: *mut windows_core::GUID,
33998 ulflags: u32,
33999 lppprofsect: *mut *mut core::ffi::c_void,
34000 ) -> windows_core::HRESULT {
34001 unsafe {
34002 let this: &Identity =
34003 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
34004 IProviderAdmin_Impl::OpenProfileSection(
34005 this,
34006 core::mem::transmute_copy(&lpuid),
34007 core::mem::transmute_copy(&lpinterface),
34008 core::mem::transmute_copy(&ulflags),
34009 core::mem::transmute_copy(&lppprofsect),
34010 )
34011 .into()
34012 }
34013 }
34014 Self {
34015 base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
34016 GetLastError: GetLastError::<Identity, OFFSET>,
34017 GetProviderTable: GetProviderTable::<Identity, OFFSET>,
34018 CreateProvider: CreateProvider::<Identity, OFFSET>,
34019 DeleteProvider: DeleteProvider::<Identity, OFFSET>,
34020 OpenProfileSection: OpenProfileSection::<Identity, OFFSET>,
34021 }
34022 }
34023 pub fn matches(iid: &windows_core::GUID) -> bool {
34024 iid == &<IProviderAdmin as windows_core::Interface>::IID
34025 }
34026}
34027impl windows_core::RuntimeName for IProviderAdmin {}
34028windows_core::imp::define_interface!(
34029 ISpoolerHook,
34030 ISpoolerHook_Vtbl,
34031 0x00020320_0000_0000_c000_000000000046
34032);
34033windows_core::imp::interface_hierarchy!(ISpoolerHook, windows_core::IUnknown);
34034impl ISpoolerHook {
34035 pub unsafe fn InboundMsgHook<P0, P1, P2>(
34036 &self,
34037 lpmessage: P0,
34038 lpfolder: P1,
34039 lpmdb: P2,
34040 lpulflags: *mut u32,
34041 lpcbentryid: *mut u32,
34042 lppentryid: *mut *mut u8,
34043 ) -> windows_core::Result<()>
34044 where
34045 P0: windows_core::Param<IMessage>,
34046 P1: windows_core::Param<IMAPIFolder>,
34047 P2: windows_core::Param<IMsgStore>,
34048 {
34049 unsafe {
34050 (windows_core::Interface::vtable(self).InboundMsgHook)(
34051 windows_core::Interface::as_raw(self),
34052 lpmessage.param().abi(),
34053 lpfolder.param().abi(),
34054 lpmdb.param().abi(),
34055 lpulflags as _,
34056 lpcbentryid as _,
34057 lppentryid as _,
34058 )
34059 .ok()
34060 }
34061 }
34062 pub unsafe fn OutboundMsgHook<P0, P1, P2>(
34063 &self,
34064 lpmessage: P0,
34065 lpfolder: P1,
34066 lpmdb: P2,
34067 lpulflags: *mut u32,
34068 lpcbentryid: *mut u32,
34069 lppentryid: *mut *mut u8,
34070 ) -> windows_core::Result<()>
34071 where
34072 P0: windows_core::Param<IMessage>,
34073 P1: windows_core::Param<IMAPIFolder>,
34074 P2: windows_core::Param<IMsgStore>,
34075 {
34076 unsafe {
34077 (windows_core::Interface::vtable(self).OutboundMsgHook)(
34078 windows_core::Interface::as_raw(self),
34079 lpmessage.param().abi(),
34080 lpfolder.param().abi(),
34081 lpmdb.param().abi(),
34082 lpulflags as _,
34083 lpcbentryid as _,
34084 lppentryid as _,
34085 )
34086 .ok()
34087 }
34088 }
34089}
34090#[repr(C)]
34091#[doc(hidden)]
34092pub struct ISpoolerHook_Vtbl {
34093 pub base__: windows_core::IUnknown_Vtbl,
34094 pub InboundMsgHook: unsafe extern "system" fn(
34095 *mut core::ffi::c_void,
34096 *mut core::ffi::c_void,
34097 *mut core::ffi::c_void,
34098 *mut core::ffi::c_void,
34099 *mut u32,
34100 *mut u32,
34101 *mut *mut u8,
34102 ) -> windows_core::HRESULT,
34103 pub OutboundMsgHook: unsafe extern "system" fn(
34104 *mut core::ffi::c_void,
34105 *mut core::ffi::c_void,
34106 *mut core::ffi::c_void,
34107 *mut core::ffi::c_void,
34108 *mut u32,
34109 *mut u32,
34110 *mut *mut u8,
34111 ) -> windows_core::HRESULT,
34112}
34113pub trait ISpoolerHook_Impl: windows_core::IUnknownImpl {
34114 fn InboundMsgHook(
34115 &self,
34116 lpmessage: windows_core::Ref<IMessage>,
34117 lpfolder: windows_core::Ref<IMAPIFolder>,
34118 lpmdb: windows_core::Ref<IMsgStore>,
34119 lpulflags: *mut u32,
34120 lpcbentryid: *mut u32,
34121 lppentryid: *mut *mut u8,
34122 ) -> windows_core::Result<()>;
34123 fn OutboundMsgHook(
34124 &self,
34125 lpmessage: windows_core::Ref<IMessage>,
34126 lpfolder: windows_core::Ref<IMAPIFolder>,
34127 lpmdb: windows_core::Ref<IMsgStore>,
34128 lpulflags: *mut u32,
34129 lpcbentryid: *mut u32,
34130 lppentryid: *mut *mut u8,
34131 ) -> windows_core::Result<()>;
34132}
34133impl ISpoolerHook_Vtbl {
34134 pub const fn new<Identity: ISpoolerHook_Impl, const OFFSET: isize>() -> Self {
34135 unsafe extern "system" fn InboundMsgHook<
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::InboundMsgHook(
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 unsafe extern "system" fn OutboundMsgHook<
34163 Identity: ISpoolerHook_Impl,
34164 const OFFSET: isize,
34165 >(
34166 this: *mut core::ffi::c_void,
34167 lpmessage: *mut core::ffi::c_void,
34168 lpfolder: *mut core::ffi::c_void,
34169 lpmdb: *mut core::ffi::c_void,
34170 lpulflags: *mut u32,
34171 lpcbentryid: *mut u32,
34172 lppentryid: *mut *mut u8,
34173 ) -> windows_core::HRESULT {
34174 unsafe {
34175 let this: &Identity =
34176 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
34177 ISpoolerHook_Impl::OutboundMsgHook(
34178 this,
34179 core::mem::transmute_copy(&lpmessage),
34180 core::mem::transmute_copy(&lpfolder),
34181 core::mem::transmute_copy(&lpmdb),
34182 core::mem::transmute_copy(&lpulflags),
34183 core::mem::transmute_copy(&lpcbentryid),
34184 core::mem::transmute_copy(&lppentryid),
34185 )
34186 .into()
34187 }
34188 }
34189 Self {
34190 base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
34191 InboundMsgHook: InboundMsgHook::<Identity, OFFSET>,
34192 OutboundMsgHook: OutboundMsgHook::<Identity, OFFSET>,
34193 }
34194 }
34195 pub fn matches(iid: &windows_core::GUID) -> bool {
34196 iid == &<ISpoolerHook as windows_core::Interface>::IID
34197 }
34198}
34199impl windows_core::RuntimeName for ISpoolerHook {}
34200pub const IStream_Clone: METHODS = METHODS(136i32);
34201pub const IStream_Commit: METHODS = METHODS(131i32);
34202pub const IStream_CopyTo: METHODS = METHODS(130i32);
34203pub const IStream_LockRegion: METHODS = METHODS(133i32);
34204pub const IStream_Revert: METHODS = METHODS(132i32);
34205pub const IStream_Seek: METHODS = METHODS(128i32);
34206pub const IStream_SetSize: METHODS = METHODS(129i32);
34207pub const IStream_Stat: METHODS = METHODS(135i32);
34208pub const IStream_UnlockRegion: METHODS = METHODS(134i32);
34209pub const IStream__Read: METHODS = METHODS(126i32);
34210pub const IStream__Write: METHODS = METHODS(127i32);
34211pub const ITEMPROC_FORCE: u32 = 2048u32;
34212pub const ITT_ENCRYPTION: u32 = 2u32;
34213pub const ITT_SIGNING: u32 = 1u32;
34214windows_core::imp::define_interface!(ITableData, ITableData_Vtbl, 0);
34215windows_core::imp::interface_hierarchy!(ITableData, windows_core::IUnknown);
34216impl ITableData {
34217 pub unsafe fn HrGetView(
34218 &self,
34219 lpssortorderset: *mut SSortOrderSet,
34220 lpfcallerrelease: *mut windows::Win32::System::AddressBook::CALLERRELEASE,
34221 ulcallerdata: usize,
34222 lppmapitable: *mut Option<IMAPITable>,
34223 ) -> windows_core::Result<()> {
34224 unsafe {
34225 (windows_core::Interface::vtable(self).HrGetView)(
34226 windows_core::Interface::as_raw(self),
34227 lpssortorderset as _,
34228 lpfcallerrelease as _,
34229 ulcallerdata,
34230 core::mem::transmute(lppmapitable),
34231 )
34232 .ok()
34233 }
34234 }
34235 pub unsafe fn HrModifyRow(&self, param0: *mut SRow) -> windows_core::Result<()> {
34236 unsafe {
34237 (windows_core::Interface::vtable(self).HrModifyRow)(
34238 windows_core::Interface::as_raw(self),
34239 param0 as _,
34240 )
34241 .ok()
34242 }
34243 }
34244 pub unsafe fn HrDeleteRow(&self, lpspropvalue: *mut SPropValue) -> windows_core::Result<()> {
34245 unsafe {
34246 (windows_core::Interface::vtable(self).HrDeleteRow)(
34247 windows_core::Interface::as_raw(self),
34248 lpspropvalue as _,
34249 )
34250 .ok()
34251 }
34252 }
34253 pub unsafe fn HrQueryRow(
34254 &self,
34255 lpspropvalue: *mut SPropValue,
34256 lppsrow: *mut *mut SRow,
34257 lpulirow: *mut u32,
34258 ) -> windows_core::Result<()> {
34259 unsafe {
34260 (windows_core::Interface::vtable(self).HrQueryRow)(
34261 windows_core::Interface::as_raw(self),
34262 lpspropvalue as _,
34263 lppsrow as _,
34264 lpulirow as _,
34265 )
34266 .ok()
34267 }
34268 }
34269 pub unsafe fn HrEnumRow(
34270 &self,
34271 ulrownumber: u32,
34272 lppsrow: *mut *mut SRow,
34273 ) -> windows_core::Result<()> {
34274 unsafe {
34275 (windows_core::Interface::vtable(self).HrEnumRow)(
34276 windows_core::Interface::as_raw(self),
34277 ulrownumber,
34278 lppsrow as _,
34279 )
34280 .ok()
34281 }
34282 }
34283 pub unsafe fn HrNotify(
34284 &self,
34285 ulflags: u32,
34286 cvalues: u32,
34287 lpspropvalue: *mut SPropValue,
34288 ) -> windows_core::Result<()> {
34289 unsafe {
34290 (windows_core::Interface::vtable(self).HrNotify)(
34291 windows_core::Interface::as_raw(self),
34292 ulflags,
34293 cvalues,
34294 lpspropvalue as _,
34295 )
34296 .ok()
34297 }
34298 }
34299 pub unsafe fn HrInsertRow(&self, ulirow: u32, lpsrow: *mut SRow) -> windows_core::Result<()> {
34300 unsafe {
34301 (windows_core::Interface::vtable(self).HrInsertRow)(
34302 windows_core::Interface::as_raw(self),
34303 ulirow,
34304 lpsrow as _,
34305 )
34306 .ok()
34307 }
34308 }
34309 pub unsafe fn HrModifyRows(
34310 &self,
34311 ulflags: u32,
34312 lpsrowset: *mut SRowSet,
34313 ) -> windows_core::Result<()> {
34314 unsafe {
34315 (windows_core::Interface::vtable(self).HrModifyRows)(
34316 windows_core::Interface::as_raw(self),
34317 ulflags,
34318 lpsrowset as _,
34319 )
34320 .ok()
34321 }
34322 }
34323 pub unsafe fn HrDeleteRows(
34324 &self,
34325 ulflags: u32,
34326 lprowsettodelete: *mut SRowSet,
34327 crowsdeleted: *mut u32,
34328 ) -> windows_core::Result<()> {
34329 unsafe {
34330 (windows_core::Interface::vtable(self).HrDeleteRows)(
34331 windows_core::Interface::as_raw(self),
34332 ulflags,
34333 lprowsettodelete as _,
34334 crowsdeleted as _,
34335 )
34336 .ok()
34337 }
34338 }
34339}
34340#[repr(C)]
34341#[doc(hidden)]
34342pub struct ITableData_Vtbl {
34343 pub base__: windows_core::IUnknown_Vtbl,
34344 pub HrGetView: unsafe extern "system" fn(
34345 *mut core::ffi::c_void,
34346 *mut SSortOrderSet,
34347 *mut windows::Win32::System::AddressBook::CALLERRELEASE,
34348 usize,
34349 *mut *mut core::ffi::c_void,
34350 ) -> windows_core::HRESULT,
34351 pub HrModifyRow:
34352 unsafe extern "system" fn(*mut core::ffi::c_void, *mut SRow) -> windows_core::HRESULT,
34353 pub HrDeleteRow:
34354 unsafe extern "system" fn(*mut core::ffi::c_void, *mut SPropValue) -> windows_core::HRESULT,
34355 pub HrQueryRow: unsafe extern "system" fn(
34356 *mut core::ffi::c_void,
34357 *mut SPropValue,
34358 *mut *mut SRow,
34359 *mut u32,
34360 ) -> windows_core::HRESULT,
34361 pub HrEnumRow: unsafe extern "system" fn(
34362 *mut core::ffi::c_void,
34363 u32,
34364 *mut *mut SRow,
34365 ) -> windows_core::HRESULT,
34366 pub HrNotify: unsafe extern "system" fn(
34367 *mut core::ffi::c_void,
34368 u32,
34369 u32,
34370 *mut SPropValue,
34371 ) -> windows_core::HRESULT,
34372 pub HrInsertRow:
34373 unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut SRow) -> windows_core::HRESULT,
34374 pub HrModifyRows: unsafe extern "system" fn(
34375 *mut core::ffi::c_void,
34376 u32,
34377 *mut SRowSet,
34378 ) -> windows_core::HRESULT,
34379 pub HrDeleteRows: unsafe extern "system" fn(
34380 *mut core::ffi::c_void,
34381 u32,
34382 *mut SRowSet,
34383 *mut u32,
34384 ) -> windows_core::HRESULT,
34385}
34386pub trait ITableData_Impl: windows_core::IUnknownImpl {
34387 fn HrGetView(
34388 &self,
34389 lpssortorderset: *mut SSortOrderSet,
34390 lpfcallerrelease: *mut windows::Win32::System::AddressBook::CALLERRELEASE,
34391 ulcallerdata: usize,
34392 lppmapitable: windows_core::OutRef<IMAPITable>,
34393 ) -> windows_core::Result<()>;
34394 fn HrModifyRow(&self, param0: *mut SRow) -> windows_core::Result<()>;
34395 fn HrDeleteRow(&self, lpspropvalue: *mut SPropValue) -> windows_core::Result<()>;
34396 fn HrQueryRow(
34397 &self,
34398 lpspropvalue: *mut SPropValue,
34399 lppsrow: *mut *mut SRow,
34400 lpulirow: *mut u32,
34401 ) -> windows_core::Result<()>;
34402 fn HrEnumRow(&self, ulrownumber: u32, lppsrow: *mut *mut SRow) -> windows_core::Result<()>;
34403 fn HrNotify(
34404 &self,
34405 ulflags: u32,
34406 cvalues: u32,
34407 lpspropvalue: *mut SPropValue,
34408 ) -> windows_core::Result<()>;
34409 fn HrInsertRow(&self, ulirow: u32, lpsrow: *mut SRow) -> windows_core::Result<()>;
34410 fn HrModifyRows(&self, ulflags: u32, lpsrowset: *mut SRowSet) -> windows_core::Result<()>;
34411 fn HrDeleteRows(
34412 &self,
34413 ulflags: u32,
34414 lprowsettodelete: *mut SRowSet,
34415 crowsdeleted: *mut u32,
34416 ) -> windows_core::Result<()>;
34417}
34418impl ITableData_Vtbl {
34419 pub const fn new<Identity: ITableData_Impl, const OFFSET: isize>() -> Self {
34420 unsafe extern "system" fn HrGetView<Identity: ITableData_Impl, const OFFSET: isize>(
34421 this: *mut core::ffi::c_void,
34422 lpssortorderset: *mut SSortOrderSet,
34423 lpfcallerrelease: *mut windows::Win32::System::AddressBook::CALLERRELEASE,
34424 ulcallerdata: usize,
34425 lppmapitable: *mut *mut core::ffi::c_void,
34426 ) -> windows_core::HRESULT {
34427 unsafe {
34428 let this: &Identity =
34429 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
34430 ITableData_Impl::HrGetView(
34431 this,
34432 core::mem::transmute_copy(&lpssortorderset),
34433 core::mem::transmute_copy(&lpfcallerrelease),
34434 core::mem::transmute_copy(&ulcallerdata),
34435 core::mem::transmute_copy(&lppmapitable),
34436 )
34437 .into()
34438 }
34439 }
34440 unsafe extern "system" fn HrModifyRow<Identity: ITableData_Impl, const OFFSET: isize>(
34441 this: *mut core::ffi::c_void,
34442 param0: *mut SRow,
34443 ) -> windows_core::HRESULT {
34444 unsafe {
34445 let this: &Identity =
34446 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
34447 ITableData_Impl::HrModifyRow(this, core::mem::transmute_copy(¶m0)).into()
34448 }
34449 }
34450 unsafe extern "system" fn HrDeleteRow<Identity: ITableData_Impl, const OFFSET: isize>(
34451 this: *mut core::ffi::c_void,
34452 lpspropvalue: *mut SPropValue,
34453 ) -> windows_core::HRESULT {
34454 unsafe {
34455 let this: &Identity =
34456 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
34457 ITableData_Impl::HrDeleteRow(this, core::mem::transmute_copy(&lpspropvalue)).into()
34458 }
34459 }
34460 unsafe extern "system" fn HrQueryRow<Identity: ITableData_Impl, const OFFSET: isize>(
34461 this: *mut core::ffi::c_void,
34462 lpspropvalue: *mut SPropValue,
34463 lppsrow: *mut *mut SRow,
34464 lpulirow: *mut u32,
34465 ) -> windows_core::HRESULT {
34466 unsafe {
34467 let this: &Identity =
34468 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
34469 ITableData_Impl::HrQueryRow(
34470 this,
34471 core::mem::transmute_copy(&lpspropvalue),
34472 core::mem::transmute_copy(&lppsrow),
34473 core::mem::transmute_copy(&lpulirow),
34474 )
34475 .into()
34476 }
34477 }
34478 unsafe extern "system" fn HrEnumRow<Identity: ITableData_Impl, const OFFSET: isize>(
34479 this: *mut core::ffi::c_void,
34480 ulrownumber: u32,
34481 lppsrow: *mut *mut SRow,
34482 ) -> windows_core::HRESULT {
34483 unsafe {
34484 let this: &Identity =
34485 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
34486 ITableData_Impl::HrEnumRow(
34487 this,
34488 core::mem::transmute_copy(&ulrownumber),
34489 core::mem::transmute_copy(&lppsrow),
34490 )
34491 .into()
34492 }
34493 }
34494 unsafe extern "system" fn HrNotify<Identity: ITableData_Impl, const OFFSET: isize>(
34495 this: *mut core::ffi::c_void,
34496 ulflags: u32,
34497 cvalues: u32,
34498 lpspropvalue: *mut SPropValue,
34499 ) -> windows_core::HRESULT {
34500 unsafe {
34501 let this: &Identity =
34502 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
34503 ITableData_Impl::HrNotify(
34504 this,
34505 core::mem::transmute_copy(&ulflags),
34506 core::mem::transmute_copy(&cvalues),
34507 core::mem::transmute_copy(&lpspropvalue),
34508 )
34509 .into()
34510 }
34511 }
34512 unsafe extern "system" fn HrInsertRow<Identity: ITableData_Impl, const OFFSET: isize>(
34513 this: *mut core::ffi::c_void,
34514 ulirow: u32,
34515 lpsrow: *mut SRow,
34516 ) -> windows_core::HRESULT {
34517 unsafe {
34518 let this: &Identity =
34519 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
34520 ITableData_Impl::HrInsertRow(
34521 this,
34522 core::mem::transmute_copy(&ulirow),
34523 core::mem::transmute_copy(&lpsrow),
34524 )
34525 .into()
34526 }
34527 }
34528 unsafe extern "system" fn HrModifyRows<Identity: ITableData_Impl, const OFFSET: isize>(
34529 this: *mut core::ffi::c_void,
34530 ulflags: u32,
34531 lpsrowset: *mut SRowSet,
34532 ) -> windows_core::HRESULT {
34533 unsafe {
34534 let this: &Identity =
34535 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
34536 ITableData_Impl::HrModifyRows(
34537 this,
34538 core::mem::transmute_copy(&ulflags),
34539 core::mem::transmute_copy(&lpsrowset),
34540 )
34541 .into()
34542 }
34543 }
34544 unsafe extern "system" fn HrDeleteRows<Identity: ITableData_Impl, const OFFSET: isize>(
34545 this: *mut core::ffi::c_void,
34546 ulflags: u32,
34547 lprowsettodelete: *mut SRowSet,
34548 crowsdeleted: *mut u32,
34549 ) -> windows_core::HRESULT {
34550 unsafe {
34551 let this: &Identity =
34552 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
34553 ITableData_Impl::HrDeleteRows(
34554 this,
34555 core::mem::transmute_copy(&ulflags),
34556 core::mem::transmute_copy(&lprowsettodelete),
34557 core::mem::transmute_copy(&crowsdeleted),
34558 )
34559 .into()
34560 }
34561 }
34562 Self {
34563 base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
34564 HrGetView: HrGetView::<Identity, OFFSET>,
34565 HrModifyRow: HrModifyRow::<Identity, OFFSET>,
34566 HrDeleteRow: HrDeleteRow::<Identity, OFFSET>,
34567 HrQueryRow: HrQueryRow::<Identity, OFFSET>,
34568 HrEnumRow: HrEnumRow::<Identity, OFFSET>,
34569 HrNotify: HrNotify::<Identity, OFFSET>,
34570 HrInsertRow: HrInsertRow::<Identity, OFFSET>,
34571 HrModifyRows: HrModifyRows::<Identity, OFFSET>,
34572 HrDeleteRows: HrDeleteRows::<Identity, OFFSET>,
34573 }
34574 }
34575 pub fn matches(iid: &windows_core::GUID) -> bool {
34576 iid == &<ITableData as windows_core::Interface>::IID
34577 }
34578}
34579impl windows_core::RuntimeName for ITableData {}
34580pub const IUnknown_AddRef: METHODS = METHODS(1i32);
34581pub const IUnknown_QueryInterface: METHODS = METHODS(0i32);
34582pub const IUnknown_Release: METHODS = METHODS(2i32);
34583windows_core::imp::define_interface!(
34584 IXPLogon,
34585 IXPLogon_Vtbl,
34586 0x00020315_0000_0000_c000_000000000046
34587);
34588windows_core::imp::interface_hierarchy!(IXPLogon, windows_core::IUnknown);
34589impl IXPLogon {
34590 pub unsafe fn AddressTypes(
34591 &self,
34592 lpulflags: *mut u32,
34593 lpcadrtype: *mut u32,
34594 lpppadrtypearray: *mut *mut *mut i8,
34595 lpcmapiuid: *mut u32,
34596 lpppuidarray: *mut *mut *mut MAPIUID,
34597 ) -> windows_core::Result<()> {
34598 unsafe {
34599 (windows_core::Interface::vtable(self).AddressTypes)(
34600 windows_core::Interface::as_raw(self),
34601 lpulflags as _,
34602 lpcadrtype as _,
34603 lpppadrtypearray as _,
34604 lpcmapiuid as _,
34605 lpppuidarray as _,
34606 )
34607 .ok()
34608 }
34609 }
34610 pub unsafe fn RegisterOptions(
34611 &self,
34612 lpulflags: *mut u32,
34613 lpcoptions: *mut u32,
34614 lppoptions: *mut *mut OPTIONDATA,
34615 ) -> windows_core::Result<()> {
34616 unsafe {
34617 (windows_core::Interface::vtable(self).RegisterOptions)(
34618 windows_core::Interface::as_raw(self),
34619 lpulflags as _,
34620 lpcoptions as _,
34621 lppoptions as _,
34622 )
34623 .ok()
34624 }
34625 }
34626 pub unsafe fn TransportNotify(
34627 &self,
34628 lpulflags: *mut u32,
34629 lppvdata: *mut *mut core::ffi::c_void,
34630 ) -> windows_core::Result<()> {
34631 unsafe {
34632 (windows_core::Interface::vtable(self).TransportNotify)(
34633 windows_core::Interface::as_raw(self),
34634 lpulflags as _,
34635 lppvdata as _,
34636 )
34637 .ok()
34638 }
34639 }
34640 pub unsafe fn Idle(&self, ulflags: u32) -> windows_core::Result<()> {
34641 unsafe {
34642 (windows_core::Interface::vtable(self).Idle)(
34643 windows_core::Interface::as_raw(self),
34644 ulflags,
34645 )
34646 .ok()
34647 }
34648 }
34649 pub unsafe fn TransportLogoff(&self, ulflags: u32) -> windows_core::Result<()> {
34650 unsafe {
34651 (windows_core::Interface::vtable(self).TransportLogoff)(
34652 windows_core::Interface::as_raw(self),
34653 ulflags,
34654 )
34655 .ok()
34656 }
34657 }
34658 pub unsafe fn SubmitMessage<P1>(
34659 &self,
34660 ulflags: u32,
34661 lpmessage: P1,
34662 lpulmsgref: *mut usize,
34663 lpulreturnparm: *mut usize,
34664 ) -> windows_core::Result<()>
34665 where
34666 P1: windows_core::Param<IMessage>,
34667 {
34668 unsafe {
34669 (windows_core::Interface::vtable(self).SubmitMessage)(
34670 windows_core::Interface::as_raw(self),
34671 ulflags,
34672 lpmessage.param().abi(),
34673 lpulmsgref as _,
34674 lpulreturnparm as _,
34675 )
34676 .ok()
34677 }
34678 }
34679 pub unsafe fn EndMessage(
34680 &self,
34681 ulmsgref: usize,
34682 lpulflags: *mut u32,
34683 ) -> windows_core::Result<()> {
34684 unsafe {
34685 (windows_core::Interface::vtable(self).EndMessage)(
34686 windows_core::Interface::as_raw(self),
34687 ulmsgref,
34688 lpulflags as _,
34689 )
34690 .ok()
34691 }
34692 }
34693 pub unsafe fn Poll(&self, lpulincoming: *mut u32) -> windows_core::Result<()> {
34694 unsafe {
34695 (windows_core::Interface::vtable(self).Poll)(
34696 windows_core::Interface::as_raw(self),
34697 lpulincoming as _,
34698 )
34699 .ok()
34700 }
34701 }
34702 pub unsafe fn StartMessage<P1>(
34703 &self,
34704 ulflags: u32,
34705 lpmessage: P1,
34706 lpulmsgref: *mut usize,
34707 ) -> windows_core::Result<()>
34708 where
34709 P1: windows_core::Param<IMessage>,
34710 {
34711 unsafe {
34712 (windows_core::Interface::vtable(self).StartMessage)(
34713 windows_core::Interface::as_raw(self),
34714 ulflags,
34715 lpmessage.param().abi(),
34716 lpulmsgref as _,
34717 )
34718 .ok()
34719 }
34720 }
34721 pub unsafe fn OpenStatusEntry(
34722 &self,
34723 lpinterface: *mut windows_core::GUID,
34724 ulflags: u32,
34725 lpulobjtype: *mut u32,
34726 lppentry: *mut Option<IMAPIStatus>,
34727 ) -> windows_core::Result<()> {
34728 unsafe {
34729 (windows_core::Interface::vtable(self).OpenStatusEntry)(
34730 windows_core::Interface::as_raw(self),
34731 lpinterface as _,
34732 ulflags,
34733 lpulobjtype as _,
34734 core::mem::transmute(lppentry),
34735 )
34736 .ok()
34737 }
34738 }
34739 pub unsafe fn ValidateState(&self, uluiparam: usize, ulflags: u32) -> windows_core::Result<()> {
34740 unsafe {
34741 (windows_core::Interface::vtable(self).ValidateState)(
34742 windows_core::Interface::as_raw(self),
34743 uluiparam,
34744 ulflags,
34745 )
34746 .ok()
34747 }
34748 }
34749 pub unsafe fn FlushQueues(
34750 &self,
34751 uluiparam: usize,
34752 cbtargettransport: u32,
34753 lptargettransport: *mut ENTRYID,
34754 ulflags: u32,
34755 ) -> windows_core::Result<()> {
34756 unsafe {
34757 (windows_core::Interface::vtable(self).FlushQueues)(
34758 windows_core::Interface::as_raw(self),
34759 uluiparam,
34760 cbtargettransport,
34761 lptargettransport as _,
34762 ulflags,
34763 )
34764 .ok()
34765 }
34766 }
34767}
34768#[repr(C)]
34769#[doc(hidden)]
34770pub struct IXPLogon_Vtbl {
34771 pub base__: windows_core::IUnknown_Vtbl,
34772 pub AddressTypes: unsafe extern "system" fn(
34773 *mut core::ffi::c_void,
34774 *mut u32,
34775 *mut u32,
34776 *mut *mut *mut i8,
34777 *mut u32,
34778 *mut *mut *mut MAPIUID,
34779 ) -> windows_core::HRESULT,
34780 pub RegisterOptions: unsafe extern "system" fn(
34781 *mut core::ffi::c_void,
34782 *mut u32,
34783 *mut u32,
34784 *mut *mut OPTIONDATA,
34785 ) -> windows_core::HRESULT,
34786 pub TransportNotify: unsafe extern "system" fn(
34787 *mut core::ffi::c_void,
34788 *mut u32,
34789 *mut *mut core::ffi::c_void,
34790 ) -> windows_core::HRESULT,
34791 pub Idle: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
34792 pub TransportLogoff:
34793 unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
34794 pub SubmitMessage: unsafe extern "system" fn(
34795 *mut core::ffi::c_void,
34796 u32,
34797 *mut core::ffi::c_void,
34798 *mut usize,
34799 *mut usize,
34800 ) -> windows_core::HRESULT,
34801 pub EndMessage:
34802 unsafe extern "system" fn(*mut core::ffi::c_void, usize, *mut u32) -> windows_core::HRESULT,
34803 pub Poll: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
34804 pub StartMessage: unsafe extern "system" fn(
34805 *mut core::ffi::c_void,
34806 u32,
34807 *mut core::ffi::c_void,
34808 *mut usize,
34809 ) -> windows_core::HRESULT,
34810 pub OpenStatusEntry: unsafe extern "system" fn(
34811 *mut core::ffi::c_void,
34812 *mut windows_core::GUID,
34813 u32,
34814 *mut u32,
34815 *mut *mut core::ffi::c_void,
34816 ) -> windows_core::HRESULT,
34817 pub ValidateState:
34818 unsafe extern "system" fn(*mut core::ffi::c_void, usize, u32) -> windows_core::HRESULT,
34819 pub FlushQueues: unsafe extern "system" fn(
34820 *mut core::ffi::c_void,
34821 usize,
34822 u32,
34823 *mut ENTRYID,
34824 u32,
34825 ) -> windows_core::HRESULT,
34826}
34827pub trait IXPLogon_Impl: windows_core::IUnknownImpl {
34828 fn AddressTypes(
34829 &self,
34830 lpulflags: *mut u32,
34831 lpcadrtype: *mut u32,
34832 lpppadrtypearray: *mut *mut *mut i8,
34833 lpcmapiuid: *mut u32,
34834 lpppuidarray: *mut *mut *mut MAPIUID,
34835 ) -> windows_core::Result<()>;
34836 fn RegisterOptions(
34837 &self,
34838 lpulflags: *mut u32,
34839 lpcoptions: *mut u32,
34840 lppoptions: *mut *mut OPTIONDATA,
34841 ) -> windows_core::Result<()>;
34842 fn TransportNotify(
34843 &self,
34844 lpulflags: *mut u32,
34845 lppvdata: *mut *mut core::ffi::c_void,
34846 ) -> windows_core::Result<()>;
34847 fn Idle(&self, ulflags: u32) -> windows_core::Result<()>;
34848 fn TransportLogoff(&self, ulflags: u32) -> windows_core::Result<()>;
34849 fn SubmitMessage(
34850 &self,
34851 ulflags: u32,
34852 lpmessage: windows_core::Ref<IMessage>,
34853 lpulmsgref: *mut usize,
34854 lpulreturnparm: *mut usize,
34855 ) -> windows_core::Result<()>;
34856 fn EndMessage(&self, ulmsgref: usize, lpulflags: *mut u32) -> windows_core::Result<()>;
34857 fn Poll(&self, lpulincoming: *mut u32) -> windows_core::Result<()>;
34858 fn StartMessage(
34859 &self,
34860 ulflags: u32,
34861 lpmessage: windows_core::Ref<IMessage>,
34862 lpulmsgref: *mut usize,
34863 ) -> windows_core::Result<()>;
34864 fn OpenStatusEntry(
34865 &self,
34866 lpinterface: *mut windows_core::GUID,
34867 ulflags: u32,
34868 lpulobjtype: *mut u32,
34869 lppentry: windows_core::OutRef<IMAPIStatus>,
34870 ) -> windows_core::Result<()>;
34871 fn ValidateState(&self, uluiparam: usize, ulflags: u32) -> windows_core::Result<()>;
34872 fn FlushQueues(
34873 &self,
34874 uluiparam: usize,
34875 cbtargettransport: u32,
34876 lptargettransport: *mut ENTRYID,
34877 ulflags: u32,
34878 ) -> windows_core::Result<()>;
34879}
34880impl IXPLogon_Vtbl {
34881 pub const fn new<Identity: IXPLogon_Impl, const OFFSET: isize>() -> Self {
34882 unsafe extern "system" fn AddressTypes<Identity: IXPLogon_Impl, const OFFSET: isize>(
34883 this: *mut core::ffi::c_void,
34884 lpulflags: *mut u32,
34885 lpcadrtype: *mut u32,
34886 lpppadrtypearray: *mut *mut *mut i8,
34887 lpcmapiuid: *mut u32,
34888 lpppuidarray: *mut *mut *mut MAPIUID,
34889 ) -> windows_core::HRESULT {
34890 unsafe {
34891 let this: &Identity =
34892 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
34893 IXPLogon_Impl::AddressTypes(
34894 this,
34895 core::mem::transmute_copy(&lpulflags),
34896 core::mem::transmute_copy(&lpcadrtype),
34897 core::mem::transmute_copy(&lpppadrtypearray),
34898 core::mem::transmute_copy(&lpcmapiuid),
34899 core::mem::transmute_copy(&lpppuidarray),
34900 )
34901 .into()
34902 }
34903 }
34904 unsafe extern "system" fn RegisterOptions<Identity: IXPLogon_Impl, const OFFSET: isize>(
34905 this: *mut core::ffi::c_void,
34906 lpulflags: *mut u32,
34907 lpcoptions: *mut u32,
34908 lppoptions: *mut *mut OPTIONDATA,
34909 ) -> windows_core::HRESULT {
34910 unsafe {
34911 let this: &Identity =
34912 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
34913 IXPLogon_Impl::RegisterOptions(
34914 this,
34915 core::mem::transmute_copy(&lpulflags),
34916 core::mem::transmute_copy(&lpcoptions),
34917 core::mem::transmute_copy(&lppoptions),
34918 )
34919 .into()
34920 }
34921 }
34922 unsafe extern "system" fn TransportNotify<Identity: IXPLogon_Impl, const OFFSET: isize>(
34923 this: *mut core::ffi::c_void,
34924 lpulflags: *mut u32,
34925 lppvdata: *mut *mut core::ffi::c_void,
34926 ) -> windows_core::HRESULT {
34927 unsafe {
34928 let this: &Identity =
34929 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
34930 IXPLogon_Impl::TransportNotify(
34931 this,
34932 core::mem::transmute_copy(&lpulflags),
34933 core::mem::transmute_copy(&lppvdata),
34934 )
34935 .into()
34936 }
34937 }
34938 unsafe extern "system" fn Idle<Identity: IXPLogon_Impl, const OFFSET: isize>(
34939 this: *mut core::ffi::c_void,
34940 ulflags: u32,
34941 ) -> windows_core::HRESULT {
34942 unsafe {
34943 let this: &Identity =
34944 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
34945 IXPLogon_Impl::Idle(this, core::mem::transmute_copy(&ulflags)).into()
34946 }
34947 }
34948 unsafe extern "system" fn TransportLogoff<Identity: IXPLogon_Impl, const OFFSET: isize>(
34949 this: *mut core::ffi::c_void,
34950 ulflags: u32,
34951 ) -> windows_core::HRESULT {
34952 unsafe {
34953 let this: &Identity =
34954 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
34955 IXPLogon_Impl::TransportLogoff(this, core::mem::transmute_copy(&ulflags)).into()
34956 }
34957 }
34958 unsafe extern "system" fn SubmitMessage<Identity: IXPLogon_Impl, const OFFSET: isize>(
34959 this: *mut core::ffi::c_void,
34960 ulflags: u32,
34961 lpmessage: *mut core::ffi::c_void,
34962 lpulmsgref: *mut usize,
34963 lpulreturnparm: *mut usize,
34964 ) -> windows_core::HRESULT {
34965 unsafe {
34966 let this: &Identity =
34967 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
34968 IXPLogon_Impl::SubmitMessage(
34969 this,
34970 core::mem::transmute_copy(&ulflags),
34971 core::mem::transmute_copy(&lpmessage),
34972 core::mem::transmute_copy(&lpulmsgref),
34973 core::mem::transmute_copy(&lpulreturnparm),
34974 )
34975 .into()
34976 }
34977 }
34978 unsafe extern "system" fn EndMessage<Identity: IXPLogon_Impl, const OFFSET: isize>(
34979 this: *mut core::ffi::c_void,
34980 ulmsgref: usize,
34981 lpulflags: *mut u32,
34982 ) -> windows_core::HRESULT {
34983 unsafe {
34984 let this: &Identity =
34985 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
34986 IXPLogon_Impl::EndMessage(
34987 this,
34988 core::mem::transmute_copy(&ulmsgref),
34989 core::mem::transmute_copy(&lpulflags),
34990 )
34991 .into()
34992 }
34993 }
34994 unsafe extern "system" fn Poll<Identity: IXPLogon_Impl, const OFFSET: isize>(
34995 this: *mut core::ffi::c_void,
34996 lpulincoming: *mut u32,
34997 ) -> windows_core::HRESULT {
34998 unsafe {
34999 let this: &Identity =
35000 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
35001 IXPLogon_Impl::Poll(this, core::mem::transmute_copy(&lpulincoming)).into()
35002 }
35003 }
35004 unsafe extern "system" fn StartMessage<Identity: IXPLogon_Impl, const OFFSET: isize>(
35005 this: *mut core::ffi::c_void,
35006 ulflags: u32,
35007 lpmessage: *mut core::ffi::c_void,
35008 lpulmsgref: *mut usize,
35009 ) -> windows_core::HRESULT {
35010 unsafe {
35011 let this: &Identity =
35012 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
35013 IXPLogon_Impl::StartMessage(
35014 this,
35015 core::mem::transmute_copy(&ulflags),
35016 core::mem::transmute_copy(&lpmessage),
35017 core::mem::transmute_copy(&lpulmsgref),
35018 )
35019 .into()
35020 }
35021 }
35022 unsafe extern "system" fn OpenStatusEntry<Identity: IXPLogon_Impl, const OFFSET: isize>(
35023 this: *mut core::ffi::c_void,
35024 lpinterface: *mut windows_core::GUID,
35025 ulflags: u32,
35026 lpulobjtype: *mut u32,
35027 lppentry: *mut *mut core::ffi::c_void,
35028 ) -> windows_core::HRESULT {
35029 unsafe {
35030 let this: &Identity =
35031 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
35032 IXPLogon_Impl::OpenStatusEntry(
35033 this,
35034 core::mem::transmute_copy(&lpinterface),
35035 core::mem::transmute_copy(&ulflags),
35036 core::mem::transmute_copy(&lpulobjtype),
35037 core::mem::transmute_copy(&lppentry),
35038 )
35039 .into()
35040 }
35041 }
35042 unsafe extern "system" fn ValidateState<Identity: IXPLogon_Impl, const OFFSET: isize>(
35043 this: *mut core::ffi::c_void,
35044 uluiparam: usize,
35045 ulflags: u32,
35046 ) -> windows_core::HRESULT {
35047 unsafe {
35048 let this: &Identity =
35049 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
35050 IXPLogon_Impl::ValidateState(
35051 this,
35052 core::mem::transmute_copy(&uluiparam),
35053 core::mem::transmute_copy(&ulflags),
35054 )
35055 .into()
35056 }
35057 }
35058 unsafe extern "system" fn FlushQueues<Identity: IXPLogon_Impl, const OFFSET: isize>(
35059 this: *mut core::ffi::c_void,
35060 uluiparam: usize,
35061 cbtargettransport: u32,
35062 lptargettransport: *mut ENTRYID,
35063 ulflags: u32,
35064 ) -> windows_core::HRESULT {
35065 unsafe {
35066 let this: &Identity =
35067 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
35068 IXPLogon_Impl::FlushQueues(
35069 this,
35070 core::mem::transmute_copy(&uluiparam),
35071 core::mem::transmute_copy(&cbtargettransport),
35072 core::mem::transmute_copy(&lptargettransport),
35073 core::mem::transmute_copy(&ulflags),
35074 )
35075 .into()
35076 }
35077 }
35078 Self {
35079 base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
35080 AddressTypes: AddressTypes::<Identity, OFFSET>,
35081 RegisterOptions: RegisterOptions::<Identity, OFFSET>,
35082 TransportNotify: TransportNotify::<Identity, OFFSET>,
35083 Idle: Idle::<Identity, OFFSET>,
35084 TransportLogoff: TransportLogoff::<Identity, OFFSET>,
35085 SubmitMessage: SubmitMessage::<Identity, OFFSET>,
35086 EndMessage: EndMessage::<Identity, OFFSET>,
35087 Poll: Poll::<Identity, OFFSET>,
35088 StartMessage: StartMessage::<Identity, OFFSET>,
35089 OpenStatusEntry: OpenStatusEntry::<Identity, OFFSET>,
35090 ValidateState: ValidateState::<Identity, OFFSET>,
35091 FlushQueues: FlushQueues::<Identity, OFFSET>,
35092 }
35093 }
35094 pub fn matches(iid: &windows_core::GUID) -> bool {
35095 iid == &<IXPLogon as windows_core::Interface>::IID
35096 }
35097}
35098impl windows_core::RuntimeName for IXPLogon {}
35099pub const IXPLogon_AddressTypes: METHODS = METHODS(96i32);
35100pub const IXPLogon_EndMessage: METHODS = METHODS(102i32);
35101pub const IXPLogon_FlushQueues: METHODS = METHODS(107i32);
35102pub const IXPLogon_Idle: METHODS = METHODS(99i32);
35103pub const IXPLogon_OpenStatusEntry: METHODS = METHODS(105i32);
35104pub const IXPLogon_Poll: METHODS = METHODS(103i32);
35105pub const IXPLogon_RegisterOptions: METHODS = METHODS(97i32);
35106pub const IXPLogon_StartMessage: METHODS = METHODS(104i32);
35107pub const IXPLogon_SubmitMessage: METHODS = METHODS(101i32);
35108pub const IXPLogon_TransportLogoff: METHODS = METHODS(100i32);
35109pub const IXPLogon_TransportNotify: METHODS = METHODS(98i32);
35110pub const IXPLogon_ValidateState: METHODS = METHODS(106i32);
35111windows_core::imp::define_interface!(
35112 IXPProvider,
35113 IXPProvider_Vtbl,
35114 0x00020312_0000_0000_c000_000000000046
35115);
35116windows_core::imp::interface_hierarchy!(IXPProvider, windows_core::IUnknown);
35117impl IXPProvider {
35118 pub unsafe fn Shutdown(&self, lpulflags: *mut u32) -> windows_core::Result<()> {
35119 unsafe {
35120 (windows_core::Interface::vtable(self).Shutdown)(
35121 windows_core::Interface::as_raw(self),
35122 lpulflags as _,
35123 )
35124 .ok()
35125 }
35126 }
35127 pub unsafe fn TransportLogon<P0>(
35128 &self,
35129 lpmapisup: P0,
35130 uluiparam: usize,
35131 lpszprofilename: *const i8,
35132 lpulflags: *mut u32,
35133 lppmapierror: *mut *mut MAPIERROR,
35134 lppxplogon: *mut Option<IXPLogon>,
35135 ) -> windows_core::Result<()>
35136 where
35137 P0: windows_core::Param<IMAPISupport>,
35138 {
35139 unsafe {
35140 (windows_core::Interface::vtable(self).TransportLogon)(
35141 windows_core::Interface::as_raw(self),
35142 lpmapisup.param().abi(),
35143 uluiparam,
35144 lpszprofilename,
35145 lpulflags as _,
35146 lppmapierror as _,
35147 core::mem::transmute(lppxplogon),
35148 )
35149 .ok()
35150 }
35151 }
35152}
35153#[repr(C)]
35154#[doc(hidden)]
35155pub struct IXPProvider_Vtbl {
35156 pub base__: windows_core::IUnknown_Vtbl,
35157 pub Shutdown:
35158 unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
35159 pub TransportLogon: unsafe extern "system" fn(
35160 *mut core::ffi::c_void,
35161 *mut core::ffi::c_void,
35162 usize,
35163 *const i8,
35164 *mut u32,
35165 *mut *mut MAPIERROR,
35166 *mut *mut core::ffi::c_void,
35167 ) -> windows_core::HRESULT,
35168}
35169pub trait IXPProvider_Impl: windows_core::IUnknownImpl {
35170 fn Shutdown(&self, lpulflags: *mut u32) -> windows_core::Result<()>;
35171 fn TransportLogon(
35172 &self,
35173 lpmapisup: windows_core::Ref<IMAPISupport>,
35174 uluiparam: usize,
35175 lpszprofilename: *const i8,
35176 lpulflags: *mut u32,
35177 lppmapierror: *mut *mut MAPIERROR,
35178 lppxplogon: windows_core::OutRef<IXPLogon>,
35179 ) -> windows_core::Result<()>;
35180}
35181impl IXPProvider_Vtbl {
35182 pub const fn new<Identity: IXPProvider_Impl, const OFFSET: isize>() -> Self {
35183 unsafe extern "system" fn Shutdown<Identity: IXPProvider_Impl, const OFFSET: isize>(
35184 this: *mut core::ffi::c_void,
35185 lpulflags: *mut u32,
35186 ) -> windows_core::HRESULT {
35187 unsafe {
35188 let this: &Identity =
35189 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
35190 IXPProvider_Impl::Shutdown(this, core::mem::transmute_copy(&lpulflags)).into()
35191 }
35192 }
35193 unsafe extern "system" fn TransportLogon<
35194 Identity: IXPProvider_Impl,
35195 const OFFSET: isize,
35196 >(
35197 this: *mut core::ffi::c_void,
35198 lpmapisup: *mut core::ffi::c_void,
35199 uluiparam: usize,
35200 lpszprofilename: *const i8,
35201 lpulflags: *mut u32,
35202 lppmapierror: *mut *mut MAPIERROR,
35203 lppxplogon: *mut *mut core::ffi::c_void,
35204 ) -> windows_core::HRESULT {
35205 unsafe {
35206 let this: &Identity =
35207 &*((this as *const *const ()).offset(OFFSET) as *const Identity);
35208 IXPProvider_Impl::TransportLogon(
35209 this,
35210 core::mem::transmute_copy(&lpmapisup),
35211 core::mem::transmute_copy(&uluiparam),
35212 core::mem::transmute_copy(&lpszprofilename),
35213 core::mem::transmute_copy(&lpulflags),
35214 core::mem::transmute_copy(&lppmapierror),
35215 core::mem::transmute_copy(&lppxplogon),
35216 )
35217 .into()
35218 }
35219 }
35220 Self {
35221 base__: windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
35222 Shutdown: Shutdown::<Identity, OFFSET>,
35223 TransportLogon: TransportLogon::<Identity, OFFSET>,
35224 }
35225 }
35226 pub fn matches(iid: &windows_core::GUID) -> bool {
35227 iid == &<IXPProvider as windows_core::Interface>::IID
35228 }
35229}
35230impl windows_core::RuntimeName for IXPProvider {}
35231pub const IXPProvider_Shutdown: METHODS = METHODS(94i32);
35232pub const IXPProvider_TransportLogon: METHODS = METHODS(95i32);
35233pub const KEEP_OPEN_READONLY: u32 = 1u32;
35234pub const KEEP_OPEN_READWRITE: u32 = 2u32;
35235pub type LAUNCHWIZARDENTRY = Option<
35236 unsafe extern "system" fn(
35237 hparentwnd: windows::Win32::Foundation::HWND,
35238 ulflags: u32,
35239 lppszservicenametoadd: *mut *mut i8,
35240 cbbuffermax: u32,
35241 lpsznewprofilename: *mut i8,
35242 ) -> windows_core::HRESULT,
35243>;
35244pub const LAUNCHWIZARDENTRYNAME: windows_core::PCSTR = windows_core::s!("LAUNCHWIZARD");
35245pub const LIBID_MIMEOLE: windows_core::GUID =
35246 windows_core::GUID::from_u128(0xe4b28371_83b0_11d0_8259_00c04fd85ab4);
35247pub const LOCK_BLOCKING_MID_LOCK: u32 = 2u32;
35248pub const LOCK_NON_PERSISTENT: u32 = 1u32;
35249pub const LOCK_NULL_RESOURCE: u32 = 4u32;
35250pub const LOCK_READ_ACCESS_CHECK_ONLY: u32 = 8u32;
35251pub const LOCK_RESERVED: u32 = 2147483648u32;
35252pub const LOCK_WRITE_THROUGH_GOP: u32 = 65536u32;
35253pub const LOGOFF_ABORT: u32 = 8u32;
35254pub const LOGOFF_COMPLETE: u32 = 65536u32;
35255pub const LOGOFF_HURRY: u32 = 2147483648u32;
35256pub const LOGOFF_INBOUND: u32 = 131072u32;
35257pub const LOGOFF_NORMAL: u32 = 1u32;
35258pub const LOGOFF_NO_WAIT: u32 = 1u32;
35259pub const LOGOFF_ORDERLY: u32 = 2u32;
35260pub const LOGOFF_OUTBOUND: u32 = 262144u32;
35261pub const LOGOFF_OUTBOUND_QUEUE: u32 = 524288u32;
35262pub const LOGOFF_PURGE: u32 = 4u32;
35263pub const LOGOFF_QUIET: u32 = 16u32;
35264pub const LOGON_CHANGED: u32 = 8u32;
35265pub const LOGON_NO_CONNECT: u32 = 4u32;
35266pub const LOGON_NO_DIALOG: u32 = 1u32;
35267pub const LOGON_NO_INBOUND: u32 = 8u32;
35268pub const LOGON_NO_OUTBOUND: u32 = 16u32;
35269pub const LOGON_SP_IDLE: u32 = 65536u32;
35270pub const LOGON_SP_NEWPW: u32 = 4u32;
35271pub const LOGON_SP_POLL: u32 = 131072u32;
35272pub const LOGON_SP_PROMPT: u32 = 2u32;
35273pub const LOGON_SP_RESOLVE: u32 = 262144u32;
35274pub const LOGON_SP_TRANSPORT: u32 = 1u32;
35275pub type LPALLOCATEBUFFER =
35276 Option<unsafe extern "system" fn(cbsize: u32, lppbuffer: *mut *mut core::ffi::c_void) -> i32>;
35277pub type LPALLOCATEMORE = Option<
35278 unsafe extern "system" fn(
35279 cbsize: u32,
35280 lpobject: *mut core::ffi::c_void,
35281 lppbuffer: *mut *mut core::ffi::c_void,
35282 ) -> i32,
35283>;
35284pub type LPCREATECONVERSATIONINDEX = Option<
35285 unsafe extern "system" fn(
35286 cbparent: u32,
35287 lpbparent: *mut u8,
35288 lpcbconvindex: *mut u32,
35289 lppbconvindex: *mut *mut u8,
35290 ) -> i32,
35291>;
35292pub type LPDISPATCHNOTIFICATIONS =
35293 Option<unsafe extern "system" fn(ulflags: u32) -> windows_core::HRESULT>;
35294pub type LPFGETCOMPONENTPATH = Option<unsafe extern "system" fn() -> windows_core::BOOL>;
35295pub type LPFNABSDI = Option<
35296 unsafe extern "system" fn(
35297 uluiparam: usize,
35298 lpvmsg: *mut core::ffi::c_void,
35299 ) -> windows_core::BOOL,
35300>;
35301pub type LPFNBUTTON = Option<
35302 unsafe extern "system" fn(
35303 uluiparam: usize,
35304 lpvcontext: *mut core::ffi::c_void,
35305 cbentryid: u32,
35306 lpselection: *mut ENTRYID,
35307 ulflags: u32,
35308 ) -> i32,
35309>;
35310pub type LPFNDISMISS =
35311 Option<unsafe extern "system" fn(uluiparam: usize, lpvcontext: *mut core::ffi::c_void)>;
35312pub type LPFREEBUFFER = Option<unsafe extern "system" fn(lpbuffer: *mut core::ffi::c_void) -> u32>;
35313pub type LPLAUNCHWIZARDENTRY = Option<unsafe extern "system" fn() -> windows_core::HRESULT>;
35314pub type LPMAPIADDRESS = Option<
35315 unsafe extern "system" fn(
35316 lhsession: usize,
35317 uluiparam: usize,
35318 lpszcaption: windows_core::PCSTR,
35319 neditfields: u32,
35320 lpszlabels: windows_core::PCSTR,
35321 nrecips: u32,
35322 lprecips: *mut MapiRecipDesc,
35323 flflags: u32,
35324 ulreserved: u32,
35325 lpnnewrecips: *mut u32,
35326 lppnewrecips: *mut *mut MapiRecipDesc,
35327 ) -> u32,
35328>;
35329pub type LPMAPIADMINPROFILES = Option<unsafe extern "system" fn() -> windows_core::HRESULT>;
35330pub type LPMAPIALLOCATEBUFFER = Option<unsafe extern "system" fn() -> i32>;
35331pub type LPMAPIALLOCATEMORE = Option<unsafe extern "system" fn() -> i32>;
35332pub type LPMAPIDELETEMAIL = Option<
35333 unsafe extern "system" fn(
35334 lhsession: usize,
35335 uluiparam: usize,
35336 lpszmessageid: windows_core::PCSTR,
35337 flflags: u32,
35338 ulreserved: u32,
35339 ) -> u32,
35340>;
35341pub type LPMAPIDETAILS = Option<
35342 unsafe extern "system" fn(
35343 lhsession: usize,
35344 uluiparam: usize,
35345 lprecip: *mut MapiRecipDesc,
35346 flflags: u32,
35347 ulreserved: u32,
35348 ) -> u32,
35349>;
35350pub type LPMAPIFINDNEXT = Option<
35351 unsafe extern "system" fn(
35352 lhsession: usize,
35353 uluiparam: usize,
35354 lpszmessagetype: windows_core::PCSTR,
35355 lpszseedmessageid: windows_core::PCSTR,
35356 flflags: u32,
35357 ulreserved: u32,
35358 lpszmessageid: windows_core::PCSTR,
35359 ) -> u32,
35360>;
35361pub type LPMAPIFREEBUFFER = Option<unsafe extern "system" fn() -> u32>;
35362pub type LPMAPIINITIALIZE = Option<unsafe extern "system" fn() -> windows_core::HRESULT>;
35363pub type LPMAPILOGOFF = Option<
35364 unsafe extern "system" fn(
35365 lhsession: usize,
35366 uluiparam: usize,
35367 flflags: u32,
35368 ulreserved: u32,
35369 ) -> u32,
35370>;
35371pub type LPMAPILOGON = Option<
35372 unsafe extern "system" fn(
35373 uluiparam: usize,
35374 lpszprofilename: windows_core::PCSTR,
35375 lpszpassword: windows_core::PCSTR,
35376 flflags: u32,
35377 ulreserved: u32,
35378 lplhsession: *mut usize,
35379 ) -> u32,
35380>;
35381pub type LPMAPILOGONEX = Option<unsafe extern "system" fn() -> windows_core::HRESULT>;
35382pub type LPMAPIREADMAIL = Option<
35383 unsafe extern "system" fn(
35384 lhsession: usize,
35385 uluiparam: usize,
35386 lpszmessageid: windows_core::PCSTR,
35387 flflags: u32,
35388 ulreserved: u32,
35389 lppmessage: *mut *mut MapiMessage,
35390 ) -> u32,
35391>;
35392pub type LPMAPIRESOLVENAME = Option<
35393 unsafe extern "system" fn(
35394 lhsession: usize,
35395 uluiparam: usize,
35396 lpszname: windows_core::PCSTR,
35397 flflags: u32,
35398 ulreserved: u32,
35399 lpprecip: *mut *mut MapiRecipDesc,
35400 ) -> u32,
35401>;
35402pub type LPMAPISAVEMAIL = Option<
35403 unsafe extern "system" fn(
35404 lhsession: usize,
35405 uluiparam: usize,
35406 lpmessage: *mut MapiMessage,
35407 flflags: u32,
35408 ulreserved: u32,
35409 lpszmessageid: windows_core::PCSTR,
35410 ) -> u32,
35411>;
35412pub type LPMAPISENDDOCUMENTS = Option<
35413 unsafe extern "system" fn(
35414 uluiparam: usize,
35415 lpszdelimchar: windows_core::PCSTR,
35416 lpszfilepaths: windows_core::PCSTR,
35417 lpszfilenames: windows_core::PCSTR,
35418 ulreserved: u32,
35419 ) -> u32,
35420>;
35421pub type LPMAPISENDMAIL = Option<
35422 unsafe extern "system" fn(
35423 lhsession: usize,
35424 uluiparam: usize,
35425 lpmessage: *mut MapiMessage,
35426 flflags: u32,
35427 ulreserved: u32,
35428 ) -> u32,
35429>;
35430pub type LPMAPIUNINITIALIZE = Option<unsafe extern "system" fn()>;
35431pub type LPMSGSERVICEENTRY = Option<unsafe extern "system" fn() -> windows_core::HRESULT>;
35432pub type LPNOTIFCALLBACK = Option<
35433 unsafe extern "system" fn(
35434 lpvcontext: *mut core::ffi::c_void,
35435 cnotification: u32,
35436 lpnotifications: *mut NOTIFICATION,
35437 ) -> i32,
35438>;
35439pub type LPOPENSTREAMONFILE = Option<
35440 unsafe extern "system" fn(
35441 lpallocatebuffer: LPALLOCATEBUFFER,
35442 lpfreebuffer: LPFREEBUFFER,
35443 ulflags: u32,
35444 lpszfilename: *const i8,
35445 lpszprefix: *const i8,
35446 lppstream: windows_core::OutRef<windows::Win32::System::Com::IStream>,
35447 ) -> windows_core::HRESULT,
35448>;
35449pub type LPSERVICEWIZARDDLGPROC = Option<unsafe extern "system" fn() -> windows_core::BOOL>;
35450pub type LPWIZARDENTRY = Option<unsafe extern "system" fn() -> u32>;
35451pub type MAPIADMINPROFILES = Option<
35452 unsafe extern "system" fn(
35453 ulflags: u32,
35454 lppprofadmin: windows_core::OutRef<IProfAdmin>,
35455 ) -> windows_core::HRESULT,
35456>;
35457pub type MAPIALLOCATEBUFFER =
35458 Option<unsafe extern "system" fn(cbsize: u32, lppbuffer: *mut *mut core::ffi::c_void) -> i32>;
35459pub type MAPIALLOCATEMORE = Option<
35460 unsafe extern "system" fn(
35461 cbsize: u32,
35462 lpobject: *mut core::ffi::c_void,
35463 lppbuffer: *mut *mut core::ffi::c_void,
35464 ) -> i32,
35465>;
35466#[repr(C)]
35467#[derive(Clone, Copy, Debug, PartialEq)]
35468pub struct MAPIERROR {
35469 pub ulVersion: u32,
35470 pub lpszError: *mut i8,
35471 pub lpszComponent: *mut i8,
35472 pub ulLowLevelError: u32,
35473 pub ulContext: u32,
35474}
35475impl Default for MAPIERROR {
35476 fn default() -> Self {
35477 unsafe { core::mem::zeroed() }
35478 }
35479}
35480pub const MAPIFORM_CPU_AXP: u32 = 3u32;
35481pub const MAPIFORM_CPU_M68: u32 = 5u32;
35482pub const MAPIFORM_CPU_MIP: u32 = 2u32;
35483pub const MAPIFORM_CPU_PPC: u32 = 4u32;
35484pub const MAPIFORM_CPU_X64: u32 = 6u32;
35485pub const MAPIFORM_CPU_X86: u32 = 1u32;
35486pub const MAPIFORM_EXACTMATCH: u32 = 32u32;
35487pub const MAPIFORM_INSTALL_DIALOG: u32 = 8u32;
35488pub const MAPIFORM_INSTALL_OVERWRITEONCONFLICT: u32 = 16u32;
35489pub const MAPIFORM_OS_MAC_7x: u32 = 4u32;
35490pub const MAPIFORM_OS_WINNT_35: u32 = 2u32;
35491pub const MAPIFORM_OS_WINNT_40: u32 = 5u32;
35492pub const MAPIFORM_OS_WINNT_50: u32 = 6u32;
35493pub const MAPIFORM_OS_WINNT_60: u32 = 7u32;
35494pub const MAPIFORM_OS_WIN_31: u32 = 1u32;
35495pub const MAPIFORM_OS_WIN_95: u32 = 3u32;
35496pub const MAPIFORM_SELECT_ALL_REGISTRIES: u32 = 0u32;
35497pub const MAPIFORM_SELECT_FOLDER_REGISTRY_ONLY: u32 = 1u32;
35498pub const MAPIFORM_SELECT_NON_FOLDER_REGISTRY_ONLY: u32 = 2u32;
35499pub type MAPIFREEBUFFER =
35500 Option<unsafe extern "system" fn(lpbuffer: *mut core::ffi::c_void) -> u32>;
35501#[repr(C)]
35502#[derive(Clone, Copy, Debug, Default, PartialEq)]
35503pub struct MAPIINIT {
35504 pub ulVersion: u32,
35505 pub ulFlags: u32,
35506}
35507pub type MAPIINITIALIZE =
35508 Option<unsafe extern "system" fn(lpmapiinit: *mut core::ffi::c_void) -> windows_core::HRESULT>;
35509pub type MAPILOGONEX = Option<
35510 unsafe extern "system" fn(
35511 uluiparam: usize,
35512 lpszprofilename: *const i8,
35513 lpszpassword: *const i8,
35514 ulflags: u32,
35515 lppsession: windows_core::OutRef<IMAPISession>,
35516 ) -> windows_core::HRESULT,
35517>;
35518#[repr(C)]
35519#[derive(Clone, Copy)]
35520pub struct MAPINAMEID {
35521 pub lpguid: *mut windows_core::GUID,
35522 pub ulKind: u32,
35523 pub Kind: MAPINAMEID_0,
35524}
35525impl Default for MAPINAMEID {
35526 fn default() -> Self {
35527 unsafe { core::mem::zeroed() }
35528 }
35529}
35530#[repr(C)]
35531#[derive(Clone, Copy)]
35532pub union MAPINAMEID_0 {
35533 pub lID_Reserved: isize,
35534 pub lID: i32,
35535 pub lpwstrName: windows_core::PWSTR,
35536}
35537impl Default for MAPINAMEID_0 {
35538 fn default() -> Self {
35539 unsafe { core::mem::zeroed() }
35540 }
35541}
35542#[repr(C)]
35543#[derive(Clone, Copy, Debug, PartialEq)]
35544pub struct MAPIUID {
35545 pub ab: [u8; 16],
35546}
35547impl Default for MAPIUID {
35548 fn default() -> Self {
35549 unsafe { core::mem::zeroed() }
35550 }
35551}
35552pub type MAPIUNINITIALIZE = Option<unsafe extern "system" fn()>;
35553pub const MAPI_AB: u32 = 34u32;
35554pub const MAPI_ABCONT: u32 = 4u32;
35555pub const MAPI_AB_NOMODIFY: u32 = 1024u32;
35556pub const MAPI_AB_PROVIDER: u32 = 35u32;
35557pub const MAPI_ACCESS_CREATE_ASSOCIATED: u32 = 32u32;
35558pub const MAPI_ACCESS_CREATE_CONTENTS: u32 = 16u32;
35559pub const MAPI_ACCESS_CREATE_HIERARCHY: u32 = 8u32;
35560pub const MAPI_ACCESS_DELETE: u32 = 4u32;
35561pub const MAPI_ACCESS_MODIFY: u32 = 1u32;
35562pub const MAPI_ACCESS_READ: u32 = 2u32;
35563pub const MAPI_ADDRBOOK: u32 = 2u32;
35564pub const MAPI_ALLOW_OTHERS: u32 = 8u32;
35565pub const MAPI_AMBIGUOUS: u32 = 1u32;
35566pub const MAPI_APP_PROFILE: u32 = 4u32;
35567pub const MAPI_ASSOCIATED: u32 = 64u32;
35568pub const MAPI_ATTACH: u32 = 7u32;
35569pub const MAPI_BCC: u32 = 3u32;
35570pub const MAPI_BEST_ACCESS: u32 = 16u32;
35571pub const MAPI_BG_SESSION: u32 = 2097152u32;
35572pub const MAPI_BODY_AS_FILE: u32 = 512u32;
35573pub const MAPI_CACHE_ONLY: u32 = 16384u32;
35574pub const MAPI_CC: u32 = 2u32;
35575pub const MAPI_COMPOUND: u32 = 128u32;
35576pub const MAPI_CREATE: u32 = 2u32;
35577pub const MAPI_DECLINE_OK: u32 = 4u32;
35578pub const MAPI_DEFAULT_SERVICES: u32 = 1u32;
35579pub const MAPI_DEFAULT_STORE: u32 = 1u32;
35580pub const MAPI_DEFERRED_ERRORS: u32 = 8u32;
35581pub const MAPI_DIALOG: u32 = 8u32;
35582pub const MAPI_DIM: u32 = 1u32;
35583pub const MAPI_DISABLED: u32 = 1u32;
35584pub const MAPI_DISTLIST: u32 = 8u32;
35585pub const MAPI_ENABLED: u32 = 0u32;
35586pub const MAPI_ENVELOPE_ONLY: u32 = 64u32;
35587pub const MAPI_ERROR_VERSION: i32 = 0i32;
35588pub const MAPI_EXPLICIT_PROFILE: u32 = 16u32;
35589pub const MAPI_EXTENDED: u32 = 32u32;
35590pub const MAPI_EXTENDEDCALLBACKS: u32 = 1024u32;
35591pub const MAPI_E_ACCESS_DENIED: u32 = 6u32;
35592pub const MAPI_E_ACCOUNT_DISABLED: windows_core::HRESULT =
35593 windows_core::HRESULT(0x80040124_u32 as _);
35594pub const MAPI_E_AMBIGUOUS_RECIP: windows_core::HRESULT =
35595 windows_core::HRESULT(0x80040700_u32 as _);
35596pub const MAPI_E_AMBIGUOUS_RECIPIENT: u32 = 21u32;
35597pub const MAPI_E_AMBIG_RECIP: u32 = 21u32;
35598pub const MAPI_E_ATTACHMENT_NOT_FOUND: u32 = 11u32;
35599pub const MAPI_E_ATTACHMENT_OPEN_FAILURE: u32 = 12u32;
35600pub const MAPI_E_ATTACHMENT_WRITE_FAILURE: u32 = 13u32;
35601pub const MAPI_E_BAD_CHARWIDTH: windows_core::HRESULT = windows_core::HRESULT(0x80040103_u32 as _);
35602pub const MAPI_E_BAD_COLUMN: windows_core::HRESULT = windows_core::HRESULT(0x80040118_u32 as _);
35603pub const MAPI_E_BAD_RECIPTYPE: u32 = 15u32;
35604pub const MAPI_E_BAD_VALUE: windows_core::HRESULT = windows_core::HRESULT(0x80040301_u32 as _);
35605pub const MAPI_E_BUSY: windows_core::HRESULT = windows_core::HRESULT(0x8004010B_u32 as _);
35606pub const MAPI_E_CALL_FAILED: windows_core::HRESULT = windows_core::HRESULT(0x80004005_u32 as _);
35607pub const MAPI_E_CANCEL: windows_core::HRESULT = windows_core::HRESULT(0x80040501_u32 as _);
35608pub const MAPI_E_COLLISION: windows_core::HRESULT = windows_core::HRESULT(0x80040604_u32 as _);
35609pub const MAPI_E_COMPUTED: windows_core::HRESULT = windows_core::HRESULT(0x8004011A_u32 as _);
35610pub const MAPI_E_CORRUPT_DATA: windows_core::HRESULT = windows_core::HRESULT(0x8004011B_u32 as _);
35611pub const MAPI_E_CORRUPT_STORE: windows_core::HRESULT = windows_core::HRESULT(0x80040600_u32 as _);
35612pub const MAPI_E_DECLINE_COPY: windows_core::HRESULT = windows_core::HRESULT(0x80040306_u32 as _);
35613pub const MAPI_E_DISK_ERROR: windows_core::HRESULT = windows_core::HRESULT(0x80040116_u32 as _);
35614pub const MAPI_E_DISK_FULL: u32 = 4u32;
35615pub const MAPI_E_END_OF_SESSION: windows_core::HRESULT = windows_core::HRESULT(0x80040200_u32 as _);
35616pub const MAPI_E_EXTENDED_ERROR: windows_core::HRESULT = windows_core::HRESULT(0x80040119_u32 as _);
35617pub const MAPI_E_FAILONEPROVIDER: windows_core::HRESULT =
35618 windows_core::HRESULT(0x8004011D_u32 as _);
35619pub const MAPI_E_FAILURE: u32 = 2u32;
35620pub const MAPI_E_FOLDER_CYCLE: windows_core::HRESULT = windows_core::HRESULT(0x8004060B_u32 as _);
35621pub const MAPI_E_HAS_FOLDERS: windows_core::HRESULT = windows_core::HRESULT(0x80040609_u32 as _);
35622pub const MAPI_E_HAS_MESSAGES: windows_core::HRESULT = windows_core::HRESULT(0x8004060A_u32 as _);
35623pub const MAPI_E_INSUFFICIENT_MEMORY: u32 = 5u32;
35624pub const MAPI_E_INTERFACE_NOT_SUPPORTED: windows_core::HRESULT =
35625 windows_core::HRESULT(0x80004002_u32 as _);
35626pub const MAPI_E_INVALID_ACCESS_TIME: windows_core::HRESULT =
35627 windows_core::HRESULT(0x80040123_u32 as _);
35628pub const MAPI_E_INVALID_BOOKMARK: windows_core::HRESULT =
35629 windows_core::HRESULT(0x80040405_u32 as _);
35630pub const MAPI_E_INVALID_EDITFIELDS: u32 = 24u32;
35631pub const MAPI_E_INVALID_ENTRYID: windows_core::HRESULT =
35632 windows_core::HRESULT(0x80040107_u32 as _);
35633pub const MAPI_E_INVALID_MESSAGE: u32 = 17u32;
35634pub const MAPI_E_INVALID_OBJECT: windows_core::HRESULT = windows_core::HRESULT(0x80040108_u32 as _);
35635pub const MAPI_E_INVALID_PARAMETER: windows_core::HRESULT =
35636 windows_core::HRESULT(0x80070057_u32 as _);
35637pub const MAPI_E_INVALID_RECIPS: u32 = 25u32;
35638pub const MAPI_E_INVALID_SESSION: u32 = 19u32;
35639pub const MAPI_E_INVALID_TYPE: windows_core::HRESULT = windows_core::HRESULT(0x80040302_u32 as _);
35640pub const MAPI_E_INVALID_WORKSTATION_ACCOUNT: windows_core::HRESULT =
35641 windows_core::HRESULT(0x80040122_u32 as _);
35642pub const MAPI_E_LOGIN_FAILURE: u32 = 3u32;
35643pub const MAPI_E_LOGON_FAILED: windows_core::HRESULT = windows_core::HRESULT(0x80040111_u32 as _);
35644pub const MAPI_E_LOGON_FAILURE: u32 = 3u32;
35645pub const MAPI_E_MESSAGE_IN_USE: u32 = 22u32;
35646pub const MAPI_E_MISSING_REQUIRED_COLUMN: windows_core::HRESULT =
35647 windows_core::HRESULT(0x80040202_u32 as _);
35648pub const MAPI_E_NETWORK_ERROR: windows_core::HRESULT = windows_core::HRESULT(0x80040115_u32 as _);
35649pub const MAPI_E_NETWORK_FAILURE: u32 = 23u32;
35650pub const MAPI_E_NON_STANDARD: windows_core::HRESULT = windows_core::HRESULT(0x80040606_u32 as _);
35651pub const MAPI_E_NOT_ENOUGH_DISK: windows_core::HRESULT =
35652 windows_core::HRESULT(0x8004010D_u32 as _);
35653pub const MAPI_E_NOT_ENOUGH_MEMORY: windows_core::HRESULT =
35654 windows_core::HRESULT(0x8007000E_u32 as _);
35655pub const MAPI_E_NOT_ENOUGH_RESOURCES: windows_core::HRESULT =
35656 windows_core::HRESULT(0x8004010E_u32 as _);
35657pub const MAPI_E_NOT_FOUND: windows_core::HRESULT = windows_core::HRESULT(0x8004010F_u32 as _);
35658pub const MAPI_E_NOT_INITIALIZED: windows_core::HRESULT =
35659 windows_core::HRESULT(0x80040605_u32 as _);
35660pub const MAPI_E_NOT_IN_QUEUE: windows_core::HRESULT = windows_core::HRESULT(0x80040601_u32 as _);
35661pub const MAPI_E_NOT_ME: windows_core::HRESULT = windows_core::HRESULT(0x80040502_u32 as _);
35662pub const MAPI_E_NOT_SUPPORTED: u32 = 26u32;
35663pub const MAPI_E_NO_ACCESS: windows_core::HRESULT = windows_core::HRESULT(0x80070005_u32 as _);
35664pub const MAPI_E_NO_MESSAGES: u32 = 16u32;
35665pub const MAPI_E_NO_RECIPIENTS: windows_core::HRESULT = windows_core::HRESULT(0x80040607_u32 as _);
35666pub const MAPI_E_NO_SUPPORT: windows_core::HRESULT = windows_core::HRESULT(0x80040102_u32 as _);
35667pub const MAPI_E_NO_SUPPRESS: windows_core::HRESULT = windows_core::HRESULT(0x80040602_u32 as _);
35668pub const MAPI_E_OBJECT_CHANGED: windows_core::HRESULT = windows_core::HRESULT(0x80040109_u32 as _);
35669pub const MAPI_E_OBJECT_DELETED: windows_core::HRESULT = windows_core::HRESULT(0x8004010A_u32 as _);
35670pub const MAPI_E_PASSWORD_CHANGE_REQUIRED: windows_core::HRESULT =
35671 windows_core::HRESULT(0x80040120_u32 as _);
35672pub const MAPI_E_PASSWORD_EXPIRED: windows_core::HRESULT =
35673 windows_core::HRESULT(0x80040121_u32 as _);
35674pub const MAPI_E_SESSION_LIMIT: windows_core::HRESULT = windows_core::HRESULT(0x80040112_u32 as _);
35675pub const MAPI_E_STRING_TOO_LONG: windows_core::HRESULT =
35676 windows_core::HRESULT(0x80040105_u32 as _);
35677pub const MAPI_E_SUBMITTED: windows_core::HRESULT = windows_core::HRESULT(0x80040608_u32 as _);
35678pub const MAPI_E_TABLE_EMPTY: windows_core::HRESULT = windows_core::HRESULT(0x80040402_u32 as _);
35679pub const MAPI_E_TABLE_TOO_BIG: windows_core::HRESULT = windows_core::HRESULT(0x80040403_u32 as _);
35680pub const MAPI_E_TEXT_TOO_LARGE: u32 = 18u32;
35681pub const MAPI_E_TIMEOUT: windows_core::HRESULT = windows_core::HRESULT(0x80040401_u32 as _);
35682pub const MAPI_E_TOO_BIG: windows_core::HRESULT = windows_core::HRESULT(0x80040305_u32 as _);
35683pub const MAPI_E_TOO_COMPLEX: windows_core::HRESULT = windows_core::HRESULT(0x80040117_u32 as _);
35684pub const MAPI_E_TOO_MANY_FILES: u32 = 9u32;
35685pub const MAPI_E_TOO_MANY_RECIPIENTS: u32 = 10u32;
35686pub const MAPI_E_TOO_MANY_SESSIONS: u32 = 8u32;
35687pub const MAPI_E_TYPE_NOT_SUPPORTED: u32 = 20u32;
35688pub const MAPI_E_TYPE_NO_SUPPORT: windows_core::HRESULT =
35689 windows_core::HRESULT(0x80040303_u32 as _);
35690pub const MAPI_E_UNABLE_TO_ABORT: windows_core::HRESULT =
35691 windows_core::HRESULT(0x80040114_u32 as _);
35692pub const MAPI_E_UNABLE_TO_COMPLETE: windows_core::HRESULT =
35693 windows_core::HRESULT(0x80040400_u32 as _);
35694pub const MAPI_E_UNCONFIGURED: windows_core::HRESULT = windows_core::HRESULT(0x8004011C_u32 as _);
35695pub const MAPI_E_UNEXPECTED_ID: windows_core::HRESULT = windows_core::HRESULT(0x80040307_u32 as _);
35696pub const MAPI_E_UNEXPECTED_TYPE: windows_core::HRESULT =
35697 windows_core::HRESULT(0x80040304_u32 as _);
35698pub const MAPI_E_UNKNOWN_CPID: windows_core::HRESULT = windows_core::HRESULT(0x8004011E_u32 as _);
35699pub const MAPI_E_UNKNOWN_ENTRYID: windows_core::HRESULT =
35700 windows_core::HRESULT(0x80040201_u32 as _);
35701pub const MAPI_E_UNKNOWN_FLAGS: windows_core::HRESULT = windows_core::HRESULT(0x80040106_u32 as _);
35702pub const MAPI_E_UNKNOWN_LCID: windows_core::HRESULT = windows_core::HRESULT(0x8004011F_u32 as _);
35703pub const MAPI_E_UNKNOWN_RECIPIENT: u32 = 14u32;
35704pub const MAPI_E_USER_ABORT: u32 = 1u32;
35705pub const MAPI_E_USER_CANCEL: windows_core::HRESULT = windows_core::HRESULT(0x80040113_u32 as _);
35706pub const MAPI_E_VERSION: windows_core::HRESULT = windows_core::HRESULT(0x80040110_u32 as _);
35707pub const MAPI_E_WAIT: windows_core::HRESULT = windows_core::HRESULT(0x80040500_u32 as _);
35708pub const MAPI_FOLDER: u32 = 3u32;
35709pub const MAPI_FORCE_CREATE: u32 = 1u32;
35710pub const MAPI_FORCE_DOWNLOAD: u32 = 4096u32;
35711pub const MAPI_FORMINFO: u32 = 12u32;
35712pub const MAPI_FULL_IPM_TREE: u32 = 2u32;
35713pub const MAPI_GUARANTEE_FIFO: u32 = 256u32;
35714pub const MAPI_HOOK_PROVIDER: u32 = 40u32;
35715pub const MAPI_INIT_VERSION: u32 = 0u32;
35716pub const MAPI_LOGOFF_SHARED: u32 = 1u32;
35717pub const MAPI_LOGOFF_UI: u32 = 2u32;
35718pub const MAPI_LOGON_UI: u32 = 1u32;
35719pub const MAPI_LONG_MSGID: u32 = 16384u32;
35720pub const MAPI_MAILUSER: u32 = 6u32;
35721pub const MAPI_MESSAGE: u32 = 5u32;
35722pub const MAPI_MESSAGE_BEHAVIOR_FOLDER: u32 = 1u32;
35723pub const MAPI_MESSAGE_BEHAVIOR_IPM: u32 = 0u32;
35724pub const MAPI_MH_DP_ML: u32 = 3u32;
35725pub const MAPI_MH_DP_MS: u32 = 2u32;
35726pub const MAPI_MH_DP_OTHER_AU: u32 = 6u32;
35727pub const MAPI_MH_DP_PDAU: u32 = 4u32;
35728pub const MAPI_MH_DP_PDS_PATRON: u32 = 5u32;
35729pub const MAPI_MH_DP_PRIVATE_UA: u32 = 1u32;
35730pub const MAPI_MH_DP_PUBLIC_UA: u32 = 0u32;
35731pub const MAPI_MODIFY: u32 = 1u32;
35732pub const MAPI_MOVE: u32 = 1u32;
35733pub const MAPI_MULTITHREAD_NOTIFICATIONS: u32 = 1u32;
35734pub const MAPI_NATIVE_BODY: u32 = 65536u32;
35735pub const MAPI_NATIVE_BODY_TYPE_HTML: u32 = 2u32;
35736pub const MAPI_NATIVE_BODY_TYPE_PLAINTEXT: u32 = 4u32;
35737pub const MAPI_NATIVE_BODY_TYPE_RTF: u32 = 1u32;
35738pub const MAPI_NEW_MESSAGE: u32 = 2u32;
35739pub const MAPI_NEW_SESSION: u32 = 2u32;
35740pub const MAPI_NON_READ: u32 = 1u32;
35741pub const MAPI_NOREPLACE: u32 = 2u32;
35742pub const MAPI_NOTRECIP: u32 = 64u32;
35743pub const MAPI_NOTRESERVED: u32 = 8u32;
35744pub const MAPI_NOW: u32 = 16u32;
35745pub const MAPI_NO_CACHE: u32 = 512u32;
35746pub const MAPI_NO_COINIT: u32 = 8u32;
35747pub const MAPI_NO_HBAR: u32 = 1u32;
35748pub const MAPI_NO_IDS: u32 = 2u32;
35749pub const MAPI_NO_MAIL: u32 = 32768u32;
35750pub const MAPI_NO_STRINGS: u32 = 1u32;
35751pub const MAPI_NO_VBAR: u32 = 2u32;
35752pub const MAPI_NT_SERVICE: u32 = 65536u32;
35753pub const MAPI_OLE: u32 = 1u32;
35754pub const MAPI_OLE_STATIC: u32 = 2u32;
35755pub const MAPI_ONE_OFF_NO_RICH_INFO: u32 = 1u32;
35756pub const MAPI_ONE_OFF_UNICODE: u32 = 32768u32;
35757pub const MAPI_ORIG: u32 = 0u32;
35758pub const MAPI_P1: u32 = 268435456u32;
35759pub const MAPI_PASSWORD_UI: u32 = 131072u32;
35760pub const MAPI_PEEK: u32 = 128u32;
35761pub const MAPI_POST_MESSAGE: u32 = 1u32;
35762pub const MAPI_PRIMARY_STORE: u32 = 4u32;
35763pub const MAPI_PROFILE_PROVIDER: u32 = 38u32;
35764pub const MAPI_PROFSECT: u32 = 9u32;
35765pub const MAPI_PW_ADD_SERVICE_ONLY: u32 = 4u32;
35766pub const MAPI_PW_FIRST_PROFILE: u32 = 1u32;
35767pub const MAPI_PW_HIDE_SERVICES_LIST: u32 = 16u32;
35768pub const MAPI_PW_LAUNCHED_BY_CONFIG: u32 = 2u32;
35769pub const MAPI_PW_PROVIDER_UI_ONLY: u32 = 8u32;
35770pub const MAPI_RECEIPT_REQUESTED: u32 = 2u32;
35771pub const MAPI_RESERVED1: u32 = 65536u32;
35772pub const MAPI_RESOLVED: u32 = 2u32;
35773pub const MAPI_SECONDARY_STORE: u32 = 5u32;
35774pub const MAPI_SEND_NO_RICH_INFO: u32 = 65536u32;
35775pub const MAPI_SENT: u32 = 4u32;
35776pub const MAPI_SERVICE_UI_ALWAYS: u32 = 8192u32;
35777pub const MAPI_SESSION: u32 = 11u32;
35778pub const MAPI_SHORTTERM: u32 = 128u32;
35779pub const MAPI_SIMPLE_STORE_PERMANENT: u32 = 3u32;
35780pub const MAPI_SIMPLE_STORE_TEMPORARY: u32 = 2u32;
35781pub const MAPI_SPOOLER: u32 = 37u32;
35782pub const MAPI_STATUS: u32 = 10u32;
35783pub const MAPI_STORE: u32 = 1u32;
35784pub const MAPI_STORE_PROVIDER: u32 = 33u32;
35785pub const MAPI_SUBMITTED: u32 = 2147483648u32;
35786pub const MAPI_SUBSYSTEM: u32 = 39u32;
35787pub const MAPI_SUPPRESS_ATTACH: u32 = 2048u32;
35788pub const MAPI_THISSESSION: u32 = 32u32;
35789pub const MAPI_TIMEOUT_SHORT: u32 = 1048576u32;
35790pub const MAPI_TO: u32 = 1u32;
35791pub const MAPI_TOP_LEVEL: u32 = 1u32;
35792pub const MAPI_TRANSPORT_PROVIDER: u32 = 36u32;
35793pub const MAPI_UNICODE: u32 = 2147483648u32;
35794pub const MAPI_UNREAD: u32 = 1u32;
35795pub const MAPI_UNREAD_ONLY: u32 = 32u32;
35796pub const MAPI_UNRESOLVED: u32 = 0u32;
35797pub const MAPI_USER_ABORT: u32 = 1u32;
35798pub const MAPI_USE_DEFAULT: u32 = 64u32;
35799pub const MAPI_W_APPROX_COUNT: windows_core::HRESULT = windows_core::HRESULT(0x40482_u32 as _);
35800pub const MAPI_W_CANCEL_MESSAGE: windows_core::HRESULT = windows_core::HRESULT(0x40580_u32 as _);
35801pub const MAPI_W_ERRORS_RETURNED: windows_core::HRESULT = windows_core::HRESULT(0x40380_u32 as _);
35802pub const MAPI_W_NO_SERVICE: windows_core::HRESULT = windows_core::HRESULT(0x40203_u32 as _);
35803pub const MAPI_W_PARTIAL_COMPLETION: windows_core::HRESULT =
35804 windows_core::HRESULT(0x40680_u32 as _);
35805pub const MAPI_W_POSITION_CHANGED: windows_core::HRESULT = windows_core::HRESULT(0x40481_u32 as _);
35806pub const MAX_ADMD_NAME_SIZ: u32 = 17u32;
35807pub const MAX_CBMAX_BODY_LINE: u32 = 4294967295u32;
35808pub const MAX_CBMAX_HEADER_LINE: u32 = 4294967295u32;
35809pub const MAX_COUNTRY_NAME_SIZ: u32 = 4u32;
35810pub const MAX_MTA_NAME_SIZ: u32 = 33u32;
35811pub const MAX_PATH: u32 = 260u32;
35812pub const MAX_PRMD_NAME_SIZ: u32 = 17u32;
35813pub const MDB_FOLDER_IPM: u32 = 1u32;
35814pub const MDB_FOLDER_NORMAL: u32 = 4u32;
35815pub const MDB_FOLDER_RULES: u32 = 8u32;
35816pub const MDB_FOLDER_SEARCH: u32 = 2u32;
35817pub const MDB_IPM: u32 = 32u32;
35818pub const MDB_LIMIT_BELOW: u32 = 1u32;
35819pub const MDB_LIMIT_DISABLED: u32 = 16u32;
35820pub const MDB_LIMIT_ISSUE_WARNING: u32 = 2u32;
35821pub const MDB_LIMIT_NO_CHECK: u32 = 8u32;
35822pub const MDB_LIMIT_PROHIBIT_SEND: u32 = 4u32;
35823pub const MDB_NON_IPM: u32 = 16u32;
35824pub const MDB_NO_DIALOG: u32 = 1u32;
35825pub const MDB_NO_MAIL: u32 = 128u32;
35826pub const MDB_ONLINE: u32 = 256u32;
35827pub const MDB_OPEN_MSG_NO_BLOCK: u32 = 32u32;
35828pub const MDB_QUOTA_NOQUOTA: u32 = 4294967295u32;
35829pub const MDB_SAVE_MSG_UNLOCK: u32 = 64u32;
35830pub const MDB_TEMPORARY: u32 = 32u32;
35831pub const MDB_WRITE: u32 = 4u32;
35832pub const MEBF_FORMATBARSEP: u32 = 4u32;
35833pub const MEBF_INNERCLIENTEDGE: u32 = 2u32;
35834pub const MEBF_NOSCROLL: u32 = 8u32;
35835pub const MEBF_OUTERCLIENTEDGE: u32 = 1u32;
35836pub const MECD_ENCODEFILEURLSONLY: u32 = 8u32;
35837pub const MECD_ENCODEIMAGES: u32 = 4u32;
35838pub const MECD_ENCODEPLUGINS: u32 = 64u32;
35839pub const MECD_ENCODESOUNDS: u32 = 16u32;
35840pub const MECD_ENCODEVIDEO: u32 = 32u32;
35841pub const MECD_HTML: u32 = 1u32;
35842pub const MECD_PLAINTEXT: u32 = 2u32;
35843pub const MECMDID_APPLYDOCUMENT: u32 = 19u32;
35844pub const MECMDID_BACKGROUNDCOLOR: u32 = 18u32;
35845pub const MECMDID_BACKGROUNDIMAGE: u32 = 15u32;
35846pub const MECMDID_BACKGROUNDSOUND: u32 = 21u32;
35847pub const MECMDID_CHARSET: u32 = 13u32;
35848pub const MECMDID_DIRTY: u32 = 1u32;
35849pub const MECMDID_DOWNGRADEPLAINTEXT: u32 = 5u32;
35850pub const MECMDID_EDITHTML: u32 = 4u32;
35851pub const MECMDID_EDITMODE: u32 = 12u32;
35852pub const MECMDID_EMPTY: u32 = 2u32;
35853pub const MECMDID_FORMATFONT: u32 = 10u32;
35854pub const MECMDID_FORMATPARAGRAPH: u32 = 26u32;
35855pub const MECMDID_INSERTBGSOUND: u32 = 22u32;
35856pub const MECMDID_INSERTHTML: u32 = 17u32;
35857pub const MECMDID_INSERTTEXT: u32 = 16u32;
35858pub const MECMDID_INSERTTEXTFILE: u32 = 8u32;
35859pub const MECMDID_PREVIEWFORMAT: u32 = 11u32;
35860pub const MECMDID_ROT13: u32 = 7u32;
35861pub const MECMDID_SAVEASSTATIONERY: u32 = 14u32;
35862pub const MECMDID_SAVEATTACHMENTS: u32 = 20u32;
35863pub const MECMDID_SETSOURCETAB: u32 = 24u32;
35864pub const MECMDID_SETTEXT: u32 = 6u32;
35865pub const MECMDID_SHOWSOURCETABS: u32 = 23u32;
35866pub const MECMDID_STYLE: u32 = 3u32;
35867pub const MECMDID_TABLINKS: u32 = 25u32;
35868pub const MECMDID_VIEWSOURCE: u32 = 9u32;
35869pub const MECMD_VS_HTML: u32 = 1u32;
35870pub const MECMD_VS_MESSAGE: u32 = 2u32;
35871pub const MEHEADER_FORCE_ENGLISH: u32 = 4u32;
35872pub const MEHEADER_MAIL: u32 = 2u32;
35873pub const MEHEADER_NEWS: u32 = 1u32;
35874pub const MEHEADER_NONE: u32 = 0u32;
35875pub const MEHOSTCMDID_ADD_TO_ADDRESSBOOK: u32 = 10u32;
35876pub const MEHOSTCMDID_ADD_TO_FAVORITES: u32 = 11u32;
35877pub const MEHOSTCMDID_BORDERFLAGS: u32 = 14u32;
35878pub const MEHOSTCMDID_COMPOSE_FONT: u32 = 9u32;
35879pub const MEHOSTCMDID_FLAGS: u32 = 6u32;
35880pub const MEHOSTCMDID_FONTCACHE: u32 = 13u32;
35881pub const MEHOSTCMDID_HEADER_TYPE: u32 = 4u32;
35882pub const MEHOSTCMDID_ONPARSECOMPLETE: u32 = 5u32;
35883pub const MEHOSTCMDID_QUOTE_CHAR: u32 = 7u32;
35884pub const MEHOSTCMDID_REPLY_TICK_COLOR: u32 = 8u32;
35885pub const MEHOSTCMDID_SAVEATTACH_PATH: u32 = 17u32;
35886pub const MEHOSTCMDID_SECURITY_ZONE: u32 = 15u32;
35887pub const MEHOSTCMDID_SIGNATURE: u32 = 3u32;
35888pub const MEHOSTCMDID_SIGNATURE_ENABLED: u32 = 1u32;
35889pub const MEHOSTCMDID_SIGNATURE_OPTIONS: u32 = 2u32;
35890pub const MEHOSTCMDID_SLIDESHOW_DELAY: u32 = 12u32;
35891pub const MEHOSTCMDID_SOURCEEDIT_FLAGS: u32 = 18u32;
35892pub const MEHOSTCMDID_SPELL_LANGUAGE: u32 = 19u32;
35893pub const MEHOSTCMDID_SPELL_OPTIONS: u32 = 16u32;
35894pub const MEO_FLAGS_AUTOINLINE: u32 = 4u32;
35895pub const MEO_FLAGS_AUTOTEXT: u32 = 16u32;
35896pub const MEO_FLAGS_BLOCKQUOTE: u32 = 32u32;
35897pub const MEO_FLAGS_DONTSPELLCHECKQUOTED: u32 = 128u32;
35898pub const MEO_FLAGS_HTML: u32 = 2u32;
35899pub const MEO_FLAGS_INCLUDEMSG: u32 = 1u32;
35900pub const MEO_FLAGS_SENDEXTERNALIMGSRC: u32 = 256u32;
35901pub const MEO_FLAGS_SENDIMAGES: u32 = 64u32;
35902pub const MEO_FLAGS_SLIDESHOW: u32 = 8u32;
35903pub const MESIGOPT_BOTTOM: u32 = 8u32;
35904pub const MESIGOPT_HTML: u32 = 16u32;
35905pub const MESIGOPT_PLAIN: u32 = 1u32;
35906pub const MESIGOPT_PREFIX: u32 = 4u32;
35907pub const MESIGOPT_TOP: u32 = 2u32;
35908pub const MESIG_AUTO: u32 = 1u32;
35909pub const MESIG_MANUAL: u32 = 2u32;
35910pub const MESPELLOPT_ALWAYSSUGGEST: u32 = 32u32;
35911pub const MESPELLOPT_CHECKONSEND: u32 = 64u32;
35912pub const MESPELLOPT_CHECKONTYPE: u32 = 128u32;
35913pub const MESPELLOPT_IGNOREDBCS: u32 = 4u32;
35914pub const MESPELLOPT_IGNORENUMBER: u32 = 1u32;
35915pub const MESPELLOPT_IGNOREPROTECT: u32 = 8u32;
35916pub const MESPELLOPT_IGNOREUPPER: u32 = 2u32;
35917pub const MESPELLOPT_IGNOREURL: u32 = 16u32;
35918pub const MESRCFLAGS_COLOR: u32 = 1u32;
35919pub const MESSAGE_BEST_BODY: u32 = 16u32;
35920pub const MESSAGE_DIALOG: u32 = 2u32;
35921pub const MESSAGE_MOVE: u32 = 1u32;
35922pub const MESSAGE_SEND_ENTRYID: u32 = 32u32;
35923pub const MESTYLE_FORMATBAR: u32 = 2u32;
35924pub const MESTYLE_MINIHEADER: u32 = 3u32;
35925pub const MESTYLE_NOHEADER: u32 = 0u32;
35926pub const MESTYLE_PREVIEW: u32 = 1u32;
35927pub const MEST_EDIT: u32 = 0u32;
35928pub const MEST_NEXT: u32 = 3u32;
35929pub const MEST_PREVIEW: u32 = 2u32;
35930pub const MEST_PREVIOUS: u32 = 4u32;
35931pub const MEST_SOURCE: u32 = 1u32;
35932#[repr(transparent)]
35933#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
35934pub struct METHODS(pub i32);
35935pub const MIMEOLE_COMPAT_MLANG2: u32 = 2u32;
35936pub const MIMEOLE_COMPAT_OE5: u32 = 1u32;
35937#[repr(C)]
35938#[derive(Clone, Copy, Debug, Default, PartialEq)]
35939pub struct MIMEPARAMINFO {
35940 pub pszName: windows_core::PSTR,
35941 pub pszData: windows_core::PSTR,
35942}
35943#[repr(transparent)]
35944#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
35945pub struct MIMEPROPFLAGS(pub i32);
35946#[repr(transparent)]
35947#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
35948pub struct MIMEPROPID(pub i32);
35949#[repr(C)]
35950#[derive(Clone, Copy, Debug, PartialEq)]
35951pub struct MIMEPROPINFO {
35952 pub dwMask: u32,
35953 pub hCharset: *mut HCHARSET__,
35954 pub ietEncoding: ENCODINGTYPE,
35955 pub dwRowNumber: u32,
35956 pub dwFlags: u32,
35957 pub dwPropId: u32,
35958 pub cValues: u32,
35959 pub vtDefault: u16,
35960 pub vtCurrent: u16,
35961}
35962impl Default for MIMEPROPINFO {
35963 fn default() -> Self {
35964 unsafe { core::mem::zeroed() }
35965 }
35966}
35967#[repr(transparent)]
35968#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
35969pub struct MIMESAVETYPE(pub i32);
35970pub const MIN_CBMAX_BODY_LINE: u32 = 30u32;
35971pub const MIN_CBMAX_HEADER_LINE: u32 = 76u32;
35972pub const MIN_EMS_AB_CONSTRUCTED_PROP_ID: u32 = 65528u32;
35973pub const MNID_ID: u32 = 0u32;
35974pub const MNID_STRING: u32 = 1u32;
35975pub const MODRECIP_ADD: u32 = 2u32;
35976pub const MODRECIP_MODIFY: u32 = 4u32;
35977pub const MODRECIP_REMOVE: u32 = 8u32;
35978pub const MPF_ADDRESS: MIMEPROPFLAGS = MIMEPROPFLAGS(4i32);
35979pub const MPF_HASPARAMS: MIMEPROPFLAGS = MIMEPROPFLAGS(8i32);
35980pub const MPF_INETCSET: MIMEPROPFLAGS = MIMEPROPFLAGS(1i32);
35981pub const MPF_MIME: MIMEPROPFLAGS = MIMEPROPFLAGS(16i32);
35982pub const MPF_READONLY: MIMEPROPFLAGS = MIMEPROPFLAGS(32i32);
35983pub const MPF_RFC1522: MIMEPROPFLAGS = MIMEPROPFLAGS(2i32);
35984pub const MSCAP_RES_ANNOTATION: u32 = 1u32;
35985pub const MSCAP_SECURE_FOLDER_HOMEPAGES: u32 = 1u32;
35986#[repr(transparent)]
35987#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
35988pub struct MSCAP_SELECTOR(pub i32);
35989pub const MSCAP_SEL_FOLDER: MSCAP_SELECTOR = MSCAP_SELECTOR(2i32);
35990pub const MSCAP_SEL_RESERVED1: MSCAP_SELECTOR = MSCAP_SELECTOR(0i32);
35991pub const MSCAP_SEL_RESERVED2: MSCAP_SELECTOR = MSCAP_SELECTOR(1i32);
35992pub const MSCAP_SEL_RESERVED3: MSCAP_SELECTOR = MSCAP_SELECTOR(3i32);
35993pub const MSCAP_SEL_RESTRICTION: MSCAP_SELECTOR = MSCAP_SELECTOR(4i32);
35994pub type MSGCALLRELEASE =
35995 Option<unsafe extern "system" fn(ulcallerdata: u32, lpmessage: windows_core::Ref<IMessage>)>;
35996pub const MSGFLAG_ASSOCIATED: u32 = 64u32;
35997pub const MSGFLAG_FROMME: u32 = 32u32;
35998pub const MSGFLAG_HASATTACH: u32 = 16u32;
35999pub const MSGFLAG_NRN_PENDING: u32 = 512u32;
36000pub const MSGFLAG_READ: u32 = 1u32;
36001pub const MSGFLAG_RESEND: u32 = 128u32;
36002pub const MSGFLAG_RN_PENDING: u32 = 256u32;
36003pub const MSGFLAG_SUBMIT: u32 = 4u32;
36004pub const MSGFLAG_UNMODIFIED: u32 = 2u32;
36005pub const MSGFLAG_UNSENT: u32 = 8u32;
36006pub type MSGSERVICEENTRY = Option<
36007 unsafe extern "system" fn(
36008 hinstance: windows::Win32::Foundation::HINSTANCE,
36009 lpmalloc: windows_core::Ref<windows::Win32::System::Com::IMalloc>,
36010 lpmapisup: windows_core::Ref<IMAPISupport>,
36011 uluiparam: usize,
36012 ulflags: u32,
36013 ulcontext: u32,
36014 cvalues: u32,
36015 lpprops: *mut SPropValue,
36016 lpprovideradmin: windows_core::Ref<IProviderAdmin>,
36017 lppmapierror: *mut *mut MAPIERROR,
36018 ) -> windows_core::HRESULT,
36019>;
36020pub const MSGSTATUS_DELMARKED: u32 = 8u32;
36021pub const MSGSTATUS_HIDDEN: u32 = 4u32;
36022pub const MSGSTATUS_HIGHLIGHTED: u32 = 1u32;
36023pub const MSGSTATUS_IN_CONFLICT: u32 = 2048u32;
36024pub const MSGSTATUS_MDNSENT: u32 = 16384u32;
36025pub const MSGSTATUS_REMOTE_DELETE: u32 = 8192u32;
36026pub const MSGSTATUS_REMOTE_DOWNLOAD: u32 = 4096u32;
36027pub const MSGSTATUS_TAGGED: u32 = 2u32;
36028pub const MSG_LOCKED: u32 = 1u32;
36029pub const MSG_SERVICE_CONFIGURE: u32 = 3u32;
36030pub const MSG_SERVICE_CREATE: u32 = 2u32;
36031pub const MSG_SERVICE_DELETE: u32 = 4u32;
36032pub const MSG_SERVICE_INSTALL: u32 = 1u32;
36033pub const MSG_SERVICE_PROVIDER_CREATE: u32 = 6u32;
36034pub const MSG_SERVICE_PROVIDER_DELETE: u32 = 7u32;
36035pub const MSG_SERVICE_UI_READ_ONLY: u32 = 8u32;
36036pub const MSG_SERVICE_UNINSTALL: u32 = 5u32;
36037pub const MSG_UNLOCKED: u32 = 0u32;
36038pub type MSPROVIDERINIT = Option<
36039 unsafe extern "system" fn(
36040 hinstance: windows::Win32::Foundation::HINSTANCE,
36041 lpmalloc: windows_core::Ref<windows::Win32::System::Com::IMalloc>,
36042 lpallocatebuffer: LPALLOCATEBUFFER,
36043 lpallocatemore: LPALLOCATEMORE,
36044 lpfreebuffer: LPFREEBUFFER,
36045 ulflags: u32,
36046 ulmapiver: u32,
36047 lpulproviderver: *mut u32,
36048 lppmsprovider: windows_core::OutRef<IMSProvider>,
36049 ) -> windows_core::HRESULT,
36050>;
36051pub const MST_BLOB_FLAG: u32 = 4u32;
36052pub const MST_CHILD_ENCRYPT: u32 = 512u32;
36053pub const MST_CHILD_MASK: u32 = 3840u32;
36054pub const MST_CHILD_SIGN: u32 = 256u32;
36055pub const MST_CLASS_MASK: u32 = 4278190080u32;
36056pub const MST_CLASS_PGP: u32 = 16777216u32;
36057pub const MST_CLASS_SMIME_V1: u32 = 0u32;
36058pub const MST_DESCENDENT_MASK: u32 = 65280u32;
36059pub const MST_ENCRYPT_MASK: u32 = 8706u32;
36060pub const MST_NONE: u32 = 0u32;
36061pub const MST_RECEIPT_REQUEST: u32 = 65536u32;
36062pub const MST_SIGN_MASK: u32 = 4353u32;
36063pub const MST_SUBMSG_ENCRYPT: u32 = 8192u32;
36064pub const MST_SUBMSG_MASK: u32 = 61440u32;
36065pub const MST_SUBMSG_SIGN: u32 = 4096u32;
36066pub const MST_THIS_BLOBSIGN: u32 = 5u32;
36067pub const MST_THIS_ENCRYPT: u32 = 2u32;
36068pub const MST_THIS_MASK: u32 = 255u32;
36069pub const MST_THIS_SIGN: u32 = 1u32;
36070pub const MST_TYPE_MASK: u32 = 65535u32;
36071pub const MSV_BADSIGNATURE: u32 = 1u32;
36072pub const MSV_CANTDECRYPT: u32 = 4096u32;
36073pub const MSV_ENCRYPT_MASK: u32 = 1044480u32;
36074pub const MSV_ENC_FOR_EXPIREDCERT: u32 = 8192u32;
36075pub const MSV_EXPIRED_SIGNINGCERT: u32 = 256u32;
36076pub const MSV_INVALID: u32 = 16777216u32;
36077pub const MSV_MALFORMEDSIG: u32 = 128u32;
36078pub const MSV_MSG_MASK: u32 = 251658240u32;
36079pub const MSV_OK: u32 = 0u32;
36080pub const MSV_SIGNATURE_MASK: u32 = 255u32;
36081pub const MSV_SIGNING_MASK: u32 = 3840u32;
36082pub const MSV_UNKHASH: u32 = 4u32;
36083pub const MSV_UNVERIFIABLE: u32 = 2u32;
36084pub const MTA_PAD: u32 = 3u32;
36085pub const MTA_PAD_FOR_ACTIONS: u32 = 2u32;
36086#[repr(C)]
36087#[derive(Clone, Copy, Debug, PartialEq)]
36088pub struct MTSID {
36089 pub cb: u32,
36090 pub ab: [u8; 1],
36091}
36092impl Default for MTSID {
36093 fn default() -> Self {
36094 unsafe { core::mem::zeroed() }
36095 }
36096}
36097pub const MUID_PROFILE_INSTANCE: windows_core::GUID =
36098 windows_core::GUID::from_u128(0x00020385_0000_0000_c000_000000000046);
36099pub const MV_FLAG: u32 = 4096u32;
36100pub const MV_INSTANCE: u32 = 8192u32;
36101#[repr(C)]
36102#[derive(Clone, Copy, Debug, PartialEq)]
36103pub struct MapiFileDesc {
36104 pub ulReserved: u32,
36105 pub flFlags: u32,
36106 pub nPosition: u32,
36107 pub lpszPathName: windows_core::PSTR,
36108 pub lpszFileName: windows_core::PSTR,
36109 pub lpFileType: *mut core::ffi::c_void,
36110}
36111impl Default for MapiFileDesc {
36112 fn default() -> Self {
36113 unsafe { core::mem::zeroed() }
36114 }
36115}
36116#[repr(C)]
36117#[derive(Clone, Copy, Debug, PartialEq)]
36118pub struct MapiFileTagExt {
36119 pub ulReserved: u32,
36120 pub cbTag: u32,
36121 pub lpTag: *mut u8,
36122 pub cbEncoding: u32,
36123 pub lpEncoding: *mut u8,
36124}
36125impl Default for MapiFileTagExt {
36126 fn default() -> Self {
36127 unsafe { core::mem::zeroed() }
36128 }
36129}
36130#[repr(C)]
36131#[derive(Clone, Copy, Debug, PartialEq)]
36132pub struct MapiMessage {
36133 pub ulReserved: u32,
36134 pub lpszSubject: windows_core::PSTR,
36135 pub lpszNoteText: windows_core::PSTR,
36136 pub lpszMessageType: windows_core::PSTR,
36137 pub lpszDateReceived: windows_core::PSTR,
36138 pub lpszConversationID: windows_core::PSTR,
36139 pub flFlags: u32,
36140 pub lpOriginator: *mut MapiRecipDesc,
36141 pub nRecipCount: u32,
36142 pub lpRecips: *mut MapiRecipDesc,
36143 pub nFileCount: u32,
36144 pub lpFiles: *mut MapiFileDesc,
36145}
36146impl Default for MapiMessage {
36147 fn default() -> Self {
36148 unsafe { core::mem::zeroed() }
36149 }
36150}
36151#[repr(C)]
36152#[derive(Clone, Copy, Debug, PartialEq)]
36153pub struct MapiRecipDesc {
36154 pub ulReserved: u32,
36155 pub ulRecipClass: u32,
36156 pub lpszName: windows_core::PSTR,
36157 pub lpszAddress: windows_core::PSTR,
36158 pub ulEIDSize: u32,
36159 pub lpEntryID: *mut core::ffi::c_void,
36160}
36161impl Default for MapiRecipDesc {
36162 fn default() -> Self {
36163 unsafe { core::mem::zeroed() }
36164 }
36165}
36166pub const NEEDS_PREPROCESSING: u32 = 1u32;
36167pub const NEEDS_SPOOLER: u32 = 2u32;
36168#[repr(C)]
36169#[derive(Clone, Copy, Debug, PartialEq)]
36170pub struct NEWMAIL_NOTIFICATION {
36171 pub cbEntryID: u32,
36172 pub lpEntryID: *mut ENTRYID,
36173 pub cbParentID: u32,
36174 pub lpParentID: *mut ENTRYID,
36175 pub ulFlags: u32,
36176 pub lpszMessageClass: *mut i8,
36177 pub ulMessageFlags: u32,
36178}
36179impl Default for NEWMAIL_NOTIFICATION {
36180 fn default() -> Self {
36181 unsafe { core::mem::zeroed() }
36182 }
36183}
36184pub const NOFLAGS: u32 = 0u32;
36185pub const NON_EMS_XP_SAVE: u32 = 4096u32;
36186pub const NON_STANDARD: u32 = 65536u32;
36187pub const NORM_IGNORECASE: u32 = 1u32;
36188pub const NORM_IGNOREKANATYPE: u32 = 65536u32;
36189pub const NORM_IGNORENONSPACE: u32 = 2u32;
36190pub const NORM_IGNORESYMBOLS: u32 = 4u32;
36191pub const NORM_IGNOREWIDTH: u32 = 131072u32;
36192#[repr(C)]
36193#[derive(Clone, Copy)]
36194pub struct NOTIFICATION {
36195 pub ulEventType: u32,
36196 pub ulAlignPad: u32,
36197 pub info: NOTIFICATION_0,
36198}
36199impl Default for NOTIFICATION {
36200 fn default() -> Self {
36201 unsafe { core::mem::zeroed() }
36202 }
36203}
36204#[repr(C)]
36205#[derive(Clone, Copy)]
36206pub union NOTIFICATION_0 {
36207 pub err: ERROR_NOTIFICATION,
36208 pub newmail: NEWMAIL_NOTIFICATION,
36209 pub obj: OBJECT_NOTIFICATION,
36210 pub tab: TABLE_NOTIFICATION,
36211 pub ext: EXTENDED_NOTIFICATION,
36212 pub statobj: STATUS_OBJECT_NOTIFICATION,
36213}
36214impl Default for NOTIFICATION_0 {
36215 fn default() -> Self {
36216 unsafe { core::mem::zeroed() }
36217 }
36218}
36219#[repr(C)]
36220#[derive(Clone, Copy, Debug, PartialEq)]
36221pub struct NOTIFKEY {
36222 pub cb: u32,
36223 pub ab: [u8; 1],
36224}
36225impl Default for NOTIFKEY {
36226 fn default() -> Self {
36227 unsafe { core::mem::zeroed() }
36228 }
36229}
36230pub const NOTIFY_ABORT_DEFERRED: u32 = 1073741824u32;
36231pub const NOTIFY_ACCT_CHANGED: u32 = 1u32;
36232pub const NOTIFY_ACCT_CREATED: u32 = 2u32;
36233pub const NOTIFY_ACCT_DELETED: u32 = 3u32;
36234pub const NOTIFY_ACCT_ORDER_CHANGED: u32 = 4u32;
36235pub const NOTIFY_ACCT_PREDELETED: u32 = 5u32;
36236pub const NOTIFY_BEGIN_INBOUND: u32 = 1u32;
36237pub const NOTIFY_BEGIN_INBOUND_FLUSH: u32 = 4u32;
36238pub const NOTIFY_BEGIN_OUTBOUND: u32 = 2u32;
36239pub const NOTIFY_BEGIN_OUTBOUND_FLUSH: u32 = 8u32;
36240pub const NOTIFY_CANCELED: u32 = 2147483648u32;
36241pub const NOTIFY_CANCEL_MESSAGE: u32 = 2147483648u32;
36242pub const NOTIFY_CONFIG_CHANGE: u32 = 16384u32;
36243pub const NOTIFY_CRITICAL_ERROR: u32 = 268435456u32;
36244pub const NOTIFY_CRITSEC: u32 = 4096u32;
36245pub const NOTIFY_END_INBOUND: u32 = 65536u32;
36246pub const NOTIFY_END_INBOUND_FLUSH: u32 = 262144u32;
36247pub const NOTIFY_END_OUTBOUND: u32 = 131072u32;
36248pub const NOTIFY_END_OUTBOUND_FLUSH: u32 = 524288u32;
36249pub const NOTIFY_NEWMAIL: u32 = 1u32;
36250pub const NOTIFY_NEWMAIL_RECEIVED: u32 = 536870912u32;
36251pub const NOTIFY_NONCRIT: u32 = 8192u32;
36252pub const NOTIFY_READYTOSEND: u32 = 2u32;
36253pub const NOTIFY_SENTDEFERRED: u32 = 4u32;
36254pub const NOTIFY_SYNC: u32 = 1073741824u32;
36255pub const NO_ATTACHMENT: u32 = 0u32;
36256pub const NO_OST_DEFAULT: u32 = 0u32;
36257pub const NO_OST_FLAG_ALLOWED: u32 = 0u32;
36258pub const NO_OST_FLAG_CACHE_ONLY: u32 = 1u32;
36259pub const NO_OST_FLAG_NOT_ALLOWED: u32 = 2u32;
36260pub const NO_OST_FLAG_NO_CACHE: u32 = 3u32;
36261pub const NULL_RESTRICTION: u32 = 255u32;
36262pub const NUM_AG_TYPES: u32 = 3u32;
36263#[repr(C)]
36264#[derive(Clone, Copy, Debug, PartialEq)]
36265pub struct OBJECT_NOTIFICATION {
36266 pub cbEntryID: u32,
36267 pub lpEntryID: *mut ENTRYID,
36268 pub ulObjType: u32,
36269 pub cbParentID: u32,
36270 pub lpParentID: *mut ENTRYID,
36271 pub cbOldID: u32,
36272 pub lpOldID: *mut ENTRYID,
36273 pub cbOldParentID: u32,
36274 pub lpOldParentID: *mut ENTRYID,
36275 pub lpPropTagArray: *mut SPropTagArray,
36276}
36277impl Default for OBJECT_NOTIFICATION {
36278 fn default() -> Self {
36279 unsafe { core::mem::zeroed() }
36280 }
36281}
36282pub const OF_AVAILABLE_OFFLINE: u32 = 1u32;
36283pub const OF_FORCE: u32 = 2147483648u32;
36284pub const OID: CERTNAMETYPE = CERTNAMETYPE(1i32);
36285pub const OID_ENCODING: u32 = 11u32;
36286pub const OID_TAG: u32 = 10u32;
36287pub const OLK_ACCOUNT_NO_FLAGS: u32 = 0u32;
36288pub const OPENSTORE_ALTERNATE_SERVER: u32 = 256u32;
36289pub const OPENSTORE_CACHE_EXCHANGE: u32 = 32768u32;
36290pub const OPENSTORE_CALLBACK_LOGON: u32 = 4096u32;
36291pub const OPENSTORE_CLI_WITH_NAMEDPROP_FIX: u32 = 65536u32;
36292pub const OPENSTORE_CLI_WITH_REPLID_GUID_MAPPING_FIX: u32 = 262144u32;
36293pub const OPENSTORE_ENABLE_LAZY_LOGGING: u32 = 131072u32;
36294pub const OPENSTORE_FAIL_IF_NO_MAILBOX: u32 = 16384u32;
36295pub const OPENSTORE_HOME_LOGON: u32 = 4u32;
36296pub const OPENSTORE_IGNORE_HOME_MDB: u32 = 512u32;
36297pub const OPENSTORE_INTERNET_ANONYMOUS: u32 = 128u32;
36298pub const OPENSTORE_LOCAL: u32 = 8192u32;
36299pub const OPENSTORE_NO_LOCALIZATION: u32 = 524288u32;
36300pub const OPENSTORE_NO_MAIL: u32 = 1024u32;
36301pub const OPENSTORE_OVERRIDE_HOME_MDB: u32 = 16u32;
36302pub const OPENSTORE_OVERRIDE_LAST_MODIFIER: u32 = 2048u32;
36303pub const OPENSTORE_PUBLIC: u32 = 2u32;
36304pub const OPENSTORE_REMOTE_TRANSPORT: u32 = 64u32;
36305pub const OPENSTORE_RESTORE_DATABASE: u32 = 1048576u32;
36306pub const OPENSTORE_TAKE_OWNERSHIP: u32 = 8u32;
36307pub const OPENSTORE_TRANSPORT: u32 = 32u32;
36308pub const OPENSTORE_USE_ADMIN_PRIVILEGE: u32 = 1u32;
36309pub const OPENSTORE_XFOREST_MOVE: u32 = 2097152u32;
36310pub const OPENSTREAMONFILE: windows_core::PCSTR = windows_core::s!("OpenStreamOnFile");
36311pub const OPEN_ALWAYS: u32 = 4u32;
36312pub const OPEN_EXISTING: u32 = 3u32;
36313pub const OPEN_IF_EXISTS: u32 = 1u32;
36314pub type OPTIONCALLBACK = Option<
36315 unsafe extern "system" fn(
36316 hinst: windows::Win32::Foundation::HINSTANCE,
36317 lpmalloc: windows_core::Ref<windows::Win32::System::Com::IMalloc>,
36318 ulflags: u32,
36319 cboptiondata: u32,
36320 lpboptiondata: *mut u8,
36321 lpmapisup: windows_core::Ref<IMAPISupport>,
36322 lpdatasource: windows_core::Ref<IMAPIProp>,
36323 lppwrappedsource: windows_core::OutRef<IMAPIProp>,
36324 lppmapierror: *mut *mut MAPIERROR,
36325 ) -> i32,
36326>;
36327#[repr(C)]
36328#[derive(Clone, Copy, Debug, PartialEq)]
36329pub struct OPTIONDATA {
36330 pub ulFlags: u32,
36331 pub lpRecipGUID: *mut windows_core::GUID,
36332 pub lpszAdrType: *mut i8,
36333 pub lpszDLLName: *mut i8,
36334 pub ulOrdinal: u32,
36335 pub cbOptionsData: u32,
36336 pub lpbOptionsData: *mut u8,
36337 pub cOptionsProps: u32,
36338 pub lpOptionsProps: *mut SPropValue,
36339}
36340impl Default for OPTIONDATA {
36341 fn default() -> Self {
36342 unsafe { core::mem::zeroed() }
36343 }
36344}
36345pub const OPTION_TYPE_MESSAGE: u32 = 2u32;
36346pub const OPTION_TYPE_RECIPIENT: u32 = 1u32;
36347pub const OP_BOUNCE: ACTTYPE = ACTTYPE(6i32);
36348pub const OP_COPY: ACTTYPE = ACTTYPE(2i32);
36349pub const OP_DEFER_ACTION: ACTTYPE = ACTTYPE(5i32);
36350pub const OP_DELEGATE: ACTTYPE = ACTTYPE(8i32);
36351pub const OP_DELETE: ACTTYPE = ACTTYPE(10i32);
36352pub const OP_FORWARD: ACTTYPE = ACTTYPE(7i32);
36353pub const OP_MARK_AS_READ: ACTTYPE = ACTTYPE(11i32);
36354pub const OP_MOVE: ACTTYPE = ACTTYPE(1i32);
36355pub const OP_OOF_REPLY: ACTTYPE = ACTTYPE(4i32);
36356pub const OP_REPLY: ACTTYPE = ACTTYPE(3i32);
36357pub const OP_TAG: ACTTYPE = ACTTYPE(9i32);
36358pub const OSTF_BEST_ENCRYPTION: u32 = 536870912u32;
36359pub const OSTF_COMPRESSABLE_ENCRYPTION: u32 = 1073741824u32;
36360pub const OSTF_NO_ENCRYPTION: u32 = 2147483648u32;
36361pub const PDF_ENCODED: u32 = 1u32;
36362pub const PDF_NAMEINDATA: u32 = 2u32;
36363pub const PDF_NOCOMMENTS: u32 = 8u32;
36364pub const PDF_SAVENOENCODE: u32 = 16u32;
36365pub const PDF_VECTOR: u32 = 32u32;
36366pub const PDK1_SPI_VERSION: i32 = 65536i32;
36367pub const PDK2_SPI_VERSION: i32 = 65544i32;
36368pub const PDK3_SPI_VERSION: i32 = 65552i32;
36369pub type PFNIDLE =
36370 Option<unsafe extern "system" fn(param0: *mut core::ffi::c_void) -> windows_core::BOOL>;
36371pub const PID_ATT_ACCOUNT: MIMEPROPID = MIMEPROPID(63i32);
36372pub const PID_ATT_AUTOINLINED: MIMEPROPID = MIMEPROPID(72i32);
36373pub const PID_ATT_COMBINED: MIMEPROPID = MIMEPROPID(71i32);
36374pub const PID_ATT_FILENAME: MIMEPROPID = MIMEPROPID(45i32);
36375pub const PID_ATT_FORWARDTO: MIMEPROPID = MIMEPROPID(67i32);
36376pub const PID_ATT_GENFNAME: MIMEPROPID = MIMEPROPID(46i32);
36377pub const PID_ATT_GHOSTED: MIMEPROPID = MIMEPROPID(69i32);
36378pub const PID_ATT_ILLEGAL: MIMEPROPID = MIMEPROPID(50i32);
36379pub const PID_ATT_NORMSUBJ: MIMEPROPID = MIMEPROPID(49i32);
36380pub const PID_ATT_PRIORITY: MIMEPROPID = MIMEPROPID(54i32);
36381pub const PID_ATT_PRITYPE: MIMEPROPID = MIMEPROPID(47i32);
36382pub const PID_ATT_RECVTIME: MIMEPROPID = MIMEPROPID(53i32);
36383pub const PID_ATT_RENDERED: MIMEPROPID = MIMEPROPID(51i32);
36384pub const PID_ATT_SENTTIME: MIMEPROPID = MIMEPROPID(52i32);
36385pub const PID_ATT_SERVER: MIMEPROPID = MIMEPROPID(62i32);
36386pub const PID_ATT_STOREFOLDERID: MIMEPROPID = MIMEPROPID(68i32);
36387pub const PID_ATT_STOREMSGID: MIMEPROPID = MIMEPROPID(65i32);
36388pub const PID_ATT_SUBTYPE: MIMEPROPID = MIMEPROPID(48i32);
36389pub const PID_ATT_UIDL: MIMEPROPID = MIMEPROPID(64i32);
36390pub const PID_ATT_UNCACHEDSIZE: MIMEPROPID = MIMEPROPID(70i32);
36391pub const PID_ATT_USERNAME: MIMEPROPID = MIMEPROPID(66i32);
36392pub const PID_BASE: u32 = 2u32;
36393pub const PID_HDR_APPARTO: MIMEPROPID = MIMEPROPID(11i32);
36394pub const PID_HDR_APPROVED: MIMEPROPID = MIMEPROPID(34i32);
36395pub const PID_HDR_ARTICLEID: MIMEPROPID = MIMEPROPID(60i32);
36396pub const PID_HDR_BCC: MIMEPROPID = MIMEPROPID(16i32);
36397pub const PID_HDR_CC: MIMEPROPID = MIMEPROPID(29i32);
36398pub const PID_HDR_CNTBASE: MIMEPROPID = MIMEPROPID(23i32);
36399pub const PID_HDR_CNTDESC: MIMEPROPID = MIMEPROPID(21i32);
36400pub const PID_HDR_CNTDISP: MIMEPROPID = MIMEPROPID(22i32);
36401pub const PID_HDR_CNTID: MIMEPROPID = MIMEPROPID(20i32);
36402pub const PID_HDR_CNTLOC: MIMEPROPID = MIMEPROPID(24i32);
36403pub const PID_HDR_CNTTYPE: MIMEPROPID = MIMEPROPID(18i32);
36404pub const PID_HDR_CNTXFER: MIMEPROPID = MIMEPROPID(19i32);
36405pub const PID_HDR_COMMENT: MIMEPROPID = MIMEPROPID(55i32);
36406pub const PID_HDR_CONTROL: MIMEPROPID = MIMEPROPID(30i32);
36407pub const PID_HDR_DATE: MIMEPROPID = MIMEPROPID(12i32);
36408pub const PID_HDR_DISTRIB: MIMEPROPID = MIMEPROPID(31i32);
36409pub const PID_HDR_ENCODING: MIMEPROPID = MIMEPROPID(56i32);
36410pub const PID_HDR_ENCRYPTED: MIMEPROPID = MIMEPROPID(57i32);
36411pub const PID_HDR_EXPIRES: MIMEPROPID = MIMEPROPID(28i32);
36412pub const PID_HDR_FOLLOWUPTO: MIMEPROPID = MIMEPROPID(27i32);
36413pub const PID_HDR_FROM: MIMEPROPID = MIMEPROPID(6i32);
36414pub const PID_HDR_KEYWORDS: MIMEPROPID = MIMEPROPID(32i32);
36415pub const PID_HDR_LINES: MIMEPROPID = MIMEPROPID(35i32);
36416pub const PID_HDR_MESSAGEID: MIMEPROPID = MIMEPROPID(7i32);
36417pub const PID_HDR_MIMEVER: MIMEPROPID = MIMEPROPID(17i32);
36418pub const PID_HDR_NEWSGROUP: MIMEPROPID = MIMEPROPID(2i32);
36419pub const PID_HDR_NEWSGROUPS: MIMEPROPID = MIMEPROPID(3i32);
36420pub const PID_HDR_OFFSETS: MIMEPROPID = MIMEPROPID(58i32);
36421pub const PID_HDR_ORG: MIMEPROPID = MIMEPROPID(37i32);
36422pub const PID_HDR_PATH: MIMEPROPID = MIMEPROPID(26i32);
36423pub const PID_HDR_RECEIVED: MIMEPROPID = MIMEPROPID(13i32);
36424pub const PID_HDR_REFS: MIMEPROPID = MIMEPROPID(4i32);
36425pub const PID_HDR_REPLYTO: MIMEPROPID = MIMEPROPID(14i32);
36426pub const PID_HDR_RETRCPTTO: MIMEPROPID = MIMEPROPID(10i32);
36427pub const PID_HDR_RETURNPATH: MIMEPROPID = MIMEPROPID(8i32);
36428pub const PID_HDR_RR: MIMEPROPID = MIMEPROPID(9i32);
36429pub const PID_HDR_SENDER: MIMEPROPID = MIMEPROPID(61i32);
36430pub const PID_HDR_SUBJECT: MIMEPROPID = MIMEPROPID(5i32);
36431pub const PID_HDR_SUMMARY: MIMEPROPID = MIMEPROPID(33i32);
36432pub const PID_HDR_TO: MIMEPROPID = MIMEPROPID(25i32);
36433pub const PID_HDR_XMAILER: MIMEPROPID = MIMEPROPID(15i32);
36434pub const PID_HDR_XMSPRI: MIMEPROPID = MIMEPROPID(40i32);
36435pub const PID_HDR_XNEWSRDR: MIMEPROPID = MIMEPROPID(38i32);
36436pub const PID_HDR_XPRI: MIMEPROPID = MIMEPROPID(39i32);
36437pub const PID_HDR_XREF: MIMEPROPID = MIMEPROPID(36i32);
36438pub const PID_HDR_XUNSENT: MIMEPROPID = MIMEPROPID(59i32);
36439pub const PID_LAST: MIMEPROPID = MIMEPROPID(73i32);
36440pub const PID_PAR_BOUNDARY: MIMEPROPID = MIMEPROPID(42i32);
36441pub const PID_PAR_CHARSET: MIMEPROPID = MIMEPROPID(43i32);
36442pub const PID_PAR_FILENAME: MIMEPROPID = MIMEPROPID(41i32);
36443pub const PID_PAR_NAME: MIMEPROPID = MIMEPROPID(44i32);
36444pub const PIM_CHARSET: PROPINFOMASK = PROPINFOMASK(1i32);
36445pub const PIM_ENCODINGTYPE: PROPINFOMASK = PROPINFOMASK(2i32);
36446pub const PIM_FLAGS: PROPINFOMASK = PROPINFOMASK(8i32);
36447pub const PIM_PROPID: PROPINFOMASK = PROPINFOMASK(16i32);
36448pub const PIM_ROWNUMBER: PROPINFOMASK = PROPINFOMASK(4i32);
36449pub const PIM_VALUES: PROPINFOMASK = PROPINFOMASK(32i32);
36450pub const PIM_VTCURRENT: PROPINFOMASK = PROPINFOMASK(128i32);
36451pub const PIM_VTDEFAULT: PROPINFOMASK = PROPINFOMASK(64i32);
36452pub const PMS_HTML: u32 = 1u32;
36453pub const PMS_TEXT: u32 = 2u32;
36454pub type PREPROCESSMESSAGE = Option<
36455 unsafe extern "system" fn(
36456 lpvsession: *mut core::ffi::c_void,
36457 lpmessage: windows_core::Ref<IMessage>,
36458 lpadrbook: windows_core::Ref<IAddrBook>,
36459 lpfolder: windows_core::Ref<IMAPIFolder>,
36460 allocatebuffer: LPALLOCATEBUFFER,
36461 allocatemore: LPALLOCATEMORE,
36462 freebuffer: LPFREEBUFFER,
36463 lpcoutbound: *mut u32,
36464 lpppmessage: *mut *mut Option<IMessage>,
36465 lppreciplist: *mut *mut ADRLIST,
36466 ) -> windows_core::HRESULT,
36467>;
36468pub const PRIHIGHEST: u32 = 32767u32;
36469pub const PRILOWEST: i32 = -32768i32;
36470pub const PRIO_NONURGENT: u32 = 4294967295u32;
36471pub const PRIO_NORMAL: u32 = 0u32;
36472pub const PRIO_URGENT: u32 = 1u32;
36473pub const PRIUSER: u32 = 0u32;
36474pub const PRIV_DL_ALLOW_OOF: u32 = 8u32;
36475pub const PRIV_DL_HIDE_MEMBERS: u32 = 1u32;
36476pub const PRIV_DL_REPORT_TO_ORIG: u32 = 2u32;
36477pub const PRIV_DL_REPORT_TO_OWNER: u32 = 4u32;
36478pub const PRMD_PAD: u32 = 3u32;
36479pub const PRMD_PAD_FOR_ACTIONS: u32 = 2u32;
36480pub const PROCESS_XP_HEADER_CACHE: u32 = 131072u32;
36481pub const PROFILE_DELEGATE: u32 = 2u32;
36482pub const PROFILE_PRIMARY_USER: u32 = 1u32;
36483pub const PROFILE_PUBLIC_STORE: u32 = 3u32;
36484pub const PROFILE_SUBSCRIPTION: u32 = 4u32;
36485pub const PROFILE_VERSION: u32 = 1281u32;
36486pub const PROPATTR_MANDATORY: u32 = 1u32;
36487pub const PROPATTR_NOT_PRESENT: u32 = 8u32;
36488pub const PROPATTR_READABLE: u32 = 2u32;
36489pub const PROPATTR_WRITEABLE: u32 = 4u32;
36490#[repr(transparent)]
36491#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
36492pub struct PROPINFOMASK(pub i32);
36493pub const PROP_ACCT_DELIVERY_FOLDER: u32 = 1638658u32;
36494pub const PROP_ACCT_DELIVERY_STORE: u32 = 1573122u32;
36495pub const PROP_ACCT_ID: u32 = 65539u32;
36496pub const PROP_ACCT_IS_EXCH: u32 = 1310723u32;
36497pub const PROP_ACCT_MINI_UID: u32 = 196611u32;
36498pub const PROP_ACCT_NAME: u32 = 131103u32;
36499pub const PROP_ACCT_PREFERENCES_UID: u32 = 2228482u32;
36500pub const PROP_ACCT_SEND_STAMP: u32 = 917535u32;
36501pub const PROP_ACCT_SENTITEMS_EID: u32 = 2097410u32;
36502pub const PROP_ACCT_STAMP: u32 = 851999u32;
36503pub const PROP_ACCT_USER_DISPLAY_NAME: u32 = 720927u32;
36504pub const PROP_ACCT_USER_EMAIL_ADDR: u32 = 786463u32;
36505pub const PROP_ID_INVALID: u32 = 65535u32;
36506pub const PROP_ID_NULL: u32 = 0u32;
36507pub const PROP_ID_SECURE_MAX: u32 = 26623u32;
36508pub const PROP_ID_SECURE_MIN: u32 = 26608u32;
36509pub const PROP_INET_PASSWORD: u32 = 16908319u32;
36510pub const PROP_INET_PORT: u32 = 17039363u32;
36511pub const PROP_INET_SERVER: u32 = 16777247u32;
36512pub const PROP_INET_SSL: u32 = 17104899u32;
36513pub const PROP_INET_USER: u32 = 16842783u32;
36514pub const PROP_INET_USE_SPA: u32 = 17301507u32;
36515pub const PROP_MAPI_EMSMDB_UID: u32 = 537460994u32;
36516pub const PROP_MAPI_IDENTITY_ENTRYID: u32 = 537002242u32;
36517pub const PROP_MAPI_TRANSPORT_FLAGS: u32 = 537919746u32;
36518pub const PROP_POP_LEAVE_ON_SERVER: u32 = 268435459u32;
36519pub const PROP_SMTP_AUTH_METHOD: u32 = 34078723u32;
36520pub const PROP_SMTP_PASSWORD: u32 = 33882143u32;
36521pub const PROP_SMTP_PORT: u32 = 33619971u32;
36522pub const PROP_SMTP_SECURE_CONNECTION: u32 = 34209795u32;
36523pub const PROP_SMTP_SERVER: u32 = 33554463u32;
36524pub const PROP_SMTP_SSL: u32 = 33685507u32;
36525pub const PROP_SMTP_USER: u32 = 33816607u32;
36526pub const PROP_SMTP_USE_AUTH: u32 = 33751043u32;
36527pub const PROP_SMTP_USE_SPA: u32 = 34013187u32;
36528pub const PROP_TYPE_MASK: u32 = 65535u32;
36529pub const PR_7BIT_DISPLAY_NAME: u32 = 973013022u32;
36530pub const PR_ABSTRACT: u32 = 1071251486u32;
36531pub const PR_ABSTRACT_A: u32 = 1071251486u32;
36532pub const PR_ABSTRACT_W: u32 = 1071251487u32;
36533pub const PR_AB_DEFAULT_DIR: u32 = 1023803650u32;
36534pub const PR_AB_DEFAULT_PAB: u32 = 1023869186u32;
36535pub const PR_AB_PROVIDERS: u32 = 1023475970u32;
36536pub const PR_AB_PROVIDER_ID: u32 = 907346178u32;
36537pub const PR_AB_SEARCH_PATH: u32 = 1023742210u32;
36538pub const PR_AB_SEARCH_PATH_UPDATE: u32 = 1024524546u32;
36539pub const PR_ACCESS: u32 = 267649027u32;
36540pub const PR_ACCESS_LEVEL: u32 = 267845635u32;
36541pub const PR_ACCOUNT: u32 = 973078558u32;
36542pub const PR_ACCOUNT_A: u32 = 973078558u32;
36543pub const PR_ACCOUNT_W: u32 = 973078559u32;
36544pub const PR_ACKNOWLEDGEMENT_MODE: u32 = 65539u32;
36545pub const PR_ACL_DATA: u32 = 1071644930u32;
36546pub const PR_ACL_TABLE: u32 = 1071644685u32;
36547pub const PR_ACTIVE_USER_ENTRYID: u32 = 1716650242u32;
36548pub const PR_ADDRBOOK_FOR_LOCAL_SITE_ENTRYID: u32 = 1713766658u32;
36549pub const PR_ADDRESS_BOOK_DISPLAY_NAME: u32 = 1072168990u32;
36550pub const PR_ADDRESS_BOOK_ENTRYID: u32 = 1715142914u32;
36551pub const PR_ADDRTYPE: u32 = 805437470u32;
36552pub const PR_ADDRTYPE_A: u32 = 805437470u32;
36553pub const PR_ADDRTYPE_W: u32 = 805437471u32;
36554pub const PR_ADDR_CC: u32 = 244842526u32;
36555pub const PR_ADDR_CC_A: u32 = 244842526u32;
36556pub const PR_ADDR_CC_W: u32 = 244842527u32;
36557pub const PR_ADDR_TO: u32 = 244776990u32;
36558pub const PR_ADMIN_SECURITY_DESCRIPTOR: u32 = 1025573122u32;
36559pub const PR_ADMIN_SECURITY_DESCRIPTOR_AS_XML: u32 = 241893406u32;
36560pub const PR_ADMIN_SECURITY_DESCRIPTOR_AS_XML_A: u32 = 241893406u32;
36561pub const PR_ADMIN_SECURITY_DESCRIPTOR_AS_XML_W: u32 = 241893407u32;
36562pub const PR_ALTERNATE_RECIPIENT: u32 = 973144322u32;
36563pub const PR_ALTERNATE_RECIPIENT_ALLOWED: u32 = 131083u32;
36564pub const PR_ANR: u32 = 906756126u32;
36565pub const PR_ANR_A: u32 = 906756126u32;
36566pub const PR_ANR_W: u32 = 906756127u32;
36567pub const PR_ANTIVIRUS_SCAN_INFO: u32 = 243793950u32;
36568pub const PR_ANTIVIRUS_SCAN_STATUS: u32 = 243728387u32;
36569pub const PR_ANTIVIRUS_VENDOR: u32 = 243597342u32;
36570pub const PR_ANTIVIRUS_VERSION: u32 = 243662851u32;
36571pub const PR_ARCHIVE_DATE: u32 = 807338048u32;
36572pub const PR_ARCHIVE_PERIOD: u32 = 807272451u32;
36573pub const PR_ARCHIVE_TAG: u32 = 806879490u32;
36574pub const PR_ARRIVAL_TIME: u32 = 1717502016u32;
36575pub const PR_ASSISTANT: u32 = 976224286u32;
36576pub const PR_ASSISTANT_A: u32 = 976224286u32;
36577pub const PR_ASSISTANT_TELEPHONE_NUMBER: u32 = 976093214u32;
36578pub const PR_ASSISTANT_TELEPHONE_NUMBER_A: u32 = 976093214u32;
36579pub const PR_ASSISTANT_TELEPHONE_NUMBER_W: u32 = 976093215u32;
36580pub const PR_ASSISTANT_W: u32 = 976224287u32;
36581pub const PR_ASSOC_CONTENT_COUNT: u32 = 907476995u32;
36582pub const PR_ASSOC_MESSAGE_SIZE: u32 = 1723072515u32;
36583pub const PR_ASSOC_MESSAGE_SIZE_EXTENDED: u32 = 1723072532u32;
36584pub const PR_ASSOC_MSG_W_ATTACH_COUNT: u32 = 1722679299u32;
36585pub const PR_ATTACHMENT_X400_PARAMETERS: u32 = 922747138u32;
36586pub const PR_ATTACH_ADDITIONAL_INFO: u32 = 923730178u32;
36587pub const PR_ATTACH_CONTENT_ID: u32 = 923926558u32;
36588pub const PR_ATTACH_CONTENT_ID_A: u32 = 923926558u32;
36589pub const PR_ATTACH_CONTENT_ID_W: u32 = 923926559u32;
36590pub const PR_ATTACH_DATA_BIN: u32 = 922812674u32;
36591pub const PR_ATTACH_DATA_OBJ: u32 = 922812429u32;
36592pub const PR_ATTACH_ENCODING: u32 = 922878210u32;
36593pub const PR_ATTACH_EXTENSION: u32 = 922943518u32;
36594pub const PR_ATTACH_EXTENSION_A: u32 = 922943518u32;
36595pub const PR_ATTACH_EXTENSION_W: u32 = 922943519u32;
36596pub const PR_ATTACH_FILENAME: u32 = 923009054u32;
36597pub const PR_ATTACH_FILENAME_A: u32 = 923009054u32;
36598pub const PR_ATTACH_FILENAME_W: u32 = 923009055u32;
36599pub const PR_ATTACH_LONG_FILENAME: u32 = 923205662u32;
36600pub const PR_ATTACH_LONG_FILENAME_A: u32 = 923205662u32;
36601pub const PR_ATTACH_LONG_FILENAME_W: u32 = 923205663u32;
36602pub const PR_ATTACH_LONG_PATHNAME: u32 = 923598878u32;
36603pub const PR_ATTACH_LONG_PATHNAME_A: u32 = 923598878u32;
36604pub const PR_ATTACH_LONG_PATHNAME_W: u32 = 923598879u32;
36605pub const PR_ATTACH_METHOD: u32 = 923074563u32;
36606pub const PR_ATTACH_MIME_TAG: u32 = 923664414u32;
36607pub const PR_ATTACH_MIME_TAG_A: u32 = 923664414u32;
36608pub const PR_ATTACH_MIME_TAG_W: u32 = 923664415u32;
36609pub const PR_ATTACH_NUM: u32 = 237043715u32;
36610pub const PR_ATTACH_ON_ASSOC_MSG_COUNT: u32 = 1722941443u32;
36611pub const PR_ATTACH_ON_NORMAL_MSG_COUNT: u32 = 1722875907u32;
36612pub const PR_ATTACH_PATHNAME: u32 = 923271198u32;
36613pub const PR_ATTACH_PATHNAME_A: u32 = 923271198u32;
36614pub const PR_ATTACH_PATHNAME_W: u32 = 923271199u32;
36615pub const PR_ATTACH_RENDERING: u32 = 923336962u32;
36616pub const PR_ATTACH_SIZE: u32 = 236978179u32;
36617pub const PR_ATTACH_TAG: u32 = 923402498u32;
36618pub const PR_ATTACH_TRANSPORT_NAME: u32 = 923533342u32;
36619pub const PR_ATTACH_TRANSPORT_NAME_A: u32 = 923533342u32;
36620pub const PR_ATTACH_TRANSPORT_NAME_W: u32 = 923533343u32;
36621pub const PR_ATTR_HIDDEN: u32 = 284426251u32;
36622pub const PR_ATTR_READONLY: u32 = 284557323u32;
36623pub const PR_ATTR_SYSTEM: u32 = 284491787u32;
36624pub const PR_AUTHORIZING_USERS: u32 = 196866u32;
36625pub const PR_AUTO_ADD_NEW_SUBS: u32 = 1709506571u32;
36626pub const PR_AUTO_FORWARDED: u32 = 327691u32;
36627pub const PR_AUTO_FORWARD_COMMENT: u32 = 262174u32;
36628pub const PR_AUTO_FORWARD_COMMENT_A: u32 = 262174u32;
36629pub const PR_AUTO_FORWARD_COMMENT_W: u32 = 262175u32;
36630pub const PR_AUTO_RESET: u32 = 1728843848u32;
36631pub const PR_AUTO_RESPONSE_SUPPRESS: u32 = 1071579139u32;
36632pub const PR_BEEPER_TELEPHONE_NUMBER: u32 = 975241246u32;
36633pub const PR_BEEPER_TELEPHONE_NUMBER_A: u32 = 975241246u32;
36634pub const PR_BEEPER_TELEPHONE_NUMBER_W: u32 = 975241247u32;
36635pub const PR_BILATERAL_INFO: u32 = 1071382786u32;
36636pub const PR_BIRTHDAY: u32 = 977403968u32;
36637pub const PR_BLOCK_STATUS: u32 = 278265859u32;
36638pub const PR_BODY: u32 = 268435486u32;
36639pub const PR_BODY_A: u32 = 268435486u32;
36640pub const PR_BODY_CRC: u32 = 236716035u32;
36641pub const PR_BODY_W: u32 = 268435487u32;
36642pub const PR_BUSINESS2_TELEPHONE_NUMBER: u32 = 974848030u32;
36643pub const PR_BUSINESS2_TELEPHONE_NUMBER_A: u32 = 974848030u32;
36644pub const PR_BUSINESS2_TELEPHONE_NUMBER_W: u32 = 974848031u32;
36645pub const PR_BUSINESS_ADDRESS_CITY: u32 = 975634462u32;
36646pub const PR_BUSINESS_ADDRESS_CITY_A: u32 = 975634462u32;
36647pub const PR_BUSINESS_ADDRESS_CITY_W: u32 = 975634463u32;
36648pub const PR_BUSINESS_ADDRESS_COUNTRY: u32 = 975568926u32;
36649pub const PR_BUSINESS_ADDRESS_COUNTRY_A: u32 = 975568926u32;
36650pub const PR_BUSINESS_ADDRESS_COUNTRY_W: u32 = 975568927u32;
36651pub const PR_BUSINESS_ADDRESS_POSTAL_CODE: u32 = 975831070u32;
36652pub const PR_BUSINESS_ADDRESS_POSTAL_CODE_A: u32 = 975831070u32;
36653pub const PR_BUSINESS_ADDRESS_POSTAL_CODE_W: u32 = 975831071u32;
36654pub const PR_BUSINESS_ADDRESS_POST_OFFICE_BOX: u32 = 975896606u32;
36655pub const PR_BUSINESS_ADDRESS_POST_OFFICE_BOX_A: u32 = 975896606u32;
36656pub const PR_BUSINESS_ADDRESS_POST_OFFICE_BOX_W: u32 = 975896607u32;
36657pub const PR_BUSINESS_ADDRESS_STATE_OR_PROVINCE: u32 = 975699998u32;
36658pub const PR_BUSINESS_ADDRESS_STATE_OR_PROVINCE_A: u32 = 975699998u32;
36659pub const PR_BUSINESS_ADDRESS_STATE_OR_PROVINCE_W: u32 = 975699999u32;
36660pub const PR_BUSINESS_ADDRESS_STREET: u32 = 975765534u32;
36661pub const PR_BUSINESS_ADDRESS_STREET_A: u32 = 975765534u32;
36662pub const PR_BUSINESS_ADDRESS_STREET_W: u32 = 975765535u32;
36663pub const PR_BUSINESS_FAX_NUMBER: u32 = 975437854u32;
36664pub const PR_BUSINESS_FAX_NUMBER_A: u32 = 975437854u32;
36665pub const PR_BUSINESS_FAX_NUMBER_W: u32 = 975437855u32;
36666pub const PR_BUSINESS_HOME_PAGE: u32 = 978386974u32;
36667pub const PR_BUSINESS_HOME_PAGE_A: u32 = 978386974u32;
36668pub const PR_BUSINESS_HOME_PAGE_W: u32 = 978386975u32;
36669pub const PR_BUSINESS_TELEPHONE_NUMBER: u32 = 973602846u32;
36670pub const PR_BUSINESS_TELEPHONE_NUMBER_A: u32 = 973602846u32;
36671pub const PR_BUSINESS_TELEPHONE_NUMBER_W: u32 = 973602847u32;
36672pub const PR_CACHED_COLUMN_COUNT: u32 = 1722548227u32;
36673pub const PR_CALLBACK_TELEPHONE_NUMBER: u32 = 973209630u32;
36674pub const PR_CALLBACK_TELEPHONE_NUMBER_A: u32 = 973209630u32;
36675pub const PR_CALLBACK_TELEPHONE_NUMBER_W: u32 = 973209631u32;
36676pub const PR_CAR_TELEPHONE_NUMBER: u32 = 975044638u32;
36677pub const PR_CAR_TELEPHONE_NUMBER_A: u32 = 975044638u32;
36678pub const PR_CAR_TELEPHONE_NUMBER_W: u32 = 975044639u32;
36679pub const PR_CATALOG: u32 = 240845058u32;
36680pub const PR_CATEG_COUNT: u32 = 1722482691u32;
36681pub const PR_CELLULAR_TELEPHONE_NUMBER: u32 = 974913566u32;
36682pub const PR_CELLULAR_TELEPHONE_NUMBER_A: u32 = 974913566u32;
36683pub const PR_CELLULAR_TELEPHONE_NUMBER_W: u32 = 974913567u32;
36684pub const PR_CHANGE_ADVISOR: u32 = 1714683917u32;
36685pub const PR_CHANGE_KEY: u32 = 1709310210u32;
36686pub const PR_CHANGE_NOTIFICATION_GUID: u32 = 1714880584u32;
36687pub const PR_CHILDRENS_NAMES: u32 = 978849822u32;
36688pub const PR_CHILDRENS_NAMES_A: u32 = 978849822u32;
36689pub const PR_CHILDRENS_NAMES_W: u32 = 978849823u32;
36690pub const PR_CI_NOTIFICATION_ENABLED: u32 = 240975883u32;
36691pub const PR_CI_SEARCH_ENABLED: u32 = 240910347u32;
36692pub const PR_CLIENT_ACTIONS: u32 = 1715798274u32;
36693pub const PR_CLIENT_SUBMIT_TIME: u32 = 3735616u32;
36694pub const PR_CODE_PAGE_ID: u32 = 1724055555u32;
36695pub const PR_COLLECTOR: u32 = 1714290701u32;
36696pub const PR_COMMENT: u32 = 805568542u32;
36697pub const PR_COMMENT_A: u32 = 805568542u32;
36698pub const PR_COMMENT_W: u32 = 805568543u32;
36699pub const PR_COMMON_VIEWS_ENTRYID: u32 = 904265986u32;
36700pub const PR_COMPANY_MAIN_PHONE_NUMBER: u32 = 978780190u32;
36701pub const PR_COMPANY_MAIN_PHONE_NUMBER_A: u32 = 978780190u32;
36702pub const PR_COMPANY_MAIN_PHONE_NUMBER_W: u32 = 978780191u32;
36703pub const PR_COMPANY_NAME: u32 = 974520350u32;
36704pub const PR_COMPANY_NAME_A: u32 = 974520350u32;
36705pub const PR_COMPANY_NAME_W: u32 = 974520351u32;
36706pub const PR_COMPUTER_NETWORK_NAME: u32 = 977862686u32;
36707pub const PR_COMPUTER_NETWORK_NAME_A: u32 = 977862686u32;
36708pub const PR_COMPUTER_NETWORK_NAME_W: u32 = 977862687u32;
36709pub const PR_CONFLICT_ENTRYID: u32 = 1072693506u32;
36710pub const PR_CONTACT_ADDRTYPES: u32 = 978587678u32;
36711pub const PR_CONTACT_ADDRTYPES_A: u32 = 978587678u32;
36712pub const PR_CONTACT_ADDRTYPES_W: u32 = 978587679u32;
36713pub const PR_CONTACT_COUNT: u32 = 1723269123u32;
36714pub const PR_CONTACT_DEFAULT_ADDRESS_INDEX: u32 = 978649091u32;
36715pub const PR_CONTACT_EMAIL_ADDRESSES: u32 = 978718750u32;
36716pub const PR_CONTACT_EMAIL_ADDRESSES_A: u32 = 978718750u32;
36717pub const PR_CONTACT_EMAIL_ADDRESSES_W: u32 = 978718751u32;
36718pub const PR_CONTACT_ENTRYIDS: u32 = 978522370u32;
36719pub const PR_CONTACT_VERSION: u32 = 978452552u32;
36720pub const PR_CONTAINER_CLASS: u32 = 907214878u32;
36721pub const PR_CONTAINER_CLASS_A: u32 = 907214878u32;
36722pub const PR_CONTAINER_CLASS_W: u32 = 907214879u32;
36723pub const PR_CONTAINER_CONTENTS: u32 = 906952717u32;
36724pub const PR_CONTAINER_FLAGS: u32 = 905969667u32;
36725pub const PR_CONTAINER_HIERARCHY: u32 = 906887181u32;
36726pub const PR_CONTAINER_MODIFY_VERSION: u32 = 907280404u32;
36727pub const PR_CONTENTS_SORT_ORDER: u32 = 906825731u32;
36728pub const PR_CONTENTS_SYNCHRONIZER: u32 = 1714225165u32;
36729pub const PR_CONTENT_CONFIDENTIALITY_ALGORITHM_ID: u32 = 393474u32;
36730pub const PR_CONTENT_CORRELATOR: u32 = 459010u32;
36731pub const PR_CONTENT_COUNT: u32 = 906100739u32;
36732pub const PR_CONTENT_IDENTIFIER: u32 = 524318u32;
36733pub const PR_CONTENT_IDENTIFIER_A: u32 = 524318u32;
36734pub const PR_CONTENT_IDENTIFIER_W: u32 = 524319u32;
36735pub const PR_CONTENT_INTEGRITY_CHECK: u32 = 201326850u32;
36736pub const PR_CONTENT_LENGTH: u32 = 589827u32;
36737pub const PR_CONTENT_RETURN_REQUESTED: u32 = 655371u32;
36738pub const PR_CONTENT_SEARCH_KEY: u32 = 1717960962u32;
36739pub const PR_CONTENT_UNREAD: u32 = 906166275u32;
36740pub const PR_CONTROL_FLAGS: u32 = 1056964611u32;
36741pub const PR_CONTROL_ID: u32 = 1057423618u32;
36742pub const PR_CONTROL_STRUCTURE: u32 = 1057030402u32;
36743pub const PR_CONTROL_TYPE: u32 = 1057095683u32;
36744pub const PR_CONVERSATION_ID: u32 = 806551810u32;
36745pub const PR_CONVERSATION_INDEX: u32 = 7405826u32;
36746pub const PR_CONVERSATION_KEY: u32 = 721154u32;
36747pub const PR_CONVERSATION_TOPIC: u32 = 7340062u32;
36748pub const PR_CONVERSATION_TOPIC_A: u32 = 7340062u32;
36749pub const PR_CONVERSATION_TOPIC_W: u32 = 7340063u32;
36750pub const PR_CONVERSION_EITS: u32 = 786690u32;
36751pub const PR_CONVERSION_PROHIBITED: u32 = 973275147u32;
36752pub const PR_CONVERSION_WITH_LOSS_PROHIBITED: u32 = 851979u32;
36753pub const PR_CONVERTED_EITS: u32 = 917762u32;
36754pub const PR_CORRELATE: u32 = 235667467u32;
36755pub const PR_CORRELATE_MTSID: u32 = 235733250u32;
36756pub const PR_COUNTRY: u32 = 975568926u32;
36757pub const PR_COUNTRY_A: u32 = 975568926u32;
36758pub const PR_COUNTRY_W: u32 = 975568927u32;
36759pub const PR_CREATE_TEMPLATES: u32 = 906231821u32;
36760pub const PR_CREATION_TIME: u32 = 805765184u32;
36761pub const PR_CREATION_VERSION: u32 = 236519444u32;
36762pub const PR_CREATOR_ENTRYID: u32 = 1073283330u32;
36763pub const PR_CREATOR_NAME: u32 = 1073217566u32;
36764pub const PR_CREATOR_SID: u32 = 240648450u32;
36765pub const PR_CREATOR_SID_AS_XML: u32 = 241958942u32;
36766pub const PR_CURRENT_VERSION: u32 = 234881044u32;
36767pub const PR_CUSTOMER_ID: u32 = 977928222u32;
36768pub const PR_CUSTOMER_ID_A: u32 = 977928222u32;
36769pub const PR_CUSTOMER_ID_W: u32 = 977928223u32;
36770pub const PR_DAM_BACK_PATCHED: u32 = 1715929099u32;
36771pub const PR_DAM_ORIGINAL_ENTRYID: u32 = 1715863810u32;
36772pub const PR_DAV_TRANSFER_SECURITY_DESCRIPTOR: u32 = 243532034u32;
36773pub const PR_DEFAULT_PROFILE: u32 = 1023672331u32;
36774pub const PR_DEFAULT_STORE: u32 = 872415243u32;
36775pub const PR_DEFAULT_VIEW_ENTRYID: u32 = 907411714u32;
36776pub const PR_DEFERRED_DELIVERY_TIME: u32 = 983104u32;
36777pub const PR_DEFERRED_SEND_NUMBER: u32 = 1072365571u32;
36778pub const PR_DEFERRED_SEND_TIME: u32 = 1072627776u32;
36779pub const PR_DEFERRED_SEND_UNITS: u32 = 1072431107u32;
36780pub const PR_DEF_CREATE_DL: u32 = 907084034u32;
36781pub const PR_DEF_CREATE_MAILUSER: u32 = 907149570u32;
36782pub const PR_DELEGATED_BY_RULE: u32 = 1071841291u32;
36783pub const PR_DELEGATION: u32 = 8257794u32;
36784pub const PR_DELETED_ASSOC_MESSAGE_SIZE_EXTENDED: u32 = 1721565204u32;
36785pub const PR_DELETED_ASSOC_MSG_COUNT: u32 = 1715666947u32;
36786pub const PR_DELETED_COUNT_TOTAL: u32 = 1728774147u32;
36787pub const PR_DELETED_FOLDER_COUNT: u32 = 1715535875u32;
36788pub const PR_DELETED_MESSAGE_SIZE_EXTENDED: u32 = 1721434132u32;
36789pub const PR_DELETED_MSG_COUNT: u32 = 1715470339u32;
36790pub const PR_DELETED_NORMAL_MESSAGE_SIZE_EXTENDED: u32 = 1721499668u32;
36791pub const PR_DELETED_ON: u32 = 1720647744u32;
36792pub const PR_DELETE_AFTER_SUBMIT: u32 = 234946571u32;
36793pub const PR_DELIVERY_POINT: u32 = 201785347u32;
36794pub const PR_DELIVER_TIME: u32 = 1048640u32;
36795pub const PR_DELTAX: u32 = 1057161219u32;
36796pub const PR_DELTAY: u32 = 1057226755u32;
36797pub const PR_DEPARTMENT_NAME: u32 = 974651422u32;
36798pub const PR_DEPARTMENT_NAME_A: u32 = 974651422u32;
36799pub const PR_DEPARTMENT_NAME_W: u32 = 974651423u32;
36800pub const PR_DEPTH: u32 = 805634051u32;
36801pub const PR_DESIGN_IN_PROGRESS: u32 = 1071906827u32;
36802pub const PR_DETAILS_TABLE: u32 = 906297357u32;
36803pub const PR_DISABLE_FULL_FIDELITY: u32 = 284295179u32;
36804pub const PR_DISABLE_PERUSER_READ: u32 = 1724186635u32;
36805pub const PR_DISABLE_WINSOCK: u32 = 1712848899u32;
36806pub const PR_DISCARD_REASON: u32 = 1114115u32;
36807pub const PR_DISCLOSE_RECIPIENTS: u32 = 973340683u32;
36808pub const PR_DISCLOSURE_OF_RECIPIENTS: u32 = 1179659u32;
36809pub const PR_DISCRETE_VALUES: u32 = 235798539u32;
36810pub const PR_DISC_VAL: u32 = 4849675u32;
36811pub const PR_DISPLAY_BCC: u32 = 235012126u32;
36812pub const PR_DISPLAY_BCC_A: u32 = 235012126u32;
36813pub const PR_DISPLAY_BCC_W: u32 = 235012127u32;
36814pub const PR_DISPLAY_CC: u32 = 235077662u32;
36815pub const PR_DISPLAY_CC_A: u32 = 235077662u32;
36816pub const PR_DISPLAY_CC_W: u32 = 235077663u32;
36817pub const PR_DISPLAY_NAME: u32 = 805371934u32;
36818pub const PR_DISPLAY_NAME_A: u32 = 805371934u32;
36819pub const PR_DISPLAY_NAME_PREFIX: u32 = 977600542u32;
36820pub const PR_DISPLAY_NAME_PREFIX_A: u32 = 977600542u32;
36821pub const PR_DISPLAY_NAME_PREFIX_W: u32 = 977600543u32;
36822pub const PR_DISPLAY_NAME_W: u32 = 805371935u32;
36823pub const PR_DISPLAY_TO: u32 = 235143198u32;
36824pub const PR_DISPLAY_TO_A: u32 = 235143198u32;
36825pub const PR_DISPLAY_TO_W: u32 = 235143199u32;
36826pub const PR_DISPLAY_TYPE: u32 = 956301315u32;
36827pub const PR_DISPLAY_TYPE_EX: u32 = 956628995u32;
36828pub const PR_DL_EXPANSION_HISTORY: u32 = 1245442u32;
36829pub const PR_DL_EXPANSION_PROHIBITED: u32 = 1310731u32;
36830pub const PR_DL_REPORT_FLAGS: u32 = 1071316995u32;
36831pub const PR_EFORMS_FOR_LOCALE_ENTRYID: u32 = 1713635586u32;
36832pub const PR_EFORMS_LOCALE_ID: u32 = 1072234499u32;
36833pub const PR_EFORMS_REGISTRY_ENTRYID: u32 = 1713438978u32;
36834pub const PR_EMAIL_ADDRESS: u32 = 805503006u32;
36835pub const PR_EMAIL_ADDRESS_A: u32 = 805503006u32;
36836pub const PR_EMAIL_ADDRESS_W: u32 = 805503007u32;
36837pub const PR_EMS_AB_ACCESS_CATEGORY: u32 = 2151940099u32;
36838pub const PR_EMS_AB_ACTIVATION_SCHEDULE: u32 = 2152005890u32;
36839pub const PR_EMS_AB_ACTIVATION_STYLE: u32 = 2152071171u32;
36840pub const PR_EMS_AB_ADC_GLOBAL_NAMES: u32 = 2356154398u32;
36841pub const PR_EMS_AB_ADC_GLOBAL_NAMES_A: u32 = 2356154398u32;
36842pub const PR_EMS_AB_ADC_GLOBAL_NAMES_W: u32 = 2356154399u32;
36843pub const PR_EMS_AB_ADDRESS_ENTRY_DISPLAY_TABLE: u32 = 2148991234u32;
36844pub const PR_EMS_AB_ADDRESS_ENTRY_DISPLAY_TABLE_MSDOS: u32 = 2152136962u32;
36845pub const PR_EMS_AB_ADDRESS_SYNTAX: u32 = 2149056770u32;
36846pub const PR_EMS_AB_ADDRESS_TYPE: u32 = 2152202270u32;
36847pub const PR_EMS_AB_ADDRESS_TYPE_A: u32 = 2152202270u32;
36848pub const PR_EMS_AB_ADDRESS_TYPE_W: u32 = 2152202271u32;
36849pub const PR_EMS_AB_ADMD: u32 = 2152267806u32;
36850pub const PR_EMS_AB_ADMD_A: u32 = 2152267806u32;
36851pub const PR_EMS_AB_ADMD_W: u32 = 2152267807u32;
36852pub const PR_EMS_AB_ADMIN_DESCRIPTION: u32 = 2152333342u32;
36853pub const PR_EMS_AB_ADMIN_DESCRIPTION_A: u32 = 2152333342u32;
36854pub const PR_EMS_AB_ADMIN_DESCRIPTION_W: u32 = 2152333343u32;
36855pub const PR_EMS_AB_ADMIN_DISPLAY_NAME: u32 = 2152398878u32;
36856pub const PR_EMS_AB_ADMIN_DISPLAY_NAME_A: u32 = 2152398878u32;
36857pub const PR_EMS_AB_ADMIN_DISPLAY_NAME_W: u32 = 2152398879u32;
36858pub const PR_EMS_AB_ADMIN_EXTENSION_DLL: u32 = 2152464414u32;
36859pub const PR_EMS_AB_ADMIN_EXTENSION_DLL_A: u32 = 2152464414u32;
36860pub const PR_EMS_AB_ADMIN_EXTENSION_DLL_W: u32 = 2152464415u32;
36861pub const PR_EMS_AB_ALIASED_OBJECT_NAME: u32 = 2152529950u32;
36862pub const PR_EMS_AB_ALIASED_OBJECT_NAME_A: u32 = 2152529950u32;
36863pub const PR_EMS_AB_ALIASED_OBJECT_NAME_O: u32 = 2152529933u32;
36864pub const PR_EMS_AB_ALIASED_OBJECT_NAME_T: u32 = 2152529950u32;
36865pub const PR_EMS_AB_ALIASED_OBJECT_NAME_W: u32 = 2152529951u32;
36866pub const PR_EMS_AB_ALT_RECIPIENT: u32 = 2152595486u32;
36867pub const PR_EMS_AB_ALT_RECIPIENT_A: u32 = 2152595486u32;
36868pub const PR_EMS_AB_ALT_RECIPIENT_BL: u32 = 2152665118u32;
36869pub const PR_EMS_AB_ALT_RECIPIENT_BL_A: u32 = 2152665118u32;
36870pub const PR_EMS_AB_ALT_RECIPIENT_BL_O: u32 = 2152661005u32;
36871pub const PR_EMS_AB_ALT_RECIPIENT_BL_T: u32 = 2152665118u32;
36872pub const PR_EMS_AB_ALT_RECIPIENT_BL_W: u32 = 2152665119u32;
36873pub const PR_EMS_AB_ALT_RECIPIENT_O: u32 = 2152595469u32;
36874pub const PR_EMS_AB_ALT_RECIPIENT_T: u32 = 2152595486u32;
36875pub const PR_EMS_AB_ALT_RECIPIENT_W: u32 = 2152595487u32;
36876pub const PR_EMS_AB_ANCESTOR_ID: u32 = 2152726786u32;
36877pub const PR_EMS_AB_ANONYMOUS_ACCESS: u32 = 2173108235u32;
36878pub const PR_EMS_AB_ANONYMOUS_ACCOUNT: u32 = 2351300638u32;
36879pub const PR_EMS_AB_ANONYMOUS_ACCOUNT_A: u32 = 2351300638u32;
36880pub const PR_EMS_AB_ANONYMOUS_ACCOUNT_W: u32 = 2351300639u32;
36881pub const PR_EMS_AB_ASSOCIATION_LIFETIME: u32 = 2152857603u32;
36882pub const PR_EMS_AB_ASSOC_NT_ACCOUNT: u32 = 2150039810u32;
36883pub const PR_EMS_AB_ASSOC_PROTOCOL_CFG_NNTP: u32 = 2175074334u32;
36884pub const PR_EMS_AB_ASSOC_PROTOCOL_CFG_NNTP_A: u32 = 2175074334u32;
36885pub const PR_EMS_AB_ASSOC_PROTOCOL_CFG_NNTP_O: u32 = 2175074317u32;
36886pub const PR_EMS_AB_ASSOC_PROTOCOL_CFG_NNTP_T: u32 = 2175074334u32;
36887pub const PR_EMS_AB_ASSOC_PROTOCOL_CFG_NNTP_W: u32 = 2175074335u32;
36888pub const PR_EMS_AB_ASSOC_REMOTE_DXA: u32 = 2152796190u32;
36889pub const PR_EMS_AB_ASSOC_REMOTE_DXA_A: u32 = 2152796190u32;
36890pub const PR_EMS_AB_ASSOC_REMOTE_DXA_O: u32 = 2152792077u32;
36891pub const PR_EMS_AB_ASSOC_REMOTE_DXA_T: u32 = 2152796190u32;
36892pub const PR_EMS_AB_ASSOC_REMOTE_DXA_W: u32 = 2152796191u32;
36893pub const PR_EMS_AB_ATTRIBUTE_CERTIFICATE: u32 = 2353336578u32;
36894pub const PR_EMS_AB_AUTHENTICATION_TO_USE: u32 = 2174353438u32;
36895pub const PR_EMS_AB_AUTHENTICATION_TO_USE_A: u32 = 2174353438u32;
36896pub const PR_EMS_AB_AUTHENTICATION_TO_USE_W: u32 = 2174353439u32;
36897pub const PR_EMS_AB_AUTHORITY_REVOCATION_LIST: u32 = 2149978370u32;
36898pub const PR_EMS_AB_AUTHORIZED_DOMAIN: u32 = 2152988702u32;
36899pub const PR_EMS_AB_AUTHORIZED_DOMAIN_A: u32 = 2152988702u32;
36900pub const PR_EMS_AB_AUTHORIZED_DOMAIN_W: u32 = 2152988703u32;
36901pub const PR_EMS_AB_AUTHORIZED_PASSWORD: u32 = 2153054466u32;
36902pub const PR_EMS_AB_AUTHORIZED_PASSWORD_CONFIRM: u32 = 2173829378u32;
36903pub const PR_EMS_AB_AUTHORIZED_USER: u32 = 2153119774u32;
36904pub const PR_EMS_AB_AUTHORIZED_USER_A: u32 = 2153119774u32;
36905pub const PR_EMS_AB_AUTHORIZED_USER_W: u32 = 2153119775u32;
36906pub const PR_EMS_AB_AUTH_ORIG_BL: u32 = 2152927262u32;
36907pub const PR_EMS_AB_AUTH_ORIG_BL_A: u32 = 2152927262u32;
36908pub const PR_EMS_AB_AUTH_ORIG_BL_O: u32 = 2152923149u32;
36909pub const PR_EMS_AB_AUTH_ORIG_BL_T: u32 = 2152927262u32;
36910pub const PR_EMS_AB_AUTH_ORIG_BL_W: u32 = 2152927263u32;
36911pub const PR_EMS_AB_AUTOREPLY: u32 = 2148204555u32;
36912pub const PR_EMS_AB_AUTOREPLY_MESSAGE: u32 = 2148139038u32;
36913pub const PR_EMS_AB_AUTOREPLY_MESSAGE_A: u32 = 2148139038u32;
36914pub const PR_EMS_AB_AUTOREPLY_MESSAGE_W: u32 = 2148139039u32;
36915pub const PR_EMS_AB_AUTOREPLY_SUBJECT: u32 = 2151546910u32;
36916pub const PR_EMS_AB_AUTOREPLY_SUBJECT_A: u32 = 2151546910u32;
36917pub const PR_EMS_AB_AUTOREPLY_SUBJECT_W: u32 = 2151546911u32;
36918pub const PR_EMS_AB_AVAILABLE_AUTHORIZATION_PACKAGES: u32 = 2172719134u32;
36919pub const PR_EMS_AB_AVAILABLE_AUTHORIZATION_PACKAGES_A: u32 = 2172719134u32;
36920pub const PR_EMS_AB_AVAILABLE_AUTHORIZATION_PACKAGES_W: u32 = 2172719135u32;
36921pub const PR_EMS_AB_AVAILABLE_DISTRIBUTIONS: u32 = 2173370398u32;
36922pub const PR_EMS_AB_AVAILABLE_DISTRIBUTIONS_A: u32 = 2173370398u32;
36923pub const PR_EMS_AB_AVAILABLE_DISTRIBUTIONS_W: u32 = 2173370399u32;
36924pub const PR_EMS_AB_BRIDGEHEAD_SERVERS: u32 = 2171867166u32;
36925pub const PR_EMS_AB_BRIDGEHEAD_SERVERS_A: u32 = 2171867166u32;
36926pub const PR_EMS_AB_BRIDGEHEAD_SERVERS_O: u32 = 2171863053u32;
36927pub const PR_EMS_AB_BRIDGEHEAD_SERVERS_T: u32 = 2171867166u32;
36928pub const PR_EMS_AB_BRIDGEHEAD_SERVERS_W: u32 = 2171867167u32;
36929pub const PR_EMS_AB_BUSINESS_CATEGORY: u32 = 2153189406u32;
36930pub const PR_EMS_AB_BUSINESS_CATEGORY_A: u32 = 2153189406u32;
36931pub const PR_EMS_AB_BUSINESS_CATEGORY_W: u32 = 2153189407u32;
36932pub const PR_EMS_AB_BUSINESS_ROLES: u32 = 2149777666u32;
36933pub const PR_EMS_AB_CAN_CREATE_PF: u32 = 2153254942u32;
36934pub const PR_EMS_AB_CAN_CREATE_PF_A: u32 = 2153254942u32;
36935pub const PR_EMS_AB_CAN_CREATE_PF_BL: u32 = 2153320478u32;
36936pub const PR_EMS_AB_CAN_CREATE_PF_BL_A: u32 = 2153320478u32;
36937pub const PR_EMS_AB_CAN_CREATE_PF_BL_O: u32 = 2153316365u32;
36938pub const PR_EMS_AB_CAN_CREATE_PF_BL_T: u32 = 2153320478u32;
36939pub const PR_EMS_AB_CAN_CREATE_PF_BL_W: u32 = 2153320479u32;
36940pub const PR_EMS_AB_CAN_CREATE_PF_DL: u32 = 2153386014u32;
36941pub const PR_EMS_AB_CAN_CREATE_PF_DL_A: u32 = 2153386014u32;
36942pub const PR_EMS_AB_CAN_CREATE_PF_DL_BL: u32 = 2153451550u32;
36943pub const PR_EMS_AB_CAN_CREATE_PF_DL_BL_A: u32 = 2153451550u32;
36944pub const PR_EMS_AB_CAN_CREATE_PF_DL_BL_O: u32 = 2153447437u32;
36945pub const PR_EMS_AB_CAN_CREATE_PF_DL_BL_T: u32 = 2153451550u32;
36946pub const PR_EMS_AB_CAN_CREATE_PF_DL_BL_W: u32 = 2153451551u32;
36947pub const PR_EMS_AB_CAN_CREATE_PF_DL_O: u32 = 2153381901u32;
36948pub const PR_EMS_AB_CAN_CREATE_PF_DL_T: u32 = 2153386014u32;
36949pub const PR_EMS_AB_CAN_CREATE_PF_DL_W: u32 = 2153386015u32;
36950pub const PR_EMS_AB_CAN_CREATE_PF_O: u32 = 2153250829u32;
36951pub const PR_EMS_AB_CAN_CREATE_PF_T: u32 = 2153254942u32;
36952pub const PR_EMS_AB_CAN_CREATE_PF_W: u32 = 2153254943u32;
36953pub const PR_EMS_AB_CAN_NOT_CREATE_PF: u32 = 2153517086u32;
36954pub const PR_EMS_AB_CAN_NOT_CREATE_PF_A: u32 = 2153517086u32;
36955pub const PR_EMS_AB_CAN_NOT_CREATE_PF_BL: u32 = 2153582622u32;
36956pub const PR_EMS_AB_CAN_NOT_CREATE_PF_BL_A: u32 = 2153582622u32;
36957pub const PR_EMS_AB_CAN_NOT_CREATE_PF_BL_O: u32 = 2153578509u32;
36958pub const PR_EMS_AB_CAN_NOT_CREATE_PF_BL_T: u32 = 2153582622u32;
36959pub const PR_EMS_AB_CAN_NOT_CREATE_PF_BL_W: u32 = 2153582623u32;
36960pub const PR_EMS_AB_CAN_NOT_CREATE_PF_DL: u32 = 2153648158u32;
36961pub const PR_EMS_AB_CAN_NOT_CREATE_PF_DL_A: u32 = 2153648158u32;
36962pub const PR_EMS_AB_CAN_NOT_CREATE_PF_DL_BL: u32 = 2153713694u32;
36963pub const PR_EMS_AB_CAN_NOT_CREATE_PF_DL_BL_A: u32 = 2153713694u32;
36964pub const PR_EMS_AB_CAN_NOT_CREATE_PF_DL_BL_O: u32 = 2153709581u32;
36965pub const PR_EMS_AB_CAN_NOT_CREATE_PF_DL_BL_T: u32 = 2153713694u32;
36966pub const PR_EMS_AB_CAN_NOT_CREATE_PF_DL_BL_W: u32 = 2153713695u32;
36967pub const PR_EMS_AB_CAN_NOT_CREATE_PF_DL_O: u32 = 2153644045u32;
36968pub const PR_EMS_AB_CAN_NOT_CREATE_PF_DL_T: u32 = 2153648158u32;
36969pub const PR_EMS_AB_CAN_NOT_CREATE_PF_DL_W: u32 = 2153648159u32;
36970pub const PR_EMS_AB_CAN_NOT_CREATE_PF_O: u32 = 2153512973u32;
36971pub const PR_EMS_AB_CAN_NOT_CREATE_PF_T: u32 = 2153517086u32;
36972pub const PR_EMS_AB_CAN_NOT_CREATE_PF_W: u32 = 2153517087u32;
36973pub const PR_EMS_AB_CAN_PRESERVE_DNS: u32 = 2153775115u32;
36974pub const PR_EMS_AB_CA_CERTIFICATE: u32 = 2147684610u32;
36975pub const PR_EMS_AB_CERTIFICATE_CHAIN_V3: u32 = 2351366402u32;
36976pub const PR_EMS_AB_CERTIFICATE_REVOCATION_LIST: u32 = 2148925698u32;
36977pub const PR_EMS_AB_CERTIFICATE_REVOCATION_LIST_V1: u32 = 2351497474u32;
36978pub const PR_EMS_AB_CERTIFICATE_REVOCATION_LIST_V3: u32 = 2351431938u32;
36979pub const PR_EMS_AB_CHARACTER_SET: u32 = 2172977182u32;
36980pub const PR_EMS_AB_CHARACTER_SET_A: u32 = 2172977182u32;
36981pub const PR_EMS_AB_CHARACTER_SET_LIST: u32 = 2172784670u32;
36982pub const PR_EMS_AB_CHARACTER_SET_LIST_A: u32 = 2172784670u32;
36983pub const PR_EMS_AB_CHARACTER_SET_LIST_W: u32 = 2172784671u32;
36984pub const PR_EMS_AB_CHARACTER_SET_W: u32 = 2172977183u32;
36985pub const PR_EMS_AB_CHILD_RDNS: u32 = 4294447134u32;
36986pub const PR_EMS_AB_CLIENT_ACCESS_ENABLED: u32 = 2351169547u32;
36987pub const PR_EMS_AB_CLOCK_ALERT_OFFSET: u32 = 2153840643u32;
36988pub const PR_EMS_AB_CLOCK_ALERT_REPAIR: u32 = 2153906187u32;
36989pub const PR_EMS_AB_CLOCK_WARNING_OFFSET: u32 = 2153971715u32;
36990pub const PR_EMS_AB_CLOCK_WARNING_REPAIR: u32 = 2154037259u32;
36991pub const PR_EMS_AB_COMPROMISED_KEY_LIST: u32 = 2177106178u32;
36992pub const PR_EMS_AB_COMPUTER_NAME: u32 = 2154102814u32;
36993pub const PR_EMS_AB_COMPUTER_NAME_A: u32 = 2154102814u32;
36994pub const PR_EMS_AB_COMPUTER_NAME_W: u32 = 2154102815u32;
36995pub const PR_EMS_AB_CONNECTED_DOMAINS: u32 = 2154172446u32;
36996pub const PR_EMS_AB_CONNECTED_DOMAINS_A: u32 = 2154172446u32;
36997pub const PR_EMS_AB_CONNECTED_DOMAINS_W: u32 = 2154172447u32;
36998pub const PR_EMS_AB_CONNECTION_LIST_FILTER: u32 = 2172649730u32;
36999pub const PR_EMS_AB_CONNECTION_LIST_FILTER_TYPE: u32 = 2176057347u32;
37000pub const PR_EMS_AB_CONNECTION_TYPE: u32 = 2175991819u32;
37001pub const PR_EMS_AB_CONTAINERID: u32 = 4294770691u32;
37002pub const PR_EMS_AB_CONTAINER_INFO: u32 = 2154233859u32;
37003pub const PR_EMS_AB_CONTENT_TYPE: u32 = 2173042691u32;
37004pub const PR_EMS_AB_CONTROL_MSG_FOLDER_ID: u32 = 2173174018u32;
37005pub const PR_EMS_AB_CONTROL_MSG_RULES: u32 = 2173305090u32;
37006pub const PR_EMS_AB_COST: u32 = 2154299395u32;
37007pub const PR_EMS_AB_COUNTRY_NAME: u32 = 2154364958u32;
37008pub const PR_EMS_AB_COUNTRY_NAME_A: u32 = 2154364958u32;
37009pub const PR_EMS_AB_COUNTRY_NAME_W: u32 = 2154364959u32;
37010pub const PR_EMS_AB_CROSS_CERTIFICATE_CRL: u32 = 2351960322u32;
37011pub const PR_EMS_AB_CROSS_CERTIFICATE_PAIR: u32 = 2149912834u32;
37012pub const PR_EMS_AB_DEFAULT_MESSAGE_FORMAT: u32 = 2352414731u32;
37013pub const PR_EMS_AB_DELEGATE_USER: u32 = 2353594379u32;
37014pub const PR_EMS_AB_DELIVERY_MECHANISM: u32 = 2154692611u32;
37015pub const PR_EMS_AB_DELIVER_AND_REDIRECT: u32 = 2154627083u32;
37016pub const PR_EMS_AB_DELIV_CONT_LENGTH: u32 = 2154430467u32;
37017pub const PR_EMS_AB_DELIV_EITS: u32 = 2154500354u32;
37018pub const PR_EMS_AB_DELIV_EXT_CONT_TYPES: u32 = 2154565890u32;
37019pub const PR_EMS_AB_DELTA_REVOCATION_LIST: u32 = 2353402114u32;
37020pub const PR_EMS_AB_DESCRIPTION: u32 = 2154762270u32;
37021pub const PR_EMS_AB_DESCRIPTION_A: u32 = 2154762270u32;
37022pub const PR_EMS_AB_DESCRIPTION_W: u32 = 2154762271u32;
37023pub const PR_EMS_AB_DESTINATION_INDICATOR: u32 = 2154827806u32;
37024pub const PR_EMS_AB_DESTINATION_INDICATOR_A: u32 = 2154827806u32;
37025pub const PR_EMS_AB_DESTINATION_INDICATOR_W: u32 = 2154827807u32;
37026pub const PR_EMS_AB_DIAGNOSTIC_REG_KEY: u32 = 2154889246u32;
37027pub const PR_EMS_AB_DIAGNOSTIC_REG_KEY_A: u32 = 2154889246u32;
37028pub const PR_EMS_AB_DIAGNOSTIC_REG_KEY_W: u32 = 2154889247u32;
37029pub const PR_EMS_AB_DISABLED_GATEWAY_PROXY: u32 = 2177044510u32;
37030pub const PR_EMS_AB_DISABLED_GATEWAY_PROXY_A: u32 = 2177044510u32;
37031pub const PR_EMS_AB_DISABLED_GATEWAY_PROXY_W: u32 = 2177044511u32;
37032pub const PR_EMS_AB_DISABLE_DEFERRED_COMMIT: u32 = 2351104011u32;
37033pub const PR_EMS_AB_DISPLAY_NAME_OVERRIDE: u32 = 2147549195u32;
37034pub const PR_EMS_AB_DISPLAY_NAME_PRINTABLE: u32 = 973013022u32;
37035pub const PR_EMS_AB_DISPLAY_NAME_PRINTABLE_A: u32 = 973013022u32;
37036pub const PR_EMS_AB_DISPLAY_NAME_PRINTABLE_W: u32 = 973013023u32;
37037pub const PR_EMS_AB_DISPLAY_NAME_SUFFIX: u32 = 2353266718u32;
37038pub const PR_EMS_AB_DISPLAY_NAME_SUFFIX_A: u32 = 2353266718u32;
37039pub const PR_EMS_AB_DISPLAY_NAME_SUFFIX_W: u32 = 2353266719u32;
37040pub const PR_EMS_AB_DL_EXTERNAL_MEMBER_COUNT: u32 = 2363686915u32;
37041pub const PR_EMS_AB_DL_MEMBER_RULE: u32 = 2155090178u32;
37042pub const PR_EMS_AB_DL_MEM_REJECT_PERMS_BL: u32 = 2154958878u32;
37043pub const PR_EMS_AB_DL_MEM_REJECT_PERMS_BL_A: u32 = 2154958878u32;
37044pub const PR_EMS_AB_DL_MEM_REJECT_PERMS_BL_O: u32 = 2154954765u32;
37045pub const PR_EMS_AB_DL_MEM_REJECT_PERMS_BL_T: u32 = 2154958878u32;
37046pub const PR_EMS_AB_DL_MEM_REJECT_PERMS_BL_W: u32 = 2154958879u32;
37047pub const PR_EMS_AB_DL_MEM_SUBMIT_PERMS_BL: u32 = 2155024414u32;
37048pub const PR_EMS_AB_DL_MEM_SUBMIT_PERMS_BL_A: u32 = 2155024414u32;
37049pub const PR_EMS_AB_DL_MEM_SUBMIT_PERMS_BL_O: u32 = 2155020301u32;
37050pub const PR_EMS_AB_DL_MEM_SUBMIT_PERMS_BL_T: u32 = 2155024414u32;
37051pub const PR_EMS_AB_DL_MEM_SUBMIT_PERMS_BL_W: u32 = 2155024415u32;
37052pub const PR_EMS_AB_DMD_NAME: u32 = 2354446366u32;
37053pub const PR_EMS_AB_DMD_NAME_A: u32 = 2354446366u32;
37054pub const PR_EMS_AB_DMD_NAME_W: u32 = 2354446367u32;
37055pub const PR_EMS_AB_DOMAIN_DEF_ALT_RECIP: u32 = 2155151390u32;
37056pub const PR_EMS_AB_DOMAIN_DEF_ALT_RECIP_A: u32 = 2155151390u32;
37057pub const PR_EMS_AB_DOMAIN_DEF_ALT_RECIP_O: u32 = 2155151373u32;
37058pub const PR_EMS_AB_DOMAIN_DEF_ALT_RECIP_T: u32 = 2155151390u32;
37059pub const PR_EMS_AB_DOMAIN_DEF_ALT_RECIP_W: u32 = 2155151391u32;
37060pub const PR_EMS_AB_DOMAIN_NAME: u32 = 2155216926u32;
37061pub const PR_EMS_AB_DOMAIN_NAME_A: u32 = 2155216926u32;
37062pub const PR_EMS_AB_DOMAIN_NAME_W: u32 = 2155216927u32;
37063pub const PR_EMS_AB_DO_OAB_VERSION: u32 = 2352611331u32;
37064pub const PR_EMS_AB_DSA_SIGNATURE: u32 = 2155282690u32;
37065pub const PR_EMS_AB_DXA_ADMIN_COPY: u32 = 2155347979u32;
37066pub const PR_EMS_AB_DXA_ADMIN_FORWARD: u32 = 2155413515u32;
37067pub const PR_EMS_AB_DXA_ADMIN_UPDATE: u32 = 2155479043u32;
37068pub const PR_EMS_AB_DXA_APPEND_REQCN: u32 = 2155544587u32;
37069pub const PR_EMS_AB_DXA_CONF_CONTAINER_LIST: u32 = 2155614238u32;
37070pub const PR_EMS_AB_DXA_CONF_CONTAINER_LIST_A: u32 = 2155614238u32;
37071pub const PR_EMS_AB_DXA_CONF_CONTAINER_LIST_BL: u32 = 2356547614u32;
37072pub const PR_EMS_AB_DXA_CONF_CONTAINER_LIST_BL_A: u32 = 2356547614u32;
37073pub const PR_EMS_AB_DXA_CONF_CONTAINER_LIST_BL_O: u32 = 2356543501u32;
37074pub const PR_EMS_AB_DXA_CONF_CONTAINER_LIST_BL_T: u32 = 2356547614u32;
37075pub const PR_EMS_AB_DXA_CONF_CONTAINER_LIST_BL_W: u32 = 2356547615u32;
37076pub const PR_EMS_AB_DXA_CONF_CONTAINER_LIST_LINKED: u32 = 2356219934u32;
37077pub const PR_EMS_AB_DXA_CONF_CONTAINER_LIST_LINKED_A: u32 = 2356219934u32;
37078pub const PR_EMS_AB_DXA_CONF_CONTAINER_LIST_LINKED_O: u32 = 2356215821u32;
37079pub const PR_EMS_AB_DXA_CONF_CONTAINER_LIST_LINKED_T: u32 = 2356219934u32;
37080pub const PR_EMS_AB_DXA_CONF_CONTAINER_LIST_LINKED_W: u32 = 2356219935u32;
37081pub const PR_EMS_AB_DXA_CONF_CONTAINER_LIST_O: u32 = 2155610125u32;
37082pub const PR_EMS_AB_DXA_CONF_CONTAINER_LIST_T: u32 = 2155614238u32;
37083pub const PR_EMS_AB_DXA_CONF_CONTAINER_LIST_W: u32 = 2155614239u32;
37084pub const PR_EMS_AB_DXA_CONF_REQ_TIME: u32 = 2155675712u32;
37085pub const PR_EMS_AB_DXA_CONF_SEQ: u32 = 2155741214u32;
37086pub const PR_EMS_AB_DXA_CONF_SEQ_A: u32 = 2155741214u32;
37087pub const PR_EMS_AB_DXA_CONF_SEQ_USN: u32 = 2155806723u32;
37088pub const PR_EMS_AB_DXA_CONF_SEQ_W: u32 = 2155741215u32;
37089pub const PR_EMS_AB_DXA_EXCHANGE_OPTIONS: u32 = 2155872259u32;
37090pub const PR_EMS_AB_DXA_EXPORT_NOW: u32 = 2155937803u32;
37091pub const PR_EMS_AB_DXA_FLAGS: u32 = 2156003331u32;
37092pub const PR_EMS_AB_DXA_IMPORT_NOW: u32 = 2156265483u32;
37093pub const PR_EMS_AB_DXA_IMP_SEQ: u32 = 2156068894u32;
37094pub const PR_EMS_AB_DXA_IMP_SEQ_A: u32 = 2156068894u32;
37095pub const PR_EMS_AB_DXA_IMP_SEQ_TIME: u32 = 2156134464u32;
37096pub const PR_EMS_AB_DXA_IMP_SEQ_USN: u32 = 2156199939u32;
37097pub const PR_EMS_AB_DXA_IMP_SEQ_W: u32 = 2156068895u32;
37098pub const PR_EMS_AB_DXA_IN_TEMPLATE_MAP: u32 = 2156335134u32;
37099pub const PR_EMS_AB_DXA_IN_TEMPLATE_MAP_A: u32 = 2156335134u32;
37100pub const PR_EMS_AB_DXA_IN_TEMPLATE_MAP_W: u32 = 2156335135u32;
37101pub const PR_EMS_AB_DXA_LOCAL_ADMIN: u32 = 2156396574u32;
37102pub const PR_EMS_AB_DXA_LOCAL_ADMIN_A: u32 = 2156396574u32;
37103pub const PR_EMS_AB_DXA_LOCAL_ADMIN_O: u32 = 2156396557u32;
37104pub const PR_EMS_AB_DXA_LOCAL_ADMIN_T: u32 = 2156396574u32;
37105pub const PR_EMS_AB_DXA_LOCAL_ADMIN_W: u32 = 2156396575u32;
37106pub const PR_EMS_AB_DXA_LOGGING_LEVEL: u32 = 2156462083u32;
37107pub const PR_EMS_AB_DXA_NATIVE_ADDRESS_TYPE: u32 = 2156527646u32;
37108pub const PR_EMS_AB_DXA_NATIVE_ADDRESS_TYPE_A: u32 = 2156527646u32;
37109pub const PR_EMS_AB_DXA_NATIVE_ADDRESS_TYPE_W: u32 = 2156527647u32;
37110pub const PR_EMS_AB_DXA_OUT_TEMPLATE_MAP: u32 = 2156597278u32;
37111pub const PR_EMS_AB_DXA_OUT_TEMPLATE_MAP_A: u32 = 2156597278u32;
37112pub const PR_EMS_AB_DXA_OUT_TEMPLATE_MAP_W: u32 = 2156597279u32;
37113pub const PR_EMS_AB_DXA_PASSWORD: u32 = 2156658718u32;
37114pub const PR_EMS_AB_DXA_PASSWORD_A: u32 = 2156658718u32;
37115pub const PR_EMS_AB_DXA_PASSWORD_W: u32 = 2156658719u32;
37116pub const PR_EMS_AB_DXA_PREV_EXCHANGE_OPTIONS: u32 = 2156724227u32;
37117pub const PR_EMS_AB_DXA_PREV_EXPORT_NATIVE_ONLY: u32 = 2156789771u32;
37118pub const PR_EMS_AB_DXA_PREV_IN_EXCHANGE_SENSITIVITY: u32 = 2156855299u32;
37119pub const PR_EMS_AB_DXA_PREV_REMOTE_ENTRIES: u32 = 2156920862u32;
37120pub const PR_EMS_AB_DXA_PREV_REMOTE_ENTRIES_A: u32 = 2156920862u32;
37121pub const PR_EMS_AB_DXA_PREV_REMOTE_ENTRIES_O: u32 = 2156920845u32;
37122pub const PR_EMS_AB_DXA_PREV_REMOTE_ENTRIES_T: u32 = 2156920862u32;
37123pub const PR_EMS_AB_DXA_PREV_REMOTE_ENTRIES_W: u32 = 2156920863u32;
37124pub const PR_EMS_AB_DXA_PREV_REPLICATION_SENSITIVITY: u32 = 2156986371u32;
37125pub const PR_EMS_AB_DXA_PREV_TEMPLATE_OPTIONS: u32 = 2157051907u32;
37126pub const PR_EMS_AB_DXA_PREV_TYPES: u32 = 2157117443u32;
37127pub const PR_EMS_AB_DXA_RECIPIENT_CP: u32 = 2157183006u32;
37128pub const PR_EMS_AB_DXA_RECIPIENT_CP_A: u32 = 2157183006u32;
37129pub const PR_EMS_AB_DXA_RECIPIENT_CP_W: u32 = 2157183007u32;
37130pub const PR_EMS_AB_DXA_REMOTE_CLIENT: u32 = 2157248542u32;
37131pub const PR_EMS_AB_DXA_REMOTE_CLIENT_A: u32 = 2157248542u32;
37132pub const PR_EMS_AB_DXA_REMOTE_CLIENT_O: u32 = 2157248525u32;
37133pub const PR_EMS_AB_DXA_REMOTE_CLIENT_T: u32 = 2157248542u32;
37134pub const PR_EMS_AB_DXA_REMOTE_CLIENT_W: u32 = 2157248543u32;
37135pub const PR_EMS_AB_DXA_REQNAME: u32 = 2157510686u32;
37136pub const PR_EMS_AB_DXA_REQNAME_A: u32 = 2157510686u32;
37137pub const PR_EMS_AB_DXA_REQNAME_W: u32 = 2157510687u32;
37138pub const PR_EMS_AB_DXA_REQ_SEQ: u32 = 2157314078u32;
37139pub const PR_EMS_AB_DXA_REQ_SEQ_A: u32 = 2157314078u32;
37140pub const PR_EMS_AB_DXA_REQ_SEQ_TIME: u32 = 2157379648u32;
37141pub const PR_EMS_AB_DXA_REQ_SEQ_USN: u32 = 2157445123u32;
37142pub const PR_EMS_AB_DXA_REQ_SEQ_W: u32 = 2157314079u32;
37143pub const PR_EMS_AB_DXA_SVR_SEQ: u32 = 2157576222u32;
37144pub const PR_EMS_AB_DXA_SVR_SEQ_A: u32 = 2157576222u32;
37145pub const PR_EMS_AB_DXA_SVR_SEQ_TIME: u32 = 2157641792u32;
37146pub const PR_EMS_AB_DXA_SVR_SEQ_USN: u32 = 2157707267u32;
37147pub const PR_EMS_AB_DXA_SVR_SEQ_W: u32 = 2157576223u32;
37148pub const PR_EMS_AB_DXA_TASK: u32 = 2157772803u32;
37149pub const PR_EMS_AB_DXA_TEMPLATE_OPTIONS: u32 = 2157838339u32;
37150pub const PR_EMS_AB_DXA_TEMPLATE_TIMESTAMP: u32 = 2157903936u32;
37151pub const PR_EMS_AB_DXA_TYPES: u32 = 2157969411u32;
37152pub const PR_EMS_AB_DXA_UNCONF_CONTAINER_LIST: u32 = 2158039070u32;
37153pub const PR_EMS_AB_DXA_UNCONF_CONTAINER_LIST_A: u32 = 2158039070u32;
37154pub const PR_EMS_AB_DXA_UNCONF_CONTAINER_LIST_BL: u32 = 2356613150u32;
37155pub const PR_EMS_AB_DXA_UNCONF_CONTAINER_LIST_BL_A: u32 = 2356613150u32;
37156pub const PR_EMS_AB_DXA_UNCONF_CONTAINER_LIST_BL_O: u32 = 2356609037u32;
37157pub const PR_EMS_AB_DXA_UNCONF_CONTAINER_LIST_BL_T: u32 = 2356613150u32;
37158pub const PR_EMS_AB_DXA_UNCONF_CONTAINER_LIST_BL_W: u32 = 2356613151u32;
37159pub const PR_EMS_AB_DXA_UNCONF_CONTAINER_LIST_LINKED: u32 = 2356285470u32;
37160pub const PR_EMS_AB_DXA_UNCONF_CONTAINER_LIST_LINKED_A: u32 = 2356285470u32;
37161pub const PR_EMS_AB_DXA_UNCONF_CONTAINER_LIST_LINKED_O: u32 = 2356281357u32;
37162pub const PR_EMS_AB_DXA_UNCONF_CONTAINER_LIST_LINKED_T: u32 = 2356285470u32;
37163pub const PR_EMS_AB_DXA_UNCONF_CONTAINER_LIST_LINKED_W: u32 = 2356285471u32;
37164pub const PR_EMS_AB_DXA_UNCONF_CONTAINER_LIST_O: u32 = 2158034957u32;
37165pub const PR_EMS_AB_DXA_UNCONF_CONTAINER_LIST_T: u32 = 2158039070u32;
37166pub const PR_EMS_AB_DXA_UNCONF_CONTAINER_LIST_W: u32 = 2158039071u32;
37167pub const PR_EMS_AB_EMPLOYEE_NUMBER: u32 = 2355560478u32;
37168pub const PR_EMS_AB_EMPLOYEE_NUMBER_A: u32 = 2355560478u32;
37169pub const PR_EMS_AB_EMPLOYEE_NUMBER_W: u32 = 2355560479u32;
37170pub const PR_EMS_AB_EMPLOYEE_TYPE: u32 = 2355691550u32;
37171pub const PR_EMS_AB_EMPLOYEE_TYPE_A: u32 = 2355691550u32;
37172pub const PR_EMS_AB_EMPLOYEE_TYPE_W: u32 = 2355691551u32;
37173pub const PR_EMS_AB_ENABLED: u32 = 2350972939u32;
37174pub const PR_EMS_AB_ENABLED_AUTHORIZATION_PACKAGES: u32 = 2172915742u32;
37175pub const PR_EMS_AB_ENABLED_AUTHORIZATION_PACKAGES_A: u32 = 2172915742u32;
37176pub const PR_EMS_AB_ENABLED_AUTHORIZATION_PACKAGES_W: u32 = 2172915743u32;
37177pub const PR_EMS_AB_ENABLED_PROTOCOLS: u32 = 2172583939u32;
37178pub const PR_EMS_AB_ENABLED_PROTOCOL_CFG: u32 = 2175270923u32;
37179pub const PR_EMS_AB_ENABLE_COMPATIBILITY: u32 = 2352087051u32;
37180pub const PR_EMS_AB_ENCAPSULATION_METHOD: u32 = 2158100483u32;
37181pub const PR_EMS_AB_ENCRYPT: u32 = 2158166027u32;
37182pub const PR_EMS_AB_ENCRYPT_ALG_LIST_NA: u32 = 2151682078u32;
37183pub const PR_EMS_AB_ENCRYPT_ALG_LIST_NA_A: u32 = 2151682078u32;
37184pub const PR_EMS_AB_ENCRYPT_ALG_LIST_NA_W: u32 = 2151682079u32;
37185pub const PR_EMS_AB_ENCRYPT_ALG_LIST_OTHER: u32 = 2151747614u32;
37186pub const PR_EMS_AB_ENCRYPT_ALG_LIST_OTHER_A: u32 = 2151747614u32;
37187pub const PR_EMS_AB_ENCRYPT_ALG_LIST_OTHER_W: u32 = 2151747615u32;
37188pub const PR_EMS_AB_ENCRYPT_ALG_SELECTED_NA: u32 = 2151874590u32;
37189pub const PR_EMS_AB_ENCRYPT_ALG_SELECTED_NA_A: u32 = 2151874590u32;
37190pub const PR_EMS_AB_ENCRYPT_ALG_SELECTED_NA_W: u32 = 2151874591u32;
37191pub const PR_EMS_AB_ENCRYPT_ALG_SELECTED_OTHER: u32 = 2151481374u32;
37192pub const PR_EMS_AB_ENCRYPT_ALG_SELECTED_OTHER_A: u32 = 2151481374u32;
37193pub const PR_EMS_AB_ENCRYPT_ALG_SELECTED_OTHER_W: u32 = 2151481375u32;
37194pub const PR_EMS_AB_EXPAND_DLS_LOCALLY: u32 = 2158231563u32;
37195pub const PR_EMS_AB_EXPIRATION_TIME: u32 = 2150105152u32;
37196pub const PR_EMS_AB_EXPORT_CONTAINERS: u32 = 2158301214u32;
37197pub const PR_EMS_AB_EXPORT_CONTAINERS_A: u32 = 2158301214u32;
37198pub const PR_EMS_AB_EXPORT_CONTAINERS_O: u32 = 2158297101u32;
37199pub const PR_EMS_AB_EXPORT_CONTAINERS_T: u32 = 2158301214u32;
37200pub const PR_EMS_AB_EXPORT_CONTAINERS_W: u32 = 2158301215u32;
37201pub const PR_EMS_AB_EXPORT_CUSTOM_RECIPIENTS: u32 = 2158362635u32;
37202pub const PR_EMS_AB_EXTENDED_CHARS_ALLOWED: u32 = 2158428171u32;
37203pub const PR_EMS_AB_EXTENSION_ATTRIBUTE_1: u32 = 2150432798u32;
37204pub const PR_EMS_AB_EXTENSION_ATTRIBUTE_10: u32 = 2151022622u32;
37205pub const PR_EMS_AB_EXTENSION_ATTRIBUTE_10_A: u32 = 2151022622u32;
37206pub const PR_EMS_AB_EXTENSION_ATTRIBUTE_10_W: u32 = 2151022623u32;
37207pub const PR_EMS_AB_EXTENSION_ATTRIBUTE_11: u32 = 2354511902u32;
37208pub const PR_EMS_AB_EXTENSION_ATTRIBUTE_11_A: u32 = 2354511902u32;
37209pub const PR_EMS_AB_EXTENSION_ATTRIBUTE_11_W: u32 = 2354511903u32;
37210pub const PR_EMS_AB_EXTENSION_ATTRIBUTE_12: u32 = 2354577438u32;
37211pub const PR_EMS_AB_EXTENSION_ATTRIBUTE_12_A: u32 = 2354577438u32;
37212pub const PR_EMS_AB_EXTENSION_ATTRIBUTE_12_W: u32 = 2354577439u32;
37213pub const PR_EMS_AB_EXTENSION_ATTRIBUTE_13: u32 = 2354642974u32;
37214pub const PR_EMS_AB_EXTENSION_ATTRIBUTE_13_A: u32 = 2354642974u32;
37215pub const PR_EMS_AB_EXTENSION_ATTRIBUTE_13_W: u32 = 2354642975u32;
37216pub const PR_EMS_AB_EXTENSION_ATTRIBUTE_14: u32 = 2355101726u32;
37217pub const PR_EMS_AB_EXTENSION_ATTRIBUTE_14_A: u32 = 2355101726u32;
37218pub const PR_EMS_AB_EXTENSION_ATTRIBUTE_14_W: u32 = 2355101727u32;
37219pub const PR_EMS_AB_EXTENSION_ATTRIBUTE_15: u32 = 2355167262u32;
37220pub const PR_EMS_AB_EXTENSION_ATTRIBUTE_15_A: u32 = 2355167262u32;
37221pub const PR_EMS_AB_EXTENSION_ATTRIBUTE_15_W: u32 = 2355167263u32;
37222pub const PR_EMS_AB_EXTENSION_ATTRIBUTE_1_A: u32 = 2150432798u32;
37223pub const PR_EMS_AB_EXTENSION_ATTRIBUTE_1_W: u32 = 2150432799u32;
37224pub const PR_EMS_AB_EXTENSION_ATTRIBUTE_2: u32 = 2150498334u32;
37225pub const PR_EMS_AB_EXTENSION_ATTRIBUTE_2_A: u32 = 2150498334u32;
37226pub const PR_EMS_AB_EXTENSION_ATTRIBUTE_2_W: u32 = 2150498335u32;
37227pub const PR_EMS_AB_EXTENSION_ATTRIBUTE_3: u32 = 2150563870u32;
37228pub const PR_EMS_AB_EXTENSION_ATTRIBUTE_3_A: u32 = 2150563870u32;
37229pub const PR_EMS_AB_EXTENSION_ATTRIBUTE_3_W: u32 = 2150563871u32;
37230pub const PR_EMS_AB_EXTENSION_ATTRIBUTE_4: u32 = 2150629406u32;
37231pub const PR_EMS_AB_EXTENSION_ATTRIBUTE_4_A: u32 = 2150629406u32;
37232pub const PR_EMS_AB_EXTENSION_ATTRIBUTE_4_W: u32 = 2150629407u32;
37233pub const PR_EMS_AB_EXTENSION_ATTRIBUTE_5: u32 = 2150694942u32;
37234pub const PR_EMS_AB_EXTENSION_ATTRIBUTE_5_A: u32 = 2150694942u32;
37235pub const PR_EMS_AB_EXTENSION_ATTRIBUTE_5_W: u32 = 2150694943u32;
37236pub const PR_EMS_AB_EXTENSION_ATTRIBUTE_6: u32 = 2150760478u32;
37237pub const PR_EMS_AB_EXTENSION_ATTRIBUTE_6_A: u32 = 2150760478u32;
37238pub const PR_EMS_AB_EXTENSION_ATTRIBUTE_6_W: u32 = 2150760479u32;
37239pub const PR_EMS_AB_EXTENSION_ATTRIBUTE_7: u32 = 2150826014u32;
37240pub const PR_EMS_AB_EXTENSION_ATTRIBUTE_7_A: u32 = 2150826014u32;
37241pub const PR_EMS_AB_EXTENSION_ATTRIBUTE_7_W: u32 = 2150826015u32;
37242pub const PR_EMS_AB_EXTENSION_ATTRIBUTE_8: u32 = 2150891550u32;
37243pub const PR_EMS_AB_EXTENSION_ATTRIBUTE_8_A: u32 = 2150891550u32;
37244pub const PR_EMS_AB_EXTENSION_ATTRIBUTE_8_W: u32 = 2150891551u32;
37245pub const PR_EMS_AB_EXTENSION_ATTRIBUTE_9: u32 = 2150957086u32;
37246pub const PR_EMS_AB_EXTENSION_ATTRIBUTE_9_A: u32 = 2150957086u32;
37247pub const PR_EMS_AB_EXTENSION_ATTRIBUTE_9_W: u32 = 2150957087u32;
37248pub const PR_EMS_AB_EXTENSION_DATA: u32 = 2158498050u32;
37249pub const PR_EMS_AB_EXTENSION_NAME: u32 = 2158563358u32;
37250pub const PR_EMS_AB_EXTENSION_NAME_A: u32 = 2158563358u32;
37251pub const PR_EMS_AB_EXTENSION_NAME_INHERITED: u32 = 2158628894u32;
37252pub const PR_EMS_AB_EXTENSION_NAME_INHERITED_A: u32 = 2158628894u32;
37253pub const PR_EMS_AB_EXTENSION_NAME_INHERITED_W: u32 = 2158628895u32;
37254pub const PR_EMS_AB_EXTENSION_NAME_W: u32 = 2158563359u32;
37255pub const PR_EMS_AB_FACSIMILE_TELEPHONE_NUMBER: u32 = 2158694658u32;
37256pub const PR_EMS_AB_FILE_VERSION: u32 = 2158756098u32;
37257pub const PR_EMS_AB_FILTER_LOCAL_ADDRESSES: u32 = 2158821387u32;
37258pub const PR_EMS_AB_FOLDERS_CONTAINER: u32 = 2158886942u32;
37259pub const PR_EMS_AB_FOLDERS_CONTAINER_A: u32 = 2158886942u32;
37260pub const PR_EMS_AB_FOLDERS_CONTAINER_O: u32 = 2158886925u32;
37261pub const PR_EMS_AB_FOLDERS_CONTAINER_T: u32 = 2158886942u32;
37262pub const PR_EMS_AB_FOLDERS_CONTAINER_W: u32 = 2158886943u32;
37263pub const PR_EMS_AB_FOLDER_PATHNAME: u32 = 2147745822u32;
37264pub const PR_EMS_AB_FOLDER_PATHNAME_A: u32 = 2147745822u32;
37265pub const PR_EMS_AB_FOLDER_PATHNAME_W: u32 = 2147745823u32;
37266pub const PR_EMS_AB_FORM_DATA: u32 = 2355429634u32;
37267pub const PR_EMS_AB_FORWARDING_ADDRESS: u32 = 2355363870u32;
37268pub const PR_EMS_AB_FORWARDING_ADDRESS_A: u32 = 2355363870u32;
37269pub const PR_EMS_AB_FORWARDING_ADDRESS_W: u32 = 2355363871u32;
37270pub const PR_EMS_AB_GARBAGE_COLL_PERIOD: u32 = 2158952451u32;
37271pub const PR_EMS_AB_GATEWAY_LOCAL_CRED: u32 = 2159018014u32;
37272pub const PR_EMS_AB_GATEWAY_LOCAL_CRED_A: u32 = 2159018014u32;
37273pub const PR_EMS_AB_GATEWAY_LOCAL_CRED_W: u32 = 2159018015u32;
37274pub const PR_EMS_AB_GATEWAY_LOCAL_DESIG: u32 = 2159083550u32;
37275pub const PR_EMS_AB_GATEWAY_LOCAL_DESIG_A: u32 = 2159083550u32;
37276pub const PR_EMS_AB_GATEWAY_LOCAL_DESIG_W: u32 = 2159083551u32;
37277pub const PR_EMS_AB_GATEWAY_PROXY: u32 = 2159153182u32;
37278pub const PR_EMS_AB_GATEWAY_PROXY_A: u32 = 2159153182u32;
37279pub const PR_EMS_AB_GATEWAY_PROXY_W: u32 = 2159153183u32;
37280pub const PR_EMS_AB_GATEWAY_ROUTING_TREE: u32 = 2159214850u32;
37281pub const PR_EMS_AB_GENERATION_QUALIFIER: u32 = 2354249758u32;
37282pub const PR_EMS_AB_GENERATION_QUALIFIER_A: u32 = 2354249758u32;
37283pub const PR_EMS_AB_GENERATION_QUALIFIER_W: u32 = 2354249759u32;
37284pub const PR_EMS_AB_GROUP_BY_ATTR_1: u32 = 2176253982u32;
37285pub const PR_EMS_AB_GROUP_BY_ATTR_1_A: u32 = 2176253982u32;
37286pub const PR_EMS_AB_GROUP_BY_ATTR_1_W: u32 = 2176253983u32;
37287pub const PR_EMS_AB_GROUP_BY_ATTR_2: u32 = 2176319518u32;
37288pub const PR_EMS_AB_GROUP_BY_ATTR_2_A: u32 = 2176319518u32;
37289pub const PR_EMS_AB_GROUP_BY_ATTR_2_W: u32 = 2176319519u32;
37290pub const PR_EMS_AB_GROUP_BY_ATTR_3: u32 = 2176385054u32;
37291pub const PR_EMS_AB_GROUP_BY_ATTR_3_A: u32 = 2176385054u32;
37292pub const PR_EMS_AB_GROUP_BY_ATTR_3_W: u32 = 2176385055u32;
37293pub const PR_EMS_AB_GROUP_BY_ATTR_4: u32 = 2176450590u32;
37294pub const PR_EMS_AB_GROUP_BY_ATTR_4_A: u32 = 2176450590u32;
37295pub const PR_EMS_AB_GROUP_BY_ATTR_4_W: u32 = 2176450591u32;
37296pub const PR_EMS_AB_GROUP_BY_ATTR_VALUE_DN: u32 = 2350514206u32;
37297pub const PR_EMS_AB_GROUP_BY_ATTR_VALUE_DN_A: u32 = 2350514206u32;
37298pub const PR_EMS_AB_GROUP_BY_ATTR_VALUE_DN_O: u32 = 2350514189u32;
37299pub const PR_EMS_AB_GROUP_BY_ATTR_VALUE_DN_T: u32 = 2350514206u32;
37300pub const PR_EMS_AB_GROUP_BY_ATTR_VALUE_DN_W: u32 = 2350514207u32;
37301pub const PR_EMS_AB_GROUP_BY_ATTR_VALUE_STR: u32 = 2350448670u32;
37302pub const PR_EMS_AB_GROUP_BY_ATTR_VALUE_STR_A: u32 = 2350448670u32;
37303pub const PR_EMS_AB_GROUP_BY_ATTR_VALUE_STR_W: u32 = 2350448671u32;
37304pub const PR_EMS_AB_GWART_LAST_MODIFIED: u32 = 2159280192u32;
37305pub const PR_EMS_AB_HAB_CHILD_DEPARTMENTS: u32 = 2358902797u32;
37306pub const PR_EMS_AB_HAB_DEPARTMENT_MEMBERS: u32 = 2358706189u32;
37307pub const PR_EMS_AB_HAB_IS_HIERARCHICAL_GROUP: u32 = 2363293707u32;
37308pub const PR_EMS_AB_HAB_PARENT_DEPARTMENT: u32 = 2358837261u32;
37309pub const PR_EMS_AB_HAB_ROOT_DEPARTMENT: u32 = 2358771725u32;
37310pub const PR_EMS_AB_HAB_SHOW_IN_DEPARTMENTS: u32 = 2358509581u32;
37311pub const PR_EMS_AB_HAS_FULL_REPLICA_NCS: u32 = 2159349790u32;
37312pub const PR_EMS_AB_HAS_FULL_REPLICA_NCS_A: u32 = 2159349790u32;
37313pub const PR_EMS_AB_HAS_FULL_REPLICA_NCS_O: u32 = 2159345677u32;
37314pub const PR_EMS_AB_HAS_FULL_REPLICA_NCS_T: u32 = 2159349790u32;
37315pub const PR_EMS_AB_HAS_FULL_REPLICA_NCS_W: u32 = 2159349791u32;
37316pub const PR_EMS_AB_HAS_MASTER_NCS: u32 = 2159415326u32;
37317pub const PR_EMS_AB_HAS_MASTER_NCS_A: u32 = 2159415326u32;
37318pub const PR_EMS_AB_HAS_MASTER_NCS_O: u32 = 2159411213u32;
37319pub const PR_EMS_AB_HAS_MASTER_NCS_T: u32 = 2159415326u32;
37320pub const PR_EMS_AB_HAS_MASTER_NCS_W: u32 = 2159415327u32;
37321pub const PR_EMS_AB_HELP_DATA16: u32 = 2151284994u32;
37322pub const PR_EMS_AB_HELP_DATA32: u32 = 2148532482u32;
37323pub const PR_EMS_AB_HELP_FILE_NAME: u32 = 2151350302u32;
37324pub const PR_EMS_AB_HELP_FILE_NAME_A: u32 = 2151350302u32;
37325pub const PR_EMS_AB_HELP_FILE_NAME_W: u32 = 2151350303u32;
37326pub const PR_EMS_AB_HEURISTICS: u32 = 2159476739u32;
37327pub const PR_EMS_AB_HIDE_DL_MEMBERSHIP: u32 = 2159542283u32;
37328pub const PR_EMS_AB_HIDE_FROM_ADDRESS_BOOK: u32 = 2159607819u32;
37329pub const PR_EMS_AB_HIERARCHY_PATH: u32 = 4294508574u32;
37330pub const PR_EMS_AB_HIERARCHY_PATH_A: u32 = 4294508574u32;
37331pub const PR_EMS_AB_HIERARCHY_PATH_W: u32 = 4294508575u32;
37332pub const PR_EMS_AB_HOME_MDB: u32 = 2147876894u32;
37333pub const PR_EMS_AB_HOME_MDB_A: u32 = 2147876894u32;
37334pub const PR_EMS_AB_HOME_MDB_BL: u32 = 2148798494u32;
37335pub const PR_EMS_AB_HOME_MDB_BL_A: u32 = 2148798494u32;
37336pub const PR_EMS_AB_HOME_MDB_BL_O: u32 = 2148794381u32;
37337pub const PR_EMS_AB_HOME_MDB_BL_T: u32 = 2148798494u32;
37338pub const PR_EMS_AB_HOME_MDB_BL_W: u32 = 2148798495u32;
37339pub const PR_EMS_AB_HOME_MDB_O: u32 = 2147876877u32;
37340pub const PR_EMS_AB_HOME_MDB_T: u32 = 2147876894u32;
37341pub const PR_EMS_AB_HOME_MDB_W: u32 = 2147876895u32;
37342pub const PR_EMS_AB_HOME_MTA: u32 = 2147942430u32;
37343pub const PR_EMS_AB_HOME_MTA_A: u32 = 2147942430u32;
37344pub const PR_EMS_AB_HOME_MTA_O: u32 = 2147942413u32;
37345pub const PR_EMS_AB_HOME_MTA_T: u32 = 2147942430u32;
37346pub const PR_EMS_AB_HOME_MTA_W: u32 = 2147942431u32;
37347pub const PR_EMS_AB_HOME_PUBLIC_SERVER: u32 = 2151612446u32;
37348pub const PR_EMS_AB_HOME_PUBLIC_SERVER_A: u32 = 2151612446u32;
37349pub const PR_EMS_AB_HOME_PUBLIC_SERVER_O: u32 = 2151612429u32;
37350pub const PR_EMS_AB_HOME_PUBLIC_SERVER_T: u32 = 2151612446u32;
37351pub const PR_EMS_AB_HOME_PUBLIC_SERVER_W: u32 = 2151612447u32;
37352pub const PR_EMS_AB_HOUSE_IDENTIFIER: u32 = 2354315294u32;
37353pub const PR_EMS_AB_HOUSE_IDENTIFIER_A: u32 = 2354315294u32;
37354pub const PR_EMS_AB_HOUSE_IDENTIFIER_W: u32 = 2354315295u32;
37355pub const PR_EMS_AB_HTTP_PUB_AB_ATTRIBUTES: u32 = 2175340574u32;
37356pub const PR_EMS_AB_HTTP_PUB_AB_ATTRIBUTES_A: u32 = 2175340574u32;
37357pub const PR_EMS_AB_HTTP_PUB_AB_ATTRIBUTES_W: u32 = 2175340575u32;
37358pub const PR_EMS_AB_HTTP_PUB_GAL: u32 = 2174418955u32;
37359pub const PR_EMS_AB_HTTP_PUB_GAL_LIMIT: u32 = 2174484483u32;
37360pub const PR_EMS_AB_HTTP_PUB_PF: u32 = 2174619906u32;
37361pub const PR_EMS_AB_HTTP_SERVERS: u32 = 2175471646u32;
37362pub const PR_EMS_AB_HTTP_SERVERS_A: u32 = 2175471646u32;
37363pub const PR_EMS_AB_HTTP_SERVERS_W: u32 = 2175471647u32;
37364pub const PR_EMS_AB_IMPORTED_FROM: u32 = 2151809054u32;
37365pub const PR_EMS_AB_IMPORTED_FROM_A: u32 = 2151809054u32;
37366pub const PR_EMS_AB_IMPORTED_FROM_W: u32 = 2151809055u32;
37367pub const PR_EMS_AB_IMPORT_CONTAINER: u32 = 2159673374u32;
37368pub const PR_EMS_AB_IMPORT_CONTAINER_A: u32 = 2159673374u32;
37369pub const PR_EMS_AB_IMPORT_CONTAINER_O: u32 = 2159673357u32;
37370pub const PR_EMS_AB_IMPORT_CONTAINER_T: u32 = 2159673374u32;
37371pub const PR_EMS_AB_IMPORT_CONTAINER_W: u32 = 2159673375u32;
37372pub const PR_EMS_AB_IMPORT_SENSITIVITY: u32 = 2159738883u32;
37373pub const PR_EMS_AB_INBOUND_ACCEPT_ALL: u32 = 2350907403u32;
37374pub const PR_EMS_AB_INBOUND_DN: u32 = 2350776350u32;
37375pub const PR_EMS_AB_INBOUND_DN_A: u32 = 2350776350u32;
37376pub const PR_EMS_AB_INBOUND_DN_O: u32 = 2350776333u32;
37377pub const PR_EMS_AB_INBOUND_DN_T: u32 = 2350776350u32;
37378pub const PR_EMS_AB_INBOUND_DN_W: u32 = 2350776351u32;
37379pub const PR_EMS_AB_INBOUND_HOST: u32 = 2173571102u32;
37380pub const PR_EMS_AB_INBOUND_HOST_A: u32 = 2173571102u32;
37381pub const PR_EMS_AB_INBOUND_HOST_W: u32 = 2173571103u32;
37382pub const PR_EMS_AB_INBOUND_NEWSFEED: u32 = 2173894686u32;
37383pub const PR_EMS_AB_INBOUND_NEWSFEED_A: u32 = 2173894686u32;
37384pub const PR_EMS_AB_INBOUND_NEWSFEED_TYPE: u32 = 2350841867u32;
37385pub const PR_EMS_AB_INBOUND_NEWSFEED_W: u32 = 2173894687u32;
37386pub const PR_EMS_AB_INBOUND_SITES: u32 = 2159808542u32;
37387pub const PR_EMS_AB_INBOUND_SITES_A: u32 = 2159808542u32;
37388pub const PR_EMS_AB_INBOUND_SITES_O: u32 = 2159804429u32;
37389pub const PR_EMS_AB_INBOUND_SITES_T: u32 = 2159808542u32;
37390pub const PR_EMS_AB_INBOUND_SITES_W: u32 = 2159808543u32;
37391pub const PR_EMS_AB_INCOMING_MSG_SIZE_LIMIT: u32 = 2173698051u32;
37392pub const PR_EMS_AB_INCOMING_PASSWORD: u32 = 2175729922u32;
37393pub const PR_EMS_AB_INSADMIN: u32 = 2177171486u32;
37394pub const PR_EMS_AB_INSADMIN_A: u32 = 2177171486u32;
37395pub const PR_EMS_AB_INSADMIN_O: u32 = 2177171469u32;
37396pub const PR_EMS_AB_INSADMIN_T: u32 = 2177171486u32;
37397pub const PR_EMS_AB_INSADMIN_W: u32 = 2177171487u32;
37398pub const PR_EMS_AB_INSTANCE_TYPE: u32 = 2159869955u32;
37399pub const PR_EMS_AB_INTERNATIONAL_ISDN_NUMBER: u32 = 2159939614u32;
37400pub const PR_EMS_AB_INTERNATIONAL_ISDN_NUMBER_A: u32 = 2159939614u32;
37401pub const PR_EMS_AB_INTERNATIONAL_ISDN_NUMBER_W: u32 = 2159939615u32;
37402pub const PR_EMS_AB_INVOCATION_ID: u32 = 2160001282u32;
37403pub const PR_EMS_AB_IS_DELETED: u32 = 2160066571u32;
37404pub const PR_EMS_AB_IS_MASTER: u32 = 4294639627u32;
37405pub const PR_EMS_AB_IS_MEMBER_OF_DL: u32 = 2148007949u32;
37406pub const PR_EMS_AB_IS_MEMBER_OF_DL_A: u32 = 2148012062u32;
37407pub const PR_EMS_AB_IS_MEMBER_OF_DL_O: u32 = 2148007949u32;
37408pub const PR_EMS_AB_IS_MEMBER_OF_DL_T: u32 = 2148012062u32;
37409pub const PR_EMS_AB_IS_MEMBER_OF_DL_W: u32 = 2148012063u32;
37410pub const PR_EMS_AB_IS_SINGLE_VALUED: u32 = 2160132107u32;
37411pub const PR_EMS_AB_KCC_STATUS: u32 = 2160201986u32;
37412pub const PR_EMS_AB_KM_SERVER: u32 = 2148335646u32;
37413pub const PR_EMS_AB_KM_SERVER_A: u32 = 2148335646u32;
37414pub const PR_EMS_AB_KM_SERVER_O: u32 = 2148335629u32;
37415pub const PR_EMS_AB_KM_SERVER_T: u32 = 2148335646u32;
37416pub const PR_EMS_AB_KM_SERVER_W: u32 = 2148335647u32;
37417pub const PR_EMS_AB_KNOWLEDGE_INFORMATION: u32 = 2160267294u32;
37418pub const PR_EMS_AB_KNOWLEDGE_INFORMATION_A: u32 = 2160267294u32;
37419pub const PR_EMS_AB_KNOWLEDGE_INFORMATION_W: u32 = 2160267295u32;
37420pub const PR_EMS_AB_LABELEDURI: u32 = 2354118686u32;
37421pub const PR_EMS_AB_LABELEDURI_A: u32 = 2354118686u32;
37422pub const PR_EMS_AB_LABELEDURI_W: u32 = 2354118687u32;
37423pub const PR_EMS_AB_LANGUAGE: u32 = 2172125187u32;
37424pub const PR_EMS_AB_LANGUAGE_ISO639: u32 = 2355888158u32;
37425pub const PR_EMS_AB_LANGUAGE_ISO639_A: u32 = 2355888158u32;
37426pub const PR_EMS_AB_LANGUAGE_ISO639_W: u32 = 2355888159u32;
37427pub const PR_EMS_AB_LDAP_DISPLAY_NAME: u32 = 2171670558u32;
37428pub const PR_EMS_AB_LDAP_DISPLAY_NAME_A: u32 = 2171670558u32;
37429pub const PR_EMS_AB_LDAP_DISPLAY_NAME_W: u32 = 2171670559u32;
37430pub const PR_EMS_AB_LDAP_SEARCH_CFG: u32 = 2350710787u32;
37431pub const PR_EMS_AB_LINE_WRAP: u32 = 2160328707u32;
37432pub const PR_EMS_AB_LINK_ID: u32 = 2160394243u32;
37433pub const PR_EMS_AB_LIST_PUBLIC_FOLDERS: u32 = 2354053131u32;
37434pub const PR_EMS_AB_LOCAL_BRIDGE_HEAD: u32 = 2160459806u32;
37435pub const PR_EMS_AB_LOCAL_BRIDGE_HEAD_A: u32 = 2160459806u32;
37436pub const PR_EMS_AB_LOCAL_BRIDGE_HEAD_ADDRESS: u32 = 2160525342u32;
37437pub const PR_EMS_AB_LOCAL_BRIDGE_HEAD_ADDRESS_A: u32 = 2160525342u32;
37438pub const PR_EMS_AB_LOCAL_BRIDGE_HEAD_ADDRESS_W: u32 = 2160525343u32;
37439pub const PR_EMS_AB_LOCAL_BRIDGE_HEAD_W: u32 = 2160459807u32;
37440pub const PR_EMS_AB_LOCAL_INITIAL_TURN: u32 = 2160590859u32;
37441pub const PR_EMS_AB_LOCAL_SCOPE: u32 = 2160660510u32;
37442pub const PR_EMS_AB_LOCAL_SCOPE_A: u32 = 2160660510u32;
37443pub const PR_EMS_AB_LOCAL_SCOPE_O: u32 = 2160656397u32;
37444pub const PR_EMS_AB_LOCAL_SCOPE_T: u32 = 2160660510u32;
37445pub const PR_EMS_AB_LOCAL_SCOPE_W: u32 = 2160660511u32;
37446pub const PR_EMS_AB_LOG_FILENAME: u32 = 2160721950u32;
37447pub const PR_EMS_AB_LOG_FILENAME_A: u32 = 2160721950u32;
37448pub const PR_EMS_AB_LOG_FILENAME_W: u32 = 2160721951u32;
37449pub const PR_EMS_AB_LOG_ROLLOVER_INTERVAL: u32 = 2160787459u32;
37450pub const PR_EMS_AB_MAIL_DROP: u32 = 2355298334u32;
37451pub const PR_EMS_AB_MAIL_DROP_A: u32 = 2355298334u32;
37452pub const PR_EMS_AB_MAIL_DROP_W: u32 = 2355298335u32;
37453pub const PR_EMS_AB_MAINTAIN_AUTOREPLY_HISTORY: u32 = 2160853003u32;
37454pub const PR_EMS_AB_MANAGER: u32 = 2147811341u32;
37455pub const PR_EMS_AB_MANAGER_A: u32 = 2147811358u32;
37456pub const PR_EMS_AB_MANAGER_O: u32 = 2147811341u32;
37457pub const PR_EMS_AB_MANAGER_T: u32 = 2147811358u32;
37458pub const PR_EMS_AB_MANAGER_W: u32 = 2147811359u32;
37459pub const PR_EMS_AB_MAPI_DISPLAY_TYPE: u32 = 2160918531u32;
37460pub const PR_EMS_AB_MAPI_ID: u32 = 2160984067u32;
37461pub const PR_EMS_AB_MAXIMUM_OBJECT_ID: u32 = 2171142402u32;
37462pub const PR_EMS_AB_MDB_BACKOFF_INTERVAL: u32 = 2161049603u32;
37463pub const PR_EMS_AB_MDB_MSG_TIME_OUT_PERIOD: u32 = 2161115139u32;
37464pub const PR_EMS_AB_MDB_OVER_QUOTA_LIMIT: u32 = 2161180675u32;
37465pub const PR_EMS_AB_MDB_STORAGE_QUOTA: u32 = 2161246211u32;
37466pub const PR_EMS_AB_MDB_UNREAD_LIMIT: u32 = 2161311747u32;
37467pub const PR_EMS_AB_MDB_USE_DEFAULTS: u32 = 2161377291u32;
37468pub const PR_EMS_AB_MEMBER: u32 = 2148073485u32;
37469pub const PR_EMS_AB_MEMBER_A: u32 = 2148077598u32;
37470pub const PR_EMS_AB_MEMBER_O: u32 = 2148073485u32;
37471pub const PR_EMS_AB_MEMBER_T: u32 = 2148077598u32;
37472pub const PR_EMS_AB_MEMBER_W: u32 = 2148077599u32;
37473pub const PR_EMS_AB_MESSAGE_TRACKING_ENABLED: u32 = 2161442827u32;
37474pub const PR_EMS_AB_MIME_TYPES: u32 = 2350645506u32;
37475pub const PR_EMS_AB_MODERATED: u32 = 2175533067u32;
37476pub const PR_EMS_AB_MODERATOR: u32 = 2174287902u32;
37477pub const PR_EMS_AB_MODERATOR_A: u32 = 2174287902u32;
37478pub const PR_EMS_AB_MODERATOR_W: u32 = 2174287903u32;
37479pub const PR_EMS_AB_MONITORED_CONFIGURATIONS: u32 = 2161709086u32;
37480pub const PR_EMS_AB_MONITORED_CONFIGURATIONS_A: u32 = 2161709086u32;
37481pub const PR_EMS_AB_MONITORED_CONFIGURATIONS_O: u32 = 2161704973u32;
37482pub const PR_EMS_AB_MONITORED_CONFIGURATIONS_T: u32 = 2161709086u32;
37483pub const PR_EMS_AB_MONITORED_CONFIGURATIONS_W: u32 = 2161709087u32;
37484pub const PR_EMS_AB_MONITORED_SERVERS: u32 = 2161774622u32;
37485pub const PR_EMS_AB_MONITORED_SERVERS_A: u32 = 2161774622u32;
37486pub const PR_EMS_AB_MONITORED_SERVERS_O: u32 = 2161770509u32;
37487pub const PR_EMS_AB_MONITORED_SERVERS_T: u32 = 2161774622u32;
37488pub const PR_EMS_AB_MONITORED_SERVERS_W: u32 = 2161774623u32;
37489pub const PR_EMS_AB_MONITORED_SERVICES: u32 = 2161840158u32;
37490pub const PR_EMS_AB_MONITORED_SERVICES_A: u32 = 2161840158u32;
37491pub const PR_EMS_AB_MONITORED_SERVICES_W: u32 = 2161840159u32;
37492pub const PR_EMS_AB_MONITORING_ALERT_DELAY: u32 = 2161901571u32;
37493pub const PR_EMS_AB_MONITORING_ALERT_UNITS: u32 = 2161967107u32;
37494pub const PR_EMS_AB_MONITORING_AVAILABILITY_STYLE: u32 = 2162032643u32;
37495pub const PR_EMS_AB_MONITORING_AVAILABILITY_WINDOW: u32 = 2162098434u32;
37496pub const PR_EMS_AB_MONITORING_CACHED_VIA_MAIL: u32 = 2162167838u32;
37497pub const PR_EMS_AB_MONITORING_CACHED_VIA_MAIL_A: u32 = 2162167838u32;
37498pub const PR_EMS_AB_MONITORING_CACHED_VIA_MAIL_O: u32 = 2162163725u32;
37499pub const PR_EMS_AB_MONITORING_CACHED_VIA_MAIL_T: u32 = 2162167838u32;
37500pub const PR_EMS_AB_MONITORING_CACHED_VIA_MAIL_W: u32 = 2162167839u32;
37501pub const PR_EMS_AB_MONITORING_CACHED_VIA_RPC: u32 = 2162233374u32;
37502pub const PR_EMS_AB_MONITORING_CACHED_VIA_RPC_A: u32 = 2162233374u32;
37503pub const PR_EMS_AB_MONITORING_CACHED_VIA_RPC_O: u32 = 2162229261u32;
37504pub const PR_EMS_AB_MONITORING_CACHED_VIA_RPC_T: u32 = 2162233374u32;
37505pub const PR_EMS_AB_MONITORING_CACHED_VIA_RPC_W: u32 = 2162233375u32;
37506pub const PR_EMS_AB_MONITORING_ESCALATION_PROCEDURE: u32 = 2162299138u32;
37507pub const PR_EMS_AB_MONITORING_HOTSITE_POLL_INTERVAL: u32 = 2162360323u32;
37508pub const PR_EMS_AB_MONITORING_HOTSITE_POLL_UNITS: u32 = 2162425859u32;
37509pub const PR_EMS_AB_MONITORING_MAIL_UPDATE_INTERVAL: u32 = 2162491395u32;
37510pub const PR_EMS_AB_MONITORING_MAIL_UPDATE_UNITS: u32 = 2162556931u32;
37511pub const PR_EMS_AB_MONITORING_NORMAL_POLL_INTERVAL: u32 = 2162622467u32;
37512pub const PR_EMS_AB_MONITORING_NORMAL_POLL_UNITS: u32 = 2162688003u32;
37513pub const PR_EMS_AB_MONITORING_RECIPIENTS: u32 = 2162757662u32;
37514pub const PR_EMS_AB_MONITORING_RECIPIENTS_A: u32 = 2162757662u32;
37515pub const PR_EMS_AB_MONITORING_RECIPIENTS_NDR: u32 = 2162823198u32;
37516pub const PR_EMS_AB_MONITORING_RECIPIENTS_NDR_A: u32 = 2162823198u32;
37517pub const PR_EMS_AB_MONITORING_RECIPIENTS_NDR_O: u32 = 2162819085u32;
37518pub const PR_EMS_AB_MONITORING_RECIPIENTS_NDR_T: u32 = 2162823198u32;
37519pub const PR_EMS_AB_MONITORING_RECIPIENTS_NDR_W: u32 = 2162823199u32;
37520pub const PR_EMS_AB_MONITORING_RECIPIENTS_O: u32 = 2162753549u32;
37521pub const PR_EMS_AB_MONITORING_RECIPIENTS_T: u32 = 2162757662u32;
37522pub const PR_EMS_AB_MONITORING_RECIPIENTS_W: u32 = 2162757663u32;
37523pub const PR_EMS_AB_MONITORING_RPC_UPDATE_INTERVAL: u32 = 2162884611u32;
37524pub const PR_EMS_AB_MONITORING_RPC_UPDATE_UNITS: u32 = 2162950147u32;
37525pub const PR_EMS_AB_MONITORING_WARNING_DELAY: u32 = 2163015683u32;
37526pub const PR_EMS_AB_MONITORING_WARNING_UNITS: u32 = 2163081219u32;
37527pub const PR_EMS_AB_MONITOR_CLOCK: u32 = 2161508363u32;
37528pub const PR_EMS_AB_MONITOR_SERVERS: u32 = 2161573899u32;
37529pub const PR_EMS_AB_MONITOR_SERVICES: u32 = 2161639435u32;
37530pub const PR_EMS_AB_MTA_LOCAL_CRED: u32 = 2163146782u32;
37531pub const PR_EMS_AB_MTA_LOCAL_CRED_A: u32 = 2163146782u32;
37532pub const PR_EMS_AB_MTA_LOCAL_CRED_W: u32 = 2163146783u32;
37533pub const PR_EMS_AB_MTA_LOCAL_DESIG: u32 = 2163212318u32;
37534pub const PR_EMS_AB_MTA_LOCAL_DESIG_A: u32 = 2163212318u32;
37535pub const PR_EMS_AB_MTA_LOCAL_DESIG_W: u32 = 2163212319u32;
37536pub const PR_EMS_AB_NETWORK_ADDRESS: u32 = 2171605022u32;
37537pub const PR_EMS_AB_NETWORK_ADDRESS_A: u32 = 2171605022u32;
37538pub const PR_EMS_AB_NETWORK_ADDRESS_W: u32 = 2171605023u32;
37539pub const PR_EMS_AB_NEWSFEED_TYPE: u32 = 2173960195u32;
37540pub const PR_EMS_AB_NEWSGROUP: u32 = 2174222366u32;
37541pub const PR_EMS_AB_NEWSGROUP_A: u32 = 2174222366u32;
37542pub const PR_EMS_AB_NEWSGROUP_LIST: u32 = 2174091522u32;
37543pub const PR_EMS_AB_NEWSGROUP_W: u32 = 2174222367u32;
37544pub const PR_EMS_AB_NNTP_CHARACTER_SET: u32 = 2172452894u32;
37545pub const PR_EMS_AB_NNTP_CHARACTER_SET_A: u32 = 2172452894u32;
37546pub const PR_EMS_AB_NNTP_CHARACTER_SET_W: u32 = 2172452895u32;
37547pub const PR_EMS_AB_NNTP_CONTENT_FORMAT: u32 = 2171994142u32;
37548pub const PR_EMS_AB_NNTP_CONTENT_FORMAT_A: u32 = 2171994142u32;
37549pub const PR_EMS_AB_NNTP_CONTENT_FORMAT_W: u32 = 2171994143u32;
37550pub const PR_EMS_AB_NNTP_DISTRIBUTIONS: u32 = 2174160926u32;
37551pub const PR_EMS_AB_NNTP_DISTRIBUTIONS_A: u32 = 2174160926u32;
37552pub const PR_EMS_AB_NNTP_DISTRIBUTIONS_FLAG: u32 = 2175008779u32;
37553pub const PR_EMS_AB_NNTP_DISTRIBUTIONS_W: u32 = 2174160927u32;
37554pub const PR_EMS_AB_NNTP_NEWSFEEDS: u32 = 2175143966u32;
37555pub const PR_EMS_AB_NNTP_NEWSFEEDS_A: u32 = 2175143966u32;
37556pub const PR_EMS_AB_NNTP_NEWSFEEDS_O: u32 = 2175139853u32;
37557pub const PR_EMS_AB_NNTP_NEWSFEEDS_T: u32 = 2175143966u32;
37558pub const PR_EMS_AB_NNTP_NEWSFEEDS_W: u32 = 2175143967u32;
37559pub const PR_EMS_AB_NT_MACHINE_NAME: u32 = 2163408926u32;
37560pub const PR_EMS_AB_NT_MACHINE_NAME_A: u32 = 2163408926u32;
37561pub const PR_EMS_AB_NT_MACHINE_NAME_W: u32 = 2163408927u32;
37562pub const PR_EMS_AB_NT_SECURITY_DESCRIPTOR: u32 = 2148729090u32;
37563pub const PR_EMS_AB_NUM_OF_OPEN_RETRIES: u32 = 2163474435u32;
37564pub const PR_EMS_AB_NUM_OF_TRANSFER_RETRIES: u32 = 2163539971u32;
37565pub const PR_EMS_AB_N_ADDRESS: u32 = 2163278082u32;
37566pub const PR_EMS_AB_N_ADDRESS_TYPE: u32 = 2163343363u32;
37567pub const PR_EMS_AB_OBJECT_CLASS_CATEGORY: u32 = 2163605507u32;
37568pub const PR_EMS_AB_OBJECT_GUID: u32 = 2355953922u32;
37569pub const PR_EMS_AB_OBJECT_OID: u32 = 4294574338u32;
37570pub const PR_EMS_AB_OBJECT_VERSION: u32 = 2163671043u32;
37571pub const PR_EMS_AB_OBJ_DIST_NAME: u32 = 2151415838u32;
37572pub const PR_EMS_AB_OBJ_DIST_NAME_A: u32 = 2151415838u32;
37573pub const PR_EMS_AB_OBJ_DIST_NAME_O: u32 = 2151415821u32;
37574pub const PR_EMS_AB_OBJ_DIST_NAME_T: u32 = 2151415838u32;
37575pub const PR_EMS_AB_OBJ_DIST_NAME_W: u32 = 2151415839u32;
37576pub const PR_EMS_AB_OBJ_VIEW_CONTAINERS: u32 = 2177306654u32;
37577pub const PR_EMS_AB_OBJ_VIEW_CONTAINERS_A: u32 = 2177306654u32;
37578pub const PR_EMS_AB_OBJ_VIEW_CONTAINERS_O: u32 = 2177302541u32;
37579pub const PR_EMS_AB_OBJ_VIEW_CONTAINERS_T: u32 = 2177306654u32;
37580pub const PR_EMS_AB_OBJ_VIEW_CONTAINERS_W: u32 = 2177306655u32;
37581pub const PR_EMS_AB_OFF_LINE_AB_CONTAINERS: u32 = 2163740702u32;
37582pub const PR_EMS_AB_OFF_LINE_AB_CONTAINERS_A: u32 = 2163740702u32;
37583pub const PR_EMS_AB_OFF_LINE_AB_CONTAINERS_O: u32 = 2163736589u32;
37584pub const PR_EMS_AB_OFF_LINE_AB_CONTAINERS_T: u32 = 2163740702u32;
37585pub const PR_EMS_AB_OFF_LINE_AB_CONTAINERS_W: u32 = 2163740703u32;
37586pub const PR_EMS_AB_OFF_LINE_AB_SCHEDULE: u32 = 2163802370u32;
37587pub const PR_EMS_AB_OFF_LINE_AB_SERVER: u32 = 2163867678u32;
37588pub const PR_EMS_AB_OFF_LINE_AB_SERVER_A: u32 = 2163867678u32;
37589pub const PR_EMS_AB_OFF_LINE_AB_SERVER_O: u32 = 2163867661u32;
37590pub const PR_EMS_AB_OFF_LINE_AB_SERVER_T: u32 = 2163867678u32;
37591pub const PR_EMS_AB_OFF_LINE_AB_SERVER_W: u32 = 2163867679u32;
37592pub const PR_EMS_AB_OFF_LINE_AB_STYLE: u32 = 2163933187u32;
37593pub const PR_EMS_AB_OID_TYPE: u32 = 2163998723u32;
37594pub const PR_EMS_AB_OM_OBJECT_CLASS: u32 = 2164064514u32;
37595pub const PR_EMS_AB_OM_SYNTAX: u32 = 2164129795u32;
37596pub const PR_EMS_AB_OOF_REPLY_TO_ORIGINATOR: u32 = 2164195339u32;
37597pub const PR_EMS_AB_OPEN_RETRY_INTERVAL: u32 = 2164260867u32;
37598pub const PR_EMS_AB_ORGANIZATIONAL_UNIT_NAME: u32 = 2164396062u32;
37599pub const PR_EMS_AB_ORGANIZATIONAL_UNIT_NAME_A: u32 = 2164396062u32;
37600pub const PR_EMS_AB_ORGANIZATIONAL_UNIT_NAME_W: u32 = 2164396063u32;
37601pub const PR_EMS_AB_ORGANIZATION_NAME: u32 = 2164330526u32;
37602pub const PR_EMS_AB_ORGANIZATION_NAME_A: u32 = 2164330526u32;
37603pub const PR_EMS_AB_ORGANIZATION_NAME_W: u32 = 2164330527u32;
37604pub const PR_EMS_AB_ORG_UNIT_ROOT_DN: u32 = 2359820318u32;
37605pub const PR_EMS_AB_ORIGINAL_DISPLAY_TABLE: u32 = 2164457730u32;
37606pub const PR_EMS_AB_ORIGINAL_DISPLAY_TABLE_MSDOS: u32 = 2164523266u32;
37607pub const PR_EMS_AB_OTHER_RECIPS: u32 = 4026531853u32;
37608pub const PR_EMS_AB_OUTBOUND_HOST: u32 = 2173501698u32;
37609pub const PR_EMS_AB_OUTBOUND_HOST_TYPE: u32 = 2175795211u32;
37610pub const PR_EMS_AB_OUTBOUND_NEWSFEED: u32 = 2174025758u32;
37611pub const PR_EMS_AB_OUTBOUND_NEWSFEED_A: u32 = 2174025758u32;
37612pub const PR_EMS_AB_OUTBOUND_NEWSFEED_W: u32 = 2174025759u32;
37613pub const PR_EMS_AB_OUTBOUND_SITES: u32 = 2164592670u32;
37614pub const PR_EMS_AB_OUTBOUND_SITES_A: u32 = 2164592670u32;
37615pub const PR_EMS_AB_OUTBOUND_SITES_O: u32 = 2164588557u32;
37616pub const PR_EMS_AB_OUTBOUND_SITES_T: u32 = 2164592670u32;
37617pub const PR_EMS_AB_OUTBOUND_SITES_W: u32 = 2164592671u32;
37618pub const PR_EMS_AB_OUTGOING_MSG_SIZE_LIMIT: u32 = 2173632515u32;
37619pub const PR_EMS_AB_OVERRIDE_NNTP_CONTENT_FORMAT: u32 = 2177237003u32;
37620pub const PR_EMS_AB_OWA_SERVER: u32 = 2355494942u32;
37621pub const PR_EMS_AB_OWA_SERVER_A: u32 = 2355494942u32;
37622pub const PR_EMS_AB_OWA_SERVER_W: u32 = 2355494943u32;
37623pub const PR_EMS_AB_OWNER: u32 = 2148270110u32;
37624pub const PR_EMS_AB_OWNER_A: u32 = 2148270110u32;
37625pub const PR_EMS_AB_OWNER_BL: u32 = 2149847070u32;
37626pub const PR_EMS_AB_OWNER_BL_A: u32 = 2149847070u32;
37627pub const PR_EMS_AB_OWNER_BL_O: u32 = 2149842957u32;
37628pub const PR_EMS_AB_OWNER_BL_T: u32 = 2149847070u32;
37629pub const PR_EMS_AB_OWNER_BL_W: u32 = 2149847071u32;
37630pub const PR_EMS_AB_OWNER_O: u32 = 2148270093u32;
37631pub const PR_EMS_AB_OWNER_T: u32 = 2148270110u32;
37632pub const PR_EMS_AB_OWNER_W: u32 = 2148270111u32;
37633pub const PR_EMS_AB_PARENT_ENTRYID: u32 = 4294705410u32;
37634pub const PR_EMS_AB_PERIOD_REPL_STAGGER: u32 = 2164981763u32;
37635pub const PR_EMS_AB_PERIOD_REP_SYNC_TIMES: u32 = 2164916482u32;
37636pub const PR_EMS_AB_PERSONAL_TITLE: u32 = 2355822622u32;
37637pub const PR_EMS_AB_PERSONAL_TITLE_A: u32 = 2355822622u32;
37638pub const PR_EMS_AB_PERSONAL_TITLE_W: u32 = 2355822623u32;
37639pub const PR_EMS_AB_PER_MSG_DIALOG_DISPLAY_TABLE: u32 = 2164785410u32;
37640pub const PR_EMS_AB_PER_RECIP_DIALOG_DISPLAY_TABLE: u32 = 2164850946u32;
37641pub const PR_EMS_AB_PF_CONTACTS: u32 = 2151157790u32;
37642pub const PR_EMS_AB_PF_CONTACTS_A: u32 = 2151157790u32;
37643pub const PR_EMS_AB_PF_CONTACTS_O: u32 = 2151153677u32;
37644pub const PR_EMS_AB_PF_CONTACTS_T: u32 = 2151157790u32;
37645pub const PR_EMS_AB_PF_CONTACTS_W: u32 = 2151157791u32;
37646pub const PR_EMS_AB_PHONETIC_COMPANY_NAME: u32 = 2358312990u32;
37647pub const PR_EMS_AB_PHONETIC_COMPANY_NAME_A: u32 = 2358312990u32;
37648pub const PR_EMS_AB_PHONETIC_COMPANY_NAME_W: u32 = 2358312991u32;
37649pub const PR_EMS_AB_PHONETIC_DEPARTMENT_NAME: u32 = 2358247454u32;
37650pub const PR_EMS_AB_PHONETIC_DEPARTMENT_NAME_A: u32 = 2358247454u32;
37651pub const PR_EMS_AB_PHONETIC_DEPARTMENT_NAME_W: u32 = 2358247455u32;
37652pub const PR_EMS_AB_PHONETIC_DISPLAY_NAME: u32 = 2358378526u32;
37653pub const PR_EMS_AB_PHONETIC_DISPLAY_NAME_A: u32 = 2358378526u32;
37654pub const PR_EMS_AB_PHONETIC_DISPLAY_NAME_W: u32 = 2358378527u32;
37655pub const PR_EMS_AB_PHONETIC_GIVEN_NAME: u32 = 2358116382u32;
37656pub const PR_EMS_AB_PHONETIC_GIVEN_NAME_A: u32 = 2358116382u32;
37657pub const PR_EMS_AB_PHONETIC_GIVEN_NAME_W: u32 = 2358116383u32;
37658pub const PR_EMS_AB_PHONETIC_SURNAME: u32 = 2358181918u32;
37659pub const PR_EMS_AB_PHONETIC_SURNAME_A: u32 = 2358181918u32;
37660pub const PR_EMS_AB_PHONETIC_SURNAME_W: u32 = 2358181919u32;
37661pub const PR_EMS_AB_POP_CHARACTER_SET: u32 = 2172190750u32;
37662pub const PR_EMS_AB_POP_CHARACTER_SET_A: u32 = 2172190750u32;
37663pub const PR_EMS_AB_POP_CHARACTER_SET_W: u32 = 2172190751u32;
37664pub const PR_EMS_AB_POP_CONTENT_FORMAT: u32 = 2172059678u32;
37665pub const PR_EMS_AB_POP_CONTENT_FORMAT_A: u32 = 2172059678u32;
37666pub const PR_EMS_AB_POP_CONTENT_FORMAT_W: u32 = 2172059679u32;
37667pub const PR_EMS_AB_PORT_NUMBER: u32 = 2176122883u32;
37668pub const PR_EMS_AB_POSTAL_ADDRESS: u32 = 2165051650u32;
37669pub const PR_EMS_AB_PREFERRED_DELIVERY_METHOD: u32 = 2165116931u32;
37670pub const PR_EMS_AB_PRESERVE_INTERNET_CONTENT: u32 = 2351038475u32;
37671pub const PR_EMS_AB_PRMD: u32 = 2165178398u32;
37672pub const PR_EMS_AB_PRMD_A: u32 = 2165178398u32;
37673pub const PR_EMS_AB_PRMD_W: u32 = 2165178399u32;
37674pub const PR_EMS_AB_PROMO_EXPIRATION: u32 = 2176974912u32;
37675pub const PR_EMS_AB_PROTOCOL_SETTINGS: u32 = 2176192542u32;
37676pub const PR_EMS_AB_PROTOCOL_SETTINGS_A: u32 = 2176192542u32;
37677pub const PR_EMS_AB_PROTOCOL_SETTINGS_W: u32 = 2176192543u32;
37678pub const PR_EMS_AB_PROXY_ADDRESSES: u32 = 2148470814u32;
37679pub const PR_EMS_AB_PROXY_ADDRESSES_A: u32 = 2148470814u32;
37680pub const PR_EMS_AB_PROXY_ADDRESSES_W: u32 = 2148470815u32;
37681pub const PR_EMS_AB_PROXY_GENERATION_ENABLED: u32 = 2175860747u32;
37682pub const PR_EMS_AB_PROXY_GENERATOR_DLL: u32 = 2165243934u32;
37683pub const PR_EMS_AB_PROXY_GENERATOR_DLL_A: u32 = 2165243934u32;
37684pub const PR_EMS_AB_PROXY_GENERATOR_DLL_W: u32 = 2165243935u32;
37685pub const PR_EMS_AB_PUBLIC_DELEGATES: u32 = 2148859917u32;
37686pub const PR_EMS_AB_PUBLIC_DELEGATES_A: u32 = 2148864030u32;
37687pub const PR_EMS_AB_PUBLIC_DELEGATES_BL: u32 = 2165313566u32;
37688pub const PR_EMS_AB_PUBLIC_DELEGATES_BL_A: u32 = 2165313566u32;
37689pub const PR_EMS_AB_PUBLIC_DELEGATES_BL_O: u32 = 2165309453u32;
37690pub const PR_EMS_AB_PUBLIC_DELEGATES_BL_T: u32 = 2165313566u32;
37691pub const PR_EMS_AB_PUBLIC_DELEGATES_BL_W: u32 = 2165313567u32;
37692pub const PR_EMS_AB_PUBLIC_DELEGATES_O: u32 = 2148859917u32;
37693pub const PR_EMS_AB_PUBLIC_DELEGATES_T: u32 = 2148864030u32;
37694pub const PR_EMS_AB_PUBLIC_DELEGATES_W: u32 = 2148864031u32;
37695pub const PR_EMS_AB_P_SELECTOR: u32 = 2164654338u32;
37696pub const PR_EMS_AB_P_SELECTOR_INBOUND: u32 = 2164719874u32;
37697pub const PR_EMS_AB_QUOTA_NOTIFICATION_SCHEDULE: u32 = 2165375234u32;
37698pub const PR_EMS_AB_QUOTA_NOTIFICATION_STYLE: u32 = 2165440515u32;
37699pub const PR_EMS_AB_RANGE_LOWER: u32 = 2165506051u32;
37700pub const PR_EMS_AB_RANGE_UPPER: u32 = 2165571587u32;
37701pub const PR_EMS_AB_RAS_ACCOUNT: u32 = 2175598622u32;
37702pub const PR_EMS_AB_RAS_ACCOUNT_A: u32 = 2175598622u32;
37703pub const PR_EMS_AB_RAS_ACCOUNT_W: u32 = 2175598623u32;
37704pub const PR_EMS_AB_RAS_CALLBACK_NUMBER: u32 = 2165637150u32;
37705pub const PR_EMS_AB_RAS_CALLBACK_NUMBER_A: u32 = 2165637150u32;
37706pub const PR_EMS_AB_RAS_CALLBACK_NUMBER_W: u32 = 2165637151u32;
37707pub const PR_EMS_AB_RAS_PASSWORD: u32 = 2175664386u32;
37708pub const PR_EMS_AB_RAS_PHONEBOOK_ENTRY_NAME: u32 = 2165768222u32;
37709pub const PR_EMS_AB_RAS_PHONEBOOK_ENTRY_NAME_A: u32 = 2165768222u32;
37710pub const PR_EMS_AB_RAS_PHONEBOOK_ENTRY_NAME_W: u32 = 2165768223u32;
37711pub const PR_EMS_AB_RAS_PHONE_NUMBER: u32 = 2165702686u32;
37712pub const PR_EMS_AB_RAS_PHONE_NUMBER_A: u32 = 2165702686u32;
37713pub const PR_EMS_AB_RAS_PHONE_NUMBER_W: u32 = 2165702687u32;
37714pub const PR_EMS_AB_RAS_REMOTE_SRVR_NAME: u32 = 2165833758u32;
37715pub const PR_EMS_AB_RAS_REMOTE_SRVR_NAME_A: u32 = 2165833758u32;
37716pub const PR_EMS_AB_RAS_REMOTE_SRVR_NAME_W: u32 = 2165833759u32;
37717pub const PR_EMS_AB_REFERRAL_LIST: u32 = 2174947358u32;
37718pub const PR_EMS_AB_REFERRAL_LIST_A: u32 = 2174947358u32;
37719pub const PR_EMS_AB_REFERRAL_LIST_W: u32 = 2174947359u32;
37720pub const PR_EMS_AB_REGISTERED_ADDRESS: u32 = 2165903618u32;
37721pub const PR_EMS_AB_REMOTE_BRIDGE_HEAD: u32 = 2165964830u32;
37722pub const PR_EMS_AB_REMOTE_BRIDGE_HEAD_A: u32 = 2165964830u32;
37723pub const PR_EMS_AB_REMOTE_BRIDGE_HEAD_ADDRESS: u32 = 2166030366u32;
37724pub const PR_EMS_AB_REMOTE_BRIDGE_HEAD_ADDRESS_A: u32 = 2166030366u32;
37725pub const PR_EMS_AB_REMOTE_BRIDGE_HEAD_ADDRESS_W: u32 = 2166030367u32;
37726pub const PR_EMS_AB_REMOTE_BRIDGE_HEAD_W: u32 = 2165964831u32;
37727pub const PR_EMS_AB_REMOTE_OUT_BH_SERVER: u32 = 2166095902u32;
37728pub const PR_EMS_AB_REMOTE_OUT_BH_SERVER_A: u32 = 2166095902u32;
37729pub const PR_EMS_AB_REMOTE_OUT_BH_SERVER_O: u32 = 2166095885u32;
37730pub const PR_EMS_AB_REMOTE_OUT_BH_SERVER_T: u32 = 2166095902u32;
37731pub const PR_EMS_AB_REMOTE_OUT_BH_SERVER_W: u32 = 2166095903u32;
37732pub const PR_EMS_AB_REMOTE_SITE: u32 = 2166161438u32;
37733pub const PR_EMS_AB_REMOTE_SITE_A: u32 = 2166161438u32;
37734pub const PR_EMS_AB_REMOTE_SITE_O: u32 = 2166161421u32;
37735pub const PR_EMS_AB_REMOTE_SITE_T: u32 = 2166161438u32;
37736pub const PR_EMS_AB_REMOTE_SITE_W: u32 = 2166161439u32;
37737pub const PR_EMS_AB_REPLICATED_OBJECT_VERSION: u32 = 2355232771u32;
37738pub const PR_EMS_AB_REPLICATION_MAIL_MSG_SIZE: u32 = 2171076611u32;
37739pub const PR_EMS_AB_REPLICATION_SENSITIVITY: u32 = 2166226947u32;
37740pub const PR_EMS_AB_REPLICATION_SIGNATURE: u32 = 2356019458u32;
37741pub const PR_EMS_AB_REPLICATION_STAGGER: u32 = 2166292483u32;
37742pub const PR_EMS_AB_REPORTS: u32 = 2148401165u32;
37743pub const PR_EMS_AB_REPORTS_A: u32 = 2148405278u32;
37744pub const PR_EMS_AB_REPORTS_O: u32 = 2148401165u32;
37745pub const PR_EMS_AB_REPORTS_T: u32 = 2148405278u32;
37746pub const PR_EMS_AB_REPORTS_W: u32 = 2148405279u32;
37747pub const PR_EMS_AB_REPORT_TO_ORIGINATOR: u32 = 2166358027u32;
37748pub const PR_EMS_AB_REPORT_TO_OWNER: u32 = 2166423563u32;
37749pub const PR_EMS_AB_REQUIRE_SSL: u32 = 2351235083u32;
37750pub const PR_EMS_AB_REQ_SEQ: u32 = 2166489091u32;
37751pub const PR_EMS_AB_RESPONSIBLE_LOCAL_DXA: u32 = 2166554654u32;
37752pub const PR_EMS_AB_RESPONSIBLE_LOCAL_DXA_A: u32 = 2166554654u32;
37753pub const PR_EMS_AB_RESPONSIBLE_LOCAL_DXA_O: u32 = 2166554637u32;
37754pub const PR_EMS_AB_RESPONSIBLE_LOCAL_DXA_T: u32 = 2166554654u32;
37755pub const PR_EMS_AB_RESPONSIBLE_LOCAL_DXA_W: u32 = 2166554655u32;
37756pub const PR_EMS_AB_RETURN_EXACT_MSG_SIZE: u32 = 2354184203u32;
37757pub const PR_EMS_AB_RID_SERVER: u32 = 2166620190u32;
37758pub const PR_EMS_AB_RID_SERVER_A: u32 = 2166620190u32;
37759pub const PR_EMS_AB_RID_SERVER_O: u32 = 2166620173u32;
37760pub const PR_EMS_AB_RID_SERVER_T: u32 = 2166620190u32;
37761pub const PR_EMS_AB_RID_SERVER_W: u32 = 2166620191u32;
37762pub const PR_EMS_AB_ROLE_OCCUPANT: u32 = 2166689822u32;
37763pub const PR_EMS_AB_ROLE_OCCUPANT_A: u32 = 2166689822u32;
37764pub const PR_EMS_AB_ROLE_OCCUPANT_O: u32 = 2166685709u32;
37765pub const PR_EMS_AB_ROLE_OCCUPANT_T: u32 = 2166689822u32;
37766pub const PR_EMS_AB_ROLE_OCCUPANT_W: u32 = 2166689823u32;
37767pub const PR_EMS_AB_ROOM_CAPACITY: u32 = 134676483u32;
37768pub const PR_EMS_AB_ROOM_CONTAINERS: u32 = 2358644766u32;
37769pub const PR_EMS_AB_ROOM_CONTAINERS_A: u32 = 2358644766u32;
37770pub const PR_EMS_AB_ROOM_CONTAINERS_W: u32 = 2358644767u32;
37771pub const PR_EMS_AB_ROOM_DESCRIPTION: u32 = 134807582u32;
37772pub const PR_EMS_AB_ROOM_DESCRIPTION_A: u32 = 134807582u32;
37773pub const PR_EMS_AB_ROOM_DESCRIPTION_W: u32 = 134807583u32;
37774pub const PR_EMS_AB_ROOT_NEWSGROUPS_FOLDER_ID: u32 = 2175926530u32;
37775pub const PR_EMS_AB_ROUTING_LIST: u32 = 2166755358u32;
37776pub const PR_EMS_AB_ROUTING_LIST_A: u32 = 2166755358u32;
37777pub const PR_EMS_AB_ROUTING_LIST_W: u32 = 2166755359u32;
37778pub const PR_EMS_AB_RTS_CHECKPOINT_SIZE: u32 = 2166816771u32;
37779pub const PR_EMS_AB_RTS_RECOVERY_TIMEOUT: u32 = 2166882307u32;
37780pub const PR_EMS_AB_RTS_WINDOW_SIZE: u32 = 2166947843u32;
37781pub const PR_EMS_AB_RUNS_ON: u32 = 2167017502u32;
37782pub const PR_EMS_AB_RUNS_ON_A: u32 = 2167017502u32;
37783pub const PR_EMS_AB_RUNS_ON_O: u32 = 2167013389u32;
37784pub const PR_EMS_AB_RUNS_ON_T: u32 = 2167017502u32;
37785pub const PR_EMS_AB_RUNS_ON_W: u32 = 2167017503u32;
37786pub const PR_EMS_AB_SCHEMA_FLAGS: u32 = 2171797507u32;
37787pub const PR_EMS_AB_SCHEMA_VERSION: u32 = 2172391427u32;
37788pub const PR_EMS_AB_SEARCH_FLAGS: u32 = 2167209987u32;
37789pub const PR_EMS_AB_SEARCH_GUIDE: u32 = 2167279874u32;
37790pub const PR_EMS_AB_SECURITY_POLICY: u32 = 2353467650u32;
37791pub const PR_EMS_AB_SECURITY_PROTOCOL: u32 = 2151092482u32;
37792pub const PR_EMS_AB_SEE_ALSO: u32 = 2167345182u32;
37793pub const PR_EMS_AB_SEE_ALSO_A: u32 = 2167345182u32;
37794pub const PR_EMS_AB_SEE_ALSO_O: u32 = 2167341069u32;
37795pub const PR_EMS_AB_SEE_ALSO_T: u32 = 2167345182u32;
37796pub const PR_EMS_AB_SEE_ALSO_W: u32 = 2167345183u32;
37797pub const PR_EMS_AB_SEND_EMAIL_MESSAGE: u32 = 2352021515u32;
37798pub const PR_EMS_AB_SEND_TNEF: u32 = 2173763595u32;
37799pub const PR_EMS_AB_SENIORITY_INDEX: u32 = 2359296003u32;
37800pub const PR_EMS_AB_SERIAL_NUMBER: u32 = 2167410718u32;
37801pub const PR_EMS_AB_SERIAL_NUMBER_A: u32 = 2167410718u32;
37802pub const PR_EMS_AB_SERIAL_NUMBER_W: u32 = 2167410719u32;
37803pub const PR_EMS_AB_SERVER: u32 = 4294836254u32;
37804pub const PR_EMS_AB_SERVER_A: u32 = 4294836254u32;
37805pub const PR_EMS_AB_SERVER_W: u32 = 4294836255u32;
37806pub const PR_EMS_AB_SERVICE_ACTION_FIRST: u32 = 2167472131u32;
37807pub const PR_EMS_AB_SERVICE_ACTION_OTHER: u32 = 2167537667u32;
37808pub const PR_EMS_AB_SERVICE_ACTION_SECOND: u32 = 2167603203u32;
37809pub const PR_EMS_AB_SERVICE_RESTART_DELAY: u32 = 2167668739u32;
37810pub const PR_EMS_AB_SERVICE_RESTART_MESSAGE: u32 = 2167734302u32;
37811pub const PR_EMS_AB_SERVICE_RESTART_MESSAGE_A: u32 = 2167734302u32;
37812pub const PR_EMS_AB_SERVICE_RESTART_MESSAGE_W: u32 = 2167734303u32;
37813pub const PR_EMS_AB_SESSION_DISCONNECT_TIMER: u32 = 2167799811u32;
37814pub const PR_EMS_AB_SITE_AFFINITY: u32 = 2167869470u32;
37815pub const PR_EMS_AB_SITE_AFFINITY_A: u32 = 2167869470u32;
37816pub const PR_EMS_AB_SITE_AFFINITY_W: u32 = 2167869471u32;
37817pub const PR_EMS_AB_SITE_FOLDER_GUID: u32 = 2170945794u32;
37818pub const PR_EMS_AB_SITE_FOLDER_SERVER: u32 = 2171011102u32;
37819pub const PR_EMS_AB_SITE_FOLDER_SERVER_A: u32 = 2171011102u32;
37820pub const PR_EMS_AB_SITE_FOLDER_SERVER_O: u32 = 2171011085u32;
37821pub const PR_EMS_AB_SITE_FOLDER_SERVER_T: u32 = 2171011102u32;
37822pub const PR_EMS_AB_SITE_FOLDER_SERVER_W: u32 = 2171011103u32;
37823pub const PR_EMS_AB_SITE_PROXY_SPACE: u32 = 2167935006u32;
37824pub const PR_EMS_AB_SITE_PROXY_SPACE_A: u32 = 2167935006u32;
37825pub const PR_EMS_AB_SITE_PROXY_SPACE_W: u32 = 2167935007u32;
37826pub const PR_EMS_AB_SMIME_ALG_LIST_NA: u32 = 2352156702u32;
37827pub const PR_EMS_AB_SMIME_ALG_LIST_NA_A: u32 = 2352156702u32;
37828pub const PR_EMS_AB_SMIME_ALG_LIST_NA_W: u32 = 2352156703u32;
37829pub const PR_EMS_AB_SMIME_ALG_LIST_OTHER: u32 = 2352222238u32;
37830pub const PR_EMS_AB_SMIME_ALG_LIST_OTHER_A: u32 = 2352222238u32;
37831pub const PR_EMS_AB_SMIME_ALG_LIST_OTHER_W: u32 = 2352222239u32;
37832pub const PR_EMS_AB_SMIME_ALG_SELECTED_NA: u32 = 2352283678u32;
37833pub const PR_EMS_AB_SMIME_ALG_SELECTED_NA_A: u32 = 2352283678u32;
37834pub const PR_EMS_AB_SMIME_ALG_SELECTED_NA_W: u32 = 2352283679u32;
37835pub const PR_EMS_AB_SMIME_ALG_SELECTED_OTHER: u32 = 2352349214u32;
37836pub const PR_EMS_AB_SMIME_ALG_SELECTED_OTHER_A: u32 = 2352349214u32;
37837pub const PR_EMS_AB_SMIME_ALG_SELECTED_OTHER_W: u32 = 2352349215u32;
37838pub const PR_EMS_AB_SPACE_LAST_COMPUTED: u32 = 2167996480u32;
37839pub const PR_EMS_AB_STREET_ADDRESS: u32 = 2168061982u32;
37840pub const PR_EMS_AB_STREET_ADDRESS_A: u32 = 2168061982u32;
37841pub const PR_EMS_AB_STREET_ADDRESS_W: u32 = 2168061983u32;
37842pub const PR_EMS_AB_SUBMISSION_CONT_LENGTH: u32 = 2168193027u32;
37843pub const PR_EMS_AB_SUB_REFS: u32 = 2168131614u32;
37844pub const PR_EMS_AB_SUB_REFS_A: u32 = 2168131614u32;
37845pub const PR_EMS_AB_SUB_REFS_O: u32 = 2168127501u32;
37846pub const PR_EMS_AB_SUB_REFS_T: u32 = 2168131614u32;
37847pub const PR_EMS_AB_SUB_REFS_W: u32 = 2168131615u32;
37848pub const PR_EMS_AB_SUB_SITE: u32 = 2172321822u32;
37849pub const PR_EMS_AB_SUB_SITE_A: u32 = 2172321822u32;
37850pub const PR_EMS_AB_SUB_SITE_W: u32 = 2172321823u32;
37851pub const PR_EMS_AB_SUPPORTED_ALGORITHMS: u32 = 2354381058u32;
37852pub const PR_EMS_AB_SUPPORTED_APPLICATION_CONTEXT: u32 = 2168262914u32;
37853pub const PR_EMS_AB_SUPPORTING_STACK: u32 = 2168328222u32;
37854pub const PR_EMS_AB_SUPPORTING_STACK_A: u32 = 2168328222u32;
37855pub const PR_EMS_AB_SUPPORTING_STACK_BL: u32 = 2168393758u32;
37856pub const PR_EMS_AB_SUPPORTING_STACK_BL_A: u32 = 2168393758u32;
37857pub const PR_EMS_AB_SUPPORTING_STACK_BL_O: u32 = 2168389645u32;
37858pub const PR_EMS_AB_SUPPORTING_STACK_BL_T: u32 = 2168393758u32;
37859pub const PR_EMS_AB_SUPPORTING_STACK_BL_W: u32 = 2168393759u32;
37860pub const PR_EMS_AB_SUPPORTING_STACK_O: u32 = 2168324109u32;
37861pub const PR_EMS_AB_SUPPORTING_STACK_T: u32 = 2168328222u32;
37862pub const PR_EMS_AB_SUPPORTING_STACK_W: u32 = 2168328223u32;
37863pub const PR_EMS_AB_SUPPORT_SMIME_SIGNATURES: u32 = 2353528843u32;
37864pub const PR_EMS_AB_S_SELECTOR: u32 = 2167079170u32;
37865pub const PR_EMS_AB_S_SELECTOR_INBOUND: u32 = 2167144706u32;
37866pub const PR_EMS_AB_TARGET_ADDRESS: u32 = 2148597790u32;
37867pub const PR_EMS_AB_TARGET_ADDRESS_A: u32 = 2148597790u32;
37868pub const PR_EMS_AB_TARGET_ADDRESS_W: u32 = 2148597791u32;
37869pub const PR_EMS_AB_TARGET_MTAS: u32 = 2168590366u32;
37870pub const PR_EMS_AB_TARGET_MTAS_A: u32 = 2168590366u32;
37871pub const PR_EMS_AB_TARGET_MTAS_W: u32 = 2168590367u32;
37872pub const PR_EMS_AB_TELEPHONE_NUMBER: u32 = 2148667422u32;
37873pub const PR_EMS_AB_TELEPHONE_NUMBER_A: u32 = 2148667422u32;
37874pub const PR_EMS_AB_TELEPHONE_NUMBER_W: u32 = 2148667423u32;
37875pub const PR_EMS_AB_TELEPHONE_PERSONAL_PAGER: u32 = 2355626014u32;
37876pub const PR_EMS_AB_TELEPHONE_PERSONAL_PAGER_A: u32 = 2355626014u32;
37877pub const PR_EMS_AB_TELEPHONE_PERSONAL_PAGER_W: u32 = 2355626015u32;
37878pub const PR_EMS_AB_TELETEX_TERMINAL_IDENTIFIER: u32 = 2168656130u32;
37879pub const PR_EMS_AB_TEMP_ASSOC_THRESHOLD: u32 = 2168717315u32;
37880pub const PR_EMS_AB_TOMBSTONE_LIFETIME: u32 = 2168782851u32;
37881pub const PR_EMS_AB_TRACKING_LOG_PATH_NAME: u32 = 2168848414u32;
37882pub const PR_EMS_AB_TRACKING_LOG_PATH_NAME_A: u32 = 2168848414u32;
37883pub const PR_EMS_AB_TRACKING_LOG_PATH_NAME_W: u32 = 2168848415u32;
37884pub const PR_EMS_AB_TRANSFER_RETRY_INTERVAL: u32 = 2169044995u32;
37885pub const PR_EMS_AB_TRANSFER_TIMEOUT_NON_URGENT: u32 = 2169110531u32;
37886pub const PR_EMS_AB_TRANSFER_TIMEOUT_NORMAL: u32 = 2169176067u32;
37887pub const PR_EMS_AB_TRANSFER_TIMEOUT_URGENT: u32 = 2169241603u32;
37888pub const PR_EMS_AB_TRANSLATION_TABLE_USED: u32 = 2169307139u32;
37889pub const PR_EMS_AB_TRANSPORT_EXPEDITED_DATA: u32 = 2169372683u32;
37890pub const PR_EMS_AB_TRANS_RETRY_MINS: u32 = 2168913923u32;
37891pub const PR_EMS_AB_TRANS_TIMEOUT_MINS: u32 = 2168979459u32;
37892pub const PR_EMS_AB_TRUST_LEVEL: u32 = 2169438211u32;
37893pub const PR_EMS_AB_TURN_REQUEST_THRESHOLD: u32 = 2169503747u32;
37894pub const PR_EMS_AB_TWO_WAY_ALTERNATE_FACILITY: u32 = 2169569291u32;
37895pub const PR_EMS_AB_TYPE: u32 = 2352480286u32;
37896pub const PR_EMS_AB_TYPE_A: u32 = 2352480286u32;
37897pub const PR_EMS_AB_TYPE_W: u32 = 2352480287u32;
37898pub const PR_EMS_AB_T_SELECTOR: u32 = 2168455426u32;
37899pub const PR_EMS_AB_T_SELECTOR_INBOUND: u32 = 2168520962u32;
37900pub const PR_EMS_AB_UNAUTH_ORIG_BL: u32 = 2169638942u32;
37901pub const PR_EMS_AB_UNAUTH_ORIG_BL_A: u32 = 2169638942u32;
37902pub const PR_EMS_AB_UNAUTH_ORIG_BL_O: u32 = 2169634829u32;
37903pub const PR_EMS_AB_UNAUTH_ORIG_BL_T: u32 = 2169638942u32;
37904pub const PR_EMS_AB_UNAUTH_ORIG_BL_W: u32 = 2169638943u32;
37905pub const PR_EMS_AB_UNMERGED_ATTRIBUTES: u32 = 2356089090u32;
37906pub const PR_EMS_AB_USENET_SITE_NAME: u32 = 2173239326u32;
37907pub const PR_EMS_AB_USENET_SITE_NAME_A: u32 = 2173239326u32;
37908pub const PR_EMS_AB_USENET_SITE_NAME_W: u32 = 2173239327u32;
37909pub const PR_EMS_AB_USER_PASSWORD: u32 = 2169704706u32;
37910pub const PR_EMS_AB_USE_SERVER_VALUES: u32 = 2172518411u32;
37911pub const PR_EMS_AB_USE_SITE_VALUES: u32 = 2172846091u32;
37912pub const PR_EMS_AB_USN_CHANGED: u32 = 2150170627u32;
37913pub const PR_EMS_AB_USN_CREATED: u32 = 2169765891u32;
37914pub const PR_EMS_AB_USN_DSA_LAST_OBJ_REMOVED: u32 = 2169831427u32;
37915pub const PR_EMS_AB_USN_INTERSITE: u32 = 2172256259u32;
37916pub const PR_EMS_AB_USN_LAST_OBJ_REM: u32 = 2169896963u32;
37917pub const PR_EMS_AB_USN_SOURCE: u32 = 2169962499u32;
37918pub const PR_EMS_AB_VIEW_CONTAINER_1: u32 = 2176778270u32;
37919pub const PR_EMS_AB_VIEW_CONTAINER_1_A: u32 = 2176778270u32;
37920pub const PR_EMS_AB_VIEW_CONTAINER_1_W: u32 = 2176778271u32;
37921pub const PR_EMS_AB_VIEW_CONTAINER_2: u32 = 2176843806u32;
37922pub const PR_EMS_AB_VIEW_CONTAINER_2_A: u32 = 2176843806u32;
37923pub const PR_EMS_AB_VIEW_CONTAINER_2_W: u32 = 2176843807u32;
37924pub const PR_EMS_AB_VIEW_CONTAINER_3: u32 = 2176909342u32;
37925pub const PR_EMS_AB_VIEW_CONTAINER_3_A: u32 = 2176909342u32;
37926pub const PR_EMS_AB_VIEW_CONTAINER_3_W: u32 = 2176909343u32;
37927pub const PR_EMS_AB_VIEW_DEFINITION: u32 = 2350584066u32;
37928pub const PR_EMS_AB_VIEW_FLAGS: u32 = 2350383107u32;
37929pub const PR_EMS_AB_VIEW_SITE: u32 = 2176712734u32;
37930pub const PR_EMS_AB_VIEW_SITE_A: u32 = 2176712734u32;
37931pub const PR_EMS_AB_VIEW_SITE_W: u32 = 2176712735u32;
37932pub const PR_EMS_AB_VOICE_MAIL_FLAGS: u32 = 2353008898u32;
37933pub const PR_EMS_AB_VOICE_MAIL_GREETINGS: u32 = 2352943134u32;
37934pub const PR_EMS_AB_VOICE_MAIL_GREETINGS_A: u32 = 2352943134u32;
37935pub const PR_EMS_AB_VOICE_MAIL_GREETINGS_W: u32 = 2352943135u32;
37936pub const PR_EMS_AB_VOICE_MAIL_PASSWORD: u32 = 2352807966u32;
37937pub const PR_EMS_AB_VOICE_MAIL_PASSWORD_A: u32 = 2352807966u32;
37938pub const PR_EMS_AB_VOICE_MAIL_PASSWORD_W: u32 = 2352807967u32;
37939pub const PR_EMS_AB_VOICE_MAIL_RECORDED_NAME: u32 = 2352873730u32;
37940pub const PR_EMS_AB_VOICE_MAIL_RECORDING_LENGTH: u32 = 2353205251u32;
37941pub const PR_EMS_AB_VOICE_MAIL_SPEED: u32 = 2353135619u32;
37942pub const PR_EMS_AB_VOICE_MAIL_SYSTEM_GUID: u32 = 2352677122u32;
37943pub const PR_EMS_AB_VOICE_MAIL_USER_ID: u32 = 2352742430u32;
37944pub const PR_EMS_AB_VOICE_MAIL_USER_ID_A: u32 = 2352742430u32;
37945pub const PR_EMS_AB_VOICE_MAIL_USER_ID_W: u32 = 2352742431u32;
37946pub const PR_EMS_AB_VOICE_MAIL_VOLUME: u32 = 2353070083u32;
37947pub const PR_EMS_AB_WWW_HOME_PAGE: u32 = 2171928606u32;
37948pub const PR_EMS_AB_WWW_HOME_PAGE_A: u32 = 2171928606u32;
37949pub const PR_EMS_AB_WWW_HOME_PAGE_W: u32 = 2171928607u32;
37950pub const PR_EMS_AB_X121_ADDRESS: u32 = 2170032158u32;
37951pub const PR_EMS_AB_X121_ADDRESS_A: u32 = 2170032158u32;
37952pub const PR_EMS_AB_X121_ADDRESS_W: u32 = 2170032159u32;
37953pub const PR_EMS_AB_X25_CALL_USER_DATA_INCOMING: u32 = 2170093826u32;
37954pub const PR_EMS_AB_X25_CALL_USER_DATA_OUTGOING: u32 = 2170159362u32;
37955pub const PR_EMS_AB_X25_FACILITIES_DATA_INCOMING: u32 = 2170224898u32;
37956pub const PR_EMS_AB_X25_FACILITIES_DATA_OUTGOING: u32 = 2170290434u32;
37957pub const PR_EMS_AB_X25_LEASED_LINE_PORT: u32 = 2170355970u32;
37958pub const PR_EMS_AB_X25_LEASED_OR_SWITCHED: u32 = 2170421259u32;
37959pub const PR_EMS_AB_X25_REMOTE_MTA_PHONE: u32 = 2170486814u32;
37960pub const PR_EMS_AB_X25_REMOTE_MTA_PHONE_A: u32 = 2170486814u32;
37961pub const PR_EMS_AB_X25_REMOTE_MTA_PHONE_W: u32 = 2170486815u32;
37962pub const PR_EMS_AB_X400_ATTACHMENT_TYPE: u32 = 2170552578u32;
37963pub const PR_EMS_AB_X400_SELECTOR_SYNTAX: u32 = 2170617859u32;
37964pub const PR_EMS_AB_X500_ACCESS_CONTROL_LIST: u32 = 2170683650u32;
37965pub const PR_EMS_AB_X500_NC: u32 = 2174877726u32;
37966pub const PR_EMS_AB_X500_NC_A: u32 = 2174877726u32;
37967pub const PR_EMS_AB_X500_NC_W: u32 = 2174877727u32;
37968pub const PR_EMS_AB_X500_RDN: u32 = 2174812190u32;
37969pub const PR_EMS_AB_X500_RDN_A: u32 = 2174812190u32;
37970pub const PR_EMS_AB_X500_RDN_W: u32 = 2174812191u32;
37971pub const PR_EMS_AB_X509_CERT: u32 = 2355761410u32;
37972pub const PR_EMS_AB_XMIT_TIMEOUT_NON_URGENT: u32 = 2170748931u32;
37973pub const PR_EMS_AB_XMIT_TIMEOUT_NORMAL: u32 = 2170814467u32;
37974pub const PR_EMS_AB_XMIT_TIMEOUT_URGENT: u32 = 2170880003u32;
37975pub const PR_END_DATE: u32 = 6357056u32;
37976pub const PR_ENTRYID: u32 = 268370178u32;
37977pub const PR_EVENTS_ROOT_FOLDER_ENTRYID: u32 = 1719271682u32;
37978pub const PR_EXCESS_STORAGE_USED: u32 = 1073086467u32;
37979pub const PR_EXPIRY_NUMBER: u32 = 1072496643u32;
37980pub const PR_EXPIRY_TIME: u32 = 1376320u32;
37981pub const PR_EXPIRY_UNITS: u32 = 1072562179u32;
37982pub const PR_EXPLICIT_CONVERSION: u32 = 201392131u32;
37983pub const PR_EXTENDED_ACL_DATA: u32 = 1073611010u32;
37984pub const PR_EXTENDED_RULE_ACTIONS: u32 = 244908290u32;
37985pub const PR_EXTENDED_RULE_CONDITION: u32 = 244973826u32;
37986pub const PR_EXTENDED_RULE_MSG_ACTIONS: u32 = 244908290u32;
37987pub const PR_EXTENDED_RULE_MSG_CONDITION: u32 = 244973826u32;
37988pub const PR_EXTENDED_RULE_SIZE_LIMIT: u32 = 245039107u32;
37989pub const PR_FAST_TRANSFER: u32 = 1714356237u32;
37990pub const PR_FAVORITES_DEFAULT_NAME: u32 = 1714749470u32;
37991pub const PR_FAVORITES_DEFAULT_NAME_W: u32 = 1714749471u32;
37992pub const PR_FID_VID: u32 = 1716257026u32;
37993pub const PR_FILE_SIZE: u32 = 1732706307u32;
37994pub const PR_FILE_SIZE_EXTENDED: u32 = 1732706324u32;
37995pub const PR_FILTERING_HOOKS: u32 = 1023934722u32;
37996pub const PR_FINDER_ENTRYID: u32 = 904331522u32;
37997pub const PR_FLAG_STATUS: u32 = 277872643u32;
37998pub const PR_FLAT_URL_NAME: u32 = 1728970782u32;
37999pub const PR_FLAT_URL_NAME_A: u32 = 1728970782u32;
38000pub const PR_FLAT_URL_NAME_W: u32 = 1728970783u32;
38001pub const PR_FOLDER_ASSOCIATED_CONTENTS: u32 = 907018253u32;
38002pub const PR_FOLDER_CHILD_COUNT: u32 = 1714946051u32;
38003pub const PR_FOLDER_DESIGN_FLAGS: u32 = 1071775747u32;
38004pub const PR_FOLDER_FLAGS: u32 = 1722286083u32;
38005pub const PR_FOLDER_PATHNAME: u32 = 1723138078u32;
38006pub const PR_FOLDER_PATHNAME_A: u32 = 1723138078u32;
38007pub const PR_FOLDER_PATHNAME_W: u32 = 1723138079u32;
38008pub const PR_FOLDER_TYPE: u32 = 906035203u32;
38009pub const PR_FORCE_CLIENT_REFRESH: u32 = 1705050123u32;
38010pub const PR_FOREIGN_ID: u32 = 1718026498u32;
38011pub const PR_FOREIGN_REPORT_ID: u32 = 1718092034u32;
38012pub const PR_FOREIGN_SUBJECT_ID: u32 = 1718157570u32;
38013pub const PR_FORM_CATEGORY: u32 = 855900190u32;
38014pub const PR_FORM_CATEGORY_A: u32 = 855900190u32;
38015pub const PR_FORM_CATEGORY_SUB: u32 = 855965726u32;
38016pub const PR_FORM_CATEGORY_SUB_A: u32 = 855965726u32;
38017pub const PR_FORM_CATEGORY_SUB_W: u32 = 855965727u32;
38018pub const PR_FORM_CATEGORY_W: u32 = 855900191u32;
38019pub const PR_FORM_CLSID: u32 = 855769160u32;
38020pub const PR_FORM_CONTACT_NAME: u32 = 855834654u32;
38021pub const PR_FORM_CONTACT_NAME_A: u32 = 855834654u32;
38022pub const PR_FORM_CONTACT_NAME_W: u32 = 855834655u32;
38023pub const PR_FORM_DESIGNER_GUID: u32 = 856227912u32;
38024pub const PR_FORM_DESIGNER_NAME: u32 = 856162334u32;
38025pub const PR_FORM_DESIGNER_NAME_A: u32 = 856162334u32;
38026pub const PR_FORM_DESIGNER_NAME_W: u32 = 856162335u32;
38027pub const PR_FORM_HIDDEN: u32 = 856096779u32;
38028pub const PR_FORM_HOST_MAP: u32 = 856035331u32;
38029pub const PR_FORM_MESSAGE_BEHAVIOR: u32 = 856293379u32;
38030pub const PR_FORM_VERSION: u32 = 855703582u32;
38031pub const PR_FORM_VERSION_A: u32 = 855703582u32;
38032pub const PR_FORM_VERSION_W: u32 = 855703583u32;
38033pub const PR_FREE_BUSY_FOR_LOCAL_SITE_ENTRYID: u32 = 1713701122u32;
38034pub const PR_FTP_SITE: u32 = 978059294u32;
38035pub const PR_FTP_SITE_A: u32 = 978059294u32;
38036pub const PR_FTP_SITE_W: u32 = 978059295u32;
38037pub const PR_GENDER: u32 = 978124802u32;
38038pub const PR_GENERATION: u32 = 973406238u32;
38039pub const PR_GENERATION_A: u32 = 973406238u32;
38040pub const PR_GENERATION_W: u32 = 973406239u32;
38041pub const PR_GET_PROPS_EXCLUDE_PROP_ID_LIST: u32 = 1719533826u32;
38042pub const PR_GIVEN_NAME: u32 = 973471774u32;
38043pub const PR_GIVEN_NAME_A: u32 = 973471774u32;
38044pub const PR_GIVEN_NAME_W: u32 = 973471775u32;
38045pub const PR_GOVERNMENT_ID_NUMBER: u32 = 973537310u32;
38046pub const PR_GOVERNMENT_ID_NUMBER_A: u32 = 973537310u32;
38047pub const PR_GOVERNMENT_ID_NUMBER_W: u32 = 973537311u32;
38048pub const PR_GW_ADMIN_OPERATIONS: u32 = 1717043203u32;
38049pub const PR_GW_MTSIN_ENTRYID: u32 = 1713897730u32;
38050pub const PR_GW_MTSOUT_ENTRYID: u32 = 1713963266u32;
38051pub const PR_HASATTACH: u32 = 236650507u32;
38052pub const PR_HAS_DAMS: u32 = 1072300043u32;
38053pub const PR_HAS_MODERATOR_RULES: u32 = 1715404811u32;
38054pub const PR_HAS_NAMED_PROPERTIES: u32 = 1716125707u32;
38055pub const PR_HAS_RULES: u32 = 1715077131u32;
38056pub const PR_HEADER_FOLDER_ENTRYID: u32 = 1040843010u32;
38057pub const PR_HIERARCHY_CHANGE_NUM: u32 = 1715339267u32;
38058pub const PR_HIERARCHY_SERVER: u32 = 1714618398u32;
38059pub const PR_HIERARCHY_SYNCHRONIZER: u32 = 1714159629u32;
38060pub const PR_HOBBIES: u32 = 977469470u32;
38061pub const PR_HOBBIES_A: u32 = 977469470u32;
38062pub const PR_HOBBIES_W: u32 = 977469471u32;
38063pub const PR_HOME2_TELEPHONE_NUMBER: u32 = 976158750u32;
38064pub const PR_HOME2_TELEPHONE_NUMBER_A: u32 = 976158750u32;
38065pub const PR_HOME2_TELEPHONE_NUMBER_W: u32 = 976158751u32;
38066pub const PR_HOME_ADDRESS_CITY: u32 = 978911262u32;
38067pub const PR_HOME_ADDRESS_CITY_A: u32 = 978911262u32;
38068pub const PR_HOME_ADDRESS_CITY_W: u32 = 978911263u32;
38069pub const PR_HOME_ADDRESS_COUNTRY: u32 = 978976798u32;
38070pub const PR_HOME_ADDRESS_COUNTRY_A: u32 = 978976798u32;
38071pub const PR_HOME_ADDRESS_COUNTRY_W: u32 = 978976799u32;
38072pub const PR_HOME_ADDRESS_POSTAL_CODE: u32 = 979042334u32;
38073pub const PR_HOME_ADDRESS_POSTAL_CODE_A: u32 = 979042334u32;
38074pub const PR_HOME_ADDRESS_POSTAL_CODE_W: u32 = 979042335u32;
38075pub const PR_HOME_ADDRESS_POST_OFFICE_BOX: u32 = 979238942u32;
38076pub const PR_HOME_ADDRESS_POST_OFFICE_BOX_A: u32 = 979238942u32;
38077pub const PR_HOME_ADDRESS_POST_OFFICE_BOX_W: u32 = 979238943u32;
38078pub const PR_HOME_ADDRESS_STATE_OR_PROVINCE: u32 = 979107870u32;
38079pub const PR_HOME_ADDRESS_STATE_OR_PROVINCE_A: u32 = 979107870u32;
38080pub const PR_HOME_ADDRESS_STATE_OR_PROVINCE_W: u32 = 979107871u32;
38081pub const PR_HOME_ADDRESS_STREET: u32 = 979173406u32;
38082pub const PR_HOME_ADDRESS_STREET_A: u32 = 979173406u32;
38083pub const PR_HOME_ADDRESS_STREET_W: u32 = 979173407u32;
38084pub const PR_HOME_FAX_NUMBER: u32 = 975503390u32;
38085pub const PR_HOME_FAX_NUMBER_A: u32 = 975503390u32;
38086pub const PR_HOME_FAX_NUMBER_W: u32 = 975503391u32;
38087pub const PR_HOME_TELEPHONE_NUMBER: u32 = 973668382u32;
38088pub const PR_HOME_TELEPHONE_NUMBER_A: u32 = 973668382u32;
38089pub const PR_HOME_TELEPHONE_NUMBER_W: u32 = 973668383u32;
38090pub const PR_HTML: u32 = 269680898u32;
38091pub const PR_ICON: u32 = 268239106u32;
38092pub const PR_ICON_INDEX: u32 = 276824067u32;
38093pub const PR_ICS_CHANGE_KEY: u32 = 1716846850u32;
38094pub const PR_IDENTITY_DISPLAY: u32 = 1040187422u32;
38095pub const PR_IDENTITY_DISPLAY_A: u32 = 1040187422u32;
38096pub const PR_IDENTITY_DISPLAY_W: u32 = 1040187423u32;
38097pub const PR_IDENTITY_ENTRYID: u32 = 1040253186u32;
38098pub const PR_IDENTITY_SEARCH_KEY: u32 = 1040515330u32;
38099pub const PR_IMAP_INTERNAL_DATE: u32 = 1710555200u32;
38100pub const PR_IMPLICIT_CONVERSION_PROHIBITED: u32 = 1441803u32;
38101pub const PR_IMPLIED_RESTRICTIONS: u32 = 1719603458u32;
38102pub const PR_IMPORTANCE: u32 = 1507331u32;
38103pub const PR_INBOUND_NEWSFEED_DN: u32 = 1720516638u32;
38104pub const PR_INCOMPLETE_COPY: u32 = 3473419u32;
38105pub const PR_INITIALS: u32 = 973733918u32;
38106pub const PR_INITIALS_A: u32 = 973733918u32;
38107pub const PR_INITIALS_W: u32 = 973733919u32;
38108pub const PR_INITIAL_DETAILS_PANE: u32 = 1057488899u32;
38109pub const PR_INSTANCE_KEY: u32 = 267780354u32;
38110pub const PR_INTERNAL_TRACE_INFO: u32 = 1718223106u32;
38111pub const PR_INTERNET_CHARSET: u32 = 1721368606u32;
38112pub const PR_INTERNET_CONTENT: u32 = 1717108994u32;
38113pub const PR_INTERNET_CONTENT_EA: u32 = 1717108996u32;
38114pub const PR_INTERNET_CONTENT_HANDLE: u32 = 1717108995u32;
38115pub const PR_INTERNET_CPID: u32 = 1071513603u32;
38116pub const PR_INTERNET_MDNS: u32 = 1722089483u32;
38117pub const PR_INTERNET_MESSAGE_ID: u32 = 271908894u32;
38118pub const PR_INTERNET_MESSAGE_ID_A: u32 = 271908894u32;
38119pub const PR_INTERNET_MESSAGE_ID_W: u32 = 271908895u32;
38120pub const PR_INTERNET_NEWSGROUP_NAME: u32 = 1722220574u32;
38121pub const PR_INTERNET_NEWSGROUP_NAME_A: u32 = 1722220574u32;
38122pub const PR_INTERNET_NEWSGROUP_NAME_W: u32 = 1722220575u32;
38123pub const PR_INTERNET_REFERENCES: u32 = 272171038u32;
38124pub const PR_INTERNET_REFERENCES_A: u32 = 272171038u32;
38125pub const PR_INTERNET_REFERENCES_W: u32 = 272171039u32;
38126pub const PR_IN_CONFLICT: u32 = 1718353931u32;
38127pub const PR_IN_REPLY_TO: u32 = 272760862u32;
38128pub const PR_IN_REPLY_TO_A: u32 = 272760862u32;
38129pub const PR_IN_REPLY_TO_W: u32 = 272760863u32;
38130pub const PR_IN_TRANSIT: u32 = 1712848907u32;
38131pub const PR_IPM_APPOINTMENT_ENTRYID: u32 = 919601410u32;
38132pub const PR_IPM_ARCHIVE_ENTRYID: u32 = 905904386u32;
38133pub const PR_IPM_CONTACT_ENTRYID: u32 = 919666946u32;
38134pub const PR_IPM_DAF_ENTRYID: u32 = 1713307906u32;
38135pub const PR_IPM_DRAFTS_ENTRYID: u32 = 920060162u32;
38136pub const PR_IPM_FAVORITES_ENTRYID: u32 = 1714422018u32;
38137pub const PR_IPM_ID: u32 = 1573122u32;
38138pub const PR_IPM_OUTBOX_ENTRYID: u32 = 904003842u32;
38139pub const PR_IPM_OUTBOX_SEARCH_KEY: u32 = 873529602u32;
38140pub const PR_IPM_PUBLIC_FOLDERS_ENTRYID: u32 = 1714487554u32;
38141pub const PR_IPM_RETURN_REQUESTED: u32 = 201457675u32;
38142pub const PR_IPM_SENTMAIL_ENTRYID: u32 = 904134914u32;
38143pub const PR_IPM_SENTMAIL_SEARCH_KEY: u32 = 873660674u32;
38144pub const PR_IPM_SUBTREE_ENTRYID: u32 = 903872770u32;
38145pub const PR_IPM_SUBTREE_SEARCH_KEY: u32 = 873464066u32;
38146pub const PR_IPM_TASK_ENTRYID: u32 = 919863554u32;
38147pub const PR_IPM_WASTEBASKET_ENTRYID: u32 = 904069378u32;
38148pub const PR_IPM_WASTEBASKET_SEARCH_KEY: u32 = 873595138u32;
38149pub const PR_ISDN_NUMBER: u32 = 976027678u32;
38150pub const PR_ISDN_NUMBER_A: u32 = 976027678u32;
38151pub const PR_ISDN_NUMBER_W: u32 = 976027679u32;
38152pub const PR_IS_NEWSGROUP: u32 = 1721171979u32;
38153pub const PR_IS_NEWSGROUP_ANCHOR: u32 = 1721106443u32;
38154pub const PR_ITEM_LEVEL_ACL: u32 = 1025769483u32;
38155pub const PR_KEYWORD: u32 = 973799454u32;
38156pub const PR_KEYWORD_A: u32 = 973799454u32;
38157pub const PR_KEYWORD_W: u32 = 973799455u32;
38158pub const PR_LANGUAGE: u32 = 973864990u32;
38159pub const PR_LANGUAGES: u32 = 3080222u32;
38160pub const PR_LANGUAGES_A: u32 = 3080222u32;
38161pub const PR_LANGUAGES_W: u32 = 3080223u32;
38162pub const PR_LANGUAGE_A: u32 = 973864990u32;
38163pub const PR_LANGUAGE_W: u32 = 973864991u32;
38164pub const PR_LAST_ACCESS_TIME: u32 = 1722351680u32;
38165pub const PR_LAST_FULL_BACKUP: u32 = 1719992384u32;
38166pub const PR_LAST_LOGOFF_TIME: u32 = 1721958464u32;
38167pub const PR_LAST_LOGON_TIME: u32 = 1721892928u32;
38168pub const PR_LAST_MODIFICATION_TIME: u32 = 805830720u32;
38169pub const PR_LAST_MODIFIER_ENTRYID: u32 = 1073414402u32;
38170pub const PR_LAST_MODIFIER_NAME: u32 = 1073348638u32;
38171pub const PR_LAST_MODIFIER_NAME_A: u32 = 1073348638u32;
38172pub const PR_LAST_MODIFIER_NAME_W: u32 = 1073348639u32;
38173pub const PR_LAST_MODIFIER_SID: u32 = 240713986u32;
38174pub const PR_LAST_MODIFIER_SID_AS_XML: u32 = 242024478u32;
38175pub const PR_LATEST_DELIVERY_TIME: u32 = 1638464u32;
38176pub const PR_LOCALE_ID: u32 = 1721827331u32;
38177pub const PR_LOCALITY: u32 = 975634462u32;
38178pub const PR_LOCALITY_A: u32 = 975634462u32;
38179pub const PR_LOCALITY_W: u32 = 975634463u32;
38180pub const PR_LOCAL_COMMIT_TIME: u32 = 1728643136u32;
38181pub const PR_LOCAL_COMMIT_TIME_MAX: u32 = 1728708672u32;
38182pub const PR_LOCATION: u32 = 973930526u32;
38183pub const PR_LOCATION_A: u32 = 973930526u32;
38184pub const PR_LOCATION_W: u32 = 973930527u32;
38185pub const PR_LOCK_BRANCH_ID: u32 = 939524116u32;
38186pub const PR_LOCK_DEPTH: u32 = 940048387u32;
38187pub const PR_LOCK_ENLISTMENT_CONTEXT: u32 = 939786498u32;
38188pub const PR_LOCK_EXPIRY_TIME: u32 = 940179520u32;
38189pub const PR_LOCK_GLID: u32 = 940245250u32;
38190pub const PR_LOCK_NULL_URL_W: u32 = 940310559u32;
38191pub const PR_LOCK_RESOURCE_DID: u32 = 939655188u32;
38192pub const PR_LOCK_RESOURCE_FID: u32 = 939589652u32;
38193pub const PR_LOCK_RESOURCE_VID: u32 = 939720724u32;
38194pub const PR_LOCK_SCOPE: u32 = 939917314u32;
38195pub const PR_LOCK_TIMEOUT: u32 = 940113923u32;
38196pub const PR_LOCK_TRANSIENT_ID: u32 = 939983106u32;
38197pub const PR_LOCK_TYPE: u32 = 939851778u32;
38198pub const PR_LONGTERM_ENTRYID_FROM_TABLE: u32 = 1718616322u32;
38199pub const PR_MAILBOX_OWNER_ENTRYID: u32 = 1713045762u32;
38200pub const PR_MAILBOX_OWNER_NAME: u32 = 1713111070u32;
38201pub const PR_MAILBOX_OWNER_NAME_A: u32 = 1713111070u32;
38202pub const PR_MAILBOX_OWNER_NAME_W: u32 = 1713111071u32;
38203pub const PR_MAIL_PERMISSION: u32 = 973996043u32;
38204pub const PR_MANAGER_NAME: u32 = 978190366u32;
38205pub const PR_MANAGER_NAME_A: u32 = 978190366u32;
38206pub const PR_MANAGER_NAME_W: u32 = 978190367u32;
38207pub const PR_MAPPING_SIGNATURE: u32 = 267911426u32;
38208pub const PR_MAX_CACHED_VIEWS: u32 = 241696771u32;
38209pub const PR_MAX_INDICES: u32 = 241041411u32;
38210pub const PR_MAX_SUBMIT_MESSAGE_SIZE: u32 = 1718419459u32;
38211pub const PR_MDB_PROVIDER: u32 = 873726210u32;
38212pub const PR_MEMBER_ID: u32 = 1718681620u32;
38213pub const PR_MEMBER_NAME: u32 = 1718747166u32;
38214pub const PR_MEMBER_NAME_A: u32 = 1718747166u32;
38215pub const PR_MEMBER_NAME_W: u32 = 1718747167u32;
38216pub const PR_MEMBER_RIGHTS: u32 = 1718812675u32;
38217pub const PR_MERGE_MIDSET_DELETED: u32 = 242876674u32;
38218pub const PR_MESSAGE_ATTACHMENTS: u32 = 236126221u32;
38219pub const PR_MESSAGE_CC_ME: u32 = 5767179u32;
38220pub const PR_MESSAGE_CLASS: u32 = 1703966u32;
38221pub const PR_MESSAGE_CLASS_A: u32 = 1703966u32;
38222pub const PR_MESSAGE_CLASS_W: u32 = 1703967u32;
38223pub const PR_MESSAGE_CODEPAGE: u32 = 1073545219u32;
38224pub const PR_MESSAGE_DELIVERY_ID: u32 = 1769730u32;
38225pub const PR_MESSAGE_DELIVERY_TIME: u32 = 235274304u32;
38226pub const PR_MESSAGE_DOWNLOAD_TIME: u32 = 236453891u32;
38227pub const PR_MESSAGE_FLAGS: u32 = 235339779u32;
38228pub const PR_MESSAGE_LOCALE_ID: u32 = 1072758787u32;
38229pub const PR_MESSAGE_PROCESSED: u32 = 1709703179u32;
38230pub const PR_MESSAGE_RECIPIENTS: u32 = 236060685u32;
38231pub const PR_MESSAGE_RECIP_ME: u32 = 5832715u32;
38232pub const PR_MESSAGE_SECURITY_LABEL: u32 = 1966338u32;
38233pub const PR_MESSAGE_SITE_NAME: u32 = 1709637662u32;
38234pub const PR_MESSAGE_SITE_NAME_A: u32 = 1709637662u32;
38235pub const PR_MESSAGE_SITE_NAME_W: u32 = 1709637663u32;
38236pub const PR_MESSAGE_SIZE: u32 = 235405315u32;
38237pub const PR_MESSAGE_SIZE_EXTENDED: u32 = 235405332u32;
38238pub const PR_MESSAGE_SUBMISSION_ID: u32 = 4653314u32;
38239pub const PR_MESSAGE_TOKEN: u32 = 201523458u32;
38240pub const PR_MESSAGE_TO_ME: u32 = 5701643u32;
38241pub const PR_MHS_COMMON_NAME: u32 = 974061598u32;
38242pub const PR_MHS_COMMON_NAME_A: u32 = 974061598u32;
38243pub const PR_MHS_COMMON_NAME_W: u32 = 974061599u32;
38244pub const PR_MIDDLE_NAME: u32 = 977535006u32;
38245pub const PR_MIDDLE_NAME_A: u32 = 977535006u32;
38246pub const PR_MIDDLE_NAME_W: u32 = 977535007u32;
38247pub const PR_MIME_SIZE: u32 = 1732640771u32;
38248pub const PR_MIME_SIZE_EXTENDED: u32 = 1732640788u32;
38249pub const PR_MINI_ICON: u32 = 268173570u32;
38250pub const PR_MOBILE_TELEPHONE_NUMBER: u32 = 974913566u32;
38251pub const PR_MOBILE_TELEPHONE_NUMBER_A: u32 = 974913566u32;
38252pub const PR_MOBILE_TELEPHONE_NUMBER_W: u32 = 974913567u32;
38253pub const PR_MODIFY_VERSION: u32 = 236584980u32;
38254pub const PR_MOVE_TO_FOLDER_ENTRYID: u32 = 1072955650u32;
38255pub const PR_MOVE_TO_STORE_ENTRYID: u32 = 1072890114u32;
38256pub const PR_MSG_BODY_ID: u32 = 1071448067u32;
38257pub const PR_MSG_EDITOR_FORMAT: u32 = 1493762051u32;
38258pub const PR_MSG_FOLD_TIME: u32 = 1716781120u32;
38259pub const PR_MSG_STATUS: u32 = 236388355u32;
38260pub const PR_MTS_SUBJECT_ID: u32 = 1717764354u32;
38261pub const PR_NATIVE_BODY_INFO: u32 = 269877251u32;
38262pub const PR_NDR_DIAG_CODE: u32 = 201654275u32;
38263pub const PR_NDR_REASON_CODE: u32 = 201588739u32;
38264pub const PR_NEWSFEED_INFO: u32 = 1722155266u32;
38265pub const PR_NEWSGROUP_COMPONENT: u32 = 1722089502u32;
38266pub const PR_NEWSGROUP_ROOT_FOLDER_ENTRYID: u32 = 1720451330u32;
38267pub const PR_NEW_SUBS_GET_AUTO_ADD: u32 = 1709572107u32;
38268pub const PR_NEXT_SEND_ACCT: u32 = 237568031u32;
38269pub const PR_NICKNAME: u32 = 978255902u32;
38270pub const PR_NICKNAME_A: u32 = 978255902u32;
38271pub const PR_NICKNAME_W: u32 = 978255903u32;
38272pub const PR_NNTP_ARTICLE_FOLDER_ENTRYID: u32 = 1720320258u32;
38273pub const PR_NNTP_CONTROL_FOLDER_ENTRYID: u32 = 1720385794u32;
38274pub const PR_NON_IPM_SUBTREE_ENTRYID: u32 = 1713373442u32;
38275pub const PR_NON_RECEIPT_NOTIFICATION_REQUESTED: u32 = 201719819u32;
38276pub const PR_NON_RECEIPT_REASON: u32 = 4063235u32;
38277pub const PR_NON_WIN32_ACL: u32 = 1025703947u32;
38278pub const PR_NON_XMT_SECURITY_ROLE_1: u32 = 243007746u32;
38279pub const PR_NON_XMT_SECURITY_ROLE_1_AS_XML: u32 = 243007518u32;
38280pub const PR_NON_XMT_SECURITY_ROLE_2: u32 = 243073282u32;
38281pub const PR_NON_XMT_SECURITY_ROLE_2_AS_XML: u32 = 243073054u32;
38282pub const PR_NON_XMT_SECURITY_ROLE_3: u32 = 243138818u32;
38283pub const PR_NON_XMT_SECURITY_ROLE_3_AS_XML: u32 = 243138590u32;
38284pub const PR_NON_XMT_SECURITY_ROLE_4: u32 = 243204354u32;
38285pub const PR_NON_XMT_SECURITY_ROLE_4_AS_XML: u32 = 243204126u32;
38286pub const PR_NON_XMT_SECURITY_ROLE_5: u32 = 243269890u32;
38287pub const PR_NON_XMT_SECURITY_ROLE_5_AS_XML: u32 = 243269662u32;
38288pub const PR_NON_XMT_SECURITY_ROLE_6: u32 = 243335426u32;
38289pub const PR_NON_XMT_SECURITY_ROLE_6_AS_XML: u32 = 243335198u32;
38290pub const PR_NON_XMT_SECURITY_ROLE_7: u32 = 243400962u32;
38291pub const PR_NON_XMT_SECURITY_ROLE_7_AS_XML: u32 = 243400734u32;
38292pub const PR_NON_XMT_SECURITY_ROLE_8: u32 = 243466498u32;
38293pub const PR_NON_XMT_SECURITY_ROLE_8_AS_XML: u32 = 243466270u32;
38294pub const PR_NORMALIZED_SUBJECT: u32 = 236781598u32;
38295pub const PR_NORMALIZED_SUBJECT_A: u32 = 236781598u32;
38296pub const PR_NORMALIZED_SUBJECT_W: u32 = 236781599u32;
38297pub const PR_NORMAL_MESSAGE_SIZE: u32 = 1723006979u32;
38298pub const PR_NORMAL_MESSAGE_SIZE_EXTENDED: u32 = 1723006996u32;
38299pub const PR_NORMAL_MSG_W_ATTACH_COUNT: u32 = 1722613763u32;
38300pub const PR_NT_SECURITY_DESCRIPTOR_AS_XML: u32 = 241827870u32;
38301pub const PR_NT_SECURITY_DESCRIPTOR_AS_XML_A: u32 = 241827870u32;
38302pub const PR_NT_SECURITY_DESCRIPTOR_AS_XML_W: u32 = 241827871u32;
38303pub const PR_NT_USER_NAME: u32 = 1721761822u32;
38304pub const PR_NULL: u32 = 1u32;
38305pub const PR_OBJECT_TYPE: u32 = 268304387u32;
38306pub const PR_OBSOLETED_IPMS: u32 = 2031874u32;
38307pub const PR_OFFICE2_TELEPHONE_NUMBER: u32 = 974848030u32;
38308pub const PR_OFFICE2_TELEPHONE_NUMBER_A: u32 = 974848030u32;
38309pub const PR_OFFICE2_TELEPHONE_NUMBER_W: u32 = 974848031u32;
38310pub const PR_OFFICE_LOCATION: u32 = 974716958u32;
38311pub const PR_OFFICE_LOCATION_A: u32 = 974716958u32;
38312pub const PR_OFFICE_LOCATION_W: u32 = 974716959u32;
38313pub const PR_OFFICE_TELEPHONE_NUMBER: u32 = 973602846u32;
38314pub const PR_OFFICE_TELEPHONE_NUMBER_A: u32 = 973602846u32;
38315pub const PR_OFFICE_TELEPHONE_NUMBER_W: u32 = 973602847u32;
38316pub const PR_OFFLINE_ADDRBOOK_ENTRYID: u32 = 1713570050u32;
38317pub const PR_OFFLINE_FLAGS: u32 = 1715273731u32;
38318pub const PR_OFFLINE_MESSAGE_ENTRYID: u32 = 1713832194u32;
38319pub const PR_OLDEST_DELETED_ON: u32 = 1715601472u32;
38320pub const PR_OOF_STATE: u32 = 1713176587u32;
38321pub const PR_ORGANIZATIONAL_ID_NUMBER: u32 = 974127134u32;
38322pub const PR_ORGANIZATIONAL_ID_NUMBER_A: u32 = 974127134u32;
38323pub const PR_ORGANIZATIONAL_ID_NUMBER_W: u32 = 974127135u32;
38324pub const PR_ORIGINALLY_INTENDED_RECIPIENT_NAME: u32 = 2097410u32;
38325pub const PR_ORIGINALLY_INTENDED_RECIP_ADDRTYPE: u32 = 8060958u32;
38326pub const PR_ORIGINALLY_INTENDED_RECIP_ADDRTYPE_A: u32 = 8060958u32;
38327pub const PR_ORIGINALLY_INTENDED_RECIP_ADDRTYPE_W: u32 = 8060959u32;
38328pub const PR_ORIGINALLY_INTENDED_RECIP_EMAIL_ADDRESS: u32 = 8126494u32;
38329pub const PR_ORIGINALLY_INTENDED_RECIP_EMAIL_ADDRESS_A: u32 = 8126494u32;
38330pub const PR_ORIGINALLY_INTENDED_RECIP_EMAIL_ADDRESS_W: u32 = 8126495u32;
38331pub const PR_ORIGINALLY_INTENDED_RECIP_ENTRYID: u32 = 269615362u32;
38332pub const PR_ORIGINAL_AUTHOR_ADDRTYPE: u32 = 7929886u32;
38333pub const PR_ORIGINAL_AUTHOR_ADDRTYPE_A: u32 = 7929886u32;
38334pub const PR_ORIGINAL_AUTHOR_ADDRTYPE_W: u32 = 7929887u32;
38335pub const PR_ORIGINAL_AUTHOR_EMAIL_ADDRESS: u32 = 7995422u32;
38336pub const PR_ORIGINAL_AUTHOR_EMAIL_ADDRESS_A: u32 = 7995422u32;
38337pub const PR_ORIGINAL_AUTHOR_EMAIL_ADDRESS_W: u32 = 7995423u32;
38338pub const PR_ORIGINAL_AUTHOR_ENTRYID: u32 = 4980994u32;
38339pub const PR_ORIGINAL_AUTHOR_NAME: u32 = 5046302u32;
38340pub const PR_ORIGINAL_AUTHOR_NAME_A: u32 = 5046302u32;
38341pub const PR_ORIGINAL_AUTHOR_NAME_W: u32 = 5046303u32;
38342pub const PR_ORIGINAL_AUTHOR_SEARCH_KEY: u32 = 5636354u32;
38343pub const PR_ORIGINAL_AUTHOR_SID: u32 = 240451842u32;
38344pub const PR_ORIGINAL_AUTHOR_SID_AS_XML: u32 = 242614302u32;
38345pub const PR_ORIGINAL_DELIVERY_TIME: u32 = 5570624u32;
38346pub const PR_ORIGINAL_DISPLAY_BCC: u32 = 7471134u32;
38347pub const PR_ORIGINAL_DISPLAY_BCC_A: u32 = 7471134u32;
38348pub const PR_ORIGINAL_DISPLAY_BCC_W: u32 = 7471135u32;
38349pub const PR_ORIGINAL_DISPLAY_CC: u32 = 7536670u32;
38350pub const PR_ORIGINAL_DISPLAY_CC_A: u32 = 7536670u32;
38351pub const PR_ORIGINAL_DISPLAY_CC_W: u32 = 7536671u32;
38352pub const PR_ORIGINAL_DISPLAY_NAME: u32 = 974323742u32;
38353pub const PR_ORIGINAL_DISPLAY_NAME_A: u32 = 974323742u32;
38354pub const PR_ORIGINAL_DISPLAY_NAME_W: u32 = 974323743u32;
38355pub const PR_ORIGINAL_DISPLAY_TO: u32 = 7602206u32;
38356pub const PR_ORIGINAL_DISPLAY_TO_A: u32 = 7602206u32;
38357pub const PR_ORIGINAL_DISPLAY_TO_W: u32 = 7602207u32;
38358pub const PR_ORIGINAL_EITS: u32 = 2162946u32;
38359pub const PR_ORIGINAL_ENTRYID: u32 = 974258434u32;
38360pub const PR_ORIGINAL_SEARCH_KEY: u32 = 974389506u32;
38361pub const PR_ORIGINAL_SENDER_ADDRTYPE: u32 = 6684702u32;
38362pub const PR_ORIGINAL_SENDER_ADDRTYPE_A: u32 = 6684702u32;
38363pub const PR_ORIGINAL_SENDER_ADDRTYPE_W: u32 = 6684703u32;
38364pub const PR_ORIGINAL_SENDER_EMAIL_ADDRESS: u32 = 6750238u32;
38365pub const PR_ORIGINAL_SENDER_EMAIL_ADDRESS_A: u32 = 6750238u32;
38366pub const PR_ORIGINAL_SENDER_EMAIL_ADDRESS_W: u32 = 6750239u32;
38367pub const PR_ORIGINAL_SENDER_ENTRYID: u32 = 5964034u32;
38368pub const PR_ORIGINAL_SENDER_NAME: u32 = 5898270u32;
38369pub const PR_ORIGINAL_SENDER_NAME_A: u32 = 5898270u32;
38370pub const PR_ORIGINAL_SENDER_NAME_W: u32 = 5898271u32;
38371pub const PR_ORIGINAL_SENDER_SEARCH_KEY: u32 = 6029570u32;
38372pub const PR_ORIGINAL_SENDER_SID: u32 = 240058626u32;
38373pub const PR_ORIGINAL_SENDER_SID_AS_XML: u32 = 242221086u32;
38374pub const PR_ORIGINAL_SENSITIVITY: u32 = 3014659u32;
38375pub const PR_ORIGINAL_SENT_REPRESENTING_ADDRTYPE: u32 = 6815774u32;
38376pub const PR_ORIGINAL_SENT_REPRESENTING_ADDRTYPE_A: u32 = 6815774u32;
38377pub const PR_ORIGINAL_SENT_REPRESENTING_ADDRTYPE_W: u32 = 6815775u32;
38378pub const PR_ORIGINAL_SENT_REPRESENTING_EMAIL_ADDRESS: u32 = 6881310u32;
38379pub const PR_ORIGINAL_SENT_REPRESENTING_EMAIL_ADDRESS_A: u32 = 6881310u32;
38380pub const PR_ORIGINAL_SENT_REPRESENTING_EMAIL_ADDRESS_W: u32 = 6881311u32;
38381pub const PR_ORIGINAL_SENT_REPRESENTING_ENTRYID: u32 = 6160642u32;
38382pub const PR_ORIGINAL_SENT_REPRESENTING_NAME: u32 = 6094878u32;
38383pub const PR_ORIGINAL_SENT_REPRESENTING_NAME_A: u32 = 6094878u32;
38384pub const PR_ORIGINAL_SENT_REPRESENTING_NAME_W: u32 = 6094879u32;
38385pub const PR_ORIGINAL_SENT_REPRESENTING_SEARCH_KEY: u32 = 6226178u32;
38386pub const PR_ORIGINAL_SENT_REPRESENTING_SID: u32 = 240124162u32;
38387pub const PR_ORIGINAL_SENT_REPRESENTING_SID_AS_XML: u32 = 242286622u32;
38388pub const PR_ORIGINAL_SUBJECT: u32 = 4784158u32;
38389pub const PR_ORIGINAL_SUBJECT_A: u32 = 4784158u32;
38390pub const PR_ORIGINAL_SUBJECT_W: u32 = 4784159u32;
38391pub const PR_ORIGINAL_SUBMIT_TIME: u32 = 5111872u32;
38392pub const PR_ORIGINATING_MTA_CERTIFICATE: u32 = 237306114u32;
38393pub const PR_ORIGINATOR_ADDR: u32 = 1717305374u32;
38394pub const PR_ORIGINATOR_ADDRTYPE: u32 = 1717370910u32;
38395pub const PR_ORIGINATOR_AND_DL_EXPANSION_HISTORY: u32 = 268566786u32;
38396pub const PR_ORIGINATOR_CERTIFICATE: u32 = 2228482u32;
38397pub const PR_ORIGINATOR_DELIVERY_REPORT_REQUESTED: u32 = 2293771u32;
38398pub const PR_ORIGINATOR_ENTRYID: u32 = 1717436674u32;
38399pub const PR_ORIGINATOR_NAME: u32 = 1717239838u32;
38400pub const PR_ORIGINATOR_NON_DELIVERY_REPORT_REQUESTED: u32 = 201850891u32;
38401pub const PR_ORIGINATOR_REQUESTED_ALTERNATE_RECIPIENT: u32 = 201916674u32;
38402pub const PR_ORIGINATOR_RETURN_ADDRESS: u32 = 2359554u32;
38403pub const PR_ORIGINATOR_SID: u32 = 240320770u32;
38404pub const PR_ORIGINATOR_SID_AS_XML: u32 = 242483230u32;
38405pub const PR_ORIGIN_CHECK: u32 = 2556162u32;
38406pub const PR_ORIGIN_ID: u32 = 1716322562u32;
38407pub const PR_ORIG_MESSAGE_CLASS: u32 = 4915230u32;
38408pub const PR_ORIG_MESSAGE_CLASS_A: u32 = 4915230u32;
38409pub const PR_ORIG_MESSAGE_CLASS_W: u32 = 4915231u32;
38410pub const PR_OST_ENCRYPTION: u32 = 1728184323u32;
38411pub const PR_OTHER_ADDRESS_CITY: u32 = 979304478u32;
38412pub const PR_OTHER_ADDRESS_CITY_A: u32 = 979304478u32;
38413pub const PR_OTHER_ADDRESS_CITY_W: u32 = 979304479u32;
38414pub const PR_OTHER_ADDRESS_COUNTRY: u32 = 979370014u32;
38415pub const PR_OTHER_ADDRESS_COUNTRY_A: u32 = 979370014u32;
38416pub const PR_OTHER_ADDRESS_COUNTRY_W: u32 = 979370015u32;
38417pub const PR_OTHER_ADDRESS_POSTAL_CODE: u32 = 979435550u32;
38418pub const PR_OTHER_ADDRESS_POSTAL_CODE_A: u32 = 979435550u32;
38419pub const PR_OTHER_ADDRESS_POSTAL_CODE_W: u32 = 979435551u32;
38420pub const PR_OTHER_ADDRESS_POST_OFFICE_BOX: u32 = 979632158u32;
38421pub const PR_OTHER_ADDRESS_POST_OFFICE_BOX_A: u32 = 979632158u32;
38422pub const PR_OTHER_ADDRESS_POST_OFFICE_BOX_W: u32 = 979632159u32;
38423pub const PR_OTHER_ADDRESS_STATE_OR_PROVINCE: u32 = 979501086u32;
38424pub const PR_OTHER_ADDRESS_STATE_OR_PROVINCE_A: u32 = 979501086u32;
38425pub const PR_OTHER_ADDRESS_STATE_OR_PROVINCE_W: u32 = 979501087u32;
38426pub const PR_OTHER_ADDRESS_STREET: u32 = 979566622u32;
38427pub const PR_OTHER_ADDRESS_STREET_A: u32 = 979566622u32;
38428pub const PR_OTHER_ADDRESS_STREET_W: u32 = 979566623u32;
38429pub const PR_OTHER_TELEPHONE_NUMBER: u32 = 975110174u32;
38430pub const PR_OTHER_TELEPHONE_NUMBER_A: u32 = 975110174u32;
38431pub const PR_OTHER_TELEPHONE_NUMBER_W: u32 = 975110175u32;
38432pub const PR_OUTBOUND_NEWSFEED_DN: u32 = 1720582174u32;
38433pub const PR_OVERALL_AGE_LIMIT: u32 = 1721303043u32;
38434pub const PR_OVERALL_MSG_AGE_LIMIT: u32 = 1720909827u32;
38435pub const PR_OWNER_APPT_ID: u32 = 6422531u32;
38436pub const PR_OWNER_COUNT: u32 = 1723203587u32;
38437pub const PR_OWN_STORE_ENTRYID: u32 = 1040580866u32;
38438pub const PR_P1_CONTENT: u32 = 285212930u32;
38439pub const PR_P1_CONTENT_TYPE: u32 = 285278466u32;
38440pub const PR_PAGER_TELEPHONE_NUMBER: u32 = 975241246u32;
38441pub const PR_PAGER_TELEPHONE_NUMBER_A: u32 = 975241246u32;
38442pub const PR_PAGER_TELEPHONE_NUMBER_W: u32 = 975241247u32;
38443pub const PR_PARENT_DISPLAY: u32 = 235208734u32;
38444pub const PR_PARENT_DISPLAY_A: u32 = 235208734u32;
38445pub const PR_PARENT_DISPLAY_W: u32 = 235208735u32;
38446pub const PR_PARENT_ENTRYID: u32 = 235471106u32;
38447pub const PR_PARENT_KEY: u32 = 2425090u32;
38448pub const PR_PARENT_SOURCE_KEY: u32 = 1709244674u32;
38449pub const PR_PARENT_URL_NAME: u32 = 1728905246u32;
38450pub const PR_PARENT_URL_NAME_A: u32 = 1728905246u32;
38451pub const PR_PARENT_URL_NAME_W: u32 = 1728905247u32;
38452pub const PR_PERSONAL_HOME_PAGE: u32 = 978321438u32;
38453pub const PR_PERSONAL_HOME_PAGE_A: u32 = 978321438u32;
38454pub const PR_PERSONAL_HOME_PAGE_W: u32 = 978321439u32;
38455pub const PR_PF_DISALLOW_MDB_WIDE_EXPIRY: u32 = 1730347019u32;
38456pub const PR_PF_MSG_SIZE_LIMIT: u32 = 1730281492u32;
38457pub const PR_PF_OVER_HARD_QUOTA_LIMIT: u32 = 1730215956u32;
38458pub const PR_PHYSICAL_DELIVERY_BUREAU_FAX_DELIVERY: u32 = 201981963u32;
38459pub const PR_PHYSICAL_DELIVERY_MODE: u32 = 202047491u32;
38460pub const PR_PHYSICAL_DELIVERY_REPORT_REQUEST: u32 = 202113027u32;
38461pub const PR_PHYSICAL_FORWARDING_ADDRESS: u32 = 202178818u32;
38462pub const PR_PHYSICAL_FORWARDING_ADDRESS_REQUESTED: u32 = 202244107u32;
38463pub const PR_PHYSICAL_FORWARDING_PROHIBITED: u32 = 202309643u32;
38464pub const PR_PHYSICAL_RENDITION_ATTRIBUTES: u32 = 202375426u32;
38465pub const PR_POLICY_TAG: u32 = 806945026u32;
38466pub const PR_POSTAL_ADDRESS: u32 = 974454814u32;
38467pub const PR_POSTAL_ADDRESS_A: u32 = 974454814u32;
38468pub const PR_POSTAL_ADDRESS_W: u32 = 974454815u32;
38469pub const PR_POSTAL_CODE: u32 = 975831070u32;
38470pub const PR_POSTAL_CODE_A: u32 = 975831070u32;
38471pub const PR_POSTAL_CODE_W: u32 = 975831071u32;
38472pub const PR_POST_OFFICE_BOX: u32 = 975896606u32;
38473pub const PR_POST_OFFICE_BOX_A: u32 = 975896606u32;
38474pub const PR_POST_OFFICE_BOX_W: u32 = 975896607u32;
38475pub const PR_PREDECESSOR_CHANGE_LIST: u32 = 1709375746u32;
38476pub const PR_PREFERRED_BY_NAME: u32 = 977731614u32;
38477pub const PR_PREFERRED_BY_NAME_A: u32 = 977731614u32;
38478pub const PR_PREFERRED_BY_NAME_W: u32 = 977731615u32;
38479pub const PR_PREPROCESS: u32 = 237109259u32;
38480pub const PR_PREVENT_MSG_CREATE: u32 = 1710489611u32;
38481pub const PR_PREVIEW: u32 = 1071185950u32;
38482pub const PR_PREVIEW_A: u32 = 1071185950u32;
38483pub const PR_PREVIEW_UNREAD: u32 = 1071120414u32;
38484pub const PR_PREVIEW_UNREAD_A: u32 = 1071120414u32;
38485pub const PR_PREVIEW_UNREAD_W: u32 = 1071120415u32;
38486pub const PR_PREVIEW_W: u32 = 1071185951u32;
38487pub const PR_PRIMARY_CAPABILITY: u32 = 956563714u32;
38488pub const PR_PRIMARY_FAX_NUMBER: u32 = 975372318u32;
38489pub const PR_PRIMARY_FAX_NUMBER_A: u32 = 975372318u32;
38490pub const PR_PRIMARY_FAX_NUMBER_W: u32 = 975372319u32;
38491pub const PR_PRIMARY_SEND_ACCT: u32 = 237502495u32;
38492pub const PR_PRIMARY_TELEPHONE_NUMBER: u32 = 974782494u32;
38493pub const PR_PRIMARY_TELEPHONE_NUMBER_A: u32 = 974782494u32;
38494pub const PR_PRIMARY_TELEPHONE_NUMBER_W: u32 = 974782495u32;
38495pub const PR_PRIORITY: u32 = 2490371u32;
38496pub const PR_PROFESSION: u32 = 977666078u32;
38497pub const PR_PROFESSION_A: u32 = 977666078u32;
38498pub const PR_PROFESSION_W: u32 = 977666079u32;
38499pub const PR_PROFILE_ABP_ALLOW_RECONNECT: u32 = 1715011587u32;
38500pub const PR_PROFILE_ABP_MTHREAD_TIMEOUT_SECS: u32 = 1715077123u32;
38501pub const PR_PROFILE_AB_FILES_PATH: u32 = 1712193566u32;
38502pub const PR_PROFILE_AB_FILES_PATH_W: u32 = 1712193567u32;
38503pub const PR_PROFILE_ADDR_INFO: u32 = 1720123650u32;
38504pub const PR_PROFILE_ALLPUB_COMMENT: u32 = 1712783390u32;
38505pub const PR_PROFILE_ALLPUB_COMMENT_W: u32 = 1712783391u32;
38506pub const PR_PROFILE_ALLPUB_DISPLAY_NAME: u32 = 1712717854u32;
38507pub const PR_PROFILE_ALLPUB_DISPLAY_NAME_W: u32 = 1712717855u32;
38508pub const PR_PROFILE_ALTERNATE_STORE_TYPE_W: u32 = 1708130335u32;
38509pub const PR_PROFILE_AUTH_PACKAGE: u32 = 1712914435u32;
38510pub const PR_PROFILE_BINDING_ORDER: u32 = 1711865886u32;
38511pub const PR_PROFILE_CONFIG_FLAGS: u32 = 1711341571u32;
38512pub const PR_PROFILE_CONNECT_FLAGS: u32 = 1711538179u32;
38513pub const PR_PROFILE_FAVFLD_COMMENT: u32 = 1712652318u32;
38514pub const PR_PROFILE_FAVFLD_COMMENT_W: u32 = 1712652319u32;
38515pub const PR_PROFILE_FAVFLD_DISPLAY_NAME: u32 = 1712259102u32;
38516pub const PR_PROFILE_FAVFLD_DISPLAY_NAME_W: u32 = 1712259103u32;
38517pub const PR_PROFILE_HOME_SERVER: u32 = 1711407134u32;
38518pub const PR_PROFILE_HOME_SERVER_ADDRS: u32 = 1712525342u32;
38519pub const PR_PROFILE_HOME_SERVER_DN: u32 = 1712455710u32;
38520pub const PR_PROFILE_MAILBOX: u32 = 1711996958u32;
38521pub const PR_PROFILE_MAX_RESTRICT: u32 = 1712128003u32;
38522pub const PR_PROFILE_MOAB: u32 = 1719336990u32;
38523pub const PR_PROFILE_MOAB_GUID: u32 = 1719402526u32;
38524pub const PR_PROFILE_MOAB_SEQ: u32 = 1719468035u32;
38525pub const PR_PROFILE_MOAB_W: u32 = 1719336991u32;
38526pub const PR_PROFILE_NAME: u32 = 1024589854u32;
38527pub const PR_PROFILE_NAME_A: u32 = 1024589854u32;
38528pub const PR_PROFILE_NAME_W: u32 = 1024589855u32;
38529pub const PR_PROFILE_OFFLINE_INFO: u32 = 1712390402u32;
38530pub const PR_PROFILE_OFFLINE_STORE_PATH: u32 = 1712324638u32;
38531pub const PR_PROFILE_OFFLINE_STORE_PATH_W: u32 = 1712324639u32;
38532pub const PR_PROFILE_OPEN_FLAGS: u32 = 1711865859u32;
38533pub const PR_PROFILE_OPTIONS_DATA: u32 = 1720254722u32;
38534pub const PR_PROFILE_RECONNECT_INTERVAL: u32 = 1712979971u32;
38535pub const PR_PROFILE_SECURE_MAILBOX: u32 = 1743782146u32;
38536pub const PR_PROFILE_SERVER: u32 = 1712062494u32;
38537pub const PR_PROFILE_SERVER_DN: u32 = 1712586782u32;
38538pub const PR_PROFILE_SERVER_FULL_VERSION: u32 = 1715142914u32;
38539pub const PR_PROFILE_SERVER_VERSION: u32 = 1713045507u32;
38540pub const PR_PROFILE_TRANSPORT_FLAGS: u32 = 1711603715u32;
38541pub const PR_PROFILE_TYPE: u32 = 1711931395u32;
38542pub const PR_PROFILE_UI_STATE: u32 = 1711669251u32;
38543pub const PR_PROFILE_UNRESOLVED_NAME: u32 = 1711734814u32;
38544pub const PR_PROFILE_UNRESOLVED_NAME_A: u32 = 1711734814u32;
38545pub const PR_PROFILE_UNRESOLVED_NAME_W: u32 = 1711734815u32;
38546pub const PR_PROFILE_UNRESOLVED_SERVER: u32 = 1711800350u32;
38547pub const PR_PROFILE_USER: u32 = 1711472670u32;
38548pub const PR_PROFILE_USER_SMTP_EMAIL_ADDRESS: u32 = 1715535902u32;
38549pub const PR_PROFILE_USER_SMTP_EMAIL_ADDRESS_A: u32 = 1715535902u32;
38550pub const PR_PROFILE_USER_SMTP_EMAIL_ADDRESS_W: u32 = 1715535903u32;
38551pub const PR_PROFILE_VERSION: u32 = 1711276035u32;
38552pub const PR_PROHIBIT_RECEIVE_QUOTA: u32 = 1718222851u32;
38553pub const PR_PROHIBIT_SEND_QUOTA: u32 = 1718484995u32;
38554pub const PR_PROMOTE_PROP_ID_LIST: u32 = 1718288642u32;
38555pub const PR_PROOF_OF_DELIVERY: u32 = 202440962u32;
38556pub const PR_PROOF_OF_DELIVERY_REQUESTED: u32 = 202506251u32;
38557pub const PR_PROOF_OF_SUBMISSION: u32 = 237371650u32;
38558pub const PR_PROOF_OF_SUBMISSION_REQUESTED: u32 = 2621451u32;
38559pub const PR_PROVIDER_DISPLAY: u32 = 805699614u32;
38560pub const PR_PROVIDER_DISPLAY_A: u32 = 805699614u32;
38561pub const PR_PROVIDER_DISPLAY_W: u32 = 805699615u32;
38562pub const PR_PROVIDER_DLL_NAME: u32 = 805961758u32;
38563pub const PR_PROVIDER_DLL_NAME_A: u32 = 805961758u32;
38564pub const PR_PROVIDER_DLL_NAME_W: u32 = 805961759u32;
38565pub const PR_PROVIDER_ORDINAL: u32 = 806158339u32;
38566pub const PR_PROVIDER_SUBMIT_TIME: u32 = 4718656u32;
38567pub const PR_PROVIDER_UID: u32 = 806093058u32;
38568pub const PR_PST_ENCRYPTION: u32 = 1728184323u32;
38569pub const PR_PST_PATH: u32 = 1728053278u32;
38570pub const PR_PST_PW_SZ_NEW: u32 = 1728315422u32;
38571pub const PR_PST_PW_SZ_OLD: u32 = 1728249886u32;
38572pub const PR_PST_REMEMBER_PW: u32 = 1728118795u32;
38573pub const PR_PUBLIC_FOLDER_ENTRYID: u32 = 1715208450u32;
38574pub const PR_PUBLISH_IN_ADDRESS_BOOK: u32 = 1072037899u32;
38575pub const PR_QUOTA_RECEIVE_THRESHOLD: u32 = 1730347011u32;
38576pub const PR_QUOTA_SEND_THRESHOLD: u32 = 1730281475u32;
38577pub const PR_QUOTA_WARNING_THRESHOLD: u32 = 1730215939u32;
38578pub const PR_RADIO_TELEPHONE_NUMBER: u32 = 974979102u32;
38579pub const PR_RADIO_TELEPHONE_NUMBER_A: u32 = 974979102u32;
38580pub const PR_RADIO_TELEPHONE_NUMBER_W: u32 = 974979103u32;
38581pub const PR_RANK: u32 = 1729232899u32;
38582pub const PR_RCVD_REPRESENTING_ADDRTYPE: u32 = 7798814u32;
38583pub const PR_RCVD_REPRESENTING_ADDRTYPE_A: u32 = 7798814u32;
38584pub const PR_RCVD_REPRESENTING_ADDRTYPE_W: u32 = 7798815u32;
38585pub const PR_RCVD_REPRESENTING_EMAIL_ADDRESS: u32 = 7864350u32;
38586pub const PR_RCVD_REPRESENTING_EMAIL_ADDRESS_A: u32 = 7864350u32;
38587pub const PR_RCVD_REPRESENTING_EMAIL_ADDRESS_W: u32 = 7864351u32;
38588pub const PR_RCVD_REPRESENTING_ENTRYID: u32 = 4391170u32;
38589pub const PR_RCVD_REPRESENTING_NAME: u32 = 4456478u32;
38590pub const PR_RCVD_REPRESENTING_NAME_A: u32 = 4456478u32;
38591pub const PR_RCVD_REPRESENTING_NAME_W: u32 = 4456479u32;
38592pub const PR_RCVD_REPRESENTING_SEARCH_KEY: u32 = 5374210u32;
38593pub const PR_RCVD_REPRESENTING_SID: u32 = 240582914u32;
38594pub const PR_RCVD_REPRESENTING_SID_AS_XML: u32 = 242745374u32;
38595pub const PR_RCVD_REPRESENTING_SMTP_ADDRESS: u32 = 1560805406u32;
38596pub const PR_RCVD_REPRESENTING_SMTP_ADDRESS_A: u32 = 1560805406u32;
38597pub const PR_RCVD_REPRESENTING_SMTP_ADDRESS_W: u32 = 1560805407u32;
38598pub const PR_READ: u32 = 241762315u32;
38599pub const PR_READ_RECEIPT_ENTRYID: u32 = 4587778u32;
38600pub const PR_READ_RECEIPT_REQUESTED: u32 = 2686987u32;
38601pub const PR_READ_RECEIPT_SEARCH_KEY: u32 = 5439746u32;
38602pub const PR_READ_RECEIPT_SID: u32 = 240189698u32;
38603pub const PR_READ_RECEIPT_SID_AS_XML: u32 = 242352158u32;
38604pub const PR_RECEIPT_TIME: u32 = 2752576u32;
38605pub const PR_RECEIVED_BY_ADDRTYPE: u32 = 7667742u32;
38606pub const PR_RECEIVED_BY_ADDRTYPE_A: u32 = 7667742u32;
38607pub const PR_RECEIVED_BY_ADDRTYPE_W: u32 = 7667743u32;
38608pub const PR_RECEIVED_BY_EMAIL_ADDRESS: u32 = 7733278u32;
38609pub const PR_RECEIVED_BY_EMAIL_ADDRESS_A: u32 = 7733278u32;
38610pub const PR_RECEIVED_BY_EMAIL_ADDRESS_W: u32 = 7733279u32;
38611pub const PR_RECEIVED_BY_ENTRYID: u32 = 4129026u32;
38612pub const PR_RECEIVED_BY_NAME: u32 = 4194334u32;
38613pub const PR_RECEIVED_BY_NAME_A: u32 = 4194334u32;
38614pub const PR_RECEIVED_BY_NAME_W: u32 = 4194335u32;
38615pub const PR_RECEIVED_BY_SEARCH_KEY: u32 = 5308674u32;
38616pub const PR_RECEIVED_BY_SID: u32 = 240517378u32;
38617pub const PR_RECEIVED_BY_SID_AS_XML: u32 = 242679838u32;
38618pub const PR_RECEIVED_BY_SMTP_ADDRESS: u32 = 1560739870u32;
38619pub const PR_RECEIVED_BY_SMTP_ADDRESS_A: u32 = 1560739870u32;
38620pub const PR_RECEIVED_BY_SMTP_ADDRESS_W: u32 = 1560739871u32;
38621pub const PR_RECEIVE_FOLDER_SETTINGS: u32 = 873791501u32;
38622pub const PR_RECIPIENT_CERTIFICATE: u32 = 202572034u32;
38623pub const PR_RECIPIENT_NUMBER: u32 = 1717698563u32;
38624pub const PR_RECIPIENT_NUMBER_FOR_ADVICE: u32 = 202637342u32;
38625pub const PR_RECIPIENT_NUMBER_FOR_ADVICE_A: u32 = 202637342u32;
38626pub const PR_RECIPIENT_NUMBER_FOR_ADVICE_W: u32 = 202637343u32;
38627pub const PR_RECIPIENT_ON_ASSOC_MSG_COUNT: u32 = 1722810371u32;
38628pub const PR_RECIPIENT_ON_NORMAL_MSG_COUNT: u32 = 1722744835u32;
38629pub const PR_RECIPIENT_REASSIGNMENT_PROHIBITED: u32 = 2818059u32;
38630pub const PR_RECIPIENT_STATUS: u32 = 236257283u32;
38631pub const PR_RECIPIENT_TYPE: u32 = 202702851u32;
38632pub const PR_RECORD_KEY: u32 = 267976962u32;
38633pub const PR_REDIRECTION_HISTORY: u32 = 2883842u32;
38634pub const PR_REGISTERED_MAIL_TYPE: u32 = 202768387u32;
38635pub const PR_RELATED_IPMS: u32 = 2949378u32;
38636pub const PR_REMOTE_PROGRESS: u32 = 1040908291u32;
38637pub const PR_REMOTE_PROGRESS_TEXT: u32 = 1040973854u32;
38638pub const PR_REMOTE_PROGRESS_TEXT_A: u32 = 1040973854u32;
38639pub const PR_REMOTE_PROGRESS_TEXT_W: u32 = 1040973855u32;
38640pub const PR_REMOTE_VALIDATE_OK: u32 = 1041039371u32;
38641pub const PR_RENDERING_POSITION: u32 = 923467779u32;
38642pub const PR_REPLICATION_ALWAYS_INTERVAL: u32 = 1720975363u32;
38643pub const PR_REPLICATION_MESSAGE_PRIORITY: u32 = 1720844291u32;
38644pub const PR_REPLICATION_MSG_SIZE: u32 = 1721040899u32;
38645pub const PR_REPLICATION_SCHEDULE: u32 = 1720779010u32;
38646pub const PR_REPLICATION_STYLE: u32 = 1720713219u32;
38647pub const PR_REPLICA_LIST: u32 = 1721237762u32;
38648pub const PR_REPLICA_SERVER: u32 = 1715732510u32;
38649pub const PR_REPLICA_SERVER_W: u32 = 1715732511u32;
38650pub const PR_REPLICA_VERSION: u32 = 1716191252u32;
38651pub const PR_REPLY_RECIPIENT_ENTRIES: u32 = 5177602u32;
38652pub const PR_REPLY_RECIPIENT_NAMES: u32 = 5242910u32;
38653pub const PR_REPLY_RECIPIENT_NAMES_A: u32 = 5242910u32;
38654pub const PR_REPLY_RECIPIENT_NAMES_W: u32 = 5242911u32;
38655pub const PR_REPLY_RECIPIENT_SMTP_PROXIES: u32 = 1073479710u32;
38656pub const PR_REPLY_REQUESTED: u32 = 202833931u32;
38657pub const PR_REPLY_TIME: u32 = 3145792u32;
38658pub const PR_REPORTING_DL_NAME: u32 = 268632322u32;
38659pub const PR_REPORTING_MTA_CERTIFICATE: u32 = 268697858u32;
38660pub const PR_REPORT_DESTINATION_ENTRYID: u32 = 1717895426u32;
38661pub const PR_REPORT_DESTINATION_NAME: u32 = 1717829662u32;
38662pub const PR_REPORT_DESTINATION_SID: u32 = 240386306u32;
38663pub const PR_REPORT_DESTINATION_SID_AS_XML: u32 = 242548766u32;
38664pub const PR_REPORT_ENTRYID: u32 = 4522242u32;
38665pub const PR_REPORT_NAME: u32 = 3801118u32;
38666pub const PR_REPORT_NAME_A: u32 = 3801118u32;
38667pub const PR_REPORT_NAME_W: u32 = 3801119u32;
38668pub const PR_REPORT_SEARCH_KEY: u32 = 5505282u32;
38669pub const PR_REPORT_SID: u32 = 240255234u32;
38670pub const PR_REPORT_SID_AS_XML: u32 = 242417694u32;
38671pub const PR_REPORT_TAG: u32 = 3211522u32;
38672pub const PR_REPORT_TEXT: u32 = 268501022u32;
38673pub const PR_REPORT_TEXT_A: u32 = 268501022u32;
38674pub const PR_REPORT_TEXT_W: u32 = 268501023u32;
38675pub const PR_REPORT_TIME: u32 = 3276864u32;
38676pub const PR_REQUESTED_DELIVERY_METHOD: u32 = 202899459u32;
38677pub const PR_RESERVE_RANGE_OF_IDS: u32 = 242942210u32;
38678pub const PR_RESOLVE_METHOD: u32 = 1072103427u32;
38679pub const PR_RESOURCE_FLAGS: u32 = 805896195u32;
38680pub const PR_RESOURCE_METHODS: u32 = 1040318467u32;
38681pub const PR_RESOURCE_PATH: u32 = 1040646174u32;
38682pub const PR_RESOURCE_PATH_A: u32 = 1040646174u32;
38683pub const PR_RESOURCE_PATH_W: u32 = 1040646175u32;
38684pub const PR_RESOURCE_TYPE: u32 = 1040384003u32;
38685pub const PR_RESPONSE_REQUESTED: u32 = 6488075u32;
38686pub const PR_RESPONSIBILITY: u32 = 235864075u32;
38687pub const PR_RESTRICTION_COUNT: u32 = 1722417155u32;
38688pub const PR_RETENTION_AGE_LIMIT: u32 = 1724121091u32;
38689pub const PR_RETENTION_DATE: u32 = 807141440u32;
38690pub const PR_RETENTION_FLAGS: u32 = 807206915u32;
38691pub const PR_RETENTION_PERIOD: u32 = 807010307u32;
38692pub const PR_RETURNED_IPM: u32 = 3342347u32;
38693pub const PR_RIGHTS: u32 = 1715011587u32;
38694pub const PR_ROH_FLAGS: u32 = 1713569795u32;
38695pub const PR_ROH_PROXY_AUTH_SCHEME: u32 = 1713831939u32;
38696pub const PR_ROWID: u32 = 805306371u32;
38697pub const PR_ROW_TYPE: u32 = 267714563u32;
38698pub const PR_RTF_COMPRESSED: u32 = 269025538u32;
38699pub const PR_RTF_IN_SYNC: u32 = 236912651u32;
38700pub const PR_RTF_SYNC_BODY_COUNT: u32 = 268894211u32;
38701pub const PR_RTF_SYNC_BODY_CRC: u32 = 268828675u32;
38702pub const PR_RTF_SYNC_BODY_TAG: u32 = 268959774u32;
38703pub const PR_RTF_SYNC_BODY_TAG_A: u32 = 268959774u32;
38704pub const PR_RTF_SYNC_BODY_TAG_W: u32 = 268959775u32;
38705pub const PR_RTF_SYNC_PREFIX_COUNT: u32 = 269484035u32;
38706pub const PR_RTF_SYNC_TRAILING_COUNT: u32 = 269549571u32;
38707pub const PR_RULES_DATA: u32 = 1071710466u32;
38708pub const PR_RULES_TABLE: u32 = 1071710221u32;
38709pub const PR_RULE_ACTIONS: u32 = 1719664894u32;
38710pub const PR_RULE_ACTION_NUMBER: u32 = 1716518915u32;
38711pub const PR_RULE_ACTION_TYPE: u32 = 1716060163u32;
38712pub const PR_RULE_CONDITION: u32 = 1719206141u32;
38713pub const PR_RULE_ERROR: u32 = 1715994627u32;
38714pub const PR_RULE_FOLDER_ENTRYID: u32 = 1716584706u32;
38715pub const PR_RULE_ID: u32 = 1718878228u32;
38716pub const PR_RULE_IDS: u32 = 1718944002u32;
38717pub const PR_RULE_LEVEL: u32 = 1719861251u32;
38718pub const PR_RULE_MSG_LEVEL: u32 = 1710030851u32;
38719pub const PR_RULE_MSG_NAME_W: u32 = 1709965343u32;
38720pub const PR_RULE_MSG_PROVIDER_DATA: u32 = 1710096642u32;
38721pub const PR_RULE_MSG_PROVIDER_W: u32 = 1709899807u32;
38722pub const PR_RULE_MSG_SEQUENCE: u32 = 1710424067u32;
38723pub const PR_RULE_MSG_STATE: u32 = 1709768707u32;
38724pub const PR_RULE_MSG_USER_FLAGS: u32 = 1709834243u32;
38725pub const PR_RULE_NAME: u32 = 1719795742u32;
38726pub const PR_RULE_PROVIDER: u32 = 1719730206u32;
38727pub const PR_RULE_PROVIDER_DATA: u32 = 1719927042u32;
38728pub const PR_RULE_SEQUENCE: u32 = 1719009283u32;
38729pub const PR_RULE_SERVER_RULE_ID: u32 = 1704984596u32;
38730pub const PR_RULE_STATE: u32 = 1719074819u32;
38731pub const PR_RULE_TRIGGER_HISTORY: u32 = 1072824578u32;
38732pub const PR_RULE_USER_FLAGS: u32 = 1719140355u32;
38733pub const PR_SCHEDULE_FOLDER_ENTRYID: u32 = 1713242370u32;
38734pub const PR_SEARCH: u32 = 906428429u32;
38735pub const PR_SEARCH_KEY: u32 = 806027522u32;
38736pub const PR_SECURE_IN_SITE: u32 = 1721630731u32;
38737pub const PR_SECURE_ORIGINATION: u32 = 1071972363u32;
38738pub const PR_SECURITY: u32 = 3407875u32;
38739pub const PR_SELECTABLE: u32 = 906559499u32;
38740pub const PR_SENDER_ADDRTYPE: u32 = 203292702u32;
38741pub const PR_SENDER_ADDRTYPE_A: u32 = 203292702u32;
38742pub const PR_SENDER_ADDRTYPE_W: u32 = 203292703u32;
38743pub const PR_SENDER_EMAIL_ADDRESS: u32 = 203358238u32;
38744pub const PR_SENDER_EMAIL_ADDRESS_A: u32 = 203358238u32;
38745pub const PR_SENDER_EMAIL_ADDRESS_W: u32 = 203358239u32;
38746pub const PR_SENDER_ENTRYID: u32 = 202965250u32;
38747pub const PR_SENDER_NAME: u32 = 203030558u32;
38748pub const PR_SENDER_NAME_A: u32 = 203030558u32;
38749pub const PR_SENDER_NAME_W: u32 = 203030559u32;
38750pub const PR_SENDER_SEARCH_KEY: u32 = 203227394u32;
38751pub const PR_SENDER_SID: u32 = 239927554u32;
38752pub const PR_SENDER_SID_AS_XML: u32 = 242090014u32;
38753pub const PR_SENDER_SMTP_ADDRESS: u32 = 1560346654u32;
38754pub const PR_SENDER_SMTP_ADDRESS_A: u32 = 1560346654u32;
38755pub const PR_SENDER_SMTP_ADDRESS_W: u32 = 1560346655u32;
38756pub const PR_SEND_RICH_INFO: u32 = 977272843u32;
38757pub const PR_SENSITIVITY: u32 = 3538947u32;
38758pub const PR_SENTMAIL_ENTRYID: u32 = 235536642u32;
38759pub const PR_SENT_REPRESENTING_ADDRTYPE: u32 = 6553630u32;
38760pub const PR_SENT_REPRESENTING_ADDRTYPE_A: u32 = 6553630u32;
38761pub const PR_SENT_REPRESENTING_ADDRTYPE_W: u32 = 6553631u32;
38762pub const PR_SENT_REPRESENTING_EMAIL_ADDRESS: u32 = 6619166u32;
38763pub const PR_SENT_REPRESENTING_EMAIL_ADDRESS_A: u32 = 6619166u32;
38764pub const PR_SENT_REPRESENTING_EMAIL_ADDRESS_W: u32 = 6619167u32;
38765pub const PR_SENT_REPRESENTING_ENTRYID: u32 = 4260098u32;
38766pub const PR_SENT_REPRESENTING_NAME: u32 = 4325406u32;
38767pub const PR_SENT_REPRESENTING_NAME_A: u32 = 4325406u32;
38768pub const PR_SENT_REPRESENTING_NAME_W: u32 = 4325407u32;
38769pub const PR_SENT_REPRESENTING_SEARCH_KEY: u32 = 3866882u32;
38770pub const PR_SENT_REPRESENTING_SID: u32 = 239993090u32;
38771pub const PR_SENT_REPRESENTING_SID_AS_XML: u32 = 242155550u32;
38772pub const PR_SENT_REPRESENTING_SMTP_ADDRESS: u32 = 1560412190u32;
38773pub const PR_SENT_REPRESENTING_SMTP_ADDRESS_A: u32 = 1560412190u32;
38774pub const PR_SENT_REPRESENTING_SMTP_ADDRESS_W: u32 = 1560412191u32;
38775pub const PR_SERVICES: u32 = 1024327938u32;
38776pub const PR_SERVICE_DELETE_FILES: u32 = 1024462878u32;
38777pub const PR_SERVICE_DELETE_FILES_A: u32 = 1024462878u32;
38778pub const PR_SERVICE_DELETE_FILES_W: u32 = 1024462879u32;
38779pub const PR_SERVICE_DLL_NAME: u32 = 1024065566u32;
38780pub const PR_SERVICE_DLL_NAME_A: u32 = 1024065566u32;
38781pub const PR_SERVICE_DLL_NAME_W: u32 = 1024065567u32;
38782pub const PR_SERVICE_ENTRY_NAME: u32 = 1024131102u32;
38783pub const PR_SERVICE_EXTRA_UIDS: u32 = 1024262402u32;
38784pub const PR_SERVICE_NAME: u32 = 1024000030u32;
38785pub const PR_SERVICE_NAME_A: u32 = 1024000030u32;
38786pub const PR_SERVICE_NAME_W: u32 = 1024000031u32;
38787pub const PR_SERVICE_SUPPORT_FILES: u32 = 1024397342u32;
38788pub const PR_SERVICE_SUPPORT_FILES_A: u32 = 1024397342u32;
38789pub const PR_SERVICE_SUPPORT_FILES_W: u32 = 1024397343u32;
38790pub const PR_SERVICE_UID: u32 = 1024196866u32;
38791pub const PR_SHORTTERM_ENTRYID_FROM_OBJECT: u32 = 1718747394u32;
38792pub const PR_SHORTTERM_PARENT_ENTRYID_FROM_OBJECT: u32 = 1718681858u32;
38793pub const PR_SMTP_ADDRESS: u32 = 972947486u32;
38794pub const PR_SMTP_ADDRESS_A: u32 = 972947486u32;
38795pub const PR_SMTP_ADDRESS_W: u32 = 972947487u32;
38796pub const PR_SORT_LOCALE_ID: u32 = 1728380931u32;
38797pub const PR_SORT_PARENTID: u32 = 807469314u32;
38798pub const PR_SORT_POSITION: u32 = 807403778u32;
38799pub const PR_SOURCE_FID: u32 = 241106964u32;
38800pub const PR_SOURCE_KEY: u32 = 1709179138u32;
38801pub const PR_SPLUS_FREE_BUSY_ENTRYID: u32 = 1713504514u32;
38802pub const PR_SPOOLER_STATUS: u32 = 235929603u32;
38803pub const PR_SPOUSE_NAME: u32 = 977797150u32;
38804pub const PR_SPOUSE_NAME_A: u32 = 977797150u32;
38805pub const PR_SPOUSE_NAME_W: u32 = 977797151u32;
38806pub const PR_SRC_URL_NAME: u32 = 1729036318u32;
38807pub const PR_SRC_URL_NAME_A: u32 = 1729036318u32;
38808pub const PR_SRC_URL_NAME_W: u32 = 1729036319u32;
38809pub const PR_START_DATE: u32 = 6291520u32;
38810pub const PR_START_DATE_ETC: u32 = 807076098u32;
38811pub const PR_STATE_OR_PROVINCE: u32 = 975699998u32;
38812pub const PR_STATE_OR_PROVINCE_A: u32 = 975699998u32;
38813pub const PR_STATE_OR_PROVINCE_W: u32 = 975699999u32;
38814pub const PR_STATUS: u32 = 906690563u32;
38815pub const PR_STATUS_CODE: u32 = 1040449539u32;
38816pub const PR_STATUS_STRING: u32 = 1040711710u32;
38817pub const PR_STATUS_STRING_A: u32 = 1040711710u32;
38818pub const PR_STATUS_STRING_W: u32 = 1040711711u32;
38819pub const PR_STORAGE_LIMIT_INFORMATION: u32 = 1722023939u32;
38820pub const PR_STORAGE_QUOTA_LIMIT: u32 = 1073020931u32;
38821pub const PR_STORE_ENTRYID: u32 = 268108034u32;
38822pub const PR_STORE_OFFLINE: u32 = 1714552843u32;
38823pub const PR_STORE_PROVIDERS: u32 = 1023410434u32;
38824pub const PR_STORE_RECORD_KEY: u32 = 268042498u32;
38825pub const PR_STORE_SLOWLINK: u32 = 2081030155u32;
38826pub const PR_STORE_STATE: u32 = 873332739u32;
38827pub const PR_STORE_SUPPORT_MASK: u32 = 873267203u32;
38828pub const PR_STREET_ADDRESS: u32 = 975765534u32;
38829pub const PR_STREET_ADDRESS_A: u32 = 975765534u32;
38830pub const PR_STREET_ADDRESS_W: u32 = 975765535u32;
38831pub const PR_SUBFOLDER: u32 = 1728577547u32;
38832pub const PR_SUBFOLDERS: u32 = 906625035u32;
38833pub const PR_SUBJECT: u32 = 3604510u32;
38834pub const PR_SUBJECT_A: u32 = 3604510u32;
38835pub const PR_SUBJECT_IPM: u32 = 3670274u32;
38836pub const PR_SUBJECT_PREFIX: u32 = 3997726u32;
38837pub const PR_SUBJECT_PREFIX_A: u32 = 3997726u32;
38838pub const PR_SUBJECT_PREFIX_W: u32 = 3997727u32;
38839pub const PR_SUBJECT_TRACE_INFO: u32 = 1717633282u32;
38840pub const PR_SUBJECT_W: u32 = 3604511u32;
38841pub const PR_SUBMIT_FLAGS: u32 = 236191747u32;
38842pub const PR_SUPPLEMENTARY_INFO: u32 = 203096094u32;
38843pub const PR_SUPPLEMENTARY_INFO_A: u32 = 203096094u32;
38844pub const PR_SUPPLEMENTARY_INFO_W: u32 = 203096095u32;
38845pub const PR_SURNAME: u32 = 974192670u32;
38846pub const PR_SURNAME_A: u32 = 974192670u32;
38847pub const PR_SURNAME_W: u32 = 974192671u32;
38848pub const PR_SVR_GENERATING_QUOTA_MSG: u32 = 1073152030u32;
38849pub const PR_SYNCEVENT_FIRED: u32 = 1716453387u32;
38850pub const PR_SYNCEVENT_SUPPRESS_GUID: u32 = 947912962u32;
38851pub const PR_SYNCHRONIZE_FLAGS: u32 = 1709441027u32;
38852pub const PR_SYS_CONFIG_FOLDER_ENTRYID: u32 = 1714815234u32;
38853pub const PR_TELEX_NUMBER: u32 = 975962142u32;
38854pub const PR_TELEX_NUMBER_A: u32 = 975962142u32;
38855pub const PR_TELEX_NUMBER_W: u32 = 975962143u32;
38856pub const PR_TEMPLATEID: u32 = 956432642u32;
38857pub const PR_TEST_LINE_SPEED: u32 = 1714094338u32;
38858pub const PR_TITLE: u32 = 974585886u32;
38859pub const PR_TITLE_A: u32 = 974585886u32;
38860pub const PR_TITLE_W: u32 = 974585887u32;
38861pub const PR_TNEF_CORRELATION_KEY: u32 = 8323330u32;
38862pub const PR_TNEF_UNPROCESSED_PROPS: u32 = 245104898u32;
38863pub const PR_TRACE_INFO: u32 = 1717567746u32;
38864pub const PR_TRANSFER_ENABLED: u32 = 1714028555u32;
38865pub const PR_TRANSMITABLE_DISPLAY_NAME: u32 = 975175710u32;
38866pub const PR_TRANSMITABLE_DISPLAY_NAME_A: u32 = 975175710u32;
38867pub const PR_TRANSMITABLE_DISPLAY_NAME_W: u32 = 975175711u32;
38868pub const PR_TRANSPORT_KEY: u32 = 236322819u32;
38869pub const PR_TRANSPORT_MESSAGE_HEADERS: u32 = 8192030u32;
38870pub const PR_TRANSPORT_MESSAGE_HEADERS_A: u32 = 8192030u32;
38871pub const PR_TRANSPORT_MESSAGE_HEADERS_W: u32 = 8192031u32;
38872pub const PR_TRANSPORT_PROVIDERS: u32 = 1023541506u32;
38873pub const PR_TRANSPORT_STATUS: u32 = 235995139u32;
38874pub const PR_TRUST_SENDER: u32 = 242810883u32;
38875pub const PR_TRUST_SENDER_NO: i32 = 0i32;
38876pub const PR_TRUST_SENDER_YES: i32 = 1i32;
38877pub const PR_TTYTDD_PHONE_NUMBER: u32 = 977993758u32;
38878pub const PR_TTYTDD_PHONE_NUMBER_A: u32 = 977993758u32;
38879pub const PR_TTYTDD_PHONE_NUMBER_W: u32 = 977993759u32;
38880pub const PR_TYPE_OF_MTS_USER: u32 = 203161603u32;
38881pub const PR_URL_COMP_NAME: u32 = 284360734u32;
38882pub const PR_URL_COMP_NAME_A: u32 = 284360734u32;
38883pub const PR_URL_COMP_NAME_W: u32 = 284360735u32;
38884pub const PR_URL_NAME: u32 = 1728512030u32;
38885pub const PR_URL_NAME_A: u32 = 1728512030u32;
38886pub const PR_URL_NAME_W: u32 = 1728512031u32;
38887pub const PR_USER_CERTIFICATE: u32 = 975307010u32;
38888pub const PR_USER_ENTRYID: u32 = 1712914690u32;
38889pub const PR_USER_NAME: u32 = 1712979998u32;
38890pub const PR_VALID_FOLDER_MASK: u32 = 903806979u32;
38891pub const PR_VIEWS_ENTRYID: u32 = 904200450u32;
38892pub const PR_WEDDING_ANNIVERSARY: u32 = 977338432u32;
38893pub const PR_WIN32_SECURITY_DESCRIPTOR: u32 = 1025638658u32;
38894pub const PR_WIZARD_NO_PAB_PAGE: u32 = 1728118795u32;
38895pub const PR_WIZARD_NO_PST_PAGE: u32 = 1728053259u32;
38896pub const PR_X400_CONTENT_TYPE: u32 = 3932418u32;
38897pub const PR_X400_DEFERRED_DELIVERY_CANCEL: u32 = 1040777227u32;
38898pub const PR_X400_ENVELOPE_TYPE: u32 = 1716715523u32;
38899pub const PR_XMT_SECURITY_ROLE_1: u32 = 1025835266u32;
38900pub const PR_XMT_SECURITY_ROLE_1_AS_XML: u32 = 1025835038u32;
38901pub const PR_XMT_SECURITY_ROLE_2: u32 = 1025900802u32;
38902pub const PR_XMT_SECURITY_ROLE_2_AS_XML: u32 = 1025900574u32;
38903pub const PR_XMT_SECURITY_ROLE_3: u32 = 1025966338u32;
38904pub const PR_XMT_SECURITY_ROLE_3_AS_XML: u32 = 1025966110u32;
38905pub const PR_XMT_SECURITY_ROLE_4: u32 = 1026031874u32;
38906pub const PR_XMT_SECURITY_ROLE_4_AS_XML: u32 = 1026031646u32;
38907pub const PR_XMT_SECURITY_ROLE_5: u32 = 1026097410u32;
38908pub const PR_XMT_SECURITY_ROLE_5_AS_XML: u32 = 1026097182u32;
38909pub const PR_XMT_SECURITY_ROLE_6: u32 = 1026162946u32;
38910pub const PR_XMT_SECURITY_ROLE_6_AS_XML: u32 = 1026162718u32;
38911pub const PR_XMT_SECURITY_ROLE_7: u32 = 1026228482u32;
38912pub const PR_XMT_SECURITY_ROLE_7_AS_XML: u32 = 1026228254u32;
38913pub const PR_XMT_SECURITY_ROLE_8: u32 = 1026294018u32;
38914pub const PR_XMT_SECURITY_ROLE_8_AS_XML: u32 = 1026293790u32;
38915pub const PR_XPOS: u32 = 1057292291u32;
38916pub const PR_YPOS: u32 = 1057357827u32;
38917pub const PSETID_Address: windows_core::GUID =
38918 windows_core::GUID::from_u128(0x00062004_0000_0000_c000_000000000046);
38919pub const PSETID_Appointment: windows_core::GUID =
38920 windows_core::GUID::from_u128(0x00062002_0000_0000_c000_000000000046);
38921pub const PSETID_Attachment: windows_core::GUID =
38922 windows_core::GUID::from_u128(0x96357f7f_59e1_47d0_99a7_46515c183b54);
38923pub const PSETID_Common: windows_core::GUID =
38924 windows_core::GUID::from_u128(0x00062008_0000_0000_c000_000000000046);
38925pub const PSETID_Log: windows_core::GUID =
38926 windows_core::GUID::from_u128(0x0006200a_0000_0000_c000_000000000046);
38927pub const PSETID_Meeting: windows_core::GUID =
38928 windows_core::GUID::from_u128(0x6ed8da90_450b_101b_98da_00aa003f1305);
38929pub const PSETID_Messaging: windows_core::GUID =
38930 windows_core::GUID::from_u128(0x41f28f13_83f4_4114_a584_eedb5a6b0bff);
38931pub const PSETID_Note: windows_core::GUID =
38932 windows_core::GUID::from_u128(0x0006200e_0000_0000_c000_000000000046);
38933pub const PSETID_PostRss: windows_core::GUID =
38934 windows_core::GUID::from_u128(0x00062041_0000_0000_c000_000000000046);
38935pub const PSETID_Remote: windows_core::GUID =
38936 windows_core::GUID::from_u128(0x00062014_0000_0000_c000_000000000046);
38937pub const PSETID_Report: windows_core::GUID =
38938 windows_core::GUID::from_u128(0x00062013_0000_0000_c000_000000000046);
38939pub const PSETID_Sharing: windows_core::GUID =
38940 windows_core::GUID::from_u128(0x00062040_0000_0000_c000_000000000046);
38941pub const PSETID_Task: windows_core::GUID =
38942 windows_core::GUID::from_u128(0x00062003_0000_0000_c000_000000000046);
38943pub const PSETID_UnifiedMessaging: windows_core::GUID =
38944 windows_core::GUID::from_u128(0x4442858e_a9e3_4e80_b900_317a210cc15b);
38945pub const PSETID_XmlExtractedEntities: windows_core::GUID =
38946 windows_core::GUID::from_u128(0x23239608_685d_4732_9c55_4c95cb4e8e33);
38947pub const PSTF_BEST_ENCRYPTION: u32 = 536870912u32;
38948pub const PSTF_COMPRESSABLE_ENCRYPTION: u32 = 1073741824u32;
38949pub const PSTF_NO_ENCRYPTION: u32 = 2147483648u32;
38950pub const PST_EXTERN_PROPID_BASE: u32 = 26368u32;
38951pub const PS_INTERNET_HEADERS: windows_core::GUID =
38952 windows_core::GUID::from_u128(0x00020386_0000_0000_c000_000000000046);
38953pub const PS_MAPI: windows_core::GUID =
38954 windows_core::GUID::from_u128(0x00020328_0000_0000_c000_000000000046);
38955pub const PS_PUBLIC_STRINGS: windows_core::GUID =
38956 windows_core::GUID::from_u128(0x00020329_0000_0000_c000_000000000046);
38957pub const PS_ROUTING_ADDRTYPE: windows_core::GUID =
38958 windows_core::GUID::from_u128(0x00020381_0000_0000_c000_000000000046);
38959pub const PS_ROUTING_DISPLAY_NAME: windows_core::GUID =
38960 windows_core::GUID::from_u128(0x00020382_0000_0000_c000_000000000046);
38961pub const PS_ROUTING_EMAIL_ADDRESSES: windows_core::GUID =
38962 windows_core::GUID::from_u128(0x00020380_0000_0000_c000_000000000046);
38963pub const PS_ROUTING_ENTRYID: windows_core::GUID =
38964 windows_core::GUID::from_u128(0x00020383_0000_0000_c000_000000000046);
38965pub const PS_ROUTING_SEARCH_KEY: windows_core::GUID =
38966 windows_core::GUID::from_u128(0x00020384_0000_0000_c000_000000000046);
38967pub const PT_ACTIONS: u32 = 254u32;
38968pub const PT_APPTIME: u32 = 7u32;
38969pub const PT_BINARY: u32 = 258u32;
38970pub const PT_BOOLEAN: u32 = 11u32;
38971pub const PT_CLSID: u32 = 72u32;
38972pub const PT_CURRENCY: u32 = 6u32;
38973pub const PT_DOUBLE: u32 = 5u32;
38974pub const PT_ERROR: u32 = 10u32;
38975pub const PT_FILE_EA: u32 = 260u32;
38976pub const PT_FILE_HANDLE: u32 = 259u32;
38977pub const PT_FLOAT: u32 = 4u32;
38978pub const PT_I2: u32 = 2u32;
38979pub const PT_I4: u32 = 3u32;
38980pub const PT_I8: u32 = 20u32;
38981pub const PT_LONG: u32 = 3u32;
38982pub const PT_LONGLONG: u32 = 20u32;
38983pub const PT_MV_APPTIME: u32 = 4103u32;
38984pub const PT_MV_BINARY: u32 = 4354u32;
38985pub const PT_MV_CLSID: u32 = 4168u32;
38986pub const PT_MV_CURRENCY: u32 = 4102u32;
38987pub const PT_MV_DOUBLE: u32 = 4101u32;
38988pub const PT_MV_FLOAT: u32 = 4100u32;
38989pub const PT_MV_I2: u32 = 4098u32;
38990pub const PT_MV_I4: u32 = 4099u32;
38991pub const PT_MV_I8: u32 = 4116u32;
38992pub const PT_MV_LONG: u32 = 4099u32;
38993pub const PT_MV_LONGLONG: u32 = 4116u32;
38994pub const PT_MV_R4: u32 = 4100u32;
38995pub const PT_MV_R8: u32 = 4101u32;
38996pub const PT_MV_SHORT: u32 = 4098u32;
38997pub const PT_MV_STRING8: u32 = 4126u32;
38998pub const PT_MV_SYSTIME: u32 = 4160u32;
38999pub const PT_MV_TSTRING: u32 = 4126u32;
39000pub const PT_MV_UNICODE: u32 = 4127u32;
39001pub const PT_NULL: u32 = 1u32;
39002pub const PT_OBJECT: u32 = 13u32;
39003pub const PT_PTR: u32 = 259u32;
39004pub const PT_R4: u32 = 4u32;
39005pub const PT_R8: u32 = 5u32;
39006pub const PT_SHORT: u32 = 2u32;
39007pub const PT_SRESTRICTION: u32 = 253u32;
39008pub const PT_STRING8: u32 = 30u32;
39009pub const PT_SYSTIME: u32 = 64u32;
39010pub const PT_TSTRING: u32 = 31u32;
39011pub const PT_UNICODE: u32 = 31u32;
39012pub const PT_UNSPECIFIED: u32 = 0u32;
39013pub const PT_VIRTUAL: u32 = 261u32;
39014#[repr(C)]
39015#[derive(Clone, Copy, Debug, PartialEq)]
39016pub struct READSTATE {
39017 pub cbSourceKey: u32,
39018 pub pbSourceKey: *mut u8,
39019 pub ulFlags: u32,
39020}
39021impl Default for READSTATE {
39022 fn default() -> Self {
39023 unsafe { core::mem::zeroed() }
39024 }
39025}
39026pub const RECURSIVE_SEARCH: u32 = 4u32;
39027pub const RECURSIVE_SORT: u32 = 2u32;
39028pub const REFRESH_XP_HEADER_CACHE: u32 = 65536u32;
39029#[repr(transparent)]
39030#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
39031pub struct RELOADTYPE(pub i32);
39032pub const RELOAD_HEADER_APPEND: RELOADTYPE = RELOADTYPE(2i32);
39033pub const RELOAD_HEADER_NONE: RELOADTYPE = RELOADTYPE(0i32);
39034pub const RELOAD_HEADER_REPLACE: RELOADTYPE = RELOADTYPE(3i32);
39035pub const RELOAD_HEADER_RESET: RELOADTYPE = RELOADTYPE(1i32);
39036pub const RELOP_EQ: u32 = 4u32;
39037pub const RELOP_GE: u32 = 3u32;
39038pub const RELOP_GT: u32 = 2u32;
39039pub const RELOP_LE: u32 = 1u32;
39040pub const RELOP_LT: u32 = 0u32;
39041pub const RELOP_MEMBER_OF_DL: u32 = 100u32;
39042pub const RELOP_NE: u32 = 5u32;
39043pub const RELOP_RE: u32 = 6u32;
39044pub type REMOVEPREPROCESSINFO = Option<
39045 unsafe extern "system" fn(lpmessage: windows_core::Ref<IMessage>) -> windows_core::HRESULT,
39046>;
39047pub const RESOLVE_METHOD_DEFAULT: u32 = 0u32;
39048pub const RESOLVE_METHOD_LAST_WRITER_WINS: u32 = 1u32;
39049pub const RESOLVE_METHOD_NO_CONFLICT_NOTIFICATION: u32 = 2u32;
39050pub const RESTART_SEARCH: u32 = 2u32;
39051pub const RES_AND: u32 = 0u32;
39052pub const RES_ANNOTATION: u32 = 12u32;
39053pub const RES_BITMASK: u32 = 6u32;
39054pub const RES_COMMENT: u32 = 10u32;
39055pub const RES_COMPAREPROPS: u32 = 5u32;
39056pub const RES_CONTENT: u32 = 3u32;
39057pub const RES_COUNT: u32 = 11u32;
39058pub const RES_EXIST: u32 = 8u32;
39059pub const RES_NOT: u32 = 2u32;
39060pub const RES_OR: u32 = 1u32;
39061pub const RES_PROPERTY: u32 = 4u32;
39062pub const RES_SIZE: u32 = 7u32;
39063pub const RES_SUBRESTRICTION: u32 = 9u32;
39064pub const RETENTION_FLAGS_AUTOTAG: u32 = 4u32;
39065pub const RETENTION_FLAGS_EXPLICIT: u32 = 1u32;
39066pub const RETENTION_FLAGS_EXPLICIT_ARCHIVE: u32 = 16u32;
39067pub const RETENTION_FLAGS_PERSONAL: u32 = 8u32;
39068pub const RETENTION_FLAGS_TAG_CHANGED: u32 = 2u32;
39069#[repr(C)]
39070#[derive(Clone, Copy, Debug, PartialEq)]
39071pub struct RFC1522INFO {
39072 pub fRfc1522Allowed: windows_core::BOOL,
39073 pub fRfc1522Used: windows_core::BOOL,
39074 pub fAllow8bit: windows_core::BOOL,
39075 pub hRfc1522Cset: *mut HCHARSET__,
39076}
39077impl Default for RFC1522INFO {
39078 fn default() -> Self {
39079 unsafe { core::mem::zeroed() }
39080 }
39081}
39082pub const ROHAUTH_BASIC: u32 = 1u32;
39083pub const ROHAUTH_NTLM: u32 = 2u32;
39084pub const ROHFLAGS_HTTP_FIRST_ON_FAST: u32 = 8u32;
39085pub const ROHFLAGS_HTTP_FIRST_ON_SLOW: u32 = 32u32;
39086pub const ROHFLAGS_MUTUAL_AUTH: u32 = 4u32;
39087pub const ROHFLAGS_SSL_ONLY: u32 = 2u32;
39088pub const ROHFLAGS_USE_ROH: u32 = 1u32;
39089pub const ROLESCOPE_FOLDER: u32 = 1u32;
39090pub const ROLESCOPE_MAX: u32 = 1u32;
39091pub const ROLESCOPE_OBJECT: u32 = 0u32;
39092#[repr(C)]
39093#[derive(Clone, Copy, Debug, PartialEq)]
39094pub struct ROWENTRY {
39095 pub ulRowFlags: u32,
39096 pub cValues: u32,
39097 pub rgPropVals: *mut SPropValue,
39098}
39099impl Default for ROWENTRY {
39100 fn default() -> Self {
39101 unsafe { core::mem::zeroed() }
39102 }
39103}
39104#[repr(C)]
39105#[derive(Clone, Copy, Debug, PartialEq)]
39106pub struct ROWLIST {
39107 pub cEntries: u32,
39108 pub aEntries: [ROWENTRY; 1],
39109}
39110impl Default for ROWLIST {
39111 fn default() -> Self {
39112 unsafe { core::mem::zeroed() }
39113 }
39114}
39115pub const ROWLIST_REPLACE: u32 = 1u32;
39116pub const ROW_ADD: u32 = 1u32;
39117pub const ROW_MODIFY: u32 = 2u32;
39118pub const ROW_REMOVE: u32 = 4u32;
39119pub const RTF_SYNC_BODY_CHANGED: u32 = 2u32;
39120pub const RTF_SYNC_RTF_CHANGED: u32 = 1u32;
39121#[repr(C)]
39122#[derive(Clone, Copy, Debug, Default, PartialEq)]
39123pub struct RTF_WCSINFO {
39124 pub size: u32,
39125 pub ulFlags: u32,
39126 pub ulInCodePage: u32,
39127 pub ulOutCodePage: u32,
39128}
39129#[repr(C)]
39130#[derive(Clone, Copy, Debug, Default, PartialEq)]
39131pub struct RTF_WCSRETINFO {
39132 pub size: u32,
39133 pub ulStreamFlags: u32,
39134}
39135pub const RULE_ERR_CREATE_DAE: u32 = 5u32;
39136pub const RULE_ERR_CREATE_DAM: u32 = 8u32;
39137pub const RULE_ERR_DELIVERY: u32 = 3u32;
39138pub const RULE_ERR_EXECUTION: u32 = 11u32;
39139pub const RULE_ERR_FIRST: u32 = 1u32;
39140pub const RULE_ERR_LAST: u32 = 13u32;
39141pub const RULE_ERR_LOAD: u32 = 2u32;
39142pub const RULE_ERR_NO_FOLDER: u32 = 6u32;
39143pub const RULE_ERR_NO_RIGHTS: u32 = 7u32;
39144pub const RULE_ERR_NO_SENDAS: u32 = 9u32;
39145pub const RULE_ERR_NO_TEMPLATE: u32 = 10u32;
39146pub const RULE_ERR_PARSING: u32 = 4u32;
39147pub const RULE_ERR_QUOTA_EXCEEDED: u32 = 12u32;
39148pub const RULE_ERR_TOO_MANY_RECIPS: u32 = 13u32;
39149pub const RULE_ERR_UNKNOWN: u32 = 1u32;
39150pub const SAVEBODY_KEEPBOUNDARY: u32 = 1u32;
39151#[repr(transparent)]
39152#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
39153pub struct SAVEOPTS(pub i32);
39154pub const SAVEOPTS_NOSAVE: SAVEOPTS = SAVEOPTS(1i32);
39155pub const SAVEOPTS_PROMPTSAVE: SAVEOPTS = SAVEOPTS(2i32);
39156pub const SAVEOPTS_SAVEIFDIRTY: SAVEOPTS = SAVEOPTS(0i32);
39157pub const SAVE_FORMAT_RICHTEXT: u32 = 2u32;
39158pub const SAVE_FORMAT_TEXT: u32 = 1u32;
39159pub const SAVE_RFC1521: MIMESAVETYPE = MIMESAVETYPE(1i32);
39160pub const SAVE_RFC822: MIMESAVETYPE = MIMESAVETYPE(0i32);
39161#[repr(C)]
39162#[derive(Clone, Copy, Debug, PartialEq)]
39163pub struct SAndRestriction {
39164 pub cRes: u32,
39165 pub lpRes: *mut SRestriction,
39166}
39167impl Default for SAndRestriction {
39168 fn default() -> Self {
39169 unsafe { core::mem::zeroed() }
39170 }
39171}
39172#[repr(C)]
39173#[derive(Clone, Copy, Debug, PartialEq)]
39174pub struct SAnnotationRestriction {
39175 pub cValues: u32,
39176 pub lpRes: *mut SRestriction,
39177 pub lpProp: *mut SPropValue,
39178}
39179impl Default for SAnnotationRestriction {
39180 fn default() -> Self {
39181 unsafe { core::mem::zeroed() }
39182 }
39183}
39184#[repr(C)]
39185#[derive(Clone, Copy, Debug, PartialEq)]
39186pub struct SAppTimeArray {
39187 pub cValues: u32,
39188 pub lpat: *mut f64,
39189}
39190impl Default for SAppTimeArray {
39191 fn default() -> Self {
39192 unsafe { core::mem::zeroed() }
39193 }
39194}
39195#[repr(C)]
39196#[derive(Clone, Copy, Debug, PartialEq)]
39197pub struct SBinary {
39198 pub cb: u32,
39199 pub lpb: *mut u8,
39200}
39201impl Default for SBinary {
39202 fn default() -> Self {
39203 unsafe { core::mem::zeroed() }
39204 }
39205}
39206#[repr(C)]
39207#[derive(Clone, Copy, Debug, PartialEq)]
39208pub struct SBinaryArray {
39209 pub cValues: u32,
39210 pub lpbin: *mut SBinary,
39211}
39212impl Default for SBinaryArray {
39213 fn default() -> Self {
39214 unsafe { core::mem::zeroed() }
39215 }
39216}
39217#[repr(C)]
39218#[derive(Clone, Copy, Debug, Default, PartialEq)]
39219pub struct SBitMaskRestriction {
39220 pub relBMR: u32,
39221 pub ulPropTag: u32,
39222 pub ulMask: u32,
39223}
39224#[repr(C)]
39225#[derive(Clone, Copy, Debug, PartialEq)]
39226pub struct SCommentRestriction {
39227 pub cValues: u32,
39228 pub lpRes: *mut SRestriction,
39229 pub lpProp: *mut SPropValue,
39230}
39231impl Default for SCommentRestriction {
39232 fn default() -> Self {
39233 unsafe { core::mem::zeroed() }
39234 }
39235}
39236#[repr(C)]
39237#[derive(Clone, Copy, Debug, Default, PartialEq)]
39238pub struct SComparePropsRestriction {
39239 pub relop: u32,
39240 pub ulPropTag1: u32,
39241 pub ulPropTag2: u32,
39242}
39243#[repr(C)]
39244#[derive(Clone, Copy, Debug, PartialEq)]
39245pub struct SContentRestriction {
39246 pub ulFuzzyLevel: u32,
39247 pub ulPropTag: u32,
39248 pub lpProp: *mut SPropValue,
39249}
39250impl Default for SContentRestriction {
39251 fn default() -> Self {
39252 unsafe { core::mem::zeroed() }
39253 }
39254}
39255#[repr(C)]
39256#[derive(Clone, Copy, Debug, PartialEq)]
39257pub struct SCountRestriction {
39258 pub ulCount: u32,
39259 pub lpRes: *mut SRestriction,
39260}
39261impl Default for SCountRestriction {
39262 fn default() -> Self {
39263 unsafe { core::mem::zeroed() }
39264 }
39265}
39266#[repr(C)]
39267#[derive(Clone, Copy, Debug, PartialEq)]
39268pub struct SCurrencyArray {
39269 pub cValues: u32,
39270 pub lpcur: *mut windows::Win32::System::Com::CY,
39271}
39272impl Default for SCurrencyArray {
39273 fn default() -> Self {
39274 unsafe { core::mem::zeroed() }
39275 }
39276}
39277#[repr(C)]
39278#[derive(Clone, Copy, Debug, PartialEq)]
39279pub struct SDateTimeArray {
39280 pub cValues: u32,
39281 pub lpft: *mut windows::Win32::Foundation::FILETIME,
39282}
39283impl Default for SDateTimeArray {
39284 fn default() -> Self {
39285 unsafe { core::mem::zeroed() }
39286 }
39287}
39288#[repr(C)]
39289#[derive(Clone, Copy, Debug, PartialEq)]
39290pub struct SDoubleArray {
39291 pub cValues: u32,
39292 pub lpdbl: *mut f64,
39293}
39294impl Default for SDoubleArray {
39295 fn default() -> Self {
39296 unsafe { core::mem::zeroed() }
39297 }
39298}
39299pub const SEARCH_FOREGROUND: u32 = 8u32;
39300pub const SEARCH_REBUILD: u32 = 2u32;
39301pub const SEARCH_RECURSIVE: u32 = 4u32;
39302pub const SEARCH_RUNNING: u32 = 1u32;
39303pub const SECURITY_DESCRIPTOR_TRANSFER_VERSION: u32 = 3u32;
39304pub const SECURITY_ENCRYPTED: u32 = 2u32;
39305pub const SECURITY_SIGNED: u32 = 1u32;
39306pub const SEF_ENCRYPTWITHNOSENDERCERT: u32 = 1u32;
39307pub const SEF_MASK: u32 = 65535u32;
39308pub const SEF_SENDERSCERTPROVIDED: u32 = 2u32;
39309pub const SENSITIVITY_COMPANY_CONFIDENTIAL: u32 = 3u32;
39310pub const SENSITIVITY_NONE: u32 = 0u32;
39311pub const SENSITIVITY_PERSONAL: u32 = 1u32;
39312pub const SENSITIVITY_PRIVATE: u32 = 2u32;
39313pub type SERVICEWIZARDDLGPROC = Option<
39314 unsafe extern "system" fn(
39315 hdlg: windows::Win32::Foundation::HWND,
39316 wmsgid: u32,
39317 wparam: windows::Win32::Foundation::WPARAM,
39318 lparam: windows::Win32::Foundation::LPARAM,
39319 ) -> windows_core::BOOL,
39320>;
39321pub const SERVICE_CREATE_WITH_STORE: u32 = 4u32;
39322pub const SERVICE_DEFAULT_STORE: u32 = 1u32;
39323pub const SERVICE_LOGON_FAILED: u32 = 32u32;
39324pub const SERVICE_NO_PRIMARY_IDENTITY: u32 = 32u32;
39325pub const SERVICE_PRIMARY_IDENTITY: u32 = 8u32;
39326pub const SERVICE_SINGLE_COPY: u32 = 2u32;
39327pub const SERVICE_UI_ALLOWED: u32 = 16u32;
39328pub const SERVICE_UI_ALWAYS: u32 = 2u32;
39329pub const SETID_AirSync: windows_core::GUID =
39330 windows_core::GUID::from_u128(0x71035549_0739_4dcb_9163_00f0580dbbdf);
39331#[repr(C)]
39332#[derive(Clone, Copy, Debug, Default, PartialEq)]
39333pub struct SExistRestriction {
39334 pub ulReserved1: u32,
39335 pub ulPropTag: u32,
39336 pub ulReserved2: u32,
39337}
39338pub const SF_DISABLE_STARTUP_SYNC: u32 = 1u32;
39339#[repr(C)]
39340#[derive(Clone, Copy, Debug, PartialEq)]
39341pub struct SGuidArray {
39342 pub cValues: u32,
39343 pub lpguid: *mut windows_core::GUID,
39344}
39345impl Default for SGuidArray {
39346 fn default() -> Self {
39347 unsafe { core::mem::zeroed() }
39348 }
39349}
39350pub const SHALLOW_SEARCH: u32 = 8u32;
39351pub const SHOW_SOFT_DELETES: u32 = 2u32;
39352pub const SHOW_SUBFOLDERS: u32 = 4u32;
39353pub const SHOW_XP_SESSION_UI: u32 = 4194304u32;
39354pub const SIMPLE: CERTNAMETYPE = CERTNAMETYPE(0i32);
39355#[repr(C)]
39356#[derive(Clone, Copy, Debug, PartialEq)]
39357pub struct SLPSTRArray {
39358 pub cValues: u32,
39359 pub lppszA: *mut windows_core::PSTR,
39360}
39361impl Default for SLPSTRArray {
39362 fn default() -> Self {
39363 unsafe { core::mem::zeroed() }
39364 }
39365}
39366#[repr(C)]
39367#[derive(Clone, Copy, Debug, PartialEq)]
39368pub struct SLargeIntegerArray {
39369 pub cValues: u32,
39370 pub lpli: *mut i64,
39371}
39372impl Default for SLargeIntegerArray {
39373 fn default() -> Self {
39374 unsafe { core::mem::zeroed() }
39375 }
39376}
39377#[repr(C)]
39378#[derive(Clone, Copy, Debug, PartialEq)]
39379pub struct SLongArray {
39380 pub cValues: u32,
39381 pub lpl: *mut i32,
39382}
39383impl Default for SLongArray {
39384 fn default() -> Self {
39385 unsafe { core::mem::zeroed() }
39386 }
39387}
39388#[repr(C)]
39389#[derive(Clone, Debug, PartialEq)]
39390pub struct SMAPIFormInfoArray {
39391 pub cForms: u32,
39392 pub aFormInfo: [core::mem::ManuallyDrop<Option<IMAPIFormInfo>>; 1],
39393}
39394impl Default for SMAPIFormInfoArray {
39395 fn default() -> Self {
39396 unsafe { core::mem::zeroed() }
39397 }
39398}
39399#[repr(C)]
39400#[derive(Clone, Copy)]
39401pub struct SMAPIFormProp {
39402 pub ulFlags: u32,
39403 pub nPropType: u32,
39404 pub nmid: MAPINAMEID,
39405 pub pszDisplayName: *mut i8,
39406 pub nSpecialType: u32,
39407 pub u: SMAPIFormProp_0,
39408}
39409impl Default for SMAPIFormProp {
39410 fn default() -> Self {
39411 unsafe { core::mem::zeroed() }
39412 }
39413}
39414#[repr(C)]
39415#[derive(Clone, Copy)]
39416pub union SMAPIFormProp_0 {
39417 pub s1: SMAPIFormProp_0_0,
39418}
39419impl Default for SMAPIFormProp_0 {
39420 fn default() -> Self {
39421 unsafe { core::mem::zeroed() }
39422 }
39423}
39424#[repr(C)]
39425#[derive(Clone, Copy)]
39426pub struct SMAPIFormProp_0_0 {
39427 pub nmidIdx: MAPINAMEID,
39428 pub cfpevAvailable: u32,
39429 pub pfpevAvailable: *mut SMAPIFormPropEnumVal,
39430}
39431impl Default for SMAPIFormProp_0_0 {
39432 fn default() -> Self {
39433 unsafe { core::mem::zeroed() }
39434 }
39435}
39436#[repr(C)]
39437#[derive(Clone, Copy)]
39438pub struct SMAPIFormPropArray {
39439 pub cProps: u32,
39440 pub ulPad: u32,
39441 pub aFormProp: [SMAPIFormProp; 1],
39442}
39443impl Default for SMAPIFormPropArray {
39444 fn default() -> Self {
39445 unsafe { core::mem::zeroed() }
39446 }
39447}
39448#[repr(C)]
39449#[derive(Clone, Copy, Debug, PartialEq)]
39450pub struct SMAPIFormPropEnumVal {
39451 pub pszDisplayName: *mut i8,
39452 pub nVal: u32,
39453}
39454impl Default for SMAPIFormPropEnumVal {
39455 fn default() -> Self {
39456 unsafe { core::mem::zeroed() }
39457 }
39458}
39459#[repr(C)]
39460#[derive(Clone, Copy, Debug, PartialEq)]
39461pub struct SMAPIVerb {
39462 pub lVerb: i32,
39463 pub szVerbname: *mut i8,
39464 pub fuFlags: u32,
39465 pub grfAttribs: u32,
39466 pub ulFlags: u32,
39467}
39468impl Default for SMAPIVerb {
39469 fn default() -> Self {
39470 unsafe { core::mem::zeroed() }
39471 }
39472}
39473#[repr(C)]
39474#[derive(Clone, Copy, Debug, PartialEq)]
39475pub struct SMAPIVerbArray {
39476 pub cMAPIVerb: u32,
39477 pub aMAPIVerb: [SMAPIVerb; 1],
39478}
39479impl Default for SMAPIVerbArray {
39480 fn default() -> Self {
39481 unsafe { core::mem::zeroed() }
39482 }
39483}
39484#[repr(C)]
39485#[derive(Clone, Copy, Debug, PartialEq)]
39486pub struct SMessageClassArray {
39487 pub cValues: u32,
39488 pub aMessageClass: [windows_core::PSTR; 1],
39489}
39490impl Default for SMessageClassArray {
39491 fn default() -> Self {
39492 unsafe { core::mem::zeroed() }
39493 }
39494}
39495#[repr(C)]
39496#[derive(Clone, Copy, Debug, PartialEq)]
39497pub struct SNotRestriction {
39498 pub ulReserved: u32,
39499 pub lpRes: *mut SRestriction,
39500}
39501impl Default for SNotRestriction {
39502 fn default() -> Self {
39503 unsafe { core::mem::zeroed() }
39504 }
39505}
39506pub const SOF_UNIQUEFILENAME: u32 = 2147483648u32;
39507#[repr(C)]
39508#[derive(Clone, Copy, Debug, PartialEq)]
39509pub struct SOrRestriction {
39510 pub cRes: u32,
39511 pub lpRes: *mut SRestriction,
39512}
39513impl Default for SOrRestriction {
39514 fn default() -> Self {
39515 unsafe { core::mem::zeroed() }
39516 }
39517}
39518pub const SPAMFILTER_ONSAVE: u32 = 128u32;
39519#[repr(C)]
39520#[derive(Clone, Copy, Debug, PartialEq)]
39521pub struct SPropAttrArray {
39522 pub cValues: u32,
39523 pub aPropAttr: [u32; 1],
39524}
39525impl Default for SPropAttrArray {
39526 fn default() -> Self {
39527 unsafe { core::mem::zeroed() }
39528 }
39529}
39530#[repr(C)]
39531#[derive(Clone, Copy, Debug, Default, PartialEq)]
39532pub struct SPropProblem {
39533 pub ulIndex: u32,
39534 pub ulPropTag: u32,
39535 pub scode: i32,
39536}
39537#[repr(C)]
39538#[derive(Clone, Copy, Debug, PartialEq)]
39539pub struct SPropProblemArray {
39540 pub cProblem: u32,
39541 pub aProblem: [SPropProblem; 1],
39542}
39543impl Default for SPropProblemArray {
39544 fn default() -> Self {
39545 unsafe { core::mem::zeroed() }
39546 }
39547}
39548#[repr(C)]
39549#[derive(Clone, Copy, Debug, PartialEq)]
39550pub struct SPropTagArray {
39551 pub cValues: u32,
39552 pub aulPropTag: [u32; 1],
39553}
39554impl Default for SPropTagArray {
39555 fn default() -> Self {
39556 unsafe { core::mem::zeroed() }
39557 }
39558}
39559#[repr(C)]
39560#[derive(Clone, Copy)]
39561pub struct SPropValue {
39562 pub ulPropTag: u32,
39563 pub dwAlignPad: u32,
39564 pub Value: __UPV,
39565}
39566impl Default for SPropValue {
39567 fn default() -> Self {
39568 unsafe { core::mem::zeroed() }
39569 }
39570}
39571#[repr(C)]
39572#[derive(Clone, Copy, Debug, PartialEq)]
39573pub struct SPropertyRestriction {
39574 pub relop: u32,
39575 pub ulPropTag: u32,
39576 pub lpProp: *mut SPropValue,
39577}
39578impl Default for SPropertyRestriction {
39579 fn default() -> Self {
39580 unsafe { core::mem::zeroed() }
39581 }
39582}
39583#[repr(C)]
39584#[derive(Clone, Copy, Debug, PartialEq)]
39585pub struct SRealArray {
39586 pub cValues: u32,
39587 pub lpflt: *mut f32,
39588}
39589impl Default for SRealArray {
39590 fn default() -> Self {
39591 unsafe { core::mem::zeroed() }
39592 }
39593}
39594#[repr(C)]
39595#[derive(Clone, Copy)]
39596pub struct SRestriction {
39597 pub rt: u32,
39598 pub res: SRestriction_0,
39599}
39600impl Default for SRestriction {
39601 fn default() -> Self {
39602 unsafe { core::mem::zeroed() }
39603 }
39604}
39605#[repr(C)]
39606#[derive(Clone, Copy)]
39607pub union SRestriction_0 {
39608 pub resCompareProps: SComparePropsRestriction,
39609 pub resAnd: SAndRestriction,
39610 pub resOr: SOrRestriction,
39611 pub resNot: SNotRestriction,
39612 pub resContent: SContentRestriction,
39613 pub resProperty: SPropertyRestriction,
39614 pub resBitMask: SBitMaskRestriction,
39615 pub resSize: SSizeRestriction,
39616 pub resExist: SExistRestriction,
39617 pub resSub: SSubRestriction,
39618 pub resComment: SCommentRestriction,
39619 pub resAnnotation: SAnnotationRestriction,
39620 pub resCount: SCountRestriction,
39621}
39622impl Default for SRestriction_0 {
39623 fn default() -> Self {
39624 unsafe { core::mem::zeroed() }
39625 }
39626}
39627#[repr(C)]
39628#[derive(Clone, Copy, Debug, PartialEq)]
39629pub struct SRow {
39630 pub ulAdrEntryPad: u32,
39631 pub cValues: u32,
39632 pub lpProps: *mut SPropValue,
39633}
39634impl Default for SRow {
39635 fn default() -> Self {
39636 unsafe { core::mem::zeroed() }
39637 }
39638}
39639#[repr(C)]
39640#[derive(Clone, Copy, Debug, PartialEq)]
39641pub struct SRowSet {
39642 pub cRows: u32,
39643 pub aRow: [SRow; 1],
39644}
39645impl Default for SRowSet {
39646 fn default() -> Self {
39647 unsafe { core::mem::zeroed() }
39648 }
39649}
39650#[repr(C)]
39651#[derive(Clone, Copy, Debug, PartialEq)]
39652pub struct SShortArray {
39653 pub cValues: u32,
39654 pub lpi: *mut i16,
39655}
39656impl Default for SShortArray {
39657 fn default() -> Self {
39658 unsafe { core::mem::zeroed() }
39659 }
39660}
39661#[repr(C)]
39662#[derive(Clone, Copy, Debug, Default, PartialEq)]
39663pub struct SSizeRestriction {
39664 pub relop: u32,
39665 pub ulPropTag: u32,
39666 pub cb: u32,
39667}
39668#[repr(C)]
39669#[derive(Clone, Copy, Debug, Default, PartialEq)]
39670pub struct SSortOrder {
39671 pub ulPropTag: u32,
39672 pub ulOrder: u32,
39673}
39674#[repr(C)]
39675#[derive(Clone, Copy, Debug, PartialEq)]
39676pub struct SSortOrderSet {
39677 pub cSorts: u32,
39678 pub cCategories: u32,
39679 pub cExpanded: u32,
39680 pub aSort: [SSortOrder; 1],
39681}
39682impl Default for SSortOrderSet {
39683 fn default() -> Self {
39684 unsafe { core::mem::zeroed() }
39685 }
39686}
39687#[repr(C)]
39688#[derive(Clone, Copy, Debug, PartialEq)]
39689pub struct SSubRestriction {
39690 pub ulSubObject: u32,
39691 pub lpRes: *mut SRestriction,
39692}
39693impl Default for SSubRestriction {
39694 fn default() -> Self {
39695 unsafe { core::mem::zeroed() }
39696 }
39697}
39698pub const STATUSROW_UPDATE: u32 = 268435456u32;
39699pub const STATUS_AVAILABLE: u32 = 1u32;
39700pub const STATUS_CHANGE_PASSWORD: u32 = 4u32;
39701pub const STATUS_DEFAULT_OUTBOUND: u32 = 1u32;
39702pub const STATUS_DEFAULT_STORE: u32 = 2u32;
39703pub const STATUS_FAILURE: u32 = 4u32;
39704pub const STATUS_FLUSH_QUEUES: u32 = 8u32;
39705pub const STATUS_INBOUND_ACTIVE: u32 = 131072u32;
39706pub const STATUS_INBOUND_ENABLED: u32 = 65536u32;
39707pub const STATUS_INBOUND_FLUSH: u32 = 262144u32;
39708pub const STATUS_NEED_IPM_TREE: u32 = 2048u32;
39709pub const STATUS_NO_DEFAULT_STORE: u32 = 64u32;
39710pub const STATUS_NO_PRIMARY_IDENTITY: u32 = 32u32;
39711#[repr(C)]
39712#[derive(Clone, Copy, Debug, PartialEq)]
39713pub struct STATUS_OBJECT_NOTIFICATION {
39714 pub cbEntryID: u32,
39715 pub lpEntryID: *mut ENTRYID,
39716 pub cValues: u32,
39717 pub lpPropVals: *mut SPropValue,
39718}
39719impl Default for STATUS_OBJECT_NOTIFICATION {
39720 fn default() -> Self {
39721 unsafe { core::mem::zeroed() }
39722 }
39723}
39724pub const STATUS_OFFLINE: u32 = 2u32;
39725pub const STATUS_OUTBOUND_ACTIVE: u32 = 2097152u32;
39726pub const STATUS_OUTBOUND_ENABLED: u32 = 1048576u32;
39727pub const STATUS_OUTBOUND_FLUSH: u32 = 4194304u32;
39728pub const STATUS_OWN_STORE: u32 = 256u32;
39729pub const STATUS_PRIMARY_IDENTITY: u32 = 4u32;
39730pub const STATUS_PRIMARY_STORE: u32 = 4096u32;
39731pub const STATUS_REMOTE_ACCESS: u32 = 8388608u32;
39732pub const STATUS_SECONDARY_STORE: u32 = 8192u32;
39733pub const STATUS_SETTINGS_DIALOG: u32 = 2u32;
39734pub const STATUS_SIMPLE_STORE: u32 = 8u32;
39735pub const STATUS_TEMP_SECTION: u32 = 128u32;
39736pub const STATUS_VALIDATE_STATE: u32 = 1u32;
39737pub const STATUS_XP_PREFER_LAST: u32 = 16u32;
39738pub const STGSTRM_CREATE: u32 = 4096u32;
39739pub const STGSTRM_CURRENT: u32 = 268435456u32;
39740pub const STGSTRM_MODIFY: u32 = 2u32;
39741pub const STGSTRM_RESET: u32 = 0u32;
39742pub const STOCK_REPLY_TEMPLATE: u32 = 2u32;
39743pub const STOP_SEARCH: u32 = 1u32;
39744pub const STORE_ATTACH_OK: u32 = 32u32;
39745pub const STORE_CATEGORIZE_OK: u32 = 1024u32;
39746pub const STORE_CREATE_OK: u32 = 16u32;
39747pub const STORE_ENTRYID_UNIQUE: u32 = 1u32;
39748pub const STORE_HAS_SEARCHES: u32 = 16777216u32;
39749pub const STORE_ITEMPROC: u32 = 2097152u32;
39750pub const STORE_MODIFY_OK: u32 = 8u32;
39751pub const STORE_MV_PROPS_OK: u32 = 512u32;
39752pub const STORE_NOTIFY_OK: u32 = 256u32;
39753pub const STORE_OLE_OK: u32 = 64u32;
39754pub const STORE_PUBLIC_FOLDERS: u32 = 16384u32;
39755pub const STORE_READONLY: u32 = 2u32;
39756pub const STORE_RESTRICTION_OK: u32 = 4096u32;
39757pub const STORE_RTF_OK: u32 = 2048u32;
39758pub const STORE_SEARCH_OK: u32 = 4u32;
39759pub const STORE_SORT_OK: u32 = 8192u32;
39760pub const STORE_SUBMIT_OK: u32 = 128u32;
39761pub const STORE_UNCOMPRESSED_RTF: u32 = 32768u32;
39762pub const STORE_UNICODE_OK: u32 = 262144u32;
39763pub const STREAM_APPEND: u32 = 4u32;
39764pub const ST_CLEAR_OOF_HIST: u32 = 2147483648u32;
39765pub const ST_DISABLED: u32 = 0u32;
39766pub const ST_ENABLED: u32 = 1u32;
39767pub const ST_ERROR: u32 = 2u32;
39768pub const ST_EXIT_LEVEL: u32 = 16u32;
39769pub const ST_KEEP_OOF_HIST: u32 = 8u32;
39770pub const ST_ONLY_WHEN_OOF: u32 = 4u32;
39771pub const ST_RULE_PARSE_ERROR: u32 = 64u32;
39772pub const ST_SKIP_IF_SCL_IS_SAFE: u32 = 32u32;
39773pub const SUBMITFLAG_LOCKED: u32 = 1u32;
39774pub const SUBMITFLAG_PREPROCESS: u32 = 2u32;
39775pub const SUCCESS_SUCCESS: u32 = 0u32;
39776pub const SUPPRESS_RECEIPT: u32 = 1u32;
39777pub const SUPPRESS_UI: u32 = 1u32;
39778pub const SUPRESS_NOTIFICATIONS_ON_MY_ACTIONS: u32 = 4096u32;
39779#[repr(C)]
39780#[derive(Clone, Copy, Debug, PartialEq)]
39781pub struct SWStringArray {
39782 pub cValues: u32,
39783 pub lppszW: *mut windows_core::PWSTR,
39784}
39785impl Default for SWStringArray {
39786 fn default() -> Self {
39787 unsafe { core::mem::zeroed() }
39788 }
39789}
39790pub const SYNC_ASSOCIATED: u32 = 16u32;
39791pub const SYNC_BEST_BODY: u32 = 8192u32;
39792pub const SYNC_CATCHUP: u32 = 1024u32;
39793pub const SYNC_DEFER_CONFIG: u32 = 262144u32;
39794pub const SYNC_EXPIRY: u32 = 2u32;
39795pub const SYNC_FORCE_UNICODE: u32 = 262144u32;
39796pub const SYNC_FXRECOVERMODE: u32 = 65536u32;
39797pub const SYNC_IGNORE_SPECIFIED_ON_ASSOCIATED: u32 = 16384u32;
39798pub const SYNC_LIMITED_IMESSAGE: u32 = 512u32;
39799pub const SYNC_MSG_SELECTIVE: u32 = 4096u32;
39800pub const SYNC_NEW_MESSAGE: u32 = 2048u32;
39801pub const SYNC_NORMAL: u32 = 32u32;
39802pub const SYNC_NO_CONFLICTS: u32 = 64u32;
39803pub const SYNC_NO_DELETIONS: u32 = 2u32;
39804pub const SYNC_NO_FOREIGN_KEYS: u32 = 256u32;
39805pub const SYNC_NO_SOFT_DELETIONS: u32 = 4u32;
39806pub const SYNC_ONLY_SPECIFIED_PROPS: u32 = 128u32;
39807pub const SYNC_PROGRESS_MODE: u32 = 32768u32;
39808pub const SYNC_READ: u32 = 1u32;
39809pub const SYNC_READ_STATE: u32 = 8u32;
39810pub const SYNC_SOFT_DELETE: u32 = 1u32;
39811pub const SYNC_UNICODE: u32 = 1u32;
39812pub const SZ_HPC_V1: windows_core::PCSTR = windows_core::s!("Software\\Microsoft\\Pegasus");
39813pub const SZ_HPC_V1_0: windows_core::PCSTR = windows_core::s!("InstalledDir");
39814pub const SZ_HPC_V1_MAJOR: windows_core::PCSTR = windows_core::s!("MajorVersion");
39815pub const SZ_HPC_V1_MINOR: windows_core::PCSTR = windows_core::s!("MinorVersion");
39816pub const SZ_HPC_V2: windows_core::PCSTR =
39817 windows_core::s!("Software\\Microsoft\\Windows CE Services");
39818pub const SZ_HPC_V2_MAJOR: windows_core::PCSTR = windows_core::s!("MajorVersion");
39819pub const SZ_HPC_V2_MINOR: windows_core::PCSTR = windows_core::s!("MinorVersion");
39820pub const SZ_NO_OST: windows_core::PCSTR = windows_core::s!("NoOST");
39821pub const SZ_OUTL_OST_OPTIONS: windows_core::PCSTR =
39822 windows_core::s!("Software\\Microsoft\\Office\\8.0\\Outlook\\OST");
39823pub const TABLE_CHANGED: u32 = 1u32;
39824pub const TABLE_ERROR: u32 = 2u32;
39825#[repr(C)]
39826#[derive(Clone, Copy)]
39827pub struct TABLE_NOTIFICATION {
39828 pub ulTableEvent: u32,
39829 pub hResult: windows_core::HRESULT,
39830 pub propIndex: SPropValue,
39831 pub propPrior: SPropValue,
39832 pub row: SRow,
39833 pub ulPad: u32,
39834}
39835impl Default for TABLE_NOTIFICATION {
39836 fn default() -> Self {
39837 unsafe { core::mem::zeroed() }
39838 }
39839}
39840pub const TABLE_RELOAD: u32 = 9u32;
39841pub const TABLE_RESTRICT_DONE: u32 = 7u32;
39842pub const TABLE_ROW_ADDED: u32 = 3u32;
39843pub const TABLE_ROW_DELETED: u32 = 4u32;
39844pub const TABLE_ROW_MODIFIED: u32 = 5u32;
39845pub const TABLE_SETCOL_DONE: u32 = 8u32;
39846pub const TABLE_SORT_ASCEND: u32 = 0u32;
39847pub const TABLE_SORT_CATEG_MAX: u32 = 4u32;
39848pub const TABLE_SORT_CATEG_MIN: u32 = 8u32;
39849pub const TABLE_SORT_COMBINE: u32 = 2u32;
39850pub const TABLE_SORT_DESCEND: u32 = 1u32;
39851pub const TABLE_SORT_DONE: u32 = 6u32;
39852pub const TAD_ALL_ROWS: u32 = 1u32;
39853pub const TBLSTAT_COMPLETE: u32 = 0u32;
39854pub const TBLSTAT_QCHANGED: u32 = 7u32;
39855pub const TBLSTAT_RESTRICTING: u32 = 14u32;
39856pub const TBLSTAT_RESTRICT_ERROR: u32 = 15u32;
39857pub const TBLSTAT_SETCOL_ERROR: u32 = 13u32;
39858pub const TBLSTAT_SETTING_COLS: u32 = 11u32;
39859pub const TBLSTAT_SORTING: u32 = 9u32;
39860pub const TBLSTAT_SORT_ERROR: u32 = 10u32;
39861pub const TBLTYPE_DYNAMIC: u32 = 2u32;
39862pub const TBLTYPE_KEYSET: u32 = 1u32;
39863pub const TBLTYPE_SNAPSHOT: u32 = 0u32;
39864pub const TBL_ALL_COLUMNS: u32 = 1u32;
39865pub const TBL_ASYNC: u32 = 1u32;
39866pub const TBL_BATCH: u32 = 2u32;
39867pub const TBL_COLLAPSED_CATEGORY: u32 = 4u32;
39868pub const TBL_EMPTY_CATEGORY: u32 = 2u32;
39869pub const TBL_EXPANDED_CATEGORY: u32 = 3u32;
39870pub const TBL_LEAF_ROW: u32 = 1u32;
39871pub const TBL_NOADVANCE: u32 = 1u32;
39872pub const TBL_NOWAIT: u32 = 1u32;
39873pub const TIME_ZONE_ID_DAYLIGHT: u32 = 2u32;
39874pub const TIME_ZONE_ID_STANDARD: u32 = 1u32;
39875pub const TIME_ZONE_ID_UNKNOWN: u32 = 0u32;
39876#[repr(C)]
39877#[derive(Clone, Copy, Debug, PartialEq)]
39878pub struct TRACEENTRY {
39879 pub lAction: i32,
39880 pub ftArrivalTime: windows::Win32::Foundation::FILETIME,
39881 pub ftDeferredTime: windows::Win32::Foundation::FILETIME,
39882 pub rgchADMDName: [i8; 20],
39883 pub rgchCountryName: [i8; 4],
39884 pub rgchPRMDId: [i8; 20],
39885 pub rgchAttADMDName: [i8; 20],
39886 pub rgchAttCountryName: [i8; 4],
39887 pub rgchAttPRMDId: [i8; 19],
39888 pub bAdditionalActions: u8,
39889}
39890impl Default for TRACEENTRY {
39891 fn default() -> Self {
39892 unsafe { core::mem::zeroed() }
39893 }
39894}
39895#[repr(C)]
39896#[derive(Clone, Copy, Debug, PartialEq)]
39897pub struct TRACEINFO {
39898 pub cEntries: u32,
39899 pub rgtraceentry: [TRACEENTRY; 1],
39900}
39901impl Default for TRACEINFO {
39902 fn default() -> Self {
39903 unsafe { core::mem::zeroed() }
39904 }
39905}
39906pub const TRANSFER_COPYFOLDER: u32 = 4u32;
39907pub const TRANSFER_COPYMESSAGES: u32 = 3u32;
39908pub const TRANSFER_COPYPROPS: u32 = 2u32;
39909pub const TRANSFER_COPYTO: u32 = 1u32;
39910#[repr(C)]
39911#[derive(Clone, Copy, Debug, Default, PartialEq)]
39912pub struct TRANSMITINFO {
39913 pub ietCurrent: ENCODINGTYPE,
39914 pub ietXmitMime: ENCODINGTYPE,
39915 pub ietXmit822: ENCODINGTYPE,
39916 pub cbLongestLine: u32,
39917 pub cExtended: u32,
39918 pub ulPercentExt: u32,
39919 pub cbSize: u32,
39920 pub cLines: u32,
39921}
39922pub const TRANSPORT_DOWNLOAD: u32 = 1u32;
39923pub const TRANSPORT_UPLOAD: u32 = 2u32;
39924pub const TRUNCATE_EXISTING: u32 = 5u32;
39925pub const TXT_HTML: u32 = 2u32;
39926pub const TXT_PLAIN: u32 = 1u32;
39927pub const TYPEDID_MASK: u32 = 65535u32;
39928pub const UI_CURRENT_PROVIDER_FIRST: u32 = 4u32;
39929pub const UI_READONLY: u32 = 1u32;
39930pub const UI_SERVICE: u32 = 2u32;
39931pub const UNLOCK_BLOCKING_MID_LOCK_ALL: u32 = 4u32;
39932pub const UNLOCK_BLOCKING_MID_LOCK_LOGON_ONLY: u32 = 8u32;
39933pub const UNLOCK_CHECKIN_ABORT: u32 = 1u32;
39934pub const UNLOCK_CHECKIN_KEEP_LOCKED: u32 = 2u32;
39935pub const UNLOCK_NULL_RESOURCE: u32 = 16u32;
39936pub const UNLOCK_WRITE_THROUGH_GOP: u32 = 65536u32;
39937pub const URL_ATTACH_GENERATE_CID: u32 = 2u32;
39938pub const URL_ATTACH_INTO_MIXED: u32 = 1u32;
39939pub const URL_ATTACH_SET_CNTTYPE: u32 = 4u32;
39940pub const URL_RESOLVE_RENDERED: u32 = 1u32;
39941pub const URL_RESULVE_NO_BASE: u32 = 2u32;
39942pub const VCDIR_DELETE: u32 = 65536u32;
39943pub const VCDIR_MOVE: u32 = 262144u32;
39944pub const VCDIR_NEXT: u32 = 1u32;
39945pub const VCDIR_PREV: u32 = 2u32;
39946pub const VCSTATUS_COPY: u32 = 131072u32;
39947pub const VCSTATUS_DELETE: u32 = 65536u32;
39948pub const VCSTATUS_DELETE_IS_MOVE: u32 = 1048576u32;
39949pub const VCSTATUS_INTERACTIVE: u32 = 8u32;
39950pub const VCSTATUS_MODAL: u32 = 4u32;
39951pub const VCSTATUS_MOVE: u32 = 262144u32;
39952pub const VCSTATUS_NEW_MESSAGE: u32 = 4194304u32;
39953pub const VCSTATUS_NEXT: u32 = 1u32;
39954pub const VCSTATUS_PREV: u32 = 2u32;
39955pub const VCSTATUS_READONLY: u32 = 16u32;
39956pub const VCSTATUS_SAVE: u32 = 2097152u32;
39957pub const VCSTATUS_SUBMIT: u32 = 524288u32;
39958#[repr(C)]
39959#[derive(Clone, Copy, Debug, Default, PartialEq)]
39960pub struct WEBPAGEOPTIONS {
39961 pub cbSize: u32,
39962 pub dwFlags: u32,
39963 pub dwDelay: u32,
39964 pub wchQuote: u16,
39965}
39966pub type WIZARDENTRY = Option<
39967 unsafe extern "system" fn(
39968 hproviderdllinstance: windows::Win32::Foundation::HINSTANCE,
39969 lppcsresourcename: *mut *mut i8,
39970 lppdlgproc: *mut windows::Win32::UI::WindowsAndMessaging::DLGPROC,
39971 lpmapiprop: windows_core::Ref<IMAPIProp>,
39972 lpmapisupportobject: *mut core::ffi::c_void,
39973 ) -> u32,
39974>;
39975pub const WIZ_NEXT: u32 = 1035u32;
39976pub const WIZ_PREV: u32 = 1036u32;
39977pub const WIZ_QUERYNUMPAGES: u32 = 1034u32;
39978pub const WPF_ATTACHLINKS: u32 = 8u32;
39979pub const WPF_AUTOINLINE: u32 = 2u32;
39980pub const WPF_HTML: u32 = 1u32;
39981pub const WPF_IMAGESONLY: u32 = 16u32;
39982pub const WPF_NOMETACHARSET: u32 = 32u32;
39983pub const WPF_SLIDESHOW: u32 = 4u32;
39984pub const WSZ_URL_FLAT_FOLDER_SPACE: windows_core::PCWSTR = windows_core::w!("/-FlatUrlSpace-/");
39985pub const X500: CERTNAMETYPE = CERTNAMETYPE(2i32);
39986#[repr(C)]
39987#[derive(Clone, Copy, Debug, PartialEq)]
39988pub struct X509CERTRESULT {
39989 pub cEntries: u32,
39990 pub rgcs: *mut CERTSTATE,
39991 pub rgpCert: *mut *mut windows::Win32::Security::Cryptography::CERT_CONTEXT,
39992}
39993impl Default for X509CERTRESULT {
39994 fn default() -> Self {
39995 unsafe { core::mem::zeroed() }
39996 }
39997}
39998pub type XPPROVIDERINIT = Option<
39999 unsafe extern "system" fn(
40000 hinstance: windows::Win32::Foundation::HINSTANCE,
40001 lpmalloc: windows_core::Ref<windows::Win32::System::Com::IMalloc>,
40002 lpallocatebuffer: LPALLOCATEBUFFER,
40003 lpallocatemore: LPALLOCATEMORE,
40004 lpfreebuffer: LPFREEBUFFER,
40005 ulflags: u32,
40006 ulmapiver: u32,
40007 lpulproviderver: *mut u32,
40008 lppxpprovider: windows_core::OutRef<IXPProvider>,
40009 ) -> windows_core::HRESULT,
40010>;
40011#[repr(C)]
40012#[derive(Clone, Copy)]
40013pub union __UPV {
40014 pub i: i16,
40015 pub l: i32,
40016 pub ul: u32,
40017 pub lpv: *mut core::ffi::c_void,
40018 pub flt: f32,
40019 pub dbl: f64,
40020 pub b: u16,
40021 pub cur: windows::Win32::System::Com::CY,
40022 pub at: f64,
40023 pub ft: windows::Win32::Foundation::FILETIME,
40024 pub lpszA: windows_core::PSTR,
40025 pub bin: SBinary,
40026 pub lpszW: windows_core::PWSTR,
40027 pub lpguid: *mut windows_core::GUID,
40028 pub li: i64,
40029 pub MVi: SShortArray,
40030 pub MVl: SLongArray,
40031 pub MVflt: SRealArray,
40032 pub MVdbl: SDoubleArray,
40033 pub MVcur: SCurrencyArray,
40034 pub MVat: SAppTimeArray,
40035 pub MVft: SDateTimeArray,
40036 pub MVbin: SBinaryArray,
40037 pub MVszA: SLPSTRArray,
40038 pub MVszW: SWStringArray,
40039 pub MVguid: SGuidArray,
40040 pub MVli: SLargeIntegerArray,
40041 pub err: i32,
40042 pub x: i32,
40043}
40044impl Default for __UPV {
40045 fn default() -> Self {
40046 unsafe { core::mem::zeroed() }
40047 }
40048}
40049pub const cchProfileNameMax: u32 = 64u32;
40050pub const cchProfilePassMax: u32 = 64u32;
40051pub const cwchUrlFlatFolderSpace: u32 = 16u32;
40052pub const fMapiUnicode: u32 = 2147483648u32;
40053pub const fVersionedDelete: u32 = 1u32;
40054pub const fVersionedMoveIn: u32 = 16u32;
40055pub const fVersionedMoveOut: u32 = 32u32;
40056pub const fVersionedPin: u32 = 4u32;
40057pub const fVersionedUnDelete: u32 = 2u32;
40058pub const fVersionedUnPin: u32 = 8u32;
40059pub const fnevCriticalError: u32 = 1u32;
40060pub const fnevExtended: u32 = 2147483648u32;
40061pub const fnevNewMail: u32 = 2u32;
40062pub const fnevObjectCopied: u32 = 64u32;
40063pub const fnevObjectCreated: u32 = 4u32;
40064pub const fnevObjectDeleted: u32 = 8u32;
40065pub const fnevObjectModified: u32 = 16u32;
40066pub const fnevObjectMoved: u32 = 32u32;
40067pub const fnevReservedForMapi: u32 = 1073741824u32;
40068pub const fnevSearchComplete: u32 = 128u32;
40069pub const fnevStatusObjectModified: u32 = 512u32;
40070pub const fnevTableModified: u32 = 256u32;
40071pub const frightsContact: i32 = 512i32;
40072pub const frightsCreate: i32 = 2i32;
40073pub const frightsCreateSubfolder: i32 = 128i32;
40074pub const frightsDeleteAny: i32 = 64i32;
40075pub const frightsDeleteOwned: i32 = 16i32;
40076pub const frightsEditAny: i32 = 32i32;
40077pub const frightsEditOwned: i32 = 8i32;
40078pub const frightsFreeBusyDetailed: i32 = 4096i32;
40079pub const frightsFreeBusySimple: i32 = 2048i32;
40080pub const frightsOwner: i32 = 256i32;
40081pub const frightsReadAny: i32 = 1i32;
40082pub const frightsVisible: i32 = 1024i32;
40083pub const fsdpermUserMailboxOwner: u32 = 1u32;
40084pub const fsdpermUserPrimaryUser: u32 = 4u32;
40085pub const fsdpermUserSendAs: u32 = 2u32;
40086pub const fsdrightAppendMsg: u32 = 4u32;
40087pub const fsdrightContact: u32 = 32768u32;
40088pub const fsdrightCreateContainer: u32 = 4u32;
40089pub const fsdrightCreateItem: u32 = 2u32;
40090pub const fsdrightDeleteOwnItem: u32 = 1024u32;
40091pub const fsdrightExecute: u32 = 32u32;
40092pub const fsdrightFreeBusyDetailed: u32 = 2u32;
40093pub const fsdrightFreeBusySimple: u32 = 1u32;
40094pub const fsdrightListContents: u32 = 1u32;
40095pub const fsdrightOwner: u32 = 16384u32;
40096pub const fsdrightReadAttributes: u32 = 128u32;
40097pub const fsdrightReadBody: u32 = 1u32;
40098pub const fsdrightReadProperty: u32 = 8u32;
40099pub const fsdrightReserved1: u32 = 64u32;
40100pub const fsdrightViewItem: u32 = 2048u32;
40101pub const fsdrightWriteAttributes: u32 = 256u32;
40102pub const fsdrightWriteBody: u32 = 2u32;
40103pub const fsdrightWriteOwnProperty: u32 = 512u32;
40104pub const fsdrightWriteProperty: u32 = 16u32;
40105pub const hrSuccess: u32 = 0u32;
40106pub const ichOpMapForward: u32 = 4u32;
40107pub const ichOpMapOpen: u32 = 1u32;
40108pub const ichOpMapPrint: u32 = 5u32;
40109pub const ichOpMapReplyToAll: u32 = 3u32;
40110pub const ichOpMapReplyToFolder: u32 = 8u32;
40111pub const ichOpMapReplyToSender: u32 = 2u32;
40112pub const ichOpMapReservedCompose: u32 = 0u32;
40113pub const ichOpMapReservedDelivery: u32 = 7u32;
40114pub const ichOpMapSaveAs: u32 = 6u32;
40115pub const lidOpMap: u32 = 1u32;
40116pub const pbExchangeProviderDelegateGuid: windows_core::PCSTR =
40117 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}");
40118pub const pbExchangeProviderLocalStoreGuid: windows_core::PCSTR =
40119 windows_core::s!("-\u{e5}k\u{a1}dn\u{11}\u{d2}\u{8d}N\u{0}\u{c0}O\u{ae}#q");
40120pub const pbExchangeProviderPersistStoreGuid: windows_core::PCSTR =
40121 windows_core::s!("\u{98}\u{a2}=gb\u{cf}M4\u{82}y\u{db}\u{fa}jP\u{8b}1");
40122pub const pbExchangeProviderPrimaryUserGuid: windows_core::PCSTR =
40123 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}");
40124pub const pbExchangeProviderPublicGuid: windows_core::PCSTR =
40125 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");
40126pub const pbExchangeProviderXportGuid: windows_core::PCSTR = windows_core::s!(
40127 "\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}"
40128);
40129pub const pbGlobalProfileSectionGuid: windows_core::PCSTR = windows_core::s!(
40130 "\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"
40131);
40132pub const pidAdminMin: u32 = 26256u32;
40133pub const pidAttachReadOnlyMin: u32 = 26220u32;
40134pub const pidExchangeNonXmitReservedMin: u32 = 26080u32;
40135pub const pidExchangeXmitReservedMin: u32 = 16352u32;
40136pub const pidFolderMin: u32 = 26168u32;
40137pub const pidLISErrorCodeMax: u32 = 26032u32;
40138pub const pidLISErrorCodeMin: u32 = 26026u32;
40139pub const pidLISInterfacePropMax: u32 = 26080u32;
40140pub const pidLISInterfacePropMin: u32 = 26064u32;
40141pub const pidLISMsgFolderPropMax: u32 = 26048u32;
40142pub const pidLISMsgFolderPropMin: u32 = 26016u32;
40143pub const pidLocalStoreInternalMax: u32 = 26048u32;
40144pub const pidLocalStoreInternalMin: u32 = 25856u32;
40145pub const pidMAPIMin: u32 = 12288u32;
40146pub const pidMessageReadOnlyMin: u32 = 26176u32;
40147pub const pidMessageWriteableMin: u32 = 26200u32;
40148pub const pidProfileMin: u32 = 26112u32;
40149pub const pidRenMsgFldMin: u32 = 4224u32;
40150pub const pidSpecialMin: u32 = 26224u32;
40151pub const pidStoreMin: u32 = 26136u32;
40152pub const pidStoreNonTransMin: u32 = 3648u32;
40153pub const ptagLISErrorCode: u32 = 1705639939u32;
40154pub const ptagLISErrorItemType: u32 = 1705705475u32;
40155pub const ptagLISErrorItemUrl: u32 = 1705836575u32;
40156pub const ptagLISErrorLogUrl: u32 = 1701838879u32;
40157pub const ptagLISErrorOperation: u32 = 1705771011u32;
40158pub const ptagLISErrorSourceUrl: u32 = 1705902111u32;
40159pub const ptagLISExtendedErrorinfo: u32 = 1706033155u32;
40160pub const ptagLISModifiedPropertyList: u32 = 1705967647u32;
40161pub const ptagLISNewMail: u32 = 1707409419u32;
40162pub const ptagLISSubfolders: u32 = 1694498827u32;
40163pub const ptagLISUnreadCount: u32 = 1694564355u32;
40164pub const ptagSql: u32 = 1708130335u32;
40165pub const ptagSqlFrom: u32 = 1708261407u32;
40166pub const ptagSqlGroup: u32 = 1708458015u32;
40167pub const ptagSqlOrder: u32 = 1708392479u32;
40168pub const ptagSqlSelect: u32 = 1708195871u32;
40169pub const ptagSqlWhere: u32 = 1708326943u32;
40170pub const rightsAll: i32 = 1531i32;
40171pub const rightsNone: u32 = 0u32;
40172pub const rightsReadOnly: i32 = 1i32;
40173pub const sdrightsNone: u32 = 0u32;
40174pub const szDamMsgClass: windows_core::PCSTR =
40175 windows_core::s!("IPC.Microsoft Exchange 4.0.Deferred Action");
40176pub const szDemMsgClass: windows_core::PCSTR =
40177 windows_core::s!("IPC.Microsoft Exchange 4.0.Deferred Error");
40178pub const szExRuleMsgClass: windows_core::PCSTR = windows_core::s!("IPM.ExtendedRule.Message");
40179pub const szHrDispatchNotifications: windows_core::PCSTR =
40180 windows_core::s!("HrDispatchNotifications");
40181pub const szMAPIDLLSuffix: windows_core::PCSTR = windows_core::s!("32");
40182pub const szMAPINotificationMsg: windows_core::PCSTR =
40183 windows_core::s!("MAPI Notify window message");
40184pub const szOID_Microsoft_Encryption_Cert: windows_core::PCSTR =
40185 windows_core::s!("1.3.6.1.4.1.311.16.4");
40186pub const szOofTemplateMsgClassPrefix: windows_core::PCSTR =
40187 windows_core::s!("IPM.Note.Rules.OofTemplate.");
40188pub const szProviderModeratorRule: windows_core::PCSTR = windows_core::s!("MSFT:MR");
40189pub const szReplyTemplateMsgClassPrefix: windows_core::PCSTR =
40190 windows_core::s!("IPM.Note.Rules.ReplyTemplate.");
40191pub const szScCreateConversationIndex: windows_core::PCSTR =
40192 windows_core::s!("ScCreateConversationIndex");
40193pub const ulHierChanged: u32 = 1u32;
40194pub const wszExRuleMsgClass: windows_core::PCWSTR = windows_core::w!("IPM.ExtendedRule.Message");
40195pub const wszProviderModeratorRule: windows_core::PCWSTR = windows_core::w!("MSFT:MR");