drahcirnotpit
Programmer
Thanks for any comments, examples, suggestions:
Is this c++ structure from MS SDK to delphi correct?
typedef struct _DnsRecord {
struct _DnsRecord* pNext;
LPTSTR pName;
WORD wType;
WORD wDataLength;
union { DWORD DW;
DNS_RECORD_FLAGS S; } Flags;
DWORD dwTtl;
DWORD dwReserved;
union { DNS_A_DATA A;
DNS_SOA_DATA SOA, Soa;
DNS_PTR_DATA PTR, Ptr, NS, Ns, CNAME,
Cname, MB, Mb, MD, Md, MF,
Mf, MG, Mg, MR, Mr;
DNS_MINFO_DATA MINFO, Minfo, RP, Rp;
DNS_MX_DATA MX, Mx, AFSDB, Afsdb, RT,
Rt;
DNS_TXT_DATA HINFO, Hinfo, ISDN, Isdn,
TXT, Txt, X25;
DNS_NULL_DATA Null;
DNS_WKS_DATA WKS, Wks;
DNS_AAAA_DATA AAAA;
DNS_KEY_DATA KEY, Key;
DNS_SIG_DATA SIG, Sig;
DNS_ATMA_DATA ATMA, Atma;
DNS_NXT_DATA NXT, Nxt;
DNS_SRV_DATA SRV, Srv;
DNS_TKEY_DATA TKEY, Tkey;
DNS_TSIG_DATA TSIG, Tsig;
DNS_WINS_DATA WINS, Wins;
DNS_WINSR_DATA WINSR, WinsR, NBSTAT,
Nbstat;
} Data;
} DNS_RECORD, *PDNS_RECORD;
My Translation:
_DnsRecord = record
pNext: Pointer;
pName: PAnsiChar;
wType: WORD;
wDataLength: WORD;
Flags: record case Integer of
0: (DW: DWORD);
1: (S: DNS_RECORD_FLAGS);
end;
dwTtl: DWORD;
dwReserved: DWORD;
Data: record case Integer of
0: (A: DNS_A_DATA);
1: (SOA: DNS_SOA_DATA);
2: (PTR,
NS,
CNAME,
MB,
MD,
MF,
MG,
MR: DNS_PTR_DATA);
3: (MINFO,
RP: DNS_MINFO_DATA);
4: (MX,
AFSDB,
RT: DNS_MX_DATA);
5: (HINFO,
ISDN,
TXT,
X25: DNS_TXT_DATA);
6: (Null: DNS_NULL_DATA);
7: (WKS: DNS_WKS_DATA);
8: (AAAA: DNS_AAAA_DATA);
9: (KEY: DNS_KEY_DATA);
10: (SIG: DNS_SIG_DATA);
11: (ATMA: DNS_ATMA_DATA);
12: (NXT: DNS_NXT_DATA);
13: (SRV: DNS_SRV_DATA);
14: (TKEY: DNS_TKEY_DATA);
15: (TSIG: DNS_TSIG_DATA);
16: (WINS: DNS_WINS_DATA);
17: (WINSR: DNS_WINSR_DATA);
end;
end;
DNS_RECORD = _DnsRecord;
PDNS_RECORD = ^_DnsRecord;
Best Regards
Is this c++ structure from MS SDK to delphi correct?
typedef struct _DnsRecord {
struct _DnsRecord* pNext;
LPTSTR pName;
WORD wType;
WORD wDataLength;
union { DWORD DW;
DNS_RECORD_FLAGS S; } Flags;
DWORD dwTtl;
DWORD dwReserved;
union { DNS_A_DATA A;
DNS_SOA_DATA SOA, Soa;
DNS_PTR_DATA PTR, Ptr, NS, Ns, CNAME,
Cname, MB, Mb, MD, Md, MF,
Mf, MG, Mg, MR, Mr;
DNS_MINFO_DATA MINFO, Minfo, RP, Rp;
DNS_MX_DATA MX, Mx, AFSDB, Afsdb, RT,
Rt;
DNS_TXT_DATA HINFO, Hinfo, ISDN, Isdn,
TXT, Txt, X25;
DNS_NULL_DATA Null;
DNS_WKS_DATA WKS, Wks;
DNS_AAAA_DATA AAAA;
DNS_KEY_DATA KEY, Key;
DNS_SIG_DATA SIG, Sig;
DNS_ATMA_DATA ATMA, Atma;
DNS_NXT_DATA NXT, Nxt;
DNS_SRV_DATA SRV, Srv;
DNS_TKEY_DATA TKEY, Tkey;
DNS_TSIG_DATA TSIG, Tsig;
DNS_WINS_DATA WINS, Wins;
DNS_WINSR_DATA WINSR, WinsR, NBSTAT,
Nbstat;
} Data;
} DNS_RECORD, *PDNS_RECORD;
My Translation:
_DnsRecord = record
pNext: Pointer;
pName: PAnsiChar;
wType: WORD;
wDataLength: WORD;
Flags: record case Integer of
0: (DW: DWORD);
1: (S: DNS_RECORD_FLAGS);
end;
dwTtl: DWORD;
dwReserved: DWORD;
Data: record case Integer of
0: (A: DNS_A_DATA);
1: (SOA: DNS_SOA_DATA);
2: (PTR,
NS,
CNAME,
MB,
MD,
MF,
MG,
MR: DNS_PTR_DATA);
3: (MINFO,
RP: DNS_MINFO_DATA);
4: (MX,
AFSDB,
RT: DNS_MX_DATA);
5: (HINFO,
ISDN,
TXT,
X25: DNS_TXT_DATA);
6: (Null: DNS_NULL_DATA);
7: (WKS: DNS_WKS_DATA);
8: (AAAA: DNS_AAAA_DATA);
9: (KEY: DNS_KEY_DATA);
10: (SIG: DNS_SIG_DATA);
11: (ATMA: DNS_ATMA_DATA);
12: (NXT: DNS_NXT_DATA);
13: (SRV: DNS_SRV_DATA);
14: (TKEY: DNS_TKEY_DATA);
15: (TSIG: DNS_TSIG_DATA);
16: (WINS: DNS_WINS_DATA);
17: (WINSR: DNS_WINSR_DATA);
end;
end;
DNS_RECORD = _DnsRecord;
PDNS_RECORD = ^_DnsRecord;
Best Regards