Windows Mobile Tips - ダイアルアップ接続
ダイアルアップ接続APIの概要
Windows Mobile では、ネットワーク接続に Connection Manager というAPIを使用します。
このAPIでは無線LANやダイアルアップ接続などのいろんな接続を一元的に管理して、必要になったら接続経路を確保するという形になっています。
Connection Manager での制御
ConnectionManager での接続のおおまかな流れは以下の通りです。
- ConnMgrApiReadyEvent で Connection Manager API を初期化する(アプリケーション起動後に1回だけ)
- ConnMgrMapURL で接続先のURLのGUIDを得る
- ConnMgrEstablishConnection または ConnMgrEstablishConnectionSync で接続する
- ConnMgrReleaseConnection で切断する
以上の処理を実装しているのが添付ファイル、ConnectionManager.cs のクラスです。(ConnMgrEstablishConnectionでうまく接続できなかったため、ConnMgrEstablishConnectionSyncを使用しています。制御も楽だし)
ConnectionManager.csダイアルアップを(無理矢理)切断する
ConnMgrReleaseConnection では接続が切断されないことがよくあります。Connection Manager を使用しているアプリケーションがすべて Release しないと切断されないからです。
しかし、W-SIM の位置情報と連携するアプリケーションなど、どうしてもダイアルアップを切断しなければならないものもあります。
そこで Connection Manager の下層にあるダイアルアップ(RAS)のAPIを呼び出して、切断してしまう方法があります。この方法を使用すると次に ConnMgrEstablishConnection を呼び出した際、上位にある Connection Manager の状態と実際のダイアルアップ状態が一致せずエラーになってしまいます。回避するには ConnMgrEstablishConnection の bDisabled パラメータを false で呼び出します。
ConnectionManager.ForceDisconnect();
ConnectionManager.Connect("http://iseebi.half-done.net", false);
ConnectionManager.ReleaseAll();
RAS関連の実装はこちらです。
ConnectionManager.Ras.cs
Keyword(s):
References:[SideMenu] [技術ドキュメント]