1 2 /* these defines are needed when using the msvc headers from the dx9sdk directory with mingw */ 3 4 #pragma once 5 6 #define WINAPI_FAMILY_ONE_PARTITION(vset, v) ((WINAPI_FAMILY & vset) == v) 7 8 #define __REQUIRED_RPCNDR_H_VERSION__ 475 9 /* Pointer parameters */ 10 #define _In_ 11 #define _Out_ 12 #define _Inout_ 13 #define _In_z_ 14 #define _Inout_z_ 15 #define _In_reads_(s) 16 #define _In_reads_bytes_(s) 17 #define _In_reads_z_(s) 18 #define _In_reads_or_z_(s) 19 #define _Out_writes_(s) 20 #define _Out_writes_bytes_(s) 21 #define _Out_writes_z_(s) 22 #define _Inout_updates_(s) 23 #define _Inout_updates_bytes_(s) 24 #define _Inout_updates_z_(s) 25 #define _Out_writes_to_(s,c) 26 #define _Out_writes_bytes_to_(s, c) 27 #define _Out_writes_all_(s) 28 #define _Out_writes_bytes_all_(s) 29 #define _Inout_updates_to_(s, c) 30 #define _Inout_updates_bytes_to_(s, c) 31 #define _Inout_updates_all_(s) 32 #define _Inout_updates_bytes_all_(s) 33 #define _In_reads_to_ptr_(p) 34 #define _In_reads_to_ptr_z_(p) 35 #define _Out_writes_to_ptr_(p) 36 #define _Out_writes_to_ptr_z(p) 37 38 /* Optional pointer parameters */ 39 #define __in_opt 40 #define __out_opt 41 #define __inout_opt 42 #define _In_opt_ 43 #define _Out_opt_ 44 #define _Inout_opt_ 45 #define _In_opt_z_ 46 #define _Inout_opt_z_ 47 #define _In_reads_opt_(s) 48 #define _In_reads_bytes_opt_(s) 49 #define _In_reads_opt_z_(s) 50 51 #define _Out_writes_opt_(s) 52 #define _Out_writes_opt_z_(s) 53 #define _Inout_updates_opt_(s) 54 #define _Inout_updates_bytes_opt_(s) 55 #define _Inout_updates_opt_z_(s) 56 #define _Out_writes_to_opt_(s, c) 57 #define _Out_writes_bytes_to_opt_(s, c) 58 #define _Out_writes_all_opt_(s) 59 #define _Out_writes_bytes_all_opt_(s) 60 61 #define _Inout_updates_to_opt_(s, c) 62 #define _Inout_updates_bytes_to_opt_(s, c) 63 #define _Inout_updates_all_opt_(s) 64 #define _Inout_updates_bytes_all_opt_(s) 65 #define _In_reads_to_ptr_opt_(p) 66 #define _In_reads_to_ptr_opt_z_(p) 67 #define _Out_writes_to_ptr_opt_(p) 68 #define _Out_writes_to_ptr_opt_z_(p) 69 70 /* Output pointer parameters */ 71 #define _Outptr_ 72 #define _Outptr_opt_ 73 #define _Outptr_result_maybenull_ 74 #define _Outptr_opt_result_maybenull_ 75 #define _Outptr_result_z_ 76 #define _Outptr_opt_result_z_ 77 #define _Outptr_result_maybenull_z_ 78 #define _Outptr_opt_result_maybenull_z_ 79 #define _COM_Outptr_ 80 #define _COM_Outptr_opt_ 81 #define _COM_Outptr_result_maybenull_ 82 #define _COM_Outptr_opt_result_maybenull_ 83 #define _Outptr_result_buffer_(s) 84 #define _Outptr_result_bytebuffer_(s) 85 #define _Outptr_opt_result_buffer_(s) 86 #define _Outptr_opt_result_bytebuffer_(s) 87 #define _Outptr_result_buffer_to_(s, c) 88 #define _Outptr_result_bytebuffer_to_(s, c) 89 #define _Outptr_result_bytebuffer_maybenull_(s) 90 #define _Outptr_opt_result_buffer_to_(s, c) 91 #define _Outptr_opt_result_bytebuffer_to_(s, c) 92 #define _Result_nullonfailure_ 93 #define _Result_zeroonfailure_ 94 #define _Outptr_result_nullonfailure_ 95 #define _Outptr_opt_result_nullonfailure_ 96 #define _Outref_result_nullonfailure_ 97 98 /* Output reference parameters */ 99 #define _Outref_ 100 #define _Outref_result_maybenull_ 101 #define _Outref_result_buffer_(s) 102 #define _Outref_result_bytebuffer_(s) 103 #define _Outref_result_buffer_to_(s, c) 104 #define _Outref_result_bytebuffer_to_(s, c) 105 #define _Outref_result_buffer_all_(s) 106 #define _Outref_result_bytebuffer_all_(s) 107 #define _Outref_result_buffer_maybenull_(s) 108 #define _Outref_result_bytebuffer_maybenull_(s) 109 #define _Outref_result_buffer_to_maybenull_(s, c) 110 #define _Outref_result_bytebuffer_to_maybenull_(s, c) 111 #define _Outref_result_buffer_all_maybenull_(s) 112 #define _Outref_result_bytebuffer_all_maybenull_(s) 113 114 /* Return values */ 115 #define _Ret_z_ 116 #define _Ret_writes_(s) 117 #define _Ret_writes_bytes_(s) 118 #define _Ret_writes_z_(s) 119 #define _Ret_writes_bytes_to_(s, c) 120 #define _Ret_writes_maybenull_(s) 121 #define _Ret_writes_to_maybenull_(s, c) 122 #define _Ret_writes_maybenull_z_(s) 123 #define _Ret_maybenull_ 124 #define _Ret_maybenull_z_ 125 #define _Ret_null_ 126 #define _Ret_notnull_ 127 #define _Ret_writes_bytes_to_(s, c) 128 #define _Ret_writes_bytes_maybenull_(s) 129 #define _Ret_writes_bytes_to_maybenull_(s, c) 130 131 /* Other common annotations */ 132 #define _In_range_(low, hi) 133 #define _Out_range_(low, hi) 134 #define _Ret_range_(low, hi) 135 #define _Deref_in_range_(low, hi) 136 #define _Deref_out_range_(low, hi) 137 #define _Deref_inout_range_(low, hi) 138 #define _Pre_equal_to_(expr) 139 #define _Post_equal_to_(expr) 140 #define _Struct_size_bytes_(size) 141 142 /* Function annotations */ 143 #define _Called_from_function_class_(name) 144 #define _Check_return_ __checkReturn 145 #define _Function_class_(name) 146 #define _Raises_SEH_exception_ 147 #define _Maybe_raises_SEH_exception_ 148 #define _Must_inspect_result_ 149 #define _Use_decl_annotations_ 150 151 /* Success/failure annotations */ 152 #define _Always_(anno_list) 153 #define _On_failure_(anno_list) 154 #define _Return_type_success_(expr) 155 #define _Success_(expr) 156 157 #define _Reserved_ 158 #define _Const_ 159 160 /* Buffer properties */ 161 #define _Readable_bytes_(s) 162 #define _Readable_elements_(s) 163 #define _Writable_bytes_(s) 164 #define _Writable_elements_(s) 165 #define _Null_terminated_ 166 #define _NullNull_terminated_ 167 #define _Pre_readable_size_(s) 168 #define _Pre_writable_size_(s) 169 #define _Pre_readable_byte_size_(s) 170 #define _Pre_writable_byte_size_(s) 171 #define _Post_readable_size_(s) 172 #define _Post_writable_size_(s) 173 #define _Post_readable_byte_size_(s) 174 #define _Post_writable_byte_size_(s) 175 176 /* Field properties */ 177 #define _Field_size_(s) 178 #define _Field_size_full_(s) 179 #define _Field_size_full_opt_(s) 180 #define _Field_size_opt_(s) 181 #define _Field_size_part_(s, c) 182 #define _Field_size_part_opt_(s, c) 183 #define _Field_size_bytes_(size) 184 #define _Field_size_bytes_full_(size) 185 #define _Field_size_bytes_full_opt_(s) 186 #define _Field_size_bytes_opt_(s) 187 #define _Field_size_bytes_part_(s, c) 188 #define _Field_size_bytes_part_opt_(s, c) 189 #define _Field_z_ 190 #define _Field_range_(min, max) 191 192 /* Structural annotations */ 193 #define _At_(e, a) 194 #define _At_buffer_(e, i, c, a) 195 #define _Group_(a) 196 #define _When_(e, a) 197 198 /* printf/scanf annotations */ 199 #define _Printf_format_string_ 200 #define _Scanf_format_string_ 201 #define _Scanf_s_format_string_ 202 #define _Format_string_impl_(kind,where) 203 #define _Printf_format_string_params_(x) 204 #define _Scanf_format_string_params_(x) 205 #define _Scanf_s_format_string_params_(x) 206 207 /* Analysis */ 208 #define _Analysis_assume_(expr) 209 #define _Analysis_assume_nullterminated_(expr) 210 211 #define __in 212 #define __out 213 #define __deref_out 214 215 #define __in_bcount(size) 216 #define __in_bcount_opt(size) 217 #define __in_ecount(size) 218 #define __out_bcount(size) 219 #define __out_bcount_opt(size) 220 #define __out_bcount_part(size, length) 221 #define __out_ecount(size) 222 #define __out_ecount_opt(size) 223 #define __inout 224 #define __deref_out_bcount(size) 225 #define __deref_opt_out_bcount(size) 226 #define __deref_out_ecount(size) 227 #define __in_ecount_opt(s) 228 229 #define _In_ 230 #define _In_opt_ 231 #define _Null_ 232 #define _Out_writes_bytes_opt_(s) 233 #define _Out_writes_bytes_(s) 234 #define _In_reads_bytes_(s) 235 #define _Inout_opt_bytecount_(s) 236 237 #define __reserved 238