编译时提示ClearVars,DNSHeader,ResolveDNS,DNSAnList没定义,应该怎么处理
{ *****************************************************************************
  这个过程是用来得到邮件特快专递目的地服务器名称及优先级别数,参数AMXList是用
 来接收结果值,AQName代表传递过来的域名
  *****************************************************************************}
procedure TfrmMain.GetMxList(AMxList: TStringList; AQName: string);
var
  i: Integer;
begin
  with IdDNSResolver do
  begin
    Host := edtDns.Text; { Host属性用来指定域名服务器的地址,此处为笔者所在地
       的主域名服务器地址,你也可以指定任一可以快速访问到的Internet上域名服务器
       地址,要知道自己所在地的域名服务器地址,win98下通过winipcfg命令,win2000下
       通过ipconfig /all即可查出。}
    ReceiveTimeout := 10000;   // 在指定的时间内得不到域名服务器的反馈,则视为失败。
    ClearVars;    // 清除前一次查询所反馈回来的资源记录    { 构建此次查询的头部结构 }
    with DNSHeader do
    begin
      Qr := False; // False 代表查询
      Opcode := 0; // 0代表标准域名查询
      RD := True; //域名服务器可以进行递归查询
      QDCount := 1; //查询的数量
    end;    { 构建要查询的问题 }
    DNSQDList.Clear;
    with DNSQDList.Add do
    begin
      QName := AQName; //要查询的域名
      QType := cMX; //QTYPE指定要查询的资源记录的种类,值为cMX代表邮件交换记录
      QClass := cIN;
    end;    ResolveDNS; //向域名服务器发出请求    { 从域名服务器接收反馈的结果,将反馈回来的邮件服务器名称放在AMXList列表的Name部分,
      邮件服务器的优先级别数放在Value部分。 }
    for i := 0 to DNSAnList.Count - 1 do
      AMxList.Add(DNSAnList[i].RData.MX.Exchange + '=' +
        IntToStr(DNSAnList[i].RData.MX.Preference));
  end;
end;