sync to trunk head (37853) (except rbuild changes)
[reactos.git] / reactos / include / psdk / windns.h
1 #ifndef _WINDNS_H
2 #define _WINDNS_H
3
4 #ifdef __cplusplus
5 extern "C" {
6 #endif
7
8 #define DNS_QUERY_STANDARD 0x0
9 #define DNS_QUERY_ACCEPT_TRUNCATED_RESPONSE 0x1
10 #define DNS_QUERY_USE_TCP_ONLY 0x2
11 #define DNS_QUERY_NO_RECURSION 0x4
12 #define DNS_QUERY_BYPASS_CACHE 0x8
13 #define DNS_QUERY_NO_WIRE_QUERY 0x10
14 #define DNS_QUERY_NO_LOCAL_NAME 0x20
15 #define DNS_QUERY_NO_HOSTS_FILE 0x40
16 #define DNS_QUERY_NO_NETBT 0x80
17 #define DNS_QUERY_TREAT_AS_FQDN 0x1000
18 #define DNS_QUERY_WIRE_ONLY 0x100
19 #define DNS_QUERY_RETURN_MESSAGE 0x200
20 #define DNS_QUERY_DONT_RESET_TTL_VALUES 0x100000
21 #define DNS_QUERY_RESERVED 0xff000000
22
23 #define DNS_UPDATE_SECURITY_USE_DEFAULT 0x0
24 #define DNS_UPDATE_SECURITY_OFF 0x10
25 #define DNS_UPDATE_SECURITY_ON 0x20
26 #define DNS_UPDATE_SECURITY_ONLY 0x100
27 #define DNS_UPDATE_CACHE_SECURITY_CONTEXT 0x200
28 #define DNS_UPDATE_TEST_USE_LOCAL_SYS_ACCT 0x400
29 #define DNS_UPDATE_FORCE_SECURITY_NEGO 0x800
30 #define DNS_UPDATE_RESERVED 0xffff0000
31
32 #ifndef RC_INVOKE
33 typedef DWORD IP4_ADDRESS;
34 typedef DWORD DNS_STATUS;
35 enum {
36 DNS_TYPE_A=1,
37 DNS_TYPE_NS,
38 DNS_TYPE_MD,
39 DNS_TYPE_MF,
40 DNS_TYPE_CNAME,
41 DNS_TYPE_SOA,
42 DNS_TYPE_MB,
43 DNS_TYPE_MG,
44 DNS_TYPE_MR,
45 DNS_TYPE_NULL,
46 DNS_TYPE_WKS,
47 DNS_TYPE_PTR,
48 DNS_TYPE_HINFO,
49 DNS_TYPE_MINFO,
50 DNS_TYPE_MX,
51 DNS_TYPE_TEXT,
52 DNS_TYPE_RP,
53 DNS_TYPE_AFSDB,
54 DNS_TYPE_X25,
55 DNS_TYPE_ISDN,
56 DNS_TYPE_RT,
57 DNS_TYPE_NSAP,
58 DNS_TYPE_NSAPPTR,
59 DNS_TYPE_SIG,
60 DNS_TYPE_KEY,
61 DNS_TYPE_PX,
62 DNS_TYPE_GPOS,
63 DNS_TYPE_AAAA,
64 DNS_TYPE_LOC,
65 DNS_TYPE_NXT,
66 DNS_TYPE_EID,
67 DNS_TYPE_NIMLOC,
68 DNS_TYPE_SRV,
69 DNS_TYPE_ATMA,
70 DNS_TYPE_NAPTR,
71 DNS_TYPE_KX,
72 DNS_TYPE_CERT,
73 DNS_TYPE_A6,
74 DNS_TYPE_DNAME,
75 DNS_TYPE_SINK,
76 DNS_TYPE_OPT,
77 DNS_TYPE_UINFO=100,
78 DNS_TYPE_UID,
79 DNS_TYPE_GID,
80 DNS_TYPE_UNSPEC,
81 DNS_TYPE_ADDRS=248,
82 DNS_TYPE_TKEY,
83 DNS_TYPE_TSIG,
84 DNS_TYPE_IXFR,
85 DNS_TYPE_AXFR,
86 DNS_TYPE_MAILB,
87 DNS_TYPE_MAILA,
88 DNS_TYPE_ALL,
89 DNS_TYPE_ANY=DNS_TYPE_ALL
90 };
91 typedef enum _DNS_CHARSET
92 {
93 DnsCharSetUnknown,
94 DnsCharSetUnicode,
95 DnsCharSetUtf8,
96 DnsCharSetAnsi
97 } DNS_CHARSET;
98 typedef enum
99 {
100 DnsConfigPrimaryDomainName_W,
101 DnsConfigPrimaryDomainName_A,
102 DnsConfigPrimaryDomainName_UTF8,
103 DnsConfigAdapterDomainName_W,
104 DnsConfigAdapterDomainName_A,
105 DnsConfigAdapterDomainName_UTF8,
106 DnsConfigDnsServerList,
107 DnsConfigSearchList,
108 DnsConfigAdapterInfo,
109 DnsConfigPrimaryHostNameRegistrationEnabled,
110 DnsConfigAdapterHostNameRegistrationEnabled,
111 DnsConfigAddressRegistrationMaxCount,
112 DnsConfigHostName_W,
113 DnsConfigHostName_A,
114 DnsConfigHostName_UTF8,
115 DnsConfigFullHostName_W,
116 DnsConfigFullHostName_A,
117 DnsConfigFullHostName_UTF8
118 } DNS_CONFIG_TYPE;
119 typedef enum
120 {
121 DnsFreeFlat = 0,
122 DnsFreeRecordList,
123 DnsFreeParsedMessageFields
124 } DNS_FREE_TYPE;
125 typedef enum _DNS_NAME_FORMAT
126 {
127 DnsNameDomain,
128 DnsNameDomainLabel,
129 DnsNameHostnameFull,
130 DnsNameHostnameLabel,
131 DnsNameWildcard,
132 DnsNameSrvRecord
133 } DNS_NAME_FORMAT;
134 typedef enum
135 {
136 DnsSectionQuestion,
137 DnsSectionAnswer,
138 DnsSectionAuthority,
139 DnsSectionAdditional
140 } DNS_SECTION;
141 typedef struct _IP4_ARRAY {
142 DWORD AddrCount;
143 IP4_ADDRESS AddrArray[1];
144 } IP4_ARRAY, *PIP4_ARRAY;
145 typedef struct {
146 DWORD IP6Dword[4];
147 } IP6_ADDRESS, *PIP6_ADDRESS, DNS_IP6_ADDRESS, *PDNS_IP6_ADDRESS;
148 typedef struct _DNS_HEADER {
149 WORD Xid;
150 BYTE RecursionDesired;
151 BYTE Truncation;
152 BYTE Authoritative;
153 BYTE Opcode;
154 BYTE IsResponse;
155 BYTE ResponseCode;
156 BYTE Reserved;
157 BYTE RecursionAvailable;
158 WORD QuestionCount;
159 WORD AnswerCount;
160 WORD NameServerCount;
161 WORD AdditionalCount;
162 } DNS_HEADER, *PDNS_HEADER;
163 typedef struct _DNS_MESSAGE_BUFFER {
164 DNS_HEADER MessageHead;
165 CHAR MessageBody[1];
166 } DNS_MESSAGE_BUFFER, *PDNS_MESSAGE_BUFFER;
167 typedef struct _DnsRecordFlags {
168 DWORD Section :2;
169 DWORD Delete :1;
170 DWORD CharSet :2;
171 DWORD Unused :3;
172 DWORD Reserved :24;
173 } DNS_RECORD_FLAGS;
174 typedef struct {
175 IP4_ADDRESS IpAddress;
176 } DNS_A_DATA, *PDNS_A_DATA;
177 typedef struct {
178 DNS_IP6_ADDRESS Ip6Address;
179 } DNS_AAAA_DATA, *PDNS_AAAA_DATA;
180 #define DNS_ATMA_MAX_ADDR_LENGTH 20
181 typedef struct {
182 BYTE AddressType;
183 BYTE Address[DNS_ATMA_MAX_ADDR_LENGTH];
184 } DNS_ATMA_DATA, *PDNS_ATMA_DATA;
185 typedef struct {
186 WORD wFlags;
187 BYTE chProtocol;
188 BYTE chAlgorithm;
189 BYTE Key[1];
190 } DNS_KEY_DATA, *PDNS_KEY_DATA;
191 typedef struct {
192 WORD wVersion;
193 WORD wSize;
194 WORD wHorPrec;
195 WORD wVerPrec;
196 DWORD dwLatitude;
197 DWORD dwLongitude;
198 DWORD dwAltitude;
199 } DNS_LOC_DATA, *PDNS_LOC_DATA;
200 typedef struct {
201 LPSTR pNameMailbox;
202 LPSTR pNameErrorsMailbox;
203 } DNS_MINFO_DATAA, *PDNS_MINFO_DATAA;
204 typedef struct {
205 LPWSTR pNameMailbox;
206 LPWSTR pNameErrorsMailbox;
207 } DNS_MINFO_DATAW, *PDNS_MINFO_DATAW;
208 typedef struct {
209 LPSTR pNameExchange;
210 WORD wPreference;
211 WORD Pad;
212 } DNS_MX_DATAA, *PDNS_MX_DATAA;
213 typedef struct {
214 LPWSTR pNameExchange;
215 WORD wPreference;
216 WORD Pad;
217 } DNS_MX_DATAW, *PDNS_MX_DATAW;
218 typedef struct {
219 DWORD dwByteCount;
220 BYTE Data[1];
221 } DNS_NULL_DATA, *PDNS_NULL_DATA;
222 typedef struct {
223 LPSTR pNameNext;
224 WORD wNumTypes;
225 WORD wTypes[1];
226 } DNS_NXT_DATAA, *PDNS_NXT_DATAA;
227 typedef struct {
228 LPWSTR pNameNext;
229 WORD wNumTypes;
230 WORD wTypes[1];
231 } DNS_NXT_DATAW, *PDNS_NXT_DATAW;
232 typedef struct {
233 LPSTR pNameHost;
234 } DNS_PTR_DATAA, *PDNS_PTR_DATAA;
235 typedef struct {
236 LPWSTR pNameHost;
237 } DNS_PTR_DATAW, *PDNS_PTR_DATAW;
238 typedef struct {
239 LPSTR pNameSigner;
240 WORD wTypeCovered;
241 BYTE chAlgorithm;
242 BYTE chLabelCount;
243 DWORD dwOriginalTtl;
244 DWORD dwExpiration;
245 DWORD dwTimeSigned;
246 WORD wKeyTag;
247 WORD Pad;
248 BYTE Signature[1];
249 } DNS_SIG_DATAA, *PDNS_SIG_DATAA;
250 typedef struct {
251 LPWSTR pNameSigner;
252 WORD wTypeCovered;
253 BYTE chAlgorithm;
254 BYTE chLabelCount;
255 DWORD dwOriginalTtl;
256 DWORD dwExpiration;
257 DWORD dwTimeSigned;
258 WORD wKeyTag;
259 WORD Pad;
260 BYTE Signature[1];
261 } DNS_SIG_DATAW, *PDNS_SIG_DATAW;
262 typedef struct {
263 LPSTR pNamePrimaryServer;
264 LPSTR pNameAdministrator;
265 DWORD dwSerialNo;
266 DWORD dwRefresh;
267 DWORD dwRetry;
268 DWORD dwExpire;
269 DWORD dwDefaultTtl;
270 } DNS_SOA_DATAA, *PDNS_SOA_DATAA;
271 typedef struct {
272 LPWSTR pNamePrimaryServer;
273 LPWSTR pNameAdministrator;
274 DWORD dwSerialNo;
275 DWORD dwRefresh;
276 DWORD dwRetry;
277 DWORD dwExpire;
278 DWORD dwDefaultTtl;
279 } DNS_SOA_DATAW, *PDNS_SOA_DATAW;
280 typedef struct {
281 LPSTR pNameTarget;
282 WORD wPriority;
283 WORD wWeight;
284 WORD wPort;
285 WORD Pad;
286 } DNS_SRV_DATAA, *PDNS_SRV_DATAA;
287 typedef struct {
288 LPWSTR pNameTarget;
289 WORD wPriority;
290 WORD wWeight;
291 WORD wPort;
292 WORD Pad;
293 } DNS_SRV_DATAW, *PDNS_SRV_DATAW;
294 typedef struct {
295 DWORD dwStringCount;
296 LPSTR pStringArray[1];
297 } DNS_TXT_DATAA, *PDNS_TXT_DATAA;
298 typedef struct {
299 DWORD dwStringCount;
300 LPWSTR pStringArray[1];
301 } DNS_TXT_DATAW, *PDNS_TXT_DATAW;
302 typedef struct {
303 LPSTR pNameAlgorithm;
304 PBYTE pAlgorithmPacket;
305 PBYTE pKey;
306 PBYTE pOtherData;
307 DWORD dwCreateTime;
308 DWORD dwExpireTime;
309 WORD wMode;
310 WORD wError;
311 WORD wKeyLength;
312 WORD wOtherLength;
313 UCHAR cAlgNameLength;
314 BOOL bPacketPointers;
315 } DNS_TKEY_DATAA, *PDNS_TKEY_DATAA;
316 typedef struct {
317 LPWSTR pNameAlgorithm;
318 PBYTE pAlgorithmPacket;
319 PBYTE pKey;
320 PBYTE pOtherData;
321 DWORD dwCreateTime;
322 DWORD dwExpireTime;
323 WORD wMode;
324 WORD wError;
325 WORD wKeyLength;
326 WORD wOtherLength;
327 UCHAR cAlgNameLength;
328 BOOL bPacketPointers;
329 } DNS_TKEY_DATAW, *PDNS_TKEY_DATAW;
330 typedef struct {
331 LPSTR pNameAlgorithm;
332 PBYTE pAlgorithmPacket;
333 PBYTE pSignature;
334 PBYTE pOtherData;
335 LONGLONG i64CreateTime;
336 WORD wFudgeTime;
337 WORD wOriginalXid;
338 WORD wError;
339 WORD wSigLength;
340 WORD wOtherLength;
341 UCHAR cAlgNameLength;
342 BOOL bPacketPointers;
343 } DNS_TSIG_DATAA, *PDNS_TSIG_DATAA;
344 typedef struct {
345 LPWSTR pNameAlgorithm;
346 PBYTE pAlgorithmPacket;
347 PBYTE pSignature;
348 PBYTE pOtherData;
349 LONGLONG i64CreateTime;
350 WORD wFudgeTime;
351 WORD wOriginalXid;
352 WORD wError;
353 WORD wSigLength;
354 WORD wOtherLength;
355 UCHAR cAlgNameLength;
356 BOOL bPacketPointers;
357 } DNS_TSIG_DATAW, *PDNS_TSIG_DATAW;
358 typedef struct {
359 DWORD dwMappingFlag;
360 DWORD dwLookupTimeout;
361 DWORD dwCacheTimeout;
362 DWORD cWinsServerCount;
363 IP4_ADDRESS WinsServers[1];
364 } DNS_WINS_DATA, *PDNS_WINS_DATA;
365 typedef struct {
366 DWORD dwMappingFlag;
367 DWORD dwLookupTimeout;
368 DWORD dwCacheTimeout;
369 LPSTR pNameResultDomain;
370 } DNS_WINSR_DATAA, *PDNS_WINSR_DATAA;
371 typedef struct {
372 DWORD dwMappingFlag;
373 DWORD dwLookupTimeout;
374 DWORD dwCacheTimeout;
375 LPWSTR pNameResultDomain;
376 } DNS_WINSR_DATAW, *PDNS_WINSR_DATAW;
377 typedef struct _DNS_WIRE_QUESTION {
378 WORD QuestionType;
379 WORD QuestionClass;
380 } DNS_WIRE_QUESTION, *PDNS_WIRE_QUESTION;
381 typedef struct _DNS_WIRE_RECORD {
382 WORD RecordType;
383 WORD RecordClass;
384 DWORD TimeToLive;
385 WORD DataLength;
386 } DNS_WIRE_RECORD, *PDNS_WIRE_RECORD;
387 typedef struct {
388 IP4_ADDRESS IpAddress;
389 UCHAR chProtocol;
390 BYTE BitMask[1];
391 } DNS_WKS_DATA, *PDNS_WKS_DATA;
392 typedef struct _DnsRecordA {
393 struct _DnsRecordA* pNext;
394 LPSTR pName;
395 WORD wType;
396 WORD wDataLength;
397 union {
398 DWORD DW;
399 DNS_RECORD_FLAGS S;
400 } Flags;
401 DWORD dwTtl;
402 DWORD dwReserved;
403 union {
404 DNS_A_DATA A;
405 DNS_SOA_DATAA SOA, Soa;
406 DNS_PTR_DATAA PTR, Ptr, NS, Ns, CNAME, Cname, MB, Mb,
407 MD, Md, MF, Mf, MG, Mg, MR, Mr;
408 DNS_MINFO_DATAA MINFO, Minfo, RP, Rp;
409 DNS_MX_DATAA MX, Mx, AFSDB, Afsdb, RT, Rt;
410 DNS_TXT_DATAA HINFO, Hinfo, ISDN, Isdn, TXT, Txt, X25;
411 DNS_NULL_DATA Null;
412 DNS_WKS_DATA WKS, Wks;
413 DNS_AAAA_DATA AAAA;
414 DNS_KEY_DATA KEY, Key;
415 DNS_SIG_DATAA SIG, Sig;
416 DNS_ATMA_DATA ATMA, Atma;
417 DNS_NXT_DATAA NXT, Nxt;
418 DNS_SRV_DATAA SRV, Srv;
419 DNS_TKEY_DATAA TKEY, Tkey;
420 DNS_TSIG_DATAA TSIG, Tsig;
421 DNS_WINS_DATA WINS, Wins;
422 DNS_WINSR_DATAA WINSR, WinsR, NBSTAT, Nbstat;
423 } Data;
424 } DNS_RECORDA, *PDNS_RECORDA;
425 typedef struct _DnsRecordW {
426 struct _DnsRecordW* pNext;
427 LPWSTR pName;
428 WORD wType;
429 WORD wDataLength;
430 union {
431 DWORD DW;
432 DNS_RECORD_FLAGS S;
433 } Flags;
434 DWORD dwTtl;
435 DWORD dwReserved;
436 union {
437 DNS_A_DATA A;
438 DNS_SOA_DATAW SOA, Soa;
439 DNS_PTR_DATAW PTR, Ptr, NS, Ns, CNAME, Cname, MB, Mb,
440 MD, Md, MF, Mf, MG, Mg, MR, Mr;
441 DNS_MINFO_DATAW MINFO, Minfo, RP, Rp;
442 DNS_MX_DATAW MX, Mx, AFSDB, Afsdb, RT, Rt;
443 DNS_TXT_DATAW HINFO, Hinfo, ISDN, Isdn, TXT, Txt, X25;
444 DNS_NULL_DATA Null;
445 DNS_WKS_DATA WKS, Wks;
446 DNS_AAAA_DATA AAAA;
447 DNS_KEY_DATA KEY, Key;
448 DNS_SIG_DATAW SIG, Sig;
449 DNS_ATMA_DATA ATMA, Atma;
450 DNS_NXT_DATAW NXT, Nxt;
451 DNS_SRV_DATAW SRV, Srv;
452 DNS_TKEY_DATAW TKEY, Tkey;
453 DNS_TSIG_DATAW TSIG, Tsig;
454 DNS_WINS_DATA WINS, Wins;
455 DNS_WINSR_DATAW WINSR, WinsR, NBSTAT, Nbstat;
456 } Data;
457 } DNS_RECORDW, *PDNS_RECORDW;
458
459 #ifdef UNICODE
460 #define DNS_RECORD DNS_RECORDW
461 #define PDNS_RECORD PDNS_RECORDW
462 #else
463 #define DNS_RECORD DNS_RECORDA
464 #define PDNS_RECORD PDNS_RECORDA
465 #endif
466
467 typedef struct _DnsRRSet {
468 PDNS_RECORD pFirstRR;
469 PDNS_RECORD pLastRR;
470 } DNS_RRSET, *PDNS_RRSET;
471
472 DNS_STATUS WINAPI DnsAcquireContextHandle_A(DWORD,PVOID,HANDLE*);
473 DNS_STATUS WINAPI DnsAcquireContextHandle_W(DWORD,PVOID,HANDLE*);
474 DNS_STATUS WINAPI DnsExtractRecordsFromMessage_W(PDNS_MESSAGE_BUFFER,WORD,PDNS_RECORD*);
475 DNS_STATUS WINAPI DnsExtractRecordsFromMessage_UTF8(PDNS_MESSAGE_BUFFER,WORD,PDNS_RECORD*);
476 DNS_STATUS WINAPI DnsModifyRecordsInSet_A(PDNS_RECORD,PDNS_RECORD,DWORD,HANDLE,PIP4_ARRAY,PVOID);
477 DNS_STATUS WINAPI DnsModifyRecordsInSet_W(PDNS_RECORD,PDNS_RECORD,DWORD,HANDLE,PIP4_ARRAY,PVOID);
478 DNS_STATUS WINAPI DnsModifyRecordsInSet_UTF8(PDNS_RECORD,PDNS_RECORD,DWORD,HANDLE,PIP4_ARRAY,PVOID);
479 BOOL WINAPI DnsNameCompare_A(LPSTR,LPSTR);
480 BOOL WINAPI DnsNameCompare_W(LPWSTR,LPWSTR);
481 DNS_STATUS WINAPI DnsQuery_A(PCSTR,WORD,DWORD,PIP4_ARRAY,PDNS_RECORD*,PVOID*);
482 DNS_STATUS WINAPI DnsQuery_W(PCWSTR,WORD,DWORD,PIP4_ARRAY,PDNS_RECORD*,PVOID*);
483 DNS_STATUS WINAPI DnsQuery_UTF8(PCSTR,WORD,DWORD,PIP4_ARRAY,PDNS_RECORD*,PVOID*);
484 DNS_STATUS WINAPI DnsQueryConfig(DNS_CONFIG_TYPE,DWORD,PWSTR,PVOID,PVOID,PDWORD);
485 BOOL WINAPI DnsRecordCompare(PDNS_RECORD,PDNS_RECORD);
486 PDNS_RECORD WINAPI DnsRecordCopyEx(PDNS_RECORD,DNS_CHARSET,DNS_CHARSET);
487 void WINAPI DnsRecordListFree(PDNS_RECORD,DNS_FREE_TYPE);
488 BOOL WINAPI DnsRecordSetCompare(PDNS_RECORD,PDNS_RECORD,PDNS_RECORD*,PDNS_RECORD*);
489 PDNS_RECORD WINAPI DnsRecordSetCopyEx(PDNS_RECORD,DNS_CHARSET,DNS_CHARSET);
490 PDNS_RECORD WINAPI DnsRecordSetDetach(PDNS_RECORD);
491 void WINAPI DnsReleaseContextHandle(HANDLE);
492 DNS_STATUS WINAPI DnsReplaceRecordSetA(PDNS_RECORD,DWORD,HANDLE,PIP4_ARRAY,PVOID);
493 DNS_STATUS WINAPI DnsReplaceRecordSetW(PDNS_RECORD,DWORD,HANDLE,PIP4_ARRAY,PVOID);
494 DNS_STATUS WINAPI DnsReplaceRecordSetUTF8(PDNS_RECORD,DWORD,HANDLE,PIP4_ARRAY,PVOID);
495 DNS_STATUS WINAPI DnsValidateName_A(LPCSTR,DNS_NAME_FORMAT);
496 DNS_STATUS WINAPI DnsValidateName_W(LPCWSTR, DNS_NAME_FORMAT);
497 DNS_STATUS WINAPI DnsValidateName_UTF8(LPCSTR,DNS_NAME_FORMAT);
498 BOOL WINAPI DnsWriteQuestionToBuffer_W(PDNS_MESSAGE_BUFFER,LPDWORD,LPWSTR,WORD,WORD,BOOL);
499 BOOL WINAPI DnsWriteQuestionToBuffer_UTF8(PDNS_MESSAGE_BUFFER,LPDWORD,LPSTR,WORD,WORD,BOOL);
500
501 #ifdef UNICODE
502 #define DNS_MINFO_DATA DNS_MINFO_DATAW
503 #define PDNS_MINFO_DATA PDNS_MINFO_DATAW
504 #define DNS_MX_DATA DNS_MX_DATAW
505 #define PDNS_MX_DATA PDNS_MX_DATAW
506 #define DNS_NXT_DATA DNS_NXT_DATAW
507 #define PDNS_NXT_DATA PDNS_NXT_DATAW
508 #define DNS_PTR_DATA DNS_PTR_DATAW
509 #define PDNS_PTR_DATA PDNS_PTR_DATAW
510 #define DNS_SIG_DATA DNS_SIG_DATAW
511 #define PDNS_SIG_DATA PDNS_SIG_DATAW
512 #define DNS_SOA_DATA DNS_SOA_DATAW
513 #define PDNS_SOA_DATA PDNS_SOA_DATAW
514 #define DNS_TXT_DATA DNS_TXT_DATAW
515 #define PDNS_TXT_DATA PDNS_TXT_DATAW
516 #define DNS_TKEY_DATA DNS_TKEY_DATAW
517 #define PDNS_TKEY_DATA PDNS_TKEY_DATAW
518 #define DNS_WINSR_DATA DNS_WINSR_DATAW
519 #define PDNS_WINSR_DATA PDNS_WINSR_DATAW
520 #define DnsAcquireContextHandle DnsAcquireContextHandle_W
521 #define DnsModifyRecordsInSet DnsModifyRecordsInSet_W
522 #define DnsNameCompare DnsNameCompare_W
523 #define DnsQuery DnsQuery_W
524 #define DnsReplaceRecordSet DnsReplaceRecordSetW
525 #define DnsValidateName DnsValidateName_W
526 #else
527 #define DNS_MINFO_DATA DNS_MINFO_DATAA
528 #define PDNS_MINFO_DATA PDNS_MINFO_DATAA
529 #define DNS_MX_DATA DNS_MX_DATAA
530 #define PDNS_MX_DATA PDNS_MX_DATAA
531 #define DNS_NXT_DATA DNS_NXT_DATAA
532 #define PDNS_NXT_DATA PDNS_NXT_DATAA
533 #define DNS_PTR_DATA DNS_PTR_DATAA
534 #define PDNS_PTR_DATA PDNS_PTR_DATAA
535 #define DNS_SIG_DATA DNS_SIG_DATAA
536 #define PDNS_SIG_DATA PDNS_SIG_DATAA
537 #define DNS_SOA_DATA DNS_SOA_DATAA
538 #define PDNS_SOA_DATA PDNS_SOA_DATAA
539 #define DNS_TXT_DATA DNS_TXT_DATAA
540 #define PDNS_TXT_DATA PDNS_TXT_DATAA
541 #define DNS_TKEY_DATA DNS_TKEY_DATAA
542 #define PDNS_TKEY_DATA PDNS_TKEY_DATAA
543 #define DNS_WINSR_DATA DNS_WINSR_DATAA
544 #define PDNS_WINSR_DATA PDNS_WINSR_DATAA
545 #define DnsAcquireContextHandle DnsAcquireContextHandle_A
546 #define DnsModifyRecordsInSet DnsModifyRecordsInSet_A
547 #define DnsNameCompare DnsNameCompare_A
548 #define DnsQuery DnsQuery_A
549 #define DnsReplaceRecordSet DnsReplaceRecordSetA
550 #define DnsValidateName DnsValidateName_A
551 #endif
552
553 #endif /* RC_INVOKED */
554
555 #ifdef __cplusplus
556 }
557 #endif
558
559 #endif /* _WINDNS_H */