瞧一瞧,看一看,不要错过,小弟跪有关问题,已经困扰几天了,请帮忙

瞧一瞧,看一看,不要错过,小弟跪求一个问题,已经困扰几天了,请各位高手帮忙
哪位大哥用过这个拔号上网函数。。
function RasDial(
pRasDialExtensions : RASDIALEXTENSIONS;//在WIN9X下无用,可 设置为NIL
lpszPhonebook : PAnsiChar;//电话本名称,在Win9X下无作用,可为空 字符串
lpRasDialParams : LPRASDIALPARAMS;//拨号参数
dwNotifierType : Longint;//消息通知方式
handle : RasDialFunc;//消息处理事件
var lphRasConn : Longint//返回的成功连接的连接句柄
) : Longint; stdcall external 'RasApi32.DLL' name 'RasDialA';


RasDial(nil,nil,@RASDIALPARAMSData,0,nil,@RasCon);
其中第5个参数如下。


type RasDialFunc=record
  unMsg:UINT; // type of event that has occurred
  rasconnstate:RASCONNSTATE; // connection state about to be entered
  dwError:DWORD; // error that may have occurred


为什么提示这个错误啊。。
Incompatible types: 'TRasDialFunc' and 'Pointer'

哪位有使用过,该如何定义啊,请各位高手指点一下。。多谢了。。。

------解决方案--------------------
声明一个指针。或者你的变量前加一个@
------解决方案--------------------
'TRasDialFunc' 是类,而实际需要的是指针

------解决方案--------------------
是一个回调函数!

我以前用过

dwRet := RasDialA(nil, nil, @rdParams, 0, @RasDialFunc, @hRasConn);


procedure RasDialFunc(unMsg: DWORD; FRasConnState: TRASCONNSTATE; FdwError: DWORD); stdcall;
var
Buf: array[0..255] of Char;
begin
try
ConnState := RasConnectionStateToString(FRasConnState); //连接状态
FormDialUp.Memo1.Lines.Add(TimeToStr(Time) + ':连接状态:' + ConnState);
if FRasConnState = RASCS_Connected then
begin //连接成功
IsConnected := true;
RasDialConEnd := true;
GbdwRedialDialCount := 0;
end
else if FdwError <> 0 then //连接出错
begin
RasGetErrorStringa(FdwError, @Buf[0], SizeOf(Buf));
RasError := (Buf);
FormDialUp.Memo1.Lines.Add(TimeToStr(Time) + ':连接状态:' + RasError);
Disconnected;
IsConnected := false;
RasDialConEnd := true;
end;
except
end;

end;