RasEntryDlgについて

解決


アル  2007-04-06 08:36:44  No: 25659  IP: 192.*.*.*

RasEntryDlgを使用して、ダイヤルアップのウイザート画面を表示したいのですが、方法定義の仕方がわかりません。どなたかご教授戴けないでしょうか?

編集 削除
ナシ  2007-04-06 17:08:57  No: 25660  IP: 192.*.*.*

const
  RASEDFLAG_PositionDlg = $00000001;
  RASEDFLAG_NewEntry    = $00000002;
  RASEDFLAG_CloneEntry  = $00000004;
  RASEDFLAG_NoRename    = $00000008;
  RASEDFLAG_ShellOwned  = $40000000;

type
  PRasEntryDlgA = ^TRasEntryDlgA;
  PRasEntryDlgW = ^TRasEntryDlgW;
  PRasEntryDlg = PRasEntryDlgA;
  TRasEntryDlgA = record
    dwSize: DWORD;
    hwndOwner: HWND;
    dwFlags: DWORD;
    xDlg: LongInt;
    yDlg: LongInt;
    szEntry: packed array[0..RAS_MaxEntryName] of AnsiChar;
    dwError: DWORD;
    reserved: DWORD;
    reserved2: DWORD;
  end;
  TRasEntryDlgW = record
    dwSize: DWORD;
    hwndOwner: HWND;
    dwFlags: DWORD;
    xDlg: LongInt;
    yDlg: LongInt;
    szEntry: packed array[0..RAS_MaxEntryName] of WideChar;
    dwError: DWORD;
    reserved: DWORD;
    reserved2: DWORD;
  end;
  TRasEntryDlg = TRasEntryDlgA;

function RasEntryDlg(lpszPhonebook: PChar; lpszEntry: PChar; var lpInfo: TRasEntryDlg): BOOL; stdcall;
external 'rasdlg.dll' name 'RasEntryDlgA';

編集 削除
アル  2007-04-09 10:59:25  No: 25661  IP: 192.*.*.*

誠にありがとうございます。
実際にRasEntryDlgを実行するロジックですが、lpInfoには何を指定すればよろしいでしょうか?初心者でお手数おかけします。

編集 削除
アル  2007-04-09 14:39:13  No: 25662  IP: 192.*.*.*

var
  RasEntryDlgA : TRasEntryDlgA;
begin
  with RasEntryDlgA do
  begin
    dwFlags := RASEDFLAG_NewEntry;
    dwSize  := sizeof(RasEntryDlgA);
  end;
  RasEntryDlg(nil,nil,RasEntryDlgA);
end;

のように記載してみましたが、アドレス違反となってしまいます。

編集 削除
お気に召すまま  2007-04-09 17:04:27  No: 25663  IP: 192.*.*.*

var
  RasED : PRasEntryDlg;
begin
  New(RasED);
  FillChar(RasED^, SizeOF(RasED^), 0);    // ワスレタラ違反キップ1000点
  with RasED^ do begin
    dwFlags := RASEDFLAG_NewEntry;
    dwSize  := Sizeof(RasED^);
    hwndOwner:= Self.Handle;
  end;
  RasEntryDlg(nil, nil, RasED^);
  Dispose(RasED);
end;


var
  RasED: TRasEntryDlg;
begin
  FillChar(RasED, SizeOF(RasED), 0);    // ワスレタラ違反キップ1000点
  with RasED do begin
    dwFlags := RASEDFLAG_NewEntry;
    dwSize  := Sizeof(RasED);
    hwndOwner:= Self.Handle;
  end;
  RasEntryDlg(nil, nil, RasED);
end;

編集 削除
アル  2007-04-09 17:20:45  No: 25664  IP: 192.*.*.*

ありがとうございました。
無事に解決致しました。

編集 削除