interface
type
  PRasEntryNameA = ^TRasEntryNameA;
  PRasEntryNameW = ^TRasEntryNameW;
  PRasEntryName = PRasEntryNameA;
  tagRASENTRYNAMEA = record
    dwSize: DWORD;
    szEntryName: packed array[0..RAS_MaxEntryName] of AnsiChar;
{$IFDEF WINVER_0x500_OR_GREATER}
    dwFlags: DWORD;
    szPhonebookPath: packed array[0..MAX_PATH] of AnsiChar;
{$ENDIF}
  end;
  {$EXTERNALSYM tagRASENTRYNAMEA}
  tagRASENTRYNAMEW = record
    dwSize: DWORD;
    szEntryName: packed array[0..RAS_MaxEntryName] of WideChar;
{$IFDEF WINVER_0x500_OR_GREATER}
    dwFlags: DWORD;
    szPhonebookPath: packed array[0..MAX_PATH] of WideChar;
{$ENDIF}
  end;
  {$EXTERNALSYM tagRASENTRYNAMEW}
  tagRASENTRYNAME = tagRASENTRYNAMEA;
  TRasEntryNameA = tagRASENTRYNAMEA;
  TRasEntryNameW = tagRASENTRYNAMEW;
  TRasEntryName = TRasEntryNameA;
  RASENTRYNAMEA = tagRASENTRYNAMEA;
  {$EXTERNALSYM RASENTRYNAMEA}
  RASENTRYNAMEW = tagRASENTRYNAMEW;
  {$EXTERNALSYM RASENTRYNAMEW}
  RASENTRYNAME = RASENTRYNAMEA;function RasEnumEntriesA(reserved: PAnsiChar; lpszPhonebook: PAnsiChar;
  lprasentryname: PRasEntryNameA; var lpcb: DWORD;
  var lpcEntries: DWORD): DWORD; stdcall;
{$EXTERNALSYM RasEnumEntriesA}
function RasEnumEntriesW(reserved: PWideChar; lpszPhonebook: PWideChar;
  lprasentryname: PRasEntryNameW; var lpcb: DWORD;
  var lpcEntries: DWORD): DWORD; stdcall;
{$EXTERNALSYM RasEnumEntriesW}
function RasEnumEntries(reserved: PChar; lpszPhonebook: PChar;
  lprasentryname: PRasEntryName; var lpcb: DWORD;
  var lpcEntries: DWORD): DWORD; stdcall;
{$EXTERNALSYM RasEnumEntries}implementationconst
  raslib = 'rasapi32.dll';function RasEnumEntriesA; external raslib name 'RasEnumEntriesA';
function RasEnumEntriesW; external raslib name 'RasEnumEntriesW';
function RasEnumEntries; external raslib name 'RasEnumEntriesA';