質問: WindowsのAPIであるRasDialについて、質問します。 上記のページを見て、Ras接続が出来たのですが、よく考えてみると、 パソコン側のどのCOMポートを使用するかは指定していません。 COMポートの指定は、どのように行なわれているのでしょうか?(←これが質問) プログラミングで一意に決定できるのでしょうか? 今はひとつの回線しか繋ぎませんが、複数の回線接続が必要になった時に 困るのではないかと思っています。
回答: > > 電話帳エントリーの作成 > > > →これって、新しい接続先とか作ると出来ますよね。 > > > テキストファイルですけど、エディタとか編集しても問題ないんでしょうか? > > > 書式がよくわからないのですが。ポートとかボーレートとか何とかわかりますので。 > > > やめた方が良いと思います。 実際テキストエディタで編集できますが、不正な値も入力できてしまいます。 ボーレートも接続のプロパティから変更できますので、そちらのUI経由で変更された方が良いです。 > > >>RasDialコール時にはあくまでその時点でのRASDIALPARAMSを参照します。 > > > >>ですので、ご自身でszPhoneNumberを設定された場合は、その情報に基づきダイアルされます。 > > > >>「優先される」のではなくご自身で「上書き」されているためです。 > > > 逆に言うと、接続ごとにご指定の手順(RasGetEntryDialParamsでRASDIALPARAMSを設定してやる)が > > > できれば、問題ないということでしょうか? > > > 問題ない「はず」です。 「はず」というのは現在手元にモデムで実検証できる環境がない為です。 過去にNT4.0で使っていたソースコードを見ながら回答させて頂いているので、100%の自信を持って「問題ない」と言えません。 力不足で申し訳ありません。(ポイントは0にして頂いて結構です) また、前回の私の回答で”RasGetEntryDialParamsをコールするとszPhoneNumber等は電話帳エントリの情報に基づき設定されます。”という認識は誤りでした。 RasSetEntryDialParamsによるRASDIALPARAMSの初期化ではszPhoneNumberは設定されません。 > > This field does not contain the phone number associated with an entry in the phonebook when used with the RasGetEntryDialParams( ) or RasSetEntryDialParams( ) APIs. > > > また > > the szPhoneNumber field is used to specify a phone number that can be dialed on the fly. > > > との表記も御座いますので、futuristaさんの「優先される」という御認識が正しかったです。 モデム無しの環境で、モデム付き機器から持ってきた電話帳エントリで試したみたところ、szUserName,szPasswordのみ埋まっており、szPhoneNumberは空だったことを確認しました。(電話帳エントリはユーザ名・パスワードを保存する設定になっているものです。szPasswordは実パスワードへのポインタですね) > > 今、うまくいっているのは、電話帳から引っ張ってくるべき情報を自前で設定しているからダイヤルが > > > できているということ?但し、複数へダイヤルする状況になった時は、 > > > dwSize > > > szPhoneNumber > > > szUserName > > > szPassword > > > の情報だけでは、モデムを区別できないということですね。 > > > 御認識の通りです。 まずは、1拠点への接続においても電話帳エントリを使用されてみてはいかがでしょうか。