Announcement

Collapse
No announcement yet.

Wie funktioniert die API-Funktion RasDialA bzw. was mach ich falsch (Delphi 2.0)?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Wie funktioniert die API-Funktion RasDialA bzw. was mach ich falsch (Delphi 2.0)?

    <PRE>
    unit RASMAIN;

    interface

    uses
    Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
    StdCtrls, RAS;

    type
    TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
    private
    { Private-Deklarationen }
    public
    { Public-Deklarationen }
    end;

    var
    Form1: TForm1;

    implementation

    {$R *.DFM}

    procedure TForm1.Button1Click(Sender: TObject);
    var
    RasDialExt : PRasDialExtensions;
    RasDialPara : PRasDialParams;
    lpszPhoneBook : PAnsiChar;
    lpszRasDialParams : PRasDialParams;
    dwNotifierType : DWORD;
    lpvNotifier : Pointer;
    FHConn : HRasConn;
    Telefonbuch : packed Array[0..128] of AnsiChar;
    Result : Integer;

    begin
    RasDialExt.dwSize := sizeOf(TRasDialExtensions);
    RasDialExt.dwfOptions := DWORD(NIL);
    RasDialExt.hwnd := DWORD(NIL);
    RasDialExt.Reserved := DWORD(NIL);
    Telefonbuch := 'C:\WINNT\SYSTEM32\RAS\rasphone.pbk';
    RasDIalPara.dwSize := sizeOf(RasDIalPara);
    RasDIalPara.szEntryName := 'MobilCom';
    RasDIalPara.szPhoneNumber := '';
    RasDIalPara.szCallBackNumber := '';
    RasDIalPara.szUserName := '';
    RasDIalPara.szPassWord := '';
    RasDIalPara.szDomain := '';

    Result := TRasDial(NIL, @Telefonbuch, @RasDIalPara, INTEGER(NIL), Pointer(NIL), FHConn);
    ShowMessage(intToStr(Result));
    end;

    end.

    unit RAS;

    interface

    uses Windows, SysUtils, Classes, Registry, WinSock, WinInet;

    const
    cERROR_BUFFER_TOO_SMALL = 603;
    cRAS_MAXENTRYNAME = 256;
    cRAS_MAXDEVICENAME = 128;
    cRAS_MAXDEVICETYP = 16;
    cRAS_MAXPHONENUMBER = 128;
    cRAS_MAXCALLBACKNUMBER = 128;
    UnLen = 128;
    PwLen = 128;
    DnLen = 128;

    type
    eRAS_Error = class(Exception);
    HRasConn = THandle;

    PRasDialParams = ^TRasDialParams;
    TRasDialParams = Record
    dwSize : DWORD;
    szEntryName : packed Array[0..cRAS_MAXENTRYNAME] of AnsiChar;
    szPhoneNumber : packed Array[0..cRAS_MAXPHONENUMBER] of AnsiChar;
    szCallBackNumber : packed Array[0..cRAS_MAXCALLBACKNUMBER] of AnsiChar;
    szUserName : packed Array[0..UnLen] of AnsiChar;
    szPassWord : packed Array[0..PwLen] of AnsiChar;
    szDomain : packed Array[0..DnLen] of AnsiChar;
    end;
    PRasDialExtensions = ^TRasDialExtensions;
    TRasDialExtensions = Record
    dwSize : DWORD;
    dwfOptions : DWORD;
    hwnd : THandle;
    Reserved : DWORD;
    end;

    function TRasDial(lpRasDialExtension : PRasDialExtensions;
    lpszPhoneBook : PAnsiChar;
    lpszRasDialParams : PRasDialParams;
    dwNotifierType : DWORD;
    lpvNotifier : Pointer;
    var lpRasConn : HRasConn) : DWORD; stdcall;

    implementation

    Function TRasDial; external 'rasapi32.dll' name 'RasDialA';
    end.
    </PRE>
Working...
X