27#define check_release(obj, exp) _check_release(__LINE__, obj, exp)
30 int ref = IUnknown_Release(
obj);
360x42,0x4d,0x42,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3e,0x00,0x00,0x00,0x28,0x00,
370x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x01,0x00,0x00,0x00,
380x00,0x00,0x04,0x00,0x00,0x00,0x12,0x0b,0x00,0x00,0x12,0x0b,0x00,0x00,0x02,0x00,
390x00,0x00,0x02,0x00,0x00,0x00,0xf1,0xf2,0xf3,0x80,0xf4,0xf5,0xf6,0x81,0x00,0x00,
450x42,0x4d,0x42,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3e,0x00,0x00,0x00,0x28,0x00,
460x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x02,0x00,0x00,0x00,
470x00,0x00,0x04,0x00,0x00,0x00,0x12,0x0b,0x00,0x00,0x12,0x0b,0x00,0x00,0x02,0x00,
480x00,0x00,0x02,0x00,0x00,0x00,0xf1,0xf2,0xf3,0x80,0xf4,0xf5,0xf6,0x81,0x00,0x00,
540x42,0x4d,0x42,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3e,0x00,0x00,0x00,0x28,0x00,
550x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x04,0x00,0x00,0x00,
560x00,0x00,0x04,0x00,0x00,0x00,0x12,0x0b,0x00,0x00,0x12,0x0b,0x00,0x00,0x02,0x00,
570x00,0x00,0x02,0x00,0x00,0x00,0xf1,0xf2,0xf3,0x80,0xf4,0xf5,0xf6,0x81,0x00,0x00,
630x42,0x4d,0x42,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3e,0x00,0x00,0x00,0x28,0x00,
640x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x00,0x00,
650x00,0x00,0x04,0x00,0x00,0x00,0x12,0x0b,0x00,0x00,0x12,0x0b,0x00,0x00,0x02,0x00,
660x00,0x00,0x02,0x00,0x00,0x00,0xf1,0xf2,0xf3,0x80,0xf4,0xf5,0xf6,0x81,0x00,0x00,
73 0x42,0x4d,0x46,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x36,0x00,0x00,0x00,0x28,0x00,
74 0x00,0x00,0x02,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x01,0x00,0x20,0x00,0x00,0x00,
75 0x00,0x00,0x10,0x00,0x00,0x00,0x12,0x0b,0x00,0x00,0x12,0x0b,0x00,0x00,0x00,0x00,
76 0x00,0x00,0x00,0x00,0x00,0x00,0xa0,0xb0,0xc0,0x00,0xa1,0xb1,0xc1,0x00,0xa2,0xb2,
77 0xc2,0x00,0xa3,0xb3,0xc3,0x00
83 0x42,0x4d,0x46,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x36,0x00,0x00,0x00,0x28,0x00,
84 0x00,0x00,0x02,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x01,0x00,0x20,0x00,0x00,0x00,
85 0x00,0x00,0x10,0x00,0x00,0x00,0x12,0x0b,0x00,0x00,0x12,0x0b,0x00,0x00,0x00,0x00,
86 0x00,0x00,0x00,0x00,0x00,0x00,0xa0,0xb0,0xc0,0x00,0xa1,0xb1,0xc1,0x00,0xa2,0xb2,
87 0xc2,0x00,0xa3,0xb3,0xc3,0x01
92 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, 0x49,
93 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x08, 0x00,
94 0x00, 0x00, 0x00, 0x3a, 0x7e, 0x9b, 0x55, 0x00, 0x00, 0x00, 0x0a, 0x49, 0x44,
95 0x41, 0x54, 0x08, 0xd7, 0x63, 0xf8, 0x0f, 0x00, 0x01, 0x01, 0x01, 0x00, 0x1b,
96 0xb6, 0xee, 0x56, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42,
1020xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff
113 0x44,0x44,0x53,0x20,0x7c,0x00,0x00,0x00,0x0f,0x10,0x00,0x00,0x04,0x00,0x00,0x00,
114 0x10,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
115 0x47,0x49,0x4d,0x50,0x2d,0x44,0x44,0x53,0x5a,0x09,0x03,0x00,0x00,0x00,0x00,0x00,
116 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
117 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
118 0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
119 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x00,
120 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
121 0xec,0x27,0x00,0xff,0xec,0x27,0x00,0xff,0xec,0x27,0x00,0xff,0xec,0x27,0x00,0xff,
122 0xec,0x27,0x00,0xff,0xec,0x27,0x00,0xff,0xec,0x27,0x00,0xff,0xec,0x27,0x00,0xff,
123 0xec,0x27,0x00,0xff,0xec,0x27,0x00,0xff,0xec,0x27,0x00,0xff,0xec,0x27,0x00,0xff,
124 0xec,0x27,0x00,0xff,0xec,0x27,0x00,0xff,0xec,0x27,0x00,0xff,0xec,0x27,0x00,0xff,
125 0xec,0x27,0x00,0xff,0xec,0x27,0x00,0xff,0xec,0x27,0x00,0xff,0xec,0x27,0x00,0xff,
126 0xec,0x27,0x00,0xff,0xec,0x27,0x00,0xff,0xec,0x27,0x00,0xff,0xec,0x27,0x00,0xff,
127 0xec,0x27,0x00,0xff,0xec,0x27,0x00,0xff,0xec,0x27,0x00,0xff,0xec,0x27,0x00,0xff,
128 0xec,0x27,0x00,0xff,0xec,0x27,0x00,0xff,0xec,0x27,0x00,0xff,0xec,0x27,0x00,0xff,
129 0xec,0x27,0x00,0xff,0xec,0x27,0x00,0xff,0xec,0x27,0x00,0xff,0xec,0x27,0x00,0xff,
130 0xec,0x27,0x00,0xff,0xec,0x27,0x00,0xff,0xec,0x27,0x00,0xff,0xec,0x27,0x00,0xff,
131 0xec,0x27,0x00,0xff,0xec,0x27,0x00,0xff,0xec,0x27,0x00,0xff,0xec,0x27,0x00,0xff,
132 0xec,0x27,0x00,0xff,0xec,0x27,0x00,0xff,0xec,0x27,0x00,0xff,0xec,0x27,0x00,0xff,
133 0xec,0x27,0x00,0xff,0xec,0x27,0x00,0xff,0xec,0x27,0x00,0xff,0xec,0x27,0x00,0xff,
134 0xec,0x27,0x00,0xff,0xec,0x27,0x00,0xff,0xec,0x27,0x00,0xff,0xec,0x27,0x00,0xff,
135 0xec,0x27,0x00,0xff,0xec,0x27,0x00,0xff,0xec,0x27,0x00,0xff,0xec,0x27,0x00,0xff,
136 0xec,0x27,0x00,0xff,0xec,0x27,0x00,0xff,0xec,0x27,0x00,0xff,0xec,0x27,0x00,0xff,
137 0xec,0x27,0x00,0xff,0xec,0x27,0x00,0xff,0xec,0x27,0x00,0xff,0xec,0x27,0x00,0xff,
138 0xec,0x27,0x00,0xff,0xec,0x27,0x00,0xff,0xec,0x27,0x00,0xff,0xec,0x27,0x00,0xff,
139 0xec,0x27,0x00,0xff,0xec,0x27,0x00,0xff,0xec,0x27,0x00,0xff,0xec,0x27,0x00,0xff,
140 0xec,0x27,0x00,0xff,0xec,0x27,0x00,0xff,0xec,0x27,0x00,0xff,0xec,0x27,0x00,0xff,
141 0xec,0x27,0x00,0xff,0xec,0x27,0x00,0xff,0xec,0x27,0x00,0xff,0xec,0x27,0x00,0xff,
142 0xec,0x27,0x00,0xff,0xec,0x27,0x00,0xff,0xec,0x27,0x00,0xff,0xec,0x27,0x00,0xff,
143 0xec,0x27,0x00,0xff,0xec,0x27,0x00,0xff,0xec,0x27,0x00,0xff,0xec,0x27,0x00,0xff,
144 0xec,0x27,0x00,0xff,0xec,0x27,0x00,0xff,0xec,0x27,0x00,0xff,0xec,0x27,0x00,0xff,
145 0xec,0x27,0x00,0xff,0xec,0x27,0x00,0xff,0xec,0x27,0x00,0xff,0xec,0x27,0x00,0xff,
146 0xec,0x27,0x00,0xff,0xec,0x27,0x00,0xff,0xec,0x27,0x00,0xff,0x8c,0xcd,0x12,0xff,
147 0x78,0x01,0x14,0xff,0x50,0xcd,0x12,0xff,0x00,0x3d,0x8c,0xff,0x02,0x00,0x00,0xff,
148 0x47,0x00,0x00,0xff,0xda,0x07,0x02,0xff,0x50,0xce,0x12,0xff,0xea,0x11,0x01,0xff,
149 0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x08,0x3d,0x8c,0xff,0x08,0x01,0x00,0xff,
150 0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x60,0xcc,0x12,0xff,
151 0xa1,0xb2,0xd4,0xff,0xda,0x07,0x02,0xff,0x47,0x00,0x00,0xff,0x00,0x00,0x00,0xff,
152 0x50,0xce,0x12,0xff,0x00,0x00,0x14,0xff,0xa8,0xcc,0x12,0xff,0x3c,0xb2,0xd4,0xff,
153 0xda,0x07,0x02,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x01,0xff,
154 0x21,0x00,0x00,0xff,0xd8,0xcb,0x12,0xff,0x54,0xcd,0x12,0xff,0x8b,0x4f,0xd5,0xff,
155 0x00,0x04,0xda,0xff,0x00,0x00,0x00,0xff,0x3d,0x04,0x91,0xff,0x70,0xce,0x18,0xff,
156 0xb4,0xcc,0x12,0xff,0x6b,0x4e,0xd5,0xff,0xb0,0xcc,0x12,0xff,0x00,0x00,0x00,0xff,
157 0xc8,0x05,0x91,0xff,0x98,0xc7,0xcc,0xff,0x7c,0xcd,0x12,0xff,0x51,0x05,0x91,0xff,
158 0x48,0x07,0x14,0xff,0x6d,0x05,0x91,0xff,0x00,0x07,0xda,0xff,0xa0,0xc7,0xcc,0xff,
159 0x00,0x07,0xda,0xff,0x3a,0x77,0xd5,0xff,0xda,0x07,0x02,0xff,0x7c,0x94,0xd4,0xff,
160 0xe0,0xce,0xd6,0xff,0x0a,0x80,0x00,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,
161 0x78,0x9a,0xab,0xff,0xde,0x08,0x18,0xff,0xda,0x07,0x02,0xff,0x30,0x00,0x00,0xff,
162 0x00,0x00,0x00,0xff,0x50,0xce,0x12,0xff,0x8c,0xcd,0x12,0xff,0xd0,0xb7,0xd8,0xff,
163 0x00,0x00,0x00,0xff,0x60,0x32,0xd9,0xff,0x30,0xc1,0x1a,0xff,0xa8,0xcd,0x12,0xff,
164 0xa4,0xcd,0x12,0xff,0xc0,0x1d,0x4b,0xff,0x46,0x71,0x0e,0xff,0xc0,0x1d,0x4b,0xff,
165 0x09,0x87,0xd4,0xff,0x00,0x00,0x00,0xff,0xf6,0x22,0x00,0xff,0x64,0xcd,0x12,0xff,
166 0x00,0x00,0x00,0xff,0xca,0x1d,0x4b,0xff,0x09,0x87,0xd4,0xff,0xaa,0x02,0x05,0xff,
167 0x82,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0xc0,0x1d,0x4b,0xff,
168 0xcd,0xab,0xba,0xff,0x00,0x00,0x00,0xff,0xa4,0xcd,0x12,0xff,0xc0,0x1d,0x4b,0xff,
169 0xd4,0xcd,0x12,0xff,0xa6,0x4c,0xd5,0xff,0x00,0xf0,0xfd,0xff,0xd4,0xcd,0x12,0xff,
170 0xf4,0x4c,0xd5,0xff,0x90,0xcd,0x12,0xff,0xc2,0x4c,0xd5,0xff,0x82,0x00,0x00,0xff,
171 0xaa,0x02,0x05,0xff,0x88,0xd4,0xba,0xff,0x14,0x00,0x00,0xff,0x01,0x00,0x00,0xff,
172 0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x10,0x00,0x00,0xff,0x00,0x00,0x00,0xff,
173 0x0c,0x08,0x13,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,
174 0xd0,0xcd,0x12,0xff,0xc6,0x84,0xf1,0xff,0x7c,0x84,0xf1,0xff,0x20,0x20,0xf5,0xff,
175 0x00,0x00,0x0a,0xff,0xf0,0xb0,0x94,0xff,0x64,0x6c,0xf1,0xff,0x85,0x6c,0xf1,0xff,
176 0x8b,0x4f,0xd5,0xff,0x00,0x04,0xda,0xff,0x88,0xd4,0xba,0xff,0x82,0x00,0x00,0xff,
177 0x39,0xde,0xd4,0xff,0x10,0x50,0xd5,0xff,0xaa,0x02,0x05,0xff,0x00,0x00,0x00,0xff,
178 0x4f,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x5c,0xce,0x12,0xff,0x00,0x00,0x00,0xff,
179 0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x5c,0xce,0x12,0xff,
180 0xaa,0x02,0x05,0xff,0x4c,0xce,0x12,0xff,0x39,0xe6,0xd4,0xff,0x00,0x00,0x00,0xff,
181 0x82,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x5b,0xe6,0xd4,0xff,0x00,0x00,0x00,0xff,
182 0x00,0x00,0x00,0xff,0x68,0x50,0xcd,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,
183 0x00,0x00,0x00,0xff,0x10,0x00,0x00,0xff,0xe3,0xea,0x90,0xff,0x5c,0xce,0x12,0xff,
184 0x18,0x00,0x00,0xff,0x88,0xd4,0xba,0xff,0x82,0x00,0x00,0xff,0x00,0x00,0x00,0xff,
185 0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
186 0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
187 0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
188 0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01
1930x44,0x44,0x53,0x20,0x7c,0x00,0x00,0x00,0x07,0x10,0x0a,0x00,0x02,0x00,0x00,0x00,
1940x02,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
1950x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
1960x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
1970x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
1980x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0xff,0x00,
1990x00,0xff,0x00,0x00,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x10,0x40,0x00,
2000x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
2010xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff
2060x44,0x44,0x53,0x20,0x7c,0x00,0x00,0x00,0x07,0x10,0x08,0x00,0x02,0x00,0x00,0x00,
2070x02,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
2080x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
2090x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
2100x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
2110x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x7c,0x00,0x00,
2120xe0,0x03,0x00,0x00,0x1f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x00,
2130x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
2140xff,0x7f,0xff,0x7f,0xff,0x7f,0xff,0x7f
2190x44,0x44,0x53,0x20,0x7c,0x00,0x00,0x00,0x07,0x10,0x08,0x00,0x04,0x00,0x00,0x00,
2200x04,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
2210x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
2220x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
2230x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
2240x04,0x00,0x00,0x00,0x44,0x58,0x54,0x35,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
2250x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x10,0x00,0x00,
2260x00,0xfe,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
2270xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0xef,0x87,0x0f,0x78,0x05,0x05,0x50,0x50,
2280xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0xef,0x87,0x0f,0x78,0x05,0x05,0x50,0x50,
2290xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0xef,0x87,0x0f,0x78,0x05,0x05,0x50,0x50,
2300xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0xef,0x87,0x0f,0x78,0x05,0x05,0x50,0x50,
2310xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0xef,0x87,0x0f,0x78,0x05,0x05,0x50,0x50,
2320xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0xef,0x87,0x0f,0x78,0x05,0x05,0x50,0x50
2370x44,0x44,0x53,0x20,0x7c,0x00,0x00,0x00,0x07,0x10,0x8a,0x00,0x04,0x00,0x00,0x00,
2380x04,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x03,0x00,0x00,0x00,
2390x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
2400x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
2410x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
2420x04,0x00,0x00,0x00,0x44,0x58,0x54,0x33,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
2430x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x10,0x40,0x00,
2440x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
2450xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xef,0x87,0x0f,0x78,0x05,0x05,0x50,0x50,
2460xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xef,0x87,0x0f,0x78,0x05,0x05,0x50,0x50,
2470xff,0x00,0xff,0x00,0x00,0x00,0x00,0x00,0x2f,0x7e,0xcf,0x79,0x01,0x54,0x5c,0x5c,
2480x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x84,0xef,0x7b,0xaa,0xab,0xab,0xab
254 0x44,0x44,0x53,0x20,0x7c,0x00,0x00,0x00,0x07,0x10,0x08,0x00,0x02,0x00,0x00,0x00,
255 0x04,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
256 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
257 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
258 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
259 0x04,0x00,0x00,0x00,0x44,0x58,0x54,0x35,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
260 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x10,0x00,0x00,
261 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
262 0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0xef,0x87,0x0f,0x78,0x05,0x05,0x50,0x50,
268 0x44,0x44,0x53,0x20,0x7c,0x00,0x00,0x00,0x07,0x10,0x08,0x00,0x08,0x00,0x00,0x00,
269 0x08,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
270 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
271 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
272 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
273 0x04,0x00,0x00,0x00,0x44,0x58,0x54,0x35,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
274 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x10,0x00,0x00,
275 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
276 0x00,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x1f,0x00,0xe0,0x07,0x05,0x05,0x50,0x50,
277 0x3f,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf8,0xff,0x07,0x05,0x05,0x50,0x50,
278 0x7f,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x1f,0xf8,0xe0,0xff,0x05,0x05,0x50,0x50,
279 0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x00,0x05,0x05,0x50,0x50,
301#define DDS_CAPS 0x00000001
302#define DDS_HEIGHT 0x00000002
303#define DDS_WIDTH 0x00000004
304#define DDS_PITCH 0x00000008
305#define DDS_PIXELFORMAT 0x00001000
306#define DDS_MIPMAPCOUNT 0x00020000
307#define DDS_LINEARSIZE 0x00080000
310#define DDSCAPS_ALPHA 0x00000002
311#define DDS_CAPS_TEXTURE 0x00001000
314#define DDS_PF_ALPHA 0x00000001
315#define DDS_PF_ALPHA_ONLY 0x00000002
316#define DDS_PF_FOURCC 0x00000004
317#define DDS_PF_RGB 0x00000040
318#define DDS_PF_LUMINANCE 0x00020000
319#define DDS_PF_BUMPLUMINANCE 0x00040000
320#define DDS_PF_BUMPDUDV 0x00080000
357 header->size =
sizeof(*header);
361 header->pixel_format.size =
sizeof(
header->pixel_format);
364 header->pixel_format.fourcc = 0;
365 header->pixel_format.bpp = 32;
366 header->pixel_format.rmask = 0xff0000;
367 header->pixel_format.gmask = 0x00ff00;
368 header->pixel_format.bmask = 0x0000ff;
369 header->pixel_format.amask = 0;
373#define check_dds_pixel_format(flags, fourcc, bpp, rmask, gmask, bmask, amask, format) \
374 check_dds_pixel_format_(__LINE__, flags, fourcc, bpp, rmask, gmask, bmask, amask, format)
391 dds.header.pixel_format.flags =
flags;
392 dds.header.pixel_format.fourcc = fourcc;
393 dds.header.pixel_format.bpp =
bpp;
394 dds.header.pixel_format.rmask =
rmask;
395 dds.header.pixel_format.gmask =
gmask;
396 dds.header.pixel_format.bmask =
bmask;
397 dds.header.pixel_format.amask =
amask;
398 memset(dds.data, 0,
sizeof(dds.data));
401 ok_(__FILE__,
line)(
hr ==
D3D_OK,
"D3DXGetImageInfoFromFileInMemory returned %#x for pixel format %#x, expected %#x\n",
405 ok_(__FILE__,
line)(
info.Format == expected_format,
"D3DXGetImageInfoFromFileInMemory returned format %#x, expected %#x\n",
406 info.Format, expected_format);
430 DWORD pixel_data_size;
439 { { 32,
DDS_PF_RGB |
DDS_PF_ALPHA, 0, 32, 0x00ff0000, 0x0000ff00, 0x000000ff, 0xff000000 }, 0, 4, 4, 0, 0,
441 { { 32,
DDS_PF_RGB |
DDS_PF_ALPHA, 0, 32, 0x00ff0000, 0x0000ff00, 0x000000ff, 0xff000000 },
DDS_PITCH, 4, 4, 0 , 0,
443 { { 32,
DDS_PF_RGB |
DDS_PF_ALPHA, 0, 32, 0x00ff0000, 0x0000ff00, 0x000000ff, 0xff000000 },
DDS_PITCH, 4, 4, 1 , 0,
445 { { 32,
DDS_PF_RGB |
DDS_PF_ALPHA, 0, 32, 0x00ff0000, 0x0000ff00, 0x000000ff, 0xff000000 },
DDS_PITCH, 4, 4, 2 , 0,
447 { { 32,
DDS_PF_RGB |
DDS_PF_ALPHA, 0, 32, 0x00ff0000, 0x0000ff00, 0x000000ff, 0xff000000 },
DDS_PITCH, 4, 4, 3 , 0,
449 { { 32,
DDS_PF_RGB |
DDS_PF_ALPHA, 0, 32, 0x00ff0000, 0x0000ff00, 0x000000ff, 0xff000000 },
DDS_PITCH, 4, 4, 4 , 0,
451 { { 32,
DDS_PF_RGB |
DDS_PF_ALPHA, 0, 32, 0x00ff0000, 0x0000ff00, 0x000000ff, 0xff000000 },
DDS_PITCH, 4, 4, 16 , 0,
453 { { 32,
DDS_PF_RGB |
DDS_PF_ALPHA, 0, 32, 0x00ff0000, 0x0000ff00, 0x000000ff, 0xff000000 },
DDS_PITCH, 4, 4, 1024 , 0,
455 { { 32,
DDS_PF_RGB |
DDS_PF_ALPHA, 0, 32, 0x00ff0000, 0x0000ff00, 0x000000ff, 0xff000000 },
DDS_PITCH, 4, 4, -1 , 0,
458 { { 32,
DDS_PF_FOURCC,
D3DFMT_DXT1, 0, 0, 0, 0, 0 }, 0, 4, 4, 0, 0,
460 { { 32,
DDS_PF_FOURCC,
D3DFMT_DXT1, 0, 0, 0, 0, 0 },
DDS_LINEARSIZE, 4, 4, 0 , 0,
462 { { 32,
DDS_PF_FOURCC,
D3DFMT_DXT1, 0, 0, 0, 0, 0 },
DDS_LINEARSIZE, 4, 4, 1 , 0,
464 { { 32,
DDS_PF_FOURCC,
D3DFMT_DXT1, 0, 0, 0, 0, 0 },
DDS_LINEARSIZE, 4, 4, 2 , 0,
466 { { 32,
DDS_PF_FOURCC,
D3DFMT_DXT1, 0, 0, 0, 0, 0 },
DDS_LINEARSIZE, 4, 4, 9 , 0,
468 { { 32,
DDS_PF_FOURCC,
D3DFMT_DXT1, 0, 0, 0, 0, 0 },
DDS_LINEARSIZE, 4, 4, 16 , 0,
470 { { 32,
DDS_PF_FOURCC,
D3DFMT_DXT1, 0, 0, 0, 0, 0 },
DDS_LINEARSIZE, 4, 4, -1 , 0,
473 { { 32,
DDS_PF_RGB, 0, 32, 0xff0000, 0x00ff00, 0x0000ff, 0 }, 0, 0x80000000, 0x80000000 , 0, 0,
475 { { 32,
DDS_PF_RGB, 0, 32, 0xff0000, 0x00ff00, 0x0000ff, 0 }, 0, 0x8000100, 0x800100 , 0, 0,
477 { { 32,
DDS_PF_RGB, 0, 32, 0xff0000, 0x00ff00, 0x0000ff, 0 }, 0, 0x80000001, 0x80000001 , 0, 0,
479 { { 32,
DDS_PF_RGB, 0, 32, 0xff0000, 0x00ff00, 0x0000ff, 0 }, 0, 0x80000001, 0x80000001 , 0, 0,
482 { { 32,
DDS_PF_RGB, 0, 24, 0xff0000, 0x00ff00, 0x0000ff, 0x000000 }, 0, 256, 64, 0, 0, 49151, {
D3DXERR_INVALIDDATA, 0 } },
483 { { 32,
DDS_PF_RGB, 0, 24, 0xff0000, 0x00ff00, 0x0000ff, 0x000000 }, 0, 256, 64, 0, 0, 49152, {
D3D_OK, 1 } },
484 { { 32,
DDS_PF_RGB, 0, 24, 0xff0000, 0x00ff00, 0x0000ff, 0x000000 },
DDS_MIPMAPCOUNT, 256, 64, 0, 4, 65279, {
D3DXERR_INVALIDDATA, 0 } },
485 { { 32,
DDS_PF_RGB, 0, 24, 0xff0000, 0x00ff00, 0x0000ff, 0x000000 },
DDS_MIPMAPCOUNT, 256, 64, 0, 4, 65280, {
D3D_OK, 4 } },
486 { { 32,
DDS_PF_RGB, 0, 24, 0xff0000, 0x00ff00, 0x0000ff, 0x000000 },
DDS_MIPMAPCOUNT, 256, 64, 0, 9, 65540, {
D3DXERR_INVALIDDATA, 0 } },
487 { { 32,
DDS_PF_RGB, 0, 24, 0xff0000, 0x00ff00, 0x0000ff, 0x000000 },
DDS_MIPMAPCOUNT, 256, 64, 0, 9, 65541, {
D3D_OK, 9 } },
488 { { 32,
DDS_PF_RGB, 0, 24, 0xff0000, 0x00ff00, 0x0000ff, 0x000000 }, 0, 256, 256, 0, 0, 196607, {
D3DXERR_INVALIDDATA, 0 } },
489 { { 32,
DDS_PF_RGB, 0, 24, 0xff0000, 0x00ff00, 0x0000ff, 0x000000 }, 0, 256, 256, 0, 0, 196608, {
D3D_OK, 1 } },
490 { { 32,
DDS_PF_RGB, 0, 24, 0xff0000, 0x00ff00, 0x0000ff, 0x000000 }, 0, 256, 256, 0, 0, 196609, {
D3D_OK, 1 } },
491 { { 32,
DDS_PF_RGB, 0, 24, 0xff0000, 0x00ff00, 0x0000ff, 0x000000 },
DDS_MIPMAPCOUNT, 256, 256, 0, 1, 196607, {
D3DXERR_INVALIDDATA, 0 } },
492 { { 32,
DDS_PF_RGB, 0, 24, 0xff0000, 0x00ff00, 0x0000ff, 0x000000 },
DDS_MIPMAPCOUNT, 256, 256, 0, 1, 196608, {
D3D_OK, 1 } },
493 { { 32,
DDS_PF_RGB, 0, 24, 0xff0000, 0x00ff00, 0x0000ff, 0x000000 },
DDS_MIPMAPCOUNT, 256, 256, 0, 0, 196607, {
D3DXERR_INVALIDDATA, 0 } },
494 { { 32,
DDS_PF_RGB, 0, 24, 0xff0000, 0x00ff00, 0x0000ff, 0x000000 },
DDS_MIPMAPCOUNT, 256, 256, 0, 0, 196608, {
D3D_OK, 1 } },
495 { { 32,
DDS_PF_RGB, 0, 24, 0xff0000, 0x00ff00, 0x0000ff, 0x000000 },
DDS_MIPMAPCOUNT, 256, 256, 0, 0, 400000, {
D3D_OK, 1 } },
496 { { 32,
DDS_PF_RGB, 0, 24, 0xff0000, 0x00ff00, 0x0000ff, 0x000000 },
DDS_MIPMAPCOUNT, 256, 256, 0, 9, 262142, {
D3DXERR_INVALIDDATA, 0 } },
497 { { 32,
DDS_PF_RGB, 0, 24, 0xff0000, 0x00ff00, 0x0000ff, 0x000000 },
DDS_MIPMAPCOUNT, 256, 256, 0, 9, 262143, {
D3D_OK, 9 } },
498 { { 32,
DDS_PF_RGB, 0, 24, 0xff0000, 0x00ff00, 0x0000ff, 0x000000 },
DDS_MIPMAPCOUNT, 256, 256, 0, 10, 262145, {
D3DXERR_INVALIDDATA, 0 } },
499 { { 32,
DDS_PF_RGB, 0, 24, 0xff0000, 0x00ff00, 0x0000ff, 0x000000 },
DDS_MIPMAPCOUNT, 256, 256, 0, 10, 262146, {
D3D_OK, 10 } },
500 { { 32,
DDS_PF_RGB, 0, 24, 0xff0000, 0x00ff00, 0x0000ff, 0x000000 },
DDS_MIPMAPCOUNT, 256, 256, 0, 20, 262175, {
D3DXERR_INVALIDDATA, 0 } },
501 { { 32,
DDS_PF_RGB, 0, 24, 0xff0000, 0x00ff00, 0x0000ff, 0x000000 },
DDS_MIPMAPCOUNT, 256, 256, 0, 20, 262176, {
D3D_OK, 20 } },
502 { { 32,
DDS_PF_FOURCC,
D3DFMT_DXT1, 0, 0, 0, 0, 0 }, 0, 256, 256, 0, 0, 32767, {
D3DXERR_INVALIDDATA, 0 } },
503 { { 32,
DDS_PF_FOURCC,
D3DFMT_DXT1, 0, 0, 0, 0, 0 }, 0, 256, 256, 0, 0, 32768, {
D3D_OK, 1 } },
504 { { 32,
DDS_PF_FOURCC,
D3DFMT_DXT1, 0, 0, 0, 0, 0 },
DDS_MIPMAPCOUNT, 256, 256, 0, 0, 32767, {
D3DXERR_INVALIDDATA, 0 } },
505 { { 32,
DDS_PF_FOURCC,
D3DFMT_DXT1, 0, 0, 0, 0, 0 },
DDS_MIPMAPCOUNT, 256, 256, 0, 0, 32768, {
D3D_OK, 1 } },
506 { { 32,
DDS_PF_FOURCC,
D3DFMT_DXT1, 0, 0, 0, 0, 0 },
DDS_MIPMAPCOUNT, 256, 256, 0, 9, 43703, {
D3DXERR_INVALIDDATA, 0 } },
507 { { 32,
DDS_PF_FOURCC,
D3DFMT_DXT1, 0, 0, 0, 0, 0 },
DDS_MIPMAPCOUNT, 256, 256, 0, 9, 43704, {
D3D_OK, 9 } },
508 { { 32,
DDS_PF_FOURCC,
D3DFMT_DXT1, 0, 0, 0, 0, 0 },
DDS_MIPMAPCOUNT, 256, 256, 0, 20, 43791, {
D3DXERR_INVALIDDATA, 0 } },
509 { { 32,
DDS_PF_FOURCC,
D3DFMT_DXT1, 0, 0, 0, 0, 0 },
DDS_MIPMAPCOUNT, 256, 256, 0, 20, 43792, {
D3D_OK, 20 } },
510 { { 32,
DDS_PF_FOURCC,
D3DFMT_DXT4, 0, 0, 0, 0, 0 }, 0, 256, 256, 0, 0, 65535, {
D3DXERR_INVALIDDATA, 0 } },
511 { { 32,
DDS_PF_FOURCC,
D3DFMT_DXT4, 0, 0, 0, 0, 0 }, 0, 256, 256, 0, 0, 65536, {
D3D_OK, 1 } },
512 { { 32,
DDS_PF_FOURCC,
D3DFMT_DXT4, 0, 0, 0, 0, 0 },
DDS_MIPMAPCOUNT, 256, 256, 0, 0, 65535, {
D3DXERR_INVALIDDATA, 0 } },
513 { { 32,
DDS_PF_FOURCC,
D3DFMT_DXT4, 0, 0, 0, 0, 0 },
DDS_MIPMAPCOUNT, 256, 256, 0, 0, 65536, {
D3D_OK, 1 } },
514 { { 32,
DDS_PF_FOURCC,
D3DFMT_DXT4, 0, 0, 0, 0, 0 },
DDS_MIPMAPCOUNT, 256, 256, 0, 9, 87407, {
D3DXERR_INVALIDDATA, 0 } },
515 { { 32,
DDS_PF_FOURCC,
D3DFMT_DXT4, 0, 0, 0, 0, 0 },
DDS_MIPMAPCOUNT, 256, 256, 0, 9, 87408, {
D3D_OK, 9 } },
516 { { 32,
DDS_PF_FOURCC,
D3DFMT_DXT4, 0, 0, 0, 0, 0 },
DDS_MIPMAPCOUNT, 256, 256, 0, 20, 87583, {
D3DXERR_INVALIDDATA, 0 } },
517 { { 32,
DDS_PF_FOURCC,
D3DFMT_DXT4, 0, 0, 0, 0, 0 },
DDS_MIPMAPCOUNT, 256, 256, 0, 20, 87584, {
D3D_OK, 20 } },
518 { { 32,
DDS_PF_FOURCC,
D3DFMT_DXT4, 0, 0, 0, 0, 0 },
DDS_MIPMAPCOUNT, 256, 64, 0, 4, 21759, {
D3DXERR_INVALIDDATA, 0 } },
519 { { 32,
DDS_PF_FOURCC,
D3DFMT_DXT4, 0, 0, 0, 0, 0 },
DDS_MIPMAPCOUNT, 256, 64, 0, 4, 21760, {
D3D_OK, 4 } },
521 { { 32,
DDS_PF_RGB, 0, 24, 0xff0000, 0x00ff00, 0x0000ff, 0x000000 }, 0, 256, 256, 0, 0, 262146, {
D3D_OK, 1 } },
522 { { 32,
DDS_PF_RGB, 0, 24, 0xff0000, 0x00ff00, 0x0000ff, 0x000000 }, 0, 256, 256, 0, 2, 262146, {
D3D_OK, 2 } },
523 { { 32,
DDS_PF_RGB, 0, 24, 0xff0000, 0x00ff00, 0x0000ff, 0x000000 }, 0, 256, 256, 0, 9, 262146, {
D3D_OK, 9 } },
524 { { 32,
DDS_PF_RGB, 0, 24, 0xff0000, 0x00ff00, 0x0000ff, 0x000000 }, 0, 256, 256, 0, 10, 262146, {
D3D_OK, 10 } },
530 skip(
"Failed to allocate memory.\n");
541 dds->header.flags |=
tests[
i].flags;
542 dds->header.width =
tests[
i].width;
543 dds->header.height =
tests[
i].height;
544 dds->header.pitch_or_linear_size =
tests[
i].pitch;
545 dds->header.miplevels =
tests[
i].miplevels;
546 dds->header.pixel_format =
tests[
i].pixel_format;
549 ok(
hr ==
tests[
i].
expected.hr,
"%d: D3DXGetImageInfoFromFileInMemory returned %#x, expected %#x\n",
553 ok(
info.MipLevels ==
tests[
i].expected.miplevels,
"%d: Got MipLevels %u, expected %u\n",
565 BOOL testdummy_ok, testbitmap_ok;
576 ok(
hr ==
D3D_OK,
"D3DXGetImageInfoFromFile returned %#x, expected %#x\n",
hr,
D3D_OK);
579 ok(
hr ==
D3D_OK,
"D3DXGetImageInfoFromFile returned %#x, expected %#x\n",
hr,
D3D_OK);
580 }
else skip(
"Couldn't create \"testbitmap.bmp\"\n");
584 ok(
hr ==
D3D_OK,
"D3DXGetImageInfoFromFile returned %#x, expected %#x\n",
hr,
D3D_OK);
588 }
else skip(
"Couldn't create \"testdummy.bmp\"\n");
608 ok(
hr ==
D3D_OK,
"D3DXGetImageInfoFromResource returned %#x, expected %#x\n",
hr,
D3D_OK);
611 ok(
hr ==
D3D_OK,
"D3DXGetImageInfoFromResource returned %#x, expected %#x\n",
hr,
D3D_OK);
614 ok(
hr ==
D3D_OK,
"D3DXGetImageInfoFromResource returned %#x, expected %#x\n",
hr,
D3D_OK);
634 ok(
hr ==
D3D_OK,
"D3DXGetImageInfoFromFileInMemory returned %#x, expected %#x\n",
hr,
D3D_OK);
637 ok(
hr ==
D3D_OK,
"D3DXGetImageInfoFromFileInMemory returned %#x, expected %#x\n",
hr,
D3D_OK);
640 ok(
hr ==
D3D_OK,
"D3DXGetImageInfoFromFileInMemory returned %#x, expected %#x\n",
hr,
D3D_OK);
643 ok(
hr ==
D3D_OK,
"D3DXGetImageInfoFromResource returned %#x, expected %#x\n",
hr,
D3D_OK);
682 ok(
hr ==
D3D_OK,
"D3DXGetImageInfoFromFileInMemory returned %#x, expected %#x\n",
hr,
D3D_OK);
683 ok(
info.Depth == 1,
"Got depth %u, expected 1\n",
info.Depth);
688 ok(
hr ==
D3D_OK,
"D3DXGetImageInfoFromFileInMemory returned %#x, expected %#x\n",
hr,
D3D_OK);
689 ok(
info.Depth == 1,
"Got depth %u, expected 1\n",
info.Depth);
692 ok(
hr ==
D3D_OK,
"D3DXGetImageInfoFromFileInMemory returned %#x, expected %#x\n",
hr,
D3D_OK);
693 ok(
info.Depth == 1,
"Got depth %u, expected 1\n",
info.Depth);
705 ok(
hr ==
D3D_OK,
"D3DXGetImageInfoFromFileInMemory returned %#x, expected %#x\n",
hr,
D3D_OK);
706 ok(
info.Depth == 1,
"Got depth %u, expected 1\n",
info.Depth);
711 ok(
hr ==
D3D_OK,
"D3DXGetImageInfoFromFileInMemory returned %#x, expected %#x\n",
hr,
D3D_OK);
713 ok(
info.Width == 2,
"Got width %u, expected 2\n",
info.Width);
714 ok(
info.Height == 2,
"Got height %u, expected 2\n",
info.Height);
715 ok(
info.Depth == 1,
"Got depth %u, expected 1\n",
info.Depth);
716 ok(
info.MipLevels == 2,
"Got miplevels %u, expected 2\n",
info.MipLevels);
720 }
else skip(
"Couldn't get image info from 24-bit DDS file in memory\n");
723 ok(
hr ==
D3D_OK,
"D3DXGetImageInfoFromFileInMemory returned %#x, expected %#x\n",
hr,
D3D_OK);
725 ok(
info.Width == 2,
"Got width %u, expected 2\n",
info.Width);
726 ok(
info.Height == 2,
"Got height %u, expected 2\n",
info.Height);
727 ok(
info.Depth == 1,
"Got depth %u, expected 1\n",
info.Depth);
728 ok(
info.MipLevels == 1,
"Got miplevels %u, expected 1\n",
info.MipLevels);
732 }
else skip(
"Couldn't get image info from 16-bit DDS file in memory\n");
736 ok(
hr ==
D3D_OK,
"D3DXGetImageInfoFromFileInMemory returned %#x\n",
hr);
737 ok(
info.Width == 16,
"Got width %u.\n",
info.Width);
738 ok(
info.Height == 4,
"Got height %u.\n",
info.Height);
739 ok(
info.Depth == 1,
"Got depth %u.\n",
info.Depth);
740 ok(
info.MipLevels == 1,
"Got miplevels %u.\n",
info.MipLevels);
746 ok(
hr ==
D3D_OK,
"D3DXGetImageInfoFromFileInMemory returned %#x, expected %#x\n",
hr,
D3D_OK);
748 ok(
info.Width == 4,
"Got width %u, expected 4\n",
info.Width);
749 ok(
info.Height == 4,
"Got height %u, expected 4\n",
info.Height);
750 ok(
info.Depth == 1,
"Got depth %u, expected 1\n",
info.Depth);
751 ok(
info.MipLevels == 1,
"Got miplevels %u, expected 1\n",
info.MipLevels);
755 }
else skip(
"Couldn't get image info from cube map in memory\n");
758 ok(
hr ==
D3D_OK,
"D3DXGetImageInfoFromFileInMemory returned %#x, expected %#x\n",
hr,
D3D_OK);
760 ok(
info.Width == 4,
"Got width %u, expected 4\n",
info.Width);
761 ok(
info.Height == 4,
"Got height %u, expected 4\n",
info.Height);
762 ok(
info.Depth == 2,
"Got depth %u, expected 2\n",
info.Depth);
763 ok(
info.MipLevels == 3,
"Got miplevels %u, expected 3\n",
info.MipLevels);
767 }
else skip(
"Couldn't get image info from volume map in memory\n");
821#define check_pixel_2bpp(lockrect, x, y, color) _check_pixel_2bpp(__LINE__, lockrect, x, y, color)
825 ok_(__FILE__,
line)(
color == expected_color,
"Got color 0x%04x, expected 0x%04x\n",
color, expected_color);
828#define check_pixel_4bpp(lockrect, x, y, color) _check_pixel_4bpp(__LINE__, lockrect, x, y, color)
832 ok_(__FILE__,
line)(
color == expected_color,
"Got color 0x%08x, expected 0x%08x\n",
color, expected_color);
838 BOOL testdummy_ok, testbitmap_ok;
839 IDirect3DTexture9 *tex;
840 IDirect3DSurface9 *surf, *newsurf;
843 static const WORD pixdata_a8r3g3b2[] = { 0x57df, 0x98fc, 0xacdd, 0xc891 };
844 static const WORD pixdata_a1r5g5b5[] = { 0x46b5, 0x99c8, 0x06a2, 0x9431 };
845 static const WORD pixdata_r5g6b5[] = { 0x9ef6, 0x658d, 0x0aee, 0x42ee };
846 static const WORD pixdata_a8l8[] = { 0xff00, 0x00ff, 0xff30, 0x7f7f };
847 static const DWORD pixdata_g16r16[] = { 0x07d23fbe, 0xdc7f44a4, 0xe4d8976b, 0x9a84fe89 };
848 static const DWORD pixdata_a8b8g8r8[] = { 0xc3394cf0, 0x235ae892, 0x09b197fd, 0x8dc32bf6 };
849 static const DWORD pixdata_a2r10g10b10[] = { 0x57395aff, 0x5b7668fd, 0xb0d856b5, 0xff2c61d6 };
859 skip(
"Failed to create a surface (%#x)\n",
hr);
872 }
else skip(
"Couldn't create \"testbitmap.bmp\"\n");
877 }
else skip(
"Couldn't create \"testdummy.bmp\"\n");
889 ok(
hr ==
D3D_OK,
"D3DXLoadSurfaceFromResource returned %#x, expected %#x\n",
hr,
D3D_OK);
893 ok(
hr ==
D3D_OK,
"D3DXLoadSurfaceFromResource returned %#x, expected %#x\n",
hr,
D3D_OK);
909 ok(
hr ==
D3D_OK,
"D3DXLoadSurfaceFromFileInMemory returned %#x, expected %#x\n",
hr,
D3D_OK);
934 ok(
hr ==
D3D_OK,
"D3DXLoadSurfaceFromMemory returned %#x, expected %#x\n",
hr,
D3D_OK);
937 ok(
hr ==
D3D_OK,
"D3DXLoadSurfaceFromMemory returned %#x, expected %#x\n",
hr,
D3D_OK);
949 ok(
hr ==
E_FAIL,
"D3DXLoadSurfaceFromMemory returned %#x, expected %#x\n",
hr,
E_FAIL);
951 SetRect(&destrect, -1, -1, 1, 1);
955 SetRect(&destrect, 255, 255, 257, 257);
959 SetRect(&destrect, 1, 1, 0, 0);
963 SetRect(&destrect, 1, 2, 1, 2);
968 SetRect(&destrect, 257, 257, 257, 257);
977 ok(
hr ==
D3D_OK,
"D3DXLoadSurfaceFromSurface returned %#x, expected %#x\n",
hr,
D3D_OK);
986 }
else skip(
"Failed to create a second surface\n");
994 ok(
hr ==
D3D_OK,
"D3DXLoadSurfaceFromSurface returned %#x, expected %#x\n",
hr,
D3D_OK);
998 }
else skip(
"Failed to create texture\n");
1018 skip(
"Failed to create multisampled render target.\n");
1022 ok(
hr ==
D3D_OK,
"IDirect3DDevice9_GetRenderTarget returned %#x, expected %#x.\n",
hr,
D3D_OK);
1025 ok(
hr ==
D3D_OK,
"D3DXLoadSurfaceFromSurface returned %#x, expected %#x.\n",
hr,
D3D_OK);
1027 ok(
hr ==
D3D_OK,
"D3DXLoadSurfaceFromSurface returned %#x, expected %#x.\n",
hr,
D3D_OK);
1029 ok(
hr ==
D3D_OK,
"D3DXLoadSurfaceFromSurface returned %#x, expected %#x.\n",
hr,
D3D_OK);
1031 ok(
hr ==
D3D_OK,
"D3DXLoadSurfaceFromSurface returned %#x, expected %#x.\n",
hr,
D3D_OK);
1033 ok(
hr ==
D3D_OK,
"D3DXLoadSurfaceFromSurface returned %#x, expected %#x.\n",
hr,
D3D_OK);
1049 ok(
hr ==
D3D_OK,
"D3DXLoadSurfaceFromSurface returned %#x, expected %#x.\n",
hr,
D3D_OK);
1051 ok(
hr ==
D3D_OK,
"D3DXLoadSurfaceFromSurface returned %#x, expected %#x.\n",
hr,
D3D_OK);
1053 ok(
hr ==
E_FAIL,
"D3DXLoadSurfaceFromSurface returned %#x, expected %#x.\n",
hr,
E_FAIL);
1055 ok(
hr ==
E_FAIL,
"D3DXLoadSurfaceFromSurface returned %#x, expected %#x.\n",
hr,
E_FAIL);
1061 ok(
hr ==
E_FAIL,
"D3DXLoadSurfaceFromSurface returned %#x, expected %#x.\n",
hr,
E_FAIL);
1064 SetRect(&destrect, 1, 1, 2, 2);
1066 ok(
hr ==
D3D_OK,
"D3DXLoadSurfaceFromSurface returned %#x, expected %#x.\n",
hr,
D3D_OK);
1068 ok(
hr ==
D3D_OK,
"D3DXLoadSurfaceFromSurface returned %#x, expected %#x.\n",
hr,
D3D_OK);
1070 ok(
hr ==
D3D_OK,
"D3DXLoadSurfaceFromSurface returned %#x, expected %#x.\n",
hr,
D3D_OK);
1097 ok(
hr ==
D3D_OK,
"D3DXLoadSurfaceFromMemory returned %#x, expected %#x\n",
hr,
D3D_OK);
1107 ok(
hr ==
D3D_OK,
"D3DXLoadSurfaceFromMemory returned %#x, expected %#x\n",
hr,
D3D_OK);
1117 ok(
hr ==
D3D_OK,
"D3DXLoadSurfaceFromMemory returned %#x, expected %#x\n",
hr,
D3D_OK);
1127 ok(
hr ==
D3D_OK,
"D3DXLoadSurfaceFromMemory returned %#x, expected %#x\n",
hr,
D3D_OK);
1149 SetRect(&destrect, 1, 1, 2, 2);
1196 ok(
hr ==
D3D_OK,
"D3DXLoadSurfaceFromFileInMemory returned %#x, expected %#x\n",
hr,
D3D_OK);
1200 "Pixel color mismatch: got %#x, expected 0x80f3f2f1\n", *(
DWORD*)lockrect.
pBits);
1207 ok(
hr ==
D3D_OK,
"D3DXLoadSurfaceFromFileInMemory returned %#x, expected %#x\n",
hr,
D3D_OK);
1210 ok(*(
DWORD*)lockrect.
pBits == 0xfff3f2f1,
"Pixel color mismatch: got %#x, expected 0xfff3f2f1\n", *(
DWORD*)lockrect.
pBits);
1223 ok(
hr ==
D3D_OK,
"D3DXLoadSurfaceFromMemory returned %#x, expected %#x\n",
hr,
D3D_OK);
1233 ok(
hr ==
D3D_OK,
"D3DXLoadSurfaceFromMemory returned %#x, expected %#x\n",
hr,
D3D_OK);
1243 ok(
hr ==
D3D_OK,
"D3DXLoadSurfaceFromMemory returned %#x, expected %#x\n",
hr,
D3D_OK);
1253 ok(
hr ==
D3D_OK,
"D3DXLoadSurfaceFromMemory returned %#x, expected %#x\n",
hr,
D3D_OK);
1265 ok(
hr ==
D3D_OK,
"D3DXLoadSurfaceFromMemory returned %#x, expected %#x\n",
hr,
D3D_OK);
1277 ok(
hr ==
D3D_OK,
"D3DXLoadSurfaceFromMemory returned %#x, expected %#x\n",
hr,
D3D_OK);
1305 skip(
"Failed to create A8L8 texture, hr %#x.\n",
hr);
1325 ok(
hr ==
D3D_OK,
"D3DXLoadSurfaceFromMemory returned %#x, expected %#x\n",
hr,
D3D_OK);
1402 skip(
"Failed to create A8R8G8B8 surface, hr %#x.\n",
hr);
1410 skip(
"Failed to create DXT2 texture, hr %#x.\n",
hr);
1416 ok(
SUCCEEDED(
hr),
"Failed to convert pixels to DXT2 format.\n");
1423 skip(
"Failed to create DXT3 texture, hr %#x.\n",
hr);
1429 ok(
SUCCEEDED(
hr),
"Failed to convert pixels to DXT3 format.\n");
1436 skip(
"Failed to create DXT4 texture, hr %#x.\n",
hr);
1442 ok(
SUCCEEDED(
hr),
"Failed to convert pixels to DXT4 format.\n");
1449 skip(
"Failed to create DXT5 texture, hr %#x.\n",
hr);
1455 ok(
SUCCEEDED(
hr),
"Failed to convert pixels to DXT5 format.\n");
1504 skip(
"Failed to create DXT1 texture, hr %#x.\n",
hr);
1510 ok(
SUCCEEDED(
hr),
"Failed to convert pixels to DXT1 format.\n");
1513 ok(
SUCCEEDED(
hr),
"Failed to convert pixels from DXT1 format.\n");
1534 test_access_types[] =
1547 IDirect3DSurface9 *surface;
1556 skip(
"Couldn't create surface\n");
1566 ok(
size > 0,
"ID3DXBuffer_GetBufferSize returned %u, expected > 0\n",
size);
1577 ok(dds->magic ==
MAKEFOURCC(
'D',
'D',
'S',
' '),
"Got unexpected DDS signature %#x.\n", dds->magic);
1578 ok(dds->header.size ==
sizeof(dds->header),
"Got unexpected DDS size %u.\n", dds->header.size);
1579 ok(!dds->header.height,
"Got unexpected height %u.\n", dds->header.height);
1580 ok(!dds->header.width,
"Got unexpected width %u.\n", dds->header.width);
1581 ok(!dds->header.depth,
"Got unexpected depth %u.\n", dds->header.depth);
1582 ok(!dds->header.miplevels,
"Got unexpected miplevels %u.\n", dds->header.miplevels);
1583 ok(!dds->header.pitch_or_linear_size,
"Got unexpected pitch_or_linear_size %u.\n", dds->header.pitch_or_linear_size);
1586 "Got unexpected flags %#x.\n", dds->header.flags);
1594 ok(dds->magic ==
MAKEFOURCC(
'D',
'D',
'S',
' '),
"Got unexpected DDS signature %#x.\n", dds->magic);
1595 ok(dds->header.size ==
sizeof(dds->header),
"Got unexpected DDS size %u.\n", dds->header.size);
1596 ok(dds->header.height == 4,
"Got unexpected height %u.\n", dds->header.height);
1597 ok(dds->header.width == 4,
"Got unexpected width %u.\n", dds->header.width);
1598 ok(!dds->header.depth,
"Got unexpected depth %u.\n", dds->header.depth);
1599 ok(!dds->header.miplevels,
"Got unexpected miplevels %u.\n", dds->header.miplevels);
1600 ok(!dds->header.pitch_or_linear_size,
"Got unexpected pitch_or_linear_size %u.\n", dds->header.pitch_or_linear_size);
1603 "Got unexpected flags %#x.\n", dds->header.flags);
1633 {0xff, 0x00, 0x00, 0x00, 0xff, 0x00,
1634 0x00, 0x00, 0xff, 0x00, 0x00, 0xff,};
1636 IDirect3DSurface9 *surface;
1645 skip(
"Couldn't create surface.\n");
1661 ok(image_info.
Width == 2,
"Wrong width %u.\n", image_info.
Width);
1662 ok(image_info.
Height == 2,
"Wrong height %u.\n", image_info.
Height);
1670 "Pixel data mismatch in the first row.\n");
1672 "Pixel data mismatch in the second row.\n");
1687 "Pixel data mismatch in the first row.\n");
1689 "Pixel data mismatch in the second row.\n");
1716 ok(image_info.
Width == 2,
"Wrong width %u.\n", image_info.
Width);
1723 "Pixel data mismatch in the first row.\n");
1725 "Pixel data mismatch in the second row.\n");
1760 IDirect3DDevice9 *
device;
1767 skip(
"Couldn't create application window\n");
1772 skip(
"Couldn't create IDirect3D9 object\n");
1782 skip(
"Failed to create IDirect3DDevice9 object %#x\n",
hr);
int memcmp(void *Buffer1, void *Buffer2, ACPI_SIZE Count)
#define D3DXERR_INVALIDDATA
@ D3DMULTISAMPLE_2_SAMPLES
#define D3DUSAGE_RENDERTARGET
enum _D3DFORMAT D3DFORMAT
IDirect3D9 *WINAPI Direct3DCreate9(UINT SDKVersion)
#define IDirect3DTexture9_GetSurfaceLevel(p, a, b)
#define IDirect3DSurface9_LockRect(p, a, b, c)
#define IDirect3D9_CreateDevice(p, a, b, c, d, e, f)
#define IDirect3DDevice9_CreateTexture(p, a, b, c, d, e, f, g, h)
#define IDirect3D9_Release(p)
#define IDirect3DSurface9_UnlockRect(p)
#define IDirect3DSurface9_Release(p)
#define IDirect3DTexture9_Release(p)
#define IDirect3DDevice9_CreateRenderTarget(p, a, b, c, d, e, f, g, h)
#define IDirect3DDevice9_CreateOffscreenPlainSurface(p, a, b, c, d, e, f)
#define IDirect3DDevice9_GetRenderTarget(p, a, b)
#define D3DERR_INVALIDCALL
struct ID3DXBuffer ID3DXBuffer
#define ID3DXBuffer_GetBufferSize(p)
#define ID3DXBuffer_GetBufferPointer(p)
#define ID3DXBuffer_Release(p)
#define D3DX_FILTER_MIRROR
#define D3DX_FILTER_LINEAR
#define D3DX_FILTER_TRIANGLE
#define D3DX_FILTER_POINT
HRESULT WINAPI D3DXLoadSurfaceFromMemory(IDirect3DSurface9 *dst_surface, const PALETTEENTRY *dst_palette, const RECT *dst_rect, const void *src_memory, D3DFORMAT src_format, UINT src_pitch, const PALETTEENTRY *src_palette, const RECT *src_rect, DWORD filter, D3DCOLOR color_key)
HRESULT WINAPI D3DXLoadSurfaceFromFileA(IDirect3DSurface9 *dst_surface, const PALETTEENTRY *dst_palette, const RECT *dst_rect, const char *src_file, const RECT *src_rect, DWORD filter, D3DCOLOR color_key, D3DXIMAGE_INFO *src_info)
HRESULT WINAPI D3DXGetImageInfoFromFileInMemory(const void *data, UINT datasize, D3DXIMAGE_INFO *info)
HRESULT WINAPI D3DXGetImageInfoFromResourceA(HMODULE module, const char *resource, D3DXIMAGE_INFO *info)
HRESULT WINAPI D3DXSaveSurfaceToFileA(const char *dst_filename, D3DXIMAGE_FILEFORMAT file_format, IDirect3DSurface9 *src_surface, const PALETTEENTRY *src_palette, const RECT *src_rect)
HRESULT WINAPI D3DXSaveSurfaceToFileInMemory(ID3DXBuffer **dst_buffer, D3DXIMAGE_FILEFORMAT file_format, IDirect3DSurface9 *src_surface, const PALETTEENTRY *src_palette, const RECT *src_rect)
HRESULT WINAPI D3DXGetImageInfoFromFileA(const char *file, D3DXIMAGE_INFO *info)
#define DDS_PF_BUMPLUMINANCE
HRESULT WINAPI D3DXLoadSurfaceFromResourceA(IDirect3DSurface9 *dst_surface, const PALETTEENTRY *dst_palette, const RECT *dst_rect, HMODULE src_module, const char *resource, const RECT *src_rect, DWORD filter, D3DCOLOR color_key, D3DXIMAGE_INFO *src_info)
HRESULT WINAPI D3DXLoadSurfaceFromSurface(IDirect3DSurface9 *dst_surface, const PALETTEENTRY *dst_palette, const RECT *dst_rect, IDirect3DSurface9 *src_surface, const PALETTEENTRY *src_palette, const RECT *src_rect, DWORD filter, D3DCOLOR color_key)
#define DDS_PF_ALPHA_ONLY
HRESULT WINAPI D3DXLoadSurfaceFromFileInMemory(IDirect3DSurface9 *pDestSurface, const PALETTEENTRY *pDestPalette, const RECT *pDestRect, const void *pSrcData, UINT SrcDataSize, const RECT *pSrcRect, DWORD dwFilter, D3DCOLOR Colorkey, D3DXIMAGE_INFO *pSrcInfo)
#define INVALID_HANDLE_VALUE
#define CreateFileA(a, b, c, d, e, f, g)
#define HeapFree(x, y, z)
#define FILE_ATTRIBUTE_NORMAL
BOOL WINAPI DeleteFileA(IN LPCSTR lpFileName)
BOOL WINAPI WriteFile(IN HANDLE hFile, IN LPCVOID lpBuffer, IN DWORD nNumberOfBytesToWrite OPTIONAL, OUT LPDWORD lpNumberOfBytesWritten, IN LPOVERLAPPED lpOverlapped OPTIONAL)
#define MAKEFOURCC(ch0, ch1, ch2, ch3)
GLint GLint GLint GLint GLint x
GLint GLint GLsizei GLsizei GLsizei GLint GLenum GLenum const GLvoid * pixels
GLint GLint GLint GLint GLint GLint y
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
GLint GLint GLsizei GLsizei height
GLint GLint GLsizei width
GLsizeiptr const GLvoid GLenum usage
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
static const int bmask[16]
static struct test_info tests[]
#define IDD_BITMAPDATA_1x1
static const unsigned char pixdata[]
static void test_D3DXSaveSurfaceToFileInMemory(IDirect3DDevice9 *device)
static void test_dds_header_handling(void)
static const unsigned char dds_volume_map[]
static const unsigned char dds_8bit[]
static const BYTE dds_dxt5[]
static const unsigned char dds_cube_map[]
static const unsigned char dds_16bit[]
static const unsigned char bmp_1bpp[]
#define check_pixel_2bpp(lockrect, x, y, color)
static const unsigned char bmp_32bpp_xrgb[]
static const unsigned char bmp_32bpp_argb[]
static void check_dds_pixel_format_(unsigned int line, DWORD flags, DWORD fourcc, DWORD bpp, DWORD rmask, DWORD gmask, DWORD bmask, DWORD amask, D3DFORMAT expected_format)
static const unsigned char png_grayscale[]
static void test_D3DXGetImageInfo(void)
#define check_dds_pixel_format(flags, fourcc, bpp, rmask, gmask, bmask, amask, format)
static void test_D3DXLoadSurface(IDirect3DDevice9 *device)
static const BYTE dds_dxt5_8_8[]
#define check_pixel_4bpp(lockrect, x, y, color)
static void _check_release(unsigned int line, IUnknown *obj, int exp)
static const unsigned char bmp_8bpp[]
static const unsigned char dds_24bit[]
static const unsigned char bmp_2bpp[]
static void test_D3DXSaveSurfaceToFile(IDirect3DDevice9 *device)
static void _check_pixel_4bpp(unsigned int line, const D3DLOCKED_RECT *lockrect, int x, int y, DWORD expected_color)
static const unsigned char bmp_4bpp[]
static void _check_pixel_2bpp(unsigned int line, const D3DLOCKED_RECT *lockrect, int x, int y, WORD expected_color)
static const unsigned char noimage[4]
static void fill_dds_header(struct dds_header *header)
#define check_release(obj, exp)
#define create_file(name, size)
#define WS_OVERLAPPEDWINDOW
static unsigned int file_size
#define D3DADAPTER_DEFAULT
#define D3DCREATE_SOFTWARE_VERTEXPROCESSING
D3DXIMAGE_FILEFORMAT ImageFileFormat
DWORD WINAPI GetLastError(void)
#define HRESULT_FROM_WIN32(x)
#define CreateWindowA(a, b, c, d, e, f, g, h, i, j, k)
BOOL WINAPI SetRectEmpty(_Out_ LPRECT)
#define MAKEINTRESOURCEA(i)
BOOL WINAPI DestroyWindow(_In_ HWND)
BOOL WINAPI SetRect(_Out_ LPRECT, _In_ int, _In_ int, _In_ int, _In_ int)