CX Framework
Cross-platform C utility framework
Loading...
Searching...
No Matches
salieri.h
1
30
#if !defined(SALIERI_VERSION) || (SALIERI_VERSION < 1)
31
32
/* TODO: figure out when <sal.h> first appeared. */
33
#if defined(_MSC_VER)
34
# include <sal.h>
35
#elif defined(__has_include)
36
# if __has_include(<sal.h>)
37
# include <sal.h>
38
# endif
39
#endif
40
41
/* The main concern for the implementation is that we don't want to
42
* replace annotations from <sal.h>, but we *do* want to replace
43
* annotations from older versions of Salieri. To keep track of
44
* everything, when we (Salieri) define a SAL annotation, we also
45
* define SALIERI_DEFINED_${annotation} (with the leading and trailing
46
* '-' stripped). Then, before redefining an annotation macro we
47
* check to make sure SALIERI_DEFINED_${annontation} is defined.
48
*
49
* This means you can safely use Salieri in a public header in your
50
* project.
51
*/
52
53
/* Function Parameters & Return Value
54
*
55
* https://msdn.microsoft.com/en-us/library/hh916382.aspx
56
*****/
57
58
/* Pointer Parameters */
59
60
#if defined(_In_) && defined(SALIERI_DEFINED_In)
61
# undef _In_
62
#endif
63
#if !defined(_In_)
64
# define _In_
65
# define SALIERI_DEFINED_In
66
#endif
67
68
#if defined(_Out_) && defined(SALIERI_DEFINED_Out)
69
# undef _Out_
70
#endif
71
#if !defined(_Out_)
72
# define _Out_
73
# define SALIERI_DEFINED_Out
74
#endif
75
76
#if defined(_Inout_) && defined(SALIERI_DEFINED_Inout)
77
# undef _Inout_
78
#endif
79
#if !defined(_Inout_)
80
# define _Inout_
81
# define SALIERI_DEFINED_Inout
82
#endif
83
84
#if defined(_In_z_) && defined(SALIERI_DEFINED_In_z)
85
# undef _In_z_
86
#endif
87
#if !defined(_In_z_)
88
# define _In_z_
89
# define SALIERI_DEFINED_In_z
90
#endif
91
92
#if defined(_Inout_z_) && defined(SALIERI_DEFINED_Inout_z)
93
# undef _Inout_z_
94
#endif
95
#if !defined(_Inout_z_)
96
# define _Inout_z_
97
# define SALIERI_DEFINED_Inout_z
98
#endif
99
100
#if defined(_In_reads_) && defined(SALIERI_DEFINED_In_reads)
101
# undef _In_reads_
102
#endif
103
#if !defined(_In_reads_)
104
# define _In_reads_(s)
105
# define SALIERI_DEFINED_In_reads
106
#endif
107
108
#if defined(_In_reads_bytes_) && defined(SALIERI_DEFINED_In_reads_bytes)
109
# undef _In_reads_bytes_
110
#endif
111
#if !defined(_In_reads_bytes_)
112
# define _In_reads_bytes_(s)
113
# define SALIERI_DEFINED_In_reads_bytes
114
#endif
115
116
#if defined(_In_reads_z_) && defined(SALIERI_DEFINED_In_reads_z)
117
# undef _In_reads_z_
118
#endif
119
#if !defined(_In_reads_z_)
120
# define _In_reads_z_(s)
121
# define SALIERI_DEFINED_In_reads_z
122
#endif
123
124
#if defined(_In_reads_or_z_) && defined(SALIERI_DEFINED_In_reads_or_z)
125
# undef _In_reads_or_z_
126
#endif
127
#if !defined(_In_reads_or_z_)
128
# define _In_reads_or_z_(s)
129
# define SALIERI_DEFINED_In_reads_or_z
130
#endif
131
132
#if defined(_Out_writes_) && defined(SALIERI_DEFINED_Out_writes)
133
# undef _Out_writes_
134
#endif
135
#if !defined(_Out_writes_)
136
# define _Out_writes_(s)
137
# define SALIERI_DEFINED_Out_writes
138
#endif
139
140
#if defined(_Out_writes_bytes_) && defined(SALIERI_DEFINED_Out_writes_bytes)
141
# undef _Out_writes_bytes_
142
#endif
143
#if !defined(_Out_writes_bytes_)
144
# define _Out_writes_bytes_(s)
145
# define SALIERI_DEFINED_Out_writes_bytes
146
#endif
147
148
#if defined(_Out_writes_z_) && defined(SALIERI_DEFINED_Out_writes_z)
149
# undef _Out_writes_z_
150
#endif
151
#if !defined(_Out_writes_z_)
152
# define _Out_writes_z_(s)
153
# define SALIERI_DEFINED_Out_writes_z
154
#endif
155
156
#if defined(_Inout_updates_) && defined(SALIERI_DEFINED_Inout_updates)
157
# undef _Inout_updates_
158
#endif
159
#if !defined(_Inout_updates_)
160
# define _Inout_updates_(s)
161
# define SALIERI_DEFINED_Inout_updates
162
#endif
163
164
#if defined(_Inout_updates_bytes_) && defined(SALIERI_DEFINED_Inout_updates_bytes)
165
# undef _Inout_updates_bytes_
166
#endif
167
#if !defined(_Inout_updates_bytes_)
168
# define _Inout_updates_bytes_(s)
169
# define SALIERI_DEFINED_Inout_updates_bytes
170
#endif
171
172
#if defined(_Inout_updates_z_) && defined(SALIERI_DEFINED_Inout_updates_z)
173
# undef _Inout_updates_z_
174
#endif
175
#if !defined(_Inout_updates_z_)
176
# define _Inout_updates_z_(s)
177
# define SALIERI_DEFINED_Inout_updates_z
178
#endif
179
180
#if defined(_Out_writes_to_) && defined(SALIERI_DEFINED_Out_writes_to)
181
# undef _Out_writes_to_
182
#endif
183
#if !defined(_Out_writes_to_)
184
# define _Out_writes_to_(s,c)
185
# define SALIERI_DEFINED_Out_writes_to
186
#endif
187
188
#if defined(_Out_writes_bytes_to_) && defined(SALIERI_DEFINED_Out_writes_bytes_to)
189
# undef _Out_writes_bytes_to_
190
#endif
191
#if !defined(_Out_writes_bytes_to_)
192
# define _Out_writes_bytes_to_(s,c)
193
# define SALIERI_DEFINED_Out_writes_bytes_to
194
#endif
195
196
#if defined(_Out_writes_all_) && defined(SALIERI_DEFINED_Out_writes_all)
197
# undef _Out_writes_all_
198
#endif
199
#if !defined(_Out_writes_all_)
200
# define _Out_writes_all_(s)
201
# define SALIERI_DEFINED_Out_writes_all
202
#endif
203
204
#if defined(_Out_writes_bytes_all_) && defined(SALIERI_DEFINED_Out_writes_bytes_all)
205
# undef _Out_writes_bytes_all_
206
#endif
207
#if !defined(_Out_writes_bytes_all_)
208
# define _Out_writes_bytes_all_(s)
209
# define SALIERI_DEFINED_Out_writes_bytes_all
210
#endif
211
212
#if defined(_Out_writes_bytes_opt_) && defined(SALIERI_DEFINED_Out_writes_bytes_opt)
213
# undef _Out_writes_bytes_opt_
214
#endif
215
#if !defined(_Out_writes_bytes_opt_)
216
# define _Out_writes_bytes_opt_(s)
217
# define SALIERI_DEFINED_Out_writes_bytes_opt
218
#endif
219
220
#if defined(_In_updates_to_) && defined(SALIERI_DEFINED_In_updates_to)
221
# undef _In_updates_to_
222
#endif
223
#if !defined(_In_updates_to_)
224
# define _In_updates_to_(s,c)
225
# define SALIERI_DEFINED_In_updates_to
226
#endif
227
228
#if defined(_In_updates_bytes_to_) && defined(SALIERI_DEFINED_In_updates_bytes_to)
229
# undef _In_updates_bytes_to_
230
#endif
231
#if !defined(_In_updates_bytes_to_)
232
# define _In_updates_bytes_to_(s,c)
233
# define SALIERI_DEFINED_In_updates_bytes_to
234
#endif
235
236
#if defined(_Inout_updates_z_) && defined(SALIERI_DEFINED_Inout_updates_z)
237
# undef _Inout_updates_z_
238
#endif
239
#if !defined(_Inout_updates_z_)
240
# define _Inout_updates_z_(s)
241
# define SALIERI_DEFINED_Inout_updates_z
242
#endif
243
244
#if defined(_Out_writes_to_) && defined(SALIERI_DEFINED_Out_writes_to)
245
# undef _Out_writes_to_
246
#endif
247
#if !defined(_Out_writes_to_)
248
# define _Out_writes_to_(s,c)
249
# define SALIERI_DEFINED_Out_writes_to
250
#endif
251
252
#if defined(_Out_writes_bytes_to_) && defined(SALIERI_DEFINED_Out_writes_bytes_to)
253
# undef _Out_writes_bytes_to_
254
#endif
255
#if !defined(_Out_writes_bytes_to_)
256
# define _Out_writes_bytes_to_(s,c)
257
# define SALIERI_DEFINED_Out_writes_bytes_to
258
#endif
259
260
#if defined(_Out_writes_all_) && defined(SALIERI_DEFINED_Out_writes_all)
261
# undef _Out_writes_all_
262
#endif
263
#if !defined(_Out_writes_all_)
264
# define _Out_writes_all_(s)
265
# define SALIERI_DEFINED_Out_writes_all
266
#endif
267
268
#if defined(_Out_writes_bytes_all_) && defined(SALIERI_DEFINED_Out_writes_bytes_all)
269
# undef _Out_writes_bytes_all_
270
#endif
271
#if !defined(_Out_writes_bytes_all_)
272
# define _Out_writes_bytes_all_(s)
273
# define SALIERI_DEFINED_Out_writes_bytes_all
274
#endif
275
276
#if defined(_Inout_updates_to_) && defined(SALIERI_DEFINED_Inout_updates_to)
277
# undef _Inout_updates_to_
278
#endif
279
#if !defined(_Inout_updates_to_)
280
# define _Inout_updates_to_(s,c)
281
# define SALIERI_DEFINED_Inout_updates_to
282
#endif
283
284
#if defined(_Inout_updates_bytes_to_) && defined(SALIERI_DEFINED_Inout_updates_bytes_to)
285
# undef _Inout_updates_bytes_to_
286
#endif
287
#if !defined(_Inout_updates_bytes_to_)
288
# define _Inout_updates_bytes_to_(s,c)
289
# define SALIERI_DEFINED_Inout_updates_bytes_to
290
#endif
291
292
#if defined(_Inout_updates_all_) && defined(SALIERI_DEFINED_Inout_updates_all)
293
# undef _Inout_updates_all_
294
#endif
295
#if !defined(_Inout_updates_all_)
296
# define _Inout_updates_all_(s)
297
# define SALIERI_DEFINED_Inout_updates_all
298
#endif
299
300
#if defined(_Inout_updates_bytes_all_) && defined(SALIERI_DEFINED_Inout_updates_bytes_all)
301
# undef _Inout_updates_bytes_all_
302
#endif
303
#if !defined(_Inout_updates_bytes_all_)
304
# define _Inout_updates_bytes_all_(s)
305
# define SALIERI_DEFINED_Inout_updates_bytes_all
306
#endif
307
308
#if defined(_In_reads_to_ptr_) && defined(SALIERI_DEFINED_In_reads_to_ptr)
309
# undef _In_reads_to_ptr_
310
#endif
311
#if !defined(_In_reads_to_ptr_)
312
# define _In_reads_to_ptr_(p)
313
# define SALIERI_DEFINED_In_reads_to_ptr
314
#endif
315
316
#if defined(_In_reads_to_ptr_z_) && defined(SALIERI_DEFINED_In_reads_to_ptr_z)
317
# undef _In_reads_to_ptr_z_
318
#endif
319
#if !defined(_In_reads_to_ptr_z_)
320
# define _In_reads_to_ptr_z_(p)
321
# define SALIERI_DEFINED_In_reads_to_ptr_z
322
#endif
323
324
#if defined(_Out_writes_to_ptr_) && defined(SALIERI_DEFINED_Out_writes_to_ptr)
325
# undef _Out_writes_to_ptr_
326
#endif
327
#if !defined(_Out_writes_to_ptr_)
328
# define _Out_writes_to_ptr_(p)
329
# define SALIERI_DEFINED_Out_writes_to_ptr
330
#endif
331
332
#if defined(_Out_writes_to_ptr_z_) && defined(SALIERI_DEFINED_Out_writes_to_ptr_z)
333
# undef _Out_writes_to_ptr_z_
334
#endif
335
#if !defined(_Out_writes_to_ptr_z_)
336
# define _Out_writes_to_ptr_z_(p)
337
# define SALIERI_DEFINED_Out_writes_to_ptr_z
338
#endif
339
340
/* Optional Pointer Parameters */
341
342
#if defined(_In_opt_) && defined(SALIERI_DEFINED_In_opt)
343
# undef _In_opt_
344
#endif
345
#if !defined(_In_opt_)
346
# define _In_opt_
347
# define SALIERI_DEFINED_In_opt
348
#endif
349
350
#if defined(_Out_opt_) && defined(SALIERI_DEFINED_Out_opt)
351
# undef _Out_opt_
352
#endif
353
#if !defined(_Out_opt_)
354
# define _Out_opt_
355
# define SALIERI_DEFINED_Out_opt
356
#endif
357
358
#if defined(_Inout_opt_) && defined(SALIERI_DEFINED_Inout_opt)
359
# undef _Inout_opt_
360
#endif
361
#if !defined(_Inout_opt_)
362
# define _Inout_opt_
363
# define SALIERI_DEFINED_Inout_opt
364
#endif
365
366
#if defined(_In_opt_z_) && defined(SALIERI_DEFINED_In_opt_z)
367
# undef _In_opt_z_
368
#endif
369
#if !defined(_In_opt_z_)
370
# define _In_opt_z_
371
# define SALIERI_DEFINED_In_opt_z
372
#endif
373
374
#if defined(_Inout_opt_z_) && defined(SALIERI_DEFINED_Inout_opt_z)
375
# undef _Inout_opt_z_
376
#endif
377
#if !defined(_Inout_opt_z_)
378
# define _Inout_opt_z_
379
# define SALIERI_DEFINED_Inout_opt_z
380
#endif
381
382
#if defined(_In_reads_opt_) && defined(SALIERI_DEFINED_In_reads_opt)
383
# undef _In_reads_opt_
384
#endif
385
#if !defined(_In_reads_opt_)
386
# define _In_reads_opt_(s)
387
# define SALIERI_DEFINED_In_reads_opt
388
#endif
389
390
#if defined(_In_reads_bytes_opt_) && defined(SALIERI_DEFINED_In_reads_bytes_opt)
391
# undef _In_reads_bytes_opt_
392
#endif
393
#if !defined(_In_reads_bytes_opt_)
394
# define _In_reads_bytes_opt_(s)
395
# define SALIERI_DEFINED_In_reads_bytes_opt
396
#endif
397
398
#if defined(_In_reads_opt_z_) && defined(SALIERI_DEFINED_In_reads_opt_z)
399
# undef _In_reads_opt_z_
400
#endif
401
#if !defined(_In_reads_opt_z_)
402
# define _In_reads_opt_z_(s)
403
# define SALIERI_DEFINED_In_reads_opt_z
404
#endif
405
406
#if defined(_Out_writes_opt_) && defined(SALIERI_DEFINED_Out_writes_opt)
407
# undef _Out_writes_opt_
408
#endif
409
#if !defined(_Out_writes_opt_)
410
# define _Out_writes_opt_(s)
411
# define SALIERI_DEFINED_Out_writes_opt
412
#endif
413
414
#if defined(_Out_writes_bytes_) && defined(SALIERI_DEFINED_Out_writes_bytes)
415
# undef _Out_writes_bytes_
416
#endif
417
#if !defined(_Out_writes_bytes_)
418
# define _Out_writes_bytes_(s)
419
# define SALIERI_DEFINED_Out_writes_bytes
420
#endif
421
422
#if defined(_Out_writes_opt_z_) && defined(SALIERI_DEFINED_Out_writes_opt_z)
423
# undef _Out_writes_opt_z_
424
#endif
425
#if !defined(_Out_writes_opt_z_)
426
# define _Out_writes_opt_z_(s)
427
# define SALIERI_DEFINED_Out_writes_opt_z
428
#endif
429
430
#if defined(_Inout_updates_opt_) && defined(SALIERI_DEFINED_Inout_updates_opt)
431
# undef _Inout_updates_opt_
432
#endif
433
#if !defined(_Inout_updates_opt_)
434
# define _Inout_updates_opt_(s)
435
# define SALIERI_DEFINED_Inout_updates_opt
436
#endif
437
438
#if defined(_Inout_updates_bytes_opt_) && defined(SALIERI_DEFINED_Inout_updates_bytes_opt)
439
# undef _Inout_updates_bytes_opt_
440
#endif
441
#if !defined(_Inout_updates_bytes_opt_)
442
# define _Inout_updates_bytes_opt_(s)
443
# define SALIERI_DEFINED_Inout_updates_bytes_opt
444
#endif
445
446
#if defined(_Inout_updates_opt_z_) && defined(SALIERI_DEFINED_Inout_updates_opt_z)
447
# undef _Inout_updates_opt_z_
448
#endif
449
#if !defined(_Inout_updates_opt_z_)
450
# define _Inout_updates_opt_z_(s)
451
# define SALIERI_DEFINED_Inout_updates_opt_z
452
#endif
453
454
#if defined(_Out_writes_to_opt_) && defined(SALIERI_DEFINED_Out_writes_to_opt)
455
# undef _Out_writes_to_opt_
456
#endif
457
#if !defined(_Out_writes_to_opt_)
458
# define _Out_writes_to_opt_(s,c)
459
# define SALIERI_DEFINED_Out_writes_to_opt
460
#endif
461
462
#if defined(_Out_writes_bytes_to_opt_) && defined(SALIERI_DEFINED_Out_writes_bytes_to_opt)
463
# undef _Out_writes_bytes_to_opt_
464
#endif
465
#if !defined(_Out_writes_bytes_to_opt_)
466
# define _Out_writes_bytes_to_opt_(s,c)
467
# define SALIERI_DEFINED_Out_writes_bytes_to_opt
468
#endif
469
470
#if defined(_Out_writes_all_opt_) && defined(SALIERI_DEFINED_Out_writes_all_opt)
471
# undef _Out_writes_all_opt_
472
#endif
473
#if !defined(_Out_writes_all_opt_)
474
# define _Out_writes_all_opt_(s)
475
# define SALIERI_DEFINED_Out_writes_all_opt
476
#endif
477
478
#if defined(_Out_writes_bytes_all_opt_) && defined(SALIERI_DEFINED_Out_writes_bytes_all_opt)
479
# undef _Out_writes_bytes_all_opt_
480
#endif
481
#if !defined(_Out_writes_bytes_all_opt_)
482
# define _Out_writes_bytes_all_opt_(s)
483
# define SALIERI_DEFINED_Out_writes_bytes_all_opt
484
#endif
485
486
#if defined(_In_updates_to_opt_) && defined(SALIERI_DEFINED_In_updates_to_opt)
487
# undef _In_updates_to_opt_
488
#endif
489
#if !defined(_In_updates_to_opt_)
490
# define _In_updates_to_opt_(s,c)
491
# define SALIERI_DEFINED_In_updates_to_opt
492
#endif
493
494
#if defined(_In_updates_bytes_to_opt_) && defined(SALIERI_DEFINED_In_updates_bytes_to_opt)
495
# undef _In_updates_bytes_to_opt_
496
#endif
497
#if !defined(_In_updates_bytes_to_opt_)
498
# define _In_updates_bytes_to_opt_(s,c)
499
# define SALIERI_DEFINED_In_updates_bytes_to_opt
500
#endif
501
502
#if defined(_Inout_updates_all_opt_) && defined(SALIERI_DEFINED_Inout_updates_all_opt)
503
# undef _Inout_updates_all_opt_
504
#endif
505
#if !defined(_Inout_updates_all_opt_)
506
# define _Inout_updates_all_opt_(s)
507
# define SALIERI_DEFINED_Inout_updates_all_opt
508
#endif
509
510
#if defined(_Inout_updates_bytes_all_opt_) && defined(SALIERI_DEFINED_Inout_updates_bytes_all_opt)
511
# undef _Inout_updates_bytes_all_opt_
512
#endif
513
#if !defined(_Inout_updates_bytes_all_opt_)
514
# define _Inout_updates_bytes_all_opt_(s)
515
# define SALIERI_DEFINED_Inout_updates_bytes_all_opt
516
#endif
517
518
#if defined(_In_reads_to_ptr_opt_) && defined(SALIERI_DEFINED_In_reads_to_ptr_opt)
519
# undef _In_reads_to_ptr_opt_
520
#endif
521
#if !defined(_In_reads_to_ptr_opt_)
522
# define _In_reads_to_ptr_opt_(p)
523
# define SALIERI_DEFINED_In_reads_to_ptr_opt
524
#endif
525
526
#if defined(_In_reads_to_ptr_opt_z_) && defined(SALIERI_DEFINED_In_reads_to_ptr_opt_z)
527
# undef _In_reads_to_ptr_opt_z_
528
#endif
529
#if !defined(_In_reads_to_ptr_opt_z_)
530
# define _In_reads_to_ptr_opt_z_(p)
531
# define SALIERI_DEFINED_In_reads_to_ptr_opt_z
532
#endif
533
534
#if defined(_Out_writes_to_ptr_opt_) && defined(SALIERI_DEFINED_Out_writes_to_ptr_opt)
535
# undef _Out_writes_to_ptr_opt_
536
#endif
537
#if !defined(_Out_writes_to_ptr_opt_)
538
# define _Out_writes_to_ptr_opt_(p)
539
# define SALIERI_DEFINED_Out_writes_to_ptr_opt
540
#endif
541
542
#if defined(_Out_writes_to_ptr_opt_z_) && defined(SALIERI_DEFINED_Out_writes_to_ptr_opt_z)
543
# undef _Out_writes_to_ptr_opt_z_
544
#endif
545
#if !defined(_Out_writes_to_ptr_opt_z_)
546
# define _Out_writes_to_ptr_opt_z_(p)
547
# define SALIERI_DEFINED_Out_writes_to_ptr_opt_z
548
#endif
549
550
/* Output Pointer Parameters */
551
552
#if defined(_Outptr_) && defined(SALIERI_DEFINED_Outptr)
553
# undef _Outptr_
554
#endif
555
#if !defined(_Outptr_)
556
# define _Outptr_
557
# define SALIERI_DEFINED_Outptr
558
#endif
559
560
#if defined(_Outptr_opt_) && defined(SALIERI_DEFINED_Outptr_opt)
561
# undef _Outptr_opt_
562
#endif
563
#if !defined(_Outptr_opt_)
564
# define _Outptr_opt_
565
# define SALIERI_DEFINED_Outptr_opt
566
#endif
567
568
#if defined(_Outptr_result_maybenull_) && defined(SALIERI_DEFINED_Outptr_result_maybenull)
569
# undef _Outptr_result_maybenull_
570
#endif
571
#if !defined(_Outptr_result_maybenull_)
572
# define _Outptr_result_maybenull_
573
# define SALIERI_DEFINED_Outptr_result_maybenull
574
#endif
575
576
#if defined(_Outptr_opt_result_maybenull_) && defined(SALIERI_DEFINED_Outptr_opt_result_maybenull)
577
# undef _Outptr_opt_result_maybenull_
578
#endif
579
#if !defined(_Outptr_opt_result_maybenull_)
580
# define _Outptr_opt_result_maybenull_
581
# define SALIERI_DEFINED_Outptr_opt_result_maybenull
582
#endif
583
584
#if defined(_Outptr_result_z_) && defined(SALIERI_DEFINED_Outptr_result_z)
585
# undef _Outptr_result_z_
586
#endif
587
#if !defined(_Outptr_result_z_)
588
# define _Outptr_result_z_
589
# define SALIERI_DEFINED_Outptr_result_z
590
#endif
591
592
#if defined(_Outptr_opt_result_z_) && defined(SALIERI_DEFINED_Outptr_opt_result_z)
593
# undef _Outptr_opt_result_z_
594
#endif
595
#if !defined(_Outptr_opt_result_z_)
596
# define _Outptr_opt_result_z_
597
# define SALIERI_DEFINED_Outptr_opt_result_z
598
#endif
599
600
#if defined(_Outptr_result_maybenull_z_) && defined(SALIERI_DEFINED_Outptr_result_maybenull_z)
601
# undef _Outptr_result_maybenull_z_
602
#endif
603
#if !defined(_Outptr_result_maybenull_z_)
604
# define _Outptr_result_maybenull_z_
605
# define SALIERI_DEFINED_Outptr_result_maybenull_z
606
#endif
607
608
#if defined(_Outptr_opt_result_maybenull_z_) && defined(SALIERI_DEFINED_Outptr_opt_result_maybenull_z)
609
# undef _Outptr_opt_result_maybenull_z_
610
#endif
611
#if !defined(_Outptr_opt_result_maybenull_z_)
612
# define _Outptr_opt_result_maybenull_z_
613
# define SALIERI_DEFINED_Outptr_opt_result_maybenull_z
614
#endif
615
616
#if defined(_COM_Outptr_) && defined(SALIERI_DEFINED_COM_Outptr)
617
# undef _COM_Outptr_
618
#endif
619
#if !defined(_COM_Outptr_)
620
# define _COM_Outptr_
621
# define SALIERI_DEFINED_COM_Outptr
622
#endif
623
624
#if defined(_COM_Outptr_opt_) && defined(SALIERI_DEFINED_COM_Outptr_opt)
625
# undef _COM_Outptr_opt_
626
#endif
627
#if !defined(_COM_Outptr_opt_)
628
# define _COM_Outptr_opt_
629
# define SALIERI_DEFINED_COM_Outptr_opt
630
#endif
631
632
#if defined(_COM_Outptr_result_maybenull_) && defined(SALIERI_DEFINED_COM_Outptr_result_maybenull)
633
# undef _COM_Outptr_result_maybenull_
634
#endif
635
#if !defined(_COM_Outptr_result_maybenull_)
636
# define _COM_Outptr_result_maybenull_
637
# define SALIERI_DEFINED_COM_Outptr_result_maybenull
638
#endif
639
640
#if defined(_Outptr_opt_result_maybenull_) && defined(SALIERI_DEFINED_Outptr_opt_result_maybenull)
641
# undef _Outptr_opt_result_maybenull_
642
#endif
643
#if !defined(_Outptr_opt_result_maybenull_)
644
# define _Outptr_opt_result_maybenull_
645
# define SALIERI_DEFINED_Outptr_opt_result_maybenull
646
#endif
647
648
#if defined(_Outptr_result_buffer_) && defined(SALIERI_DEFINED_Outptr_result_buffer)
649
# undef _Outptr_result_buffer_
650
#endif
651
#if !defined(_Outptr_result_buffer_)
652
# define _Outptr_result_buffer_(s)
653
# define SALIERI_DEFINED_Outptr_result_buffer
654
#endif
655
656
#if defined(_Outptr_result_bytebuffer_) && defined(SALIERI_DEFINED_Outptr_result_bytebuffer)
657
# undef _Outptr_result_bytebuffer_
658
#endif
659
#if !defined(_Outptr_result_bytebuffer_)
660
# define _Outptr_result_bytebuffer_(s)
661
# define SALIERI_DEFINED_Outptr_result_bytebuffer
662
#endif
663
664
#if defined(_Outptr_opt_result_buffer_) && defined(SALIERI_DEFINED_Outptr_opt_result_buffer)
665
# undef _Outptr_opt_result_buffer_
666
#endif
667
#if !defined(_Outptr_opt_result_buffer_)
668
# define _Outptr_opt_result_buffer_(s)
669
# define SALIERI_DEFINED_Outptr_opt_result_buffer
670
#endif
671
672
#if defined(_Outptr_opt_result_bytebuffer_) && defined(SALIERI_DEFINED_Outptr_opt_result_bytebuffer)
673
# undef _Outptr_opt_result_bytebuffer_
674
#endif
675
#if !defined(_Outptr_opt_result_bytebuffer_)
676
# define _Outptr_opt_result_bytebuffer_(s)
677
# define SALIERI_DEFINED_Outptr_opt_result_bytebuffer
678
#endif
679
680
#if defined(_Outptr_result_buffer_to_) && defined(SALIERI_DEFINED_Outptr_result_buffer_to)
681
# undef _Outptr_result_buffer_to_
682
#endif
683
#if !defined(_Outptr_result_buffer_to_)
684
# define _Outptr_result_buffer_to_(s,c)
685
# define SALIERI_DEFINED_Outptr_result_buffer_to
686
#endif
687
688
#if defined(_Outptr_result_bytebuffer_to_) && defined(SALIERI_DEFINED_Outptr_result_bytebuffer_to)
689
# undef _Outptr_result_bytebuffer_to_
690
#endif
691
#if !defined(_Outptr_result_bytebuffer_to_)
692
# define _Outptr_result_bytebuffer_to_(s,c)
693
# define SALIERI_DEFINED_Outptr_result_bytebuffer_to
694
#endif
695
696
#if defined(_Outptr_opt_result_buffer_to_) && defined(SALIERI_DEFINED_Outptr_opt_result_buffer_to)
697
# undef _Outptr_opt_result_buffer_to_
698
#endif
699
#if !defined(_Outptr_opt_result_buffer_to_)
700
# define _Outptr_opt_result_buffer_to_(s,c)
701
# define SALIERI_DEFINED_Outptr_opt_result_buffer_to
702
#endif
703
704
#if defined(_Outptr_opt_result_bytebuffer_to_) && defined(SALIERI_DEFINED_Outptr_opt_result_bytebuffer_to)
705
# undef _Outptr_opt_result_bytebuffer_to_
706
#endif
707
#if !defined(_Outptr_opt_result_bytebuffer_to_)
708
# define _Outptr_opt_result_bytebuffer_to_(s,c)
709
# define SALIERI_DEFINED_Outptr_opt_result_bytebuffer_to
710
#endif
711
712
#if defined(_Result_nullonfailure_) && defined(SALIERI_DEFINED_Result_nullonfailure)
713
# undef _Result_nullonfailure_
714
#endif
715
#if !defined(_Result_nullonfailure_)
716
# define _Result_nullonfailure_
717
# define SALIERI_DEFINED_Result_nullonfailure
718
#endif
719
720
#if defined(_Result_zeroonfailure_) && defined(SALIERI_DEFINED_Result_zeroonfailure)
721
# undef _Result_zeroonfailure_
722
#endif
723
#if !defined(_Result_zeroonfailure_)
724
# define _Result_zeroonfailure_
725
# define SALIERI_DEFINED_Result_zeroonfailure
726
#endif
727
728
#if defined(_Outptr_result_nullonfailure_) && defined(SALIERI_DEFINED_Outptr_result_nullonfailure)
729
# undef _Outptr_result_nullonfailure_
730
#endif
731
#if !defined(_Outptr_result_nullonfailure_)
732
# define _Outptr_result_nullonfailure_
733
# define SALIERI_DEFINED_Outptr_result_nullonfailure
734
#endif
735
736
#if defined(_Outptr_opt_result_nullonfailure_) && defined(SALIERI_DEFINED_Outptr_opt_result_nullonfailure)
737
# undef _Outptr_opt_result_nullonfailure_
738
#endif
739
#if !defined(_Outptr_opt_result_nullonfailure_)
740
# define _Outptr_opt_result_nullonfailure_
741
# define SALIERI_DEFINED_Outptr_opt_result_nullonfailure
742
#endif
743
744
#if defined(_Outref_result_nullonfailure_) && defined(SALIERI_DEFINED_Outref_result_nullonfailure)
745
# undef _Outref_result_nullonfailure_
746
#endif
747
#if !defined(_Outref_result_nullonfailure_)
748
# define _Outref_result_nullonfailure_
749
# define SALIERI_DEFINED_Outref_result_nullonfailure
750
#endif
751
752
/* Output Reference Parameters */
753
754
#if defined(_Outref_) && defined(SALIERI_DEFINED_Outref)
755
# undef _Outref_
756
#endif
757
#if !defined(_Outref_)
758
# define _Outref_
759
# define SALIERI_DEFINED_Outref
760
#endif
761
762
#if defined(_Outref_result_maybenull_) && defined(SALIERI_DEFINED_Outref_result_maybenull)
763
# undef _Outref_result_maybenull_
764
#endif
765
#if !defined(_Outref_result_maybenull_)
766
# define _Outref_result_maybenull_
767
# define SALIERI_DEFINED_Outref_result_maybenull
768
#endif
769
770
#if defined(_Outref_result_buffer_) && defined(SALIERI_DEFINED_Outref_result_buffer)
771
# undef _Outref_result_buffer_
772
#endif
773
#if !defined(_Outref_result_buffer_)
774
# define _Outref_result_buffer_(s)
775
# define SALIERI_DEFINED_Outref_result_buffer
776
#endif
777
778
#if defined(_Outref_result_bytebuffer_) && defined(SALIERI_DEFINED_Outref_result_bytebuffer)
779
# undef _Outref_result_bytebuffer_
780
#endif
781
#if !defined(_Outref_result_bytebuffer_)
782
# define _Outref_result_bytebuffer_(s)
783
# define SALIERI_DEFINED_Outref_result_bytebuffer
784
#endif
785
786
#if defined(_Outref_result_buffer_to_) && defined(SALIERI_DEFINED_Outref_result_buffer_to)
787
# undef _Outref_result_buffer_to_
788
#endif
789
#if !defined(_Outref_result_buffer_to_)
790
# define _Outref_result_buffer_to_(s,c)
791
# define SALIERI_DEFINED_Outref_result_buffer_to
792
#endif
793
794
#if defined(_Outref_result_bytebuffer_to_) && defined(SALIERI_DEFINED_Outref_result_bytebuffer_to)
795
# undef _Outref_result_bytebuffer_to_
796
#endif
797
#if !defined(_Outref_result_bytebuffer_to_)
798
# define _Outref_result_bytebuffer_to_(s,c)
799
# define SALIERI_DEFINED_Outref_result_bytebuffer_to
800
#endif
801
802
#if defined(_Outref_result_buffer_all_) && defined(SALIERI_DEFINED_Outref_result_buffer_all)
803
# undef _Outref_result_buffer_all_
804
#endif
805
#if !defined(_Outref_result_buffer_all_)
806
# define _Outref_result_buffer_all_(s)
807
# define SALIERI_DEFINED_Outref_result_buffer_all
808
#endif
809
810
#if defined(_Outref_result_bytebuffer_all_) && defined(SALIERI_DEFINED_Outref_result_bytebuffer_all)
811
# undef _Outref_result_bytebuffer_all_
812
#endif
813
#if !defined(_Outref_result_bytebuffer_all_)
814
# define _Outref_result_bytebuffer_all_(s)
815
# define SALIERI_DEFINED_Outref_result_bytebuffer_all
816
#endif
817
818
#if defined(_Outref_result_buffer_maybenull_) && defined(SALIERI_DEFINED_Outref_result_buffer_maybenull)
819
# undef _Outref_result_buffer_maybenull_
820
#endif
821
#if !defined(_Outref_result_buffer_maybenull_)
822
# define _Outref_result_buffer_maybenull_(s)
823
# define SALIERI_DEFINED_Outref_result_buffer_maybenull
824
#endif
825
826
#if defined(_Outref_result_bytebuffer_maybenull_) && defined(SALIERI_DEFINED_Outref_result_bytebuffer_maybenull)
827
# undef _Outref_result_bytebuffer_maybenull_
828
#endif
829
#if !defined(_Outref_result_bytebuffer_maybenull_)
830
# define _Outref_result_bytebuffer_maybenull_(s)
831
# define SALIERI_DEFINED_Outref_result_bytebuffer_maybenull
832
#endif
833
834
#if defined(_Outref_result_buffer_to_maybenull_) && defined(SALIERI_DEFINED_Outref_result_buffer_to_maybenull)
835
# undef _Outref_result_buffer_to_maybenull_
836
#endif
837
#if !defined(_Outref_result_buffer_to_maybenull_)
838
# define _Outref_result_buffer_to_maybenull_(s,c)
839
# define SALIERI_DEFINED_Outref_result_buffer_to_maybenull
840
#endif
841
842
#if defined(_Outref_result_bytebuffer_to_maybenull_) && defined(SALIERI_DEFINED_Outref_result_bytebuffer_to_maybenull)
843
# undef _Outref_result_bytebuffer_to_maybenull_
844
#endif
845
#if !defined(_Outref_result_bytebuffer_to_maybenull_)
846
# define _Outref_result_bytebuffer_to_maybenull_(s,c)
847
# define SALIERI_DEFINED_Outref_result_bytebuffer_to_maybenull
848
#endif
849
850
#if defined(_Outref_result_buffer_all_maybenull_) && defined(SALIERI_DEFINED_Outref_result_buffer_all_maybenull)
851
# undef _Outref_result_buffer_all_maybenull_
852
#endif
853
#if !defined(_Outref_result_buffer_all_maybenull_)
854
# define _Outref_result_buffer_all_maybenull_(s)
855
# define SALIERI_DEFINED_Outref_result_buffer_all_maybenull
856
#endif
857
858
#if defined(_Outref_result_bytebuffer_all_maybenull_) && defined(SALIERI_DEFINED_Outref_result_bytebuffer_all_maybenull)
859
# undef _Outref_result_bytebuffer_all_maybenull_
860
#endif
861
#if !defined(_Outref_result_bytebuffer_all_maybenull_)
862
# define _Outref_result_bytebuffer_all_maybenull_(s)
863
# define SALIERI_DEFINED_Outref_result_bytebuffer_all_maybenull
864
#endif
865
866
/* Return Values */
867
868
#if defined(_Ret_z_) && defined(SALIERI_DEFINED_Ret_z)
869
# undef _Ret_z_
870
#endif
871
#if !defined(_Ret_z_)
872
# define _Ret_z_
873
# define SALIERI_DEFINED_Ret_z
874
#endif
875
876
#if defined(_Ret_writes_) && defined(SALIERI_DEFINED_Ret_writes)
877
# undef _Ret_writes_
878
#endif
879
#if !defined(_Ret_writes_)
880
# define _Ret_writes_(s)
881
# define SALIERI_DEFINED_Ret_writes
882
#endif
883
884
#if defined(_Ret_writes_bytes_) && defined(SALIERI_DEFINED_Ret_writes_bytes)
885
# undef _Ret_writes_bytes_
886
#endif
887
#if !defined(_Ret_writes_bytes_)
888
# define _Ret_writes_bytes_(s)
889
# define SALIERI_DEFINED_Ret_writes_bytes
890
#endif
891
892
#if defined(_Ret_writes_z_) && defined(SALIERI_DEFINED_Ret_writes_z)
893
# undef _Ret_writes_z_
894
#endif
895
#if !defined(_Ret_writes_z_)
896
# define _Ret_writes_z_(s)
897
# define SALIERI_DEFINED_Ret_writes_z
898
#endif
899
900
#if defined(_Ret_writes_to_) && defined(SALIERI_DEFINED_Ret_writes_to)
901
# undef _Ret_writes_to_
902
#endif
903
#if !defined(_Ret_writes_to_)
904
# define _Ret_writes_to_(s,c)
905
# define SALIERI_DEFINED_Ret_writes_to
906
#endif
907
908
#if defined(_Ret_writes_maybenull_) && defined(SALIERI_DEFINED_Ret_writes_maybenull)
909
# undef _Ret_writes_maybenull_
910
#endif
911
#if !defined(_Ret_writes_maybenull_)
912
# define _Ret_writes_maybenull_(s)
913
# define SALIERI_DEFINED_Ret_writes_maybenull
914
#endif
915
916
#if defined(_Ret_writes_to_maybenull_) && defined(SALIERI_DEFINED_Ret_writes_to_maybenull)
917
# undef _Ret_writes_to_maybenull_
918
#endif
919
#if !defined(_Ret_writes_to_maybenull_)
920
# define _Ret_writes_to_maybenull_(s)
921
# define SALIERI_DEFINED_Ret_writes_to_maybenull
922
#endif
923
924
#if defined(_Ret_writes_maybenull_z_) && defined(SALIERI_DEFINED_Ret_writes_maybenull_z)
925
# undef _Ret_writes_maybenull_z_
926
#endif
927
#if !defined(_Ret_writes_maybenull_z_)
928
# define _Ret_writes_maybenull_z_(s)
929
# define SALIERI_DEFINED_Ret_writes_maybenull_z
930
#endif
931
932
#if defined(_Ret_maybenull_) && defined(SALIERI_DEFINED_Ret_maybenull)
933
# undef _Ret_maybenull_
934
#endif
935
#if !defined(_Ret_maybenull_)
936
# define _Ret_maybenull_
937
# define SALIERI_DEFINED_Ret_maybenull
938
#endif
939
940
#if defined(_Ret_maybenull_z_) && defined(SALIERI_DEFINED_Ret_maybenull_z)
941
# undef _Ret_maybenull_z_
942
#endif
943
#if !defined(_Ret_maybenull_z_)
944
# define _Ret_maybenull_z_
945
# define SALIERI_DEFINED_Ret_maybenull_z
946
#endif
947
948
#if defined(_Ret_null_) && defined(SALIERI_DEFINED_Ret_null)
949
# undef _Ret_null_
950
#endif
951
#if !defined(_Ret_null_)
952
# define _Ret_null_
953
# define SALIERI_DEFINED_Ret_null
954
#endif
955
956
#if defined(_Ret_notnull_) && defined(SALIERI_DEFINED_Ret_notnull)
957
# undef _Ret_notnull_
958
#endif
959
#if !defined(_Ret_notnull_)
960
# define _Ret_notnull_
961
# define SALIERI_DEFINED_Ret_notnull
962
#endif
963
964
#if defined(_Ret_valid_) && defined(SALIERI_DEFINED_Ret_valid)
965
# undef _Ret_valid_
966
#endif
967
#if !defined(_Ret_valid_)
968
# define _Ret_valid_
969
# define SALIERI_DEFINED_Ret_valid
970
#endif
971
972
#if defined(_Ret_opt_valid_) && defined(SALIERI_DEFINED_Ret_opt_valid)
973
# undef _Ret_opt_valid_
974
#endif
975
#if !defined(_Ret_opt_valid_)
976
# define _Ret_opt_valid_
977
# define SALIERI_DEFINED_Ret_opt_valid
978
#endif
979
980
#if defined(_Ret_writes_bytes_to_) && defined(SALIERI_DEFINED_Ret_writes_bytes_to)
981
# undef _Ret_writes_bytes_to_
982
#endif
983
#if !defined(_Ret_writes_bytes_to_)
984
# define _Ret_writes_bytes_to_
985
# define SALIERI_DEFINED_Ret_writes_bytes_to
986
#endif
987
988
#if defined(_Ret_writes_bytes_to_) && defined(SALIERI_DEFINED_Ret_writes_bytes_to)
989
# undef _Ret_writes_bytes_to_
990
#endif
991
#if !defined(_Ret_writes_bytes_to_)
992
# define _Ret_writes_bytes_to_
993
# define SALIERI_DEFINED_Ret_writes_bytes_to
994
#endif
995
996
#if defined(_Ret_writes_bytes_maybenull_) && defined(SALIERI_DEFINED_Ret_writes_bytes_maybenull)
997
# undef _Ret_writes_bytes_maybenull_
998
#endif
999
#if !defined(_Ret_writes_bytes_maybenull_)
1000
# define _Ret_writes_bytes_maybenull_
1001
# define SALIERI_DEFINED_Ret_writes_bytes_maybenull
1002
#endif
1003
1004
#if defined(_Ret_writes_bytes_to_maybenull_) && defined(SALIERI_DEFINED_Ret_writes_bytes_to_maybenull)
1005
# undef _Ret_writes_bytes_to_maybenull_
1006
#endif
1007
#if !defined(_Ret_writes_bytes_to_maybenull_)
1008
# define _Ret_writes_bytes_to_maybenull_
1009
# define SALIERI_DEFINED_Ret_writes_bytes_to_maybenull
1010
#endif
1011
1012
/* Other Common Annotations */
1013
1014
#if defined(_In_range_) && defined(SALIERI_DEFINED_In_range)
1015
# undef _In_range_
1016
#endif
1017
#if !defined(_In_range_)
1018
# define _In_range_(low, hi)
1019
# define SALIERI_DEFINED_In_range
1020
#endif
1021
1022
#if defined(_Out_range_) && defined(SALIERI_DEFINED_Out_range)
1023
# undef _Out_range_
1024
#endif
1025
#if !defined(_Out_range_)
1026
# define _Out_range_(low, hi)
1027
# define SALIERI_DEFINED_Out_range
1028
#endif
1029
1030
#if defined(_Ret_range_) && defined(SALIERI_DEFINED_Ret_range)
1031
# undef _Ret_range_
1032
#endif
1033
#if !defined(_Ret_range_)
1034
# define _Ret_range_(low, hi)
1035
# define SALIERI_DEFINED_Ret_range
1036
#endif
1037
1038
#if defined(_Deref_in_range_) && defined(SALIERI_DEFINED_Deref_in_range)
1039
# undef _Deref_in_range_
1040
#endif
1041
#if !defined(_Deref_in_range_)
1042
# define _Deref_in_range_(low, hi)
1043
# define SALIERI_DEFINED_Deref_in_range
1044
#endif
1045
1046
#if defined(_Deref_out_range_) && defined(SALIERI_DEFINED_Deref_out_range)
1047
# undef _Deref_out_range_
1048
#endif
1049
#if !defined(_Deref_out_range_)
1050
# define _Deref_out_range_(low, hi)
1051
# define SALIERI_DEFINED_Deref_out_range
1052
#endif
1053
1054
#if defined(_Deref_inout_range_) && defined(SALIERI_DEFINED_Deref_inout_range)
1055
# undef _Deref_inout_range_
1056
#endif
1057
#if !defined(_Deref_inout_range_)
1058
# define _Deref_inout_range_(low, hi)
1059
# define SALIERI_DEFINED_Deref_inout_range
1060
#endif
1061
1062
#if defined(_Field_range_) && defined(SALIERI_DEFINED_Field_range)
1063
# undef _Field_range_
1064
#endif
1065
#if !defined(_Field_range_)
1066
# define _Field_range_(low, hi)
1067
# define SALIERI_DEFINED_Field_range
1068
#endif
1069
1070
#if defined(_Pre_equal_to_) && defined(SALIERI_DEFINED_Pre_equal_to)
1071
# undef _Pre_equal_to_
1072
#endif
1073
#if !defined(_Pre_equal_to_)
1074
# define _Pre_equal_to_(expr)
1075
# define SALIERI_DEFINED_Pre_equal_to
1076
#endif
1077
1078
#if defined(_Pre_notnull_) && defined(SALIERI_DEFINED_Pre_notnull)
1079
# undef _Pre_notnull_
1080
#endif
1081
#if !defined(_Pre_notnull_)
1082
# define _Pre_notnull_
1083
# define SALIERI_DEFINED_Pre_notnull
1084
#endif
1085
1086
#if defined(_Pre_maybenull_) && defined(SALIERI_DEFINED_Pre_maybenull)
1087
# undef _Pre_maybenull_
1088
#endif
1089
#if !defined(_Pre_maybenull_)
1090
# define _Pre_maybenull_
1091
# define SALIERI_DEFINED_Pre_maybenull
1092
#endif
1093
1094
#if defined(_Pre_null_) && defined(SALIERI_DEFINED_Pre_null)
1095
# undef _Pre_null_
1096
#endif
1097
#if !defined(_Pre_null_)
1098
# define _Pre_null_
1099
# define SALIERI_DEFINED_Pre_null
1100
#endif
1101
1102
#if defined(_Pre_satisfies_) && defined(SALIERI_DEFINED_Pre_satisfies)
1103
# undef _Pre_satisfies_
1104
#endif
1105
#if !defined(_Pre_satisfies_)
1106
# define _Pre_satisfies_(expr)
1107
# define SALIERI_DEFINED_Pre_satisfies
1108
#endif
1109
1110
#if defined(_Pre_valid_) && defined(SALIERI_DEFINED_Pre_valid)
1111
# undef _Pre_valid_
1112
#endif
1113
#if !defined(_Pre_valid_)
1114
# define _Pre_valid_
1115
# define SALIERI_DEFINED_Pre_valid
1116
#endif
1117
1118
#if defined(_Pre_opt_valid_) && defined(SALIERI_DEFINED_Pre_opt_valid)
1119
# undef _Pre_opt_valid_
1120
#endif
1121
#if !defined(_Pre_opt_valid_)
1122
# define _Pre_opt_valid_
1123
# define SALIERI_DEFINED_Pre_opt_valid
1124
#endif
1125
1126
#if defined(_Deref_pre_opt_valid_) && defined(SALIERI_DEFINED_Deref_pre_opt_valid)
1127
# undef _Deref_pre_opt_valid_
1128
#endif
1129
#if !defined(_Deref_pre_opt_valid_)
1130
# define _Deref_pre_opt_valid_
1131
# define SALIERI_DEFINED_Deref_pre_opt_valid
1132
#endif
1133
1134
#if defined(_Deref_pre_valid_) && defined(SALIERI_DEFINED_Deref_pre_valid)
1135
# undef _Deref_pre_valid_
1136
#endif
1137
#if !defined(_Deref_pre_valid_)
1138
# define _Deref_pre_valid_
1139
# define SALIERI_DEFINED_Deref_pre_valid
1140
#endif
1141
1142
#if defined(_Deref_prepost_valid_) && defined(SALIERI_DEFINED_Deref_prepost_valid)
1143
# undef _Deref_prepost_valid_
1144
#endif
1145
#if !defined(_Deref_prepost_valid_)
1146
# define _Deref_prepost_valid_
1147
# define SALIERI_DEFINED_Deref_prepost_valid
1148
#endif
1149
1150
#if defined(_Post_equal_to_) && defined(SALIERI_DEFINED_Post_equal_to)
1151
# undef _Post_equal_to_
1152
#endif
1153
#if !defined(_Post_equal_to_)
1154
# define _Post_equal_to_(expr)
1155
# define SALIERI_DEFINED_Post_equal_to
1156
#endif
1157
1158
#if defined(_Post_invalid_) && defined(SALIERI_DEFINED_Post_invalid)
1159
# undef _Post_invalid_
1160
#endif
1161
#if !defined(_Post_invalid_)
1162
# define _Post_invalid_
1163
# define SALIERI_DEFINED_Post_invalid
1164
#endif
1165
1166
#if defined(_Post_valid_) && defined(SALIERI_DEFINED_Post_valid)
1167
# undef _Post_valid_
1168
#endif
1169
#if !defined(_Post_valid_)
1170
# define _Post_valid_
1171
# define SALIERI_DEFINED_Post_valid
1172
#endif
1173
1174
#if defined(_Post_writable_byte_size_) && defined(SALIERI_DEFINED_Post_equal_to)
1175
# undef _Post_writable_byte_size_
1176
#endif
1177
#if !defined(_Post_writable_byte_size_)
1178
# define _Post_writable_byte_size_(expr)
1179
# define SALIERI_DEFINED_Post_writable_byte_size
1180
#endif
1181
1182
#if defined(_Post_satisfies_) && defined(SALIERI_DEFINED_Post_satisfies)
1183
# undef _Post_satisfies_
1184
#endif
1185
#if !defined(_Post_satisfies_)
1186
# define _Post_satisfies_(expr)
1187
# define SALIERI_DEFINED_Post_satisfies
1188
#endif
1189
1190
#if defined(_Deref_post_opt_valid_) && defined(SALIERI_DEFINED_Deref_post_opt_valid)
1191
# undef _Deref_post_opt_valid_
1192
#endif
1193
#if !defined(_Deref_post_opt_valid_)
1194
# define _Deref_post_opt_valid_
1195
# define SALIERI_DEFINED_Deref_post_opt_valid
1196
#endif
1197
1198
#if defined(_Deref_post_valid_) && defined(SALIERI_DEFINED_Deref_post_valid)
1199
# undef _Deref_post_valid_
1200
#endif
1201
#if !defined(_Deref_post_valid_)
1202
# define _Deref_post_valid_
1203
# define SALIERI_DEFINED_Deref_post_valid
1204
#endif
1205
1206
#if defined(_Deref_post_null_) && defined(SALIERI_DEFINED_Deref_post_null)
1207
# undef _Deref_post_null_
1208
#endif
1209
#if !defined(_Deref_post_null_)
1210
# define _Deref_post_null_
1211
# define SALIERI_DEFINED_Deref_post_null
1212
#endif
1213
1214
#if defined(_Struct_size_bytes_) && defined(SALIERI_DEFINED_Struct_size_bytes)
1215
# undef _Struct_size_bytes_
1216
#endif
1217
#if !defined(_Struct_size_bytes_)
1218
# define _Struct_size_bytes_(size)
1219
# define SALIERI_DEFINED_Struct_size_bytes
1220
#endif
1221
1222
/* Annotating Function Behavior
1223
*
1224
* https://msdn.microsoft.com/en-us/library/jj159529.aspx
1225
*****/
1226
1227
#if defined(_Called_from_function_class_) && defined(SALIERI_DEFINED_Called_from_function_class)
1228
# undef _Called_from_function_class_
1229
#endif
1230
#if !defined(_Called_from_function_class_)
1231
# define _Called_from_function_class_(name)
1232
# define SALIERI_DEFINED_Called_from_function_class
1233
#endif
1234
1235
#if defined(_Check_return_) && defined(SALIERI_DEFINED_Check_return)
1236
# undef _Check_return_
1237
#endif
1238
#if !defined(_Check_return_)
1239
# define _Check_return_
1240
# define SALIERI_DEFINED_Check_return
1241
#endif
1242
1243
#if defined(_Function_class_) && defined(SALIERI_DEFINED_Function_class)
1244
# undef _Function_class_
1245
#endif
1246
#if !defined(_Function_class_)
1247
# define _Function_class_(name)
1248
# define SALIERI_DEFINED_Function_class
1249
#endif
1250
1251
#if defined(_Raises_SEH_exception_) && defined(SALIERI_DEFINED_Raises_SEH_exception)
1252
# undef _Raises_SEH_exception_
1253
#endif
1254
#if !defined(_Raises_SEH_exception_)
1255
# define _Raises_SEH_exception_
1256
# define SALIERI_DEFINED_Raises_SEH_exception
1257
#endif
1258
1259
#if defined(_Must_inspect_result_) && defined(SALIERI_DEFINED_Must_inspect_result)
1260
# undef _Must_inspect_result_
1261
#endif
1262
#if !defined(_Must_inspect_result_)
1263
# define _Must_inspect_result_
1264
# define SALIERI_DEFINED_Must_inspect_result
1265
#endif
1266
1267
#if defined(_Use_decl_annotations_) && defined(SALIERI_DEFINED_Use_decl_annotations)
1268
# undef _Use_decl_annotations_
1269
#endif
1270
#if !defined(_Use_decl_annotations_)
1271
# define _Use_decl_annotations_
1272
# define SALIERI_DEFINED_Use_decl_annotations
1273
#endif
1274
1275
#if defined(_Always_) && defined(SALIERI_DEFINED_Always)
1276
# undef _Always_
1277
#endif
1278
#if !defined(_Always_)
1279
# define _Always_(anno_list)
1280
# define SALIERI_DEFINED_Always
1281
#endif
1282
1283
#if defined(_On_failure_) && defined(SALIERI_DEFINED_On_failure)
1284
# undef _On_failure_
1285
#endif
1286
#if !defined(_On_failure_)
1287
# define _On_failure_(anno_list)
1288
# define SALIERI_DEFINED_On_failure
1289
#endif
1290
1291
#if defined(_Return_type_success_) && defined(SALIERI_DEFINED_Return_type_success)
1292
# undef _Return_type_success_
1293
#endif
1294
#if !defined(_Return_type_success_)
1295
# define _Return_type_success_(expr)
1296
# define SALIERI_DEFINED_Return_type_success
1297
#endif
1298
1299
#if defined(_Success_) && defined(SALIERI_DEFINED_Success)
1300
# undef _Success_
1301
#endif
1302
#if !defined(_Success_)
1303
# define _Success_(expr)
1304
# define SALIERI_DEFINED_Success
1305
#endif
1306
1307
/* Annotating Structs and Classes
1308
*
1309
* https://msdn.microsoft.com/en-us/library/jj159528.aspx
1310
*****/
1311
1312
#if defined(_Field_range_) && defined(SALIERI_DEFINED_Field_range)
1313
# undef _Field_range_
1314
#endif
1315
#if !defined(_Field_range_)
1316
# define _Field_range_(low, high)
1317
# define SALIERI_DEFINED_Field_range
1318
#endif
1319
1320
#if defined(_Field_size_) && defined(SALIERI_DEFINED_Field_size)
1321
# undef _Field_size_
1322
#endif
1323
#if !defined(_Field_size_)
1324
# define _Field_size_(size)
1325
# define SALIERI_DEFINED_Field_size
1326
#endif
1327
1328
#if defined(_Field_size_part_) && defined(SALIERI_DEFINED_Field_size_part)
1329
# undef _Field_size_part_
1330
#endif
1331
#if !defined(_Field_size_part_)
1332
# define _Field_size_part_(size)
1333
# define SALIERI_DEFINED_Field_size_part
1334
#endif
1335
1336
#if defined(_Field_size_opt_) && defined(SALIERI_DEFINED_Field_size_opt)
1337
# undef _Field_size_opt_
1338
#endif
1339
#if !defined(_Field_size_opt_)
1340
# define _Field_size_opt_(size)
1341
# define SALIERI_DEFINED_Field_size_opt
1342
#endif
1343
1344
#if defined(_Field_size_bytes_) && defined(SALIERI_DEFINED_Field_size_bytes)
1345
# undef _Field_size_bytes_
1346
#endif
1347
#if !defined(_Field_size_bytes_)
1348
# define _Field_size_bytes_(size)
1349
# define SALIERI_DEFINED_Field_size_bytes
1350
#endif
1351
1352
#if defined(_Field_size_bytes_opt_) && defined(SALIERI_DEFINED_Field_size_bytes_opt)
1353
# undef _Field_size_bytes_opt_
1354
#endif
1355
#if !defined(_Field_size_bytes_opt_)
1356
# define _Field_size_bytes_opt_(size)
1357
# define SALIERI_DEFINED_Field_size_bytes_opt
1358
#endif
1359
1360
#if defined(_Field_size_part_) && defined(SALIERI_DEFINED_Field_size_part)
1361
# undef _Field_size_part_
1362
#endif
1363
#if !defined(_Field_size_part_)
1364
# define _Field_size_part_(size, count)
1365
# define SALIERI_DEFINED_Field_size_part
1366
#endif
1367
1368
#if defined(_Field_size_part_opt_) && defined(SALIERI_DEFINED_Field_size_part_opt)
1369
# undef _Field_size_part_opt_
1370
#endif
1371
#if !defined(_Field_size_part_opt_)
1372
# define _Field_size_part_opt_(size, count)
1373
# define SALIERI_DEFINED_Field_size_part_opt
1374
#endif
1375
1376
#if defined(_Field_size_bytes_part_) && defined(SALIERI_DEFINED_Field_size_bytes_part)
1377
# undef _Field_size_bytes_part_
1378
#endif
1379
#if !defined(_Field_size_bytes_part_)
1380
# define _Field_size_bytes_part_(size, count)
1381
# define SALIERI_DEFINED_Field_size_bytes_part
1382
#endif
1383
1384
#if defined(_Field_size_bytes_part_opt_) && defined(SALIERI_DEFINED_Field_size_bytes_part_opt)
1385
# undef _Field_size_bytes_part_opt_
1386
#endif
1387
#if !defined(_Field_size_bytes_part_opt_)
1388
# define _Field_size_bytes_part_opt_(size, count)
1389
# define SALIERI_DEFINED_Field_size_bytes_part_opt
1390
#endif
1391
1392
#if defined(_Field_size_full_) && defined(SALIERI_DEFINED_Field_size_full)
1393
# undef _Field_size_full_
1394
#endif
1395
#if !defined(_Field_size_full_)
1396
# define _Field_size_full_(size)
1397
# define SALIERI_DEFINED_Field_size_full
1398
#endif
1399
1400
#if defined(_Field_size_full_opt_) && defined(SALIERI_DEFINED_Field_size_full_opt)
1401
# undef _Field_size_full_opt_
1402
#endif
1403
#if !defined(_Field_size_full_opt_)
1404
# define _Field_size_full_opt_(size)
1405
# define SALIERI_DEFINED_Field_size_full_opt
1406
#endif
1407
1408
#if defined(_Field_size_bytes_full_) && defined(SALIERI_DEFINED_Field_size_bytes_full)
1409
# undef _Field_size_bytes_full_
1410
#endif
1411
#if !defined(_Field_size_bytes_full_)
1412
# define _Field_size_bytes_full_(size)
1413
# define SALIERI_DEFINED_Field_size_bytes_full
1414
#endif
1415
1416
#if defined(_Field_size_bytes_full_opt_) && defined(SALIERI_DEFINED_Field_size_bytes_full_opt)
1417
# undef _Field_size_bytes_full_opt_
1418
#endif
1419
#if !defined(_Field_size_bytes_full_opt_)
1420
# define _Field_size_bytes_full_opt_(size)
1421
# define SALIERI_DEFINED_Field_size_bytes_full_opt
1422
#endif
1423
1424
#if defined(_Struct_size_bytes_) && defined(SALIERI_DEFINED_Struct_size_bytes)
1425
# undef _Struct_size_bytes_
1426
#endif
1427
#if !defined(_Struct_size_bytes_)
1428
# define _Struct_size_bytes_(size)
1429
# define SALIERI_DEFINED_Struct_size_bytes
1430
#endif
1431
1432
/* Annotating Locking Behavior
1433
*
1434
* https://msdn.microsoft.com/en-us/library/hh916381.aspx
1435
*****/
1436
1437
#if defined(_Acquires_exclusive_lock_) && defined(SALIERI_DEFINED_Acquires_exclusive_lock)
1438
# undef _Acquires_exclusive_lock_
1439
#endif
1440
#if !defined(_Acquires_exclusive_lock_)
1441
# define _Acquires_exclusive_lock_(expr)
1442
# define SALIERI_DEFINED_Acquires_exclusive_lock
1443
#endif
1444
1445
#if defined(_Acquires_lock_) && defined(SALIERI_DEFINED_Acquires_lock)
1446
# undef _Acquires_lock_
1447
#endif
1448
#if !defined(_Acquires_lock_)
1449
# define _Acquires_lock_(expr)
1450
# define SALIERI_DEFINED_Acquires_lock
1451
#endif
1452
1453
#if defined(_Acquires_nonreentrant_lock_) && defined(SALIERI_DEFINED_Acquires_nonreentrant_lock)
1454
# undef _Acquires_nonreentrant_lock_
1455
#endif
1456
#if !defined(_Acquires_nonreentrant_lock_)
1457
# define _Acquires_nonreentrant_lock_(expr)
1458
# define SALIERI_DEFINED_Acquires_nonreentrant_lock
1459
#endif
1460
1461
#if defined(_Acquires_shared_lock_) && defined(SALIERI_DEFINED_Acquires_shared_lock)
1462
# undef _Acquires_shared_lock_
1463
#endif
1464
#if !defined(_Acquires_shared_lock_)
1465
# define _Acquires_shared_lock_(expr)
1466
# define SALIERI_DEFINED_Acquires_shared_lock
1467
#endif
1468
1469
#if defined(_Create_lock_level_) && defined(SALIERI_DEFINED_Create_lock_level)
1470
# undef _Create_lock_level_
1471
#endif
1472
#if !defined(_Create_lock_level_)
1473
# define _Create_lock_level_(name)
1474
# define SALIERI_DEFINED_Create_lock_level
1475
#endif
1476
1477
#if defined(_Has_lock_kind_) && defined(SALIERI_DEFINED_Has_lock_kind)
1478
# undef _Has_lock_kind_
1479
#endif
1480
#if !defined(_Has_lock_kind_)
1481
# define _Has_lock_kind_(kind)
1482
# define SALIERI_DEFINED_Has_lock_kind
1483
#endif
1484
1485
#if defined(_Has_lock_level_) && defined(SALIERI_DEFINED_Has_lock_level)
1486
# undef _Has_lock_level_
1487
#endif
1488
#if !defined(_Has_lock_level_)
1489
# define _Has_lock_level_(name)
1490
# define SALIERI_DEFINED_Has_lock_level
1491
#endif
1492
1493
#if defined(_Lock_level_order_) && defined(SALIERI_DEFINED_Lock_level_order)
1494
# undef _Lock_level_order_
1495
#endif
1496
#if !defined(_Lock_level_order_)
1497
# define _Lock_level_order_(name1, name2)
1498
# define SALIERI_DEFINED_Lock_level_order
1499
#endif
1500
1501
#if defined(_Post_same_lock_) && defined(SALIERI_DEFINED_Post_same_lock)
1502
# undef _Post_same_lock_
1503
#endif
1504
#if !defined(_Post_same_lock_)
1505
# define _Post_same_lock_(expr1, expr2)
1506
# define SALIERI_DEFINED_Post_same_lock
1507
#endif
1508
1509
#if defined(_Releases_exclusive_lock_) && defined(SALIERI_DEFINED_Releases_exclusive_lock)
1510
# undef _Releases_exclusive_lock_
1511
#endif
1512
#if !defined(_Releases_exclusive_lock_)
1513
# define _Releases_exclusive_lock_(expr)
1514
# define SALIERI_DEFINED_Releases_exclusive_lock
1515
#endif
1516
1517
#if defined(_Releases_lock_) && defined(SALIERI_DEFINED_Releases_lock)
1518
# undef _Releases_lock_
1519
#endif
1520
#if !defined(_Releases_lock_)
1521
# define _Releases_lock_(expr)
1522
# define SALIERI_DEFINED_Releases_lock
1523
#endif
1524
1525
#if defined(_Releases_nonreentrant_lock_) && defined(SALIERI_DEFINED_Releases_nonreentrant_lock)
1526
# undef _Releases_nonreentrant_lock_
1527
#endif
1528
#if !defined(_Releases_nonreentrant_lock_)
1529
# define _Releases_nonreentrant_lock_(expr)
1530
# define SALIERI_DEFINED_Releases_nonreentrant_lock
1531
#endif
1532
1533
#if defined(_Releases_shared_lock_) && defined(SALIERI_DEFINED_Releases_shared_lock)
1534
# undef _Releases_shared_lock_
1535
#endif
1536
#if !defined(_Releases_shared_lock_)
1537
# define _Releases_shared_lock_(expr)
1538
# define SALIERI_DEFINED_Releases_shared_lock
1539
#endif
1540
1541
#if defined(_Requires_lock_held_) && defined(SALIERI_DEFINED_Requires_lock_held)
1542
# undef _Requires_lock_held_
1543
#endif
1544
#if !defined(_Requires_lock_held_)
1545
# define _Requires_lock_held_(expr)
1546
# define SALIERI_DEFINED_Requires_lock_held
1547
#endif
1548
1549
#if defined(_Requires_lock_not_held_) && defined(SALIERI_DEFINED_Requires_lock_not_held)
1550
# undef _Requires_lock_not_held_
1551
#endif
1552
#if !defined(_Requires_lock_not_held_)
1553
# define _Requires_lock_not_held_(expr)
1554
# define SALIERI_DEFINED_Requires_lock_not_held
1555
#endif
1556
1557
#if defined(_Requires_no_locks_held_) && defined(SALIERI_DEFINED_Requires_no_locks_held)
1558
# undef _Requires_no_locks_held_
1559
#endif
1560
#if !defined(_Requires_no_locks_held_)
1561
# define _Requires_no_locks_held_
1562
# define SALIERI_DEFINED_Requires_no_locks_held
1563
#endif
1564
1565
#if defined(_Requires_shared_lock_held_) && defined(SALIERI_DEFINED_Requires_shared_lock_held)
1566
# undef _Requires_shared_lock_held_
1567
#endif
1568
#if !defined(_Requires_shared_lock_held_)
1569
# define _Requires_shared_lock_held_(expr)
1570
# define SALIERI_DEFINED_Requires_shared_lock_held
1571
#endif
1572
1573
#if defined(_Requires_exclusive_lock_held_) && defined(SALIERI_DEFINED_Requires_exclusive_lock_held)
1574
# undef _Requires_exclusive_lock_held_
1575
#endif
1576
#if !defined(_Requires_exclusive_lock_held_)
1577
# define _Requires_exclusive_lock_held_(expr)
1578
# define SALIERI_DEFINED_Requires_exclusive_lock_held
1579
#endif
1580
1581
/* Shared Data Access Annotations */
1582
1583
#if defined(_Guarded_by_) && defined(SALIERI_DEFINED_Guarded_by)
1584
# undef _Guarded_by_
1585
#endif
1586
#if !defined(_Guarded_by_)
1587
# define _Guarded_by_(expr)
1588
# define SALIERI_DEFINED_Guarded_by
1589
#endif
1590
1591
#if defined(_Interlocked_) && defined(SALIERI_DEFINED_Interlocked)
1592
# undef _Interlocked_
1593
#endif
1594
#if !defined(_Interlocked_)
1595
# define _Interlocked_
1596
# define SALIERI_DEFINED_Interlocked
1597
#endif
1598
1599
#if defined(_Interlocked_operand_) && defined(SALIERI_DEFINED_Interlocked_operand)
1600
# undef _Interlocked_operand_
1601
#endif
1602
#if !defined(_Interlocked_operand_)
1603
# define _Interlocked_operand_
1604
# define SALIERI_DEFINED_Interlocked_operand
1605
#endif
1606
1607
#if defined(_Write_guarded_by_) && defined(SALIERI_DEFINED_Write_guarded_by)
1608
# undef _Write_guarded_by_
1609
#endif
1610
#if !defined(_Write_guarded_by_)
1611
# define _Write_guarded_by_(expr)
1612
# define SALIERI_DEFINED_Write_guarded_by
1613
#endif
1614
1615
/* Specifying When and Where an Annotation Applies
1616
*
1617
* https://msdn.microsoft.com/en-us/library/jj159526.aspx
1618
*****/
1619
1620
#if defined(_At_) && defined(SALIERI_DEFINED_At)
1621
# undef _At_
1622
#endif
1623
#if !defined(_At_)
1624
# define _At_(expr, anno_list)
1625
# define SALIERI_DEFINED_At
1626
#endif
1627
1628
#if defined(_At_buffer_) && defined(SALIERI_DEFINED_At_buffer)
1629
# undef _At_buffer_
1630
#endif
1631
#if !defined(_At_buffer_)
1632
# define _At_buffer_(expr, iter, elem_count, anno_list)
1633
# define SALIERI_DEFINED_At_buffer
1634
#endif
1635
1636
#if defined(_Group_) && defined(SALIERI_DEFINED_Group)
1637
# undef _Group_
1638
#endif
1639
#if !defined(_Group_)
1640
# define _Group_(anno_list)
1641
# define SALIERI_DEFINED_Group
1642
#endif
1643
1644
#if defined(_When_) && defined(SALIERI_DEFINED_When)
1645
# undef _When_
1646
#endif
1647
#if !defined(_When_)
1648
# define _When_(expr, anno_list)
1649
# define SALIERI_DEFINED_When
1650
#endif
1651
1652
#if !defined(_MSC_VER)
1653
1654
/* Intrinsic Functions
1655
*
1656
* https://msdn.microsoft.com/en-us/library/jj159527.aspx
1657
*****/
1658
1659
/* General Purpose */
1660
1661
#if defined(_Curr_) && defined(SALIERI_DEFINED_Curr)
1662
# undef _Curr_
1663
#endif
1664
#if !defined(_Curr_)
1665
# define _Curr_
1666
# define SALIERI_DEFINED_Curr
1667
#endif
1668
1669
#if defined(_Inexpressible_) && defined(SALIERI_DEFINED_Inexpressible)
1670
# undef _Inexpressible_
1671
#endif
1672
#if !defined(_Inexpressible_)
1673
# define _Inexpressible_(expr)
1674
# define SALIERI_DEFINED_Inexpressible
1675
#endif
1676
1677
#if defined(_Nullterm_length_) && defined(SALIERI_DEFINED_Nullterm_length)
1678
# undef _Nullterm_length_
1679
#endif
1680
#if !defined(_Nullterm_length_)
1681
# define _Nullterm_length_(param)
1682
# define SALIERI_DEFINED_Nullterm_length
1683
#endif
1684
1685
#if defined(_Old_) && defined(SALIERI_DEFINED_Old)
1686
# undef _Old_
1687
#endif
1688
#if !defined(_Old_)
1689
# define _Old_(expr)
1690
# define SALIERI_DEFINED_Old
1691
#endif
1692
1693
#if defined(_Param_) && defined(SALIERI_DEFINED_Param)
1694
# undef _Param_
1695
#endif
1696
#if !defined(_Param_)
1697
# define _Param_(n)
1698
# define SALIERI_DEFINED_Param
1699
#endif
1700
1701
/* String Specific */
1702
1703
#if defined(_String_length_) && defined(SALIERI_DEFINED_String_length)
1704
# undef _String_length_
1705
#endif
1706
#if !defined(_String_length_)
1707
# define _String_length_(param)
1708
# define SALIERI_DEFINED_String_length
1709
#endif
1710
1711
#endif
1712
1713
#ifndef _Analysis_assume_
1714
#define _Analysis_assume_(expr)
1715
#endif
1716
1717
#ifndef _Analysis_assume_lock_held_
1718
#define _Analysis_assume_lock_held_(expr)
1719
#endif
1720
1721
#ifndef _Analysis_noreturn_
1722
#define _Analysis_noreturn_
1723
#endif
1724
1725
#define _In_ptr_ _In_ _Deref_pre_valid_
1726
1727
#define _In_ptr_opt_ _In_ _Deref_pre_opt_valid_
1728
1729
#define _Out_ptr_ _Inout_ _Deref_post_valid_
1730
1731
#define _Inout_ptr_ _Inout_ _Deref_prepost_valid_
1732
// _Deref_prepost_opt_valid_ gets this wrong and uses _Deref_post_opt_valid_
1733
// odd because _Prepost_opt_valid_ is correct
1734
#define _Inout_ptr_opt_ _Inout_ _Deref_pre_opt_valid_ _Deref_post_valid_
1735
1736
#define _Inout_ptr_uninit_ _Inout_ _Deref_pre_valid_ _Deref_post_null_
1737
1738
#define _Inout_ptr_opt_uninit_ _Inout_ _Deref_pre_opt_valid_ _Deref_post_null_
1739
1740
#if defined(SALIERI_VERSION)
1741
# undef SALIERI_VERSION
1742
#endif
1743
1744
#define SALIERI_VERSION 1
1745
1746
#endif
/* !defined(SALIERI_VERSION) || (SALIERI_VERSION < X) */
cx
utils
macros
salieri.h
Generated by
1.9.8