RasDialA 関数 (ras.h)
RasDial 関数は、RAS クライアントと RAS サーバー間の RAS 接続を確立します。 接続データには、コールバックとユーザー認証情報が含まれます。
構文
DWORD RasDialA(
[in] LPRASDIALEXTENSIONS unnamedParam1,
[in] LPCSTR unnamedParam2,
[in] LPRASDIALPARAMSA unnamedParam3,
[in] DWORD unnamedParam4,
[in] LPVOID unnamedParam5,
[out] LPHRASCONN unnamedParam6
);
パラメーター
[in] unnamedParam1
有効にする RasDial 拡張機能のセットを指定する RASDIALEXTENSIONS 構造体へのポインター。 これらの機能を有効にする必要がない場合は、このパラメーターを NULL に設定します。
[in] unnamedParam2
電話帳 (PBK) ファイルの完全なパスとファイル名を指定する null で終わる文字列へのポインター。 このパラメーターが NULL の場合、関数は現在の既定の電話帳ファイルを使用します。 既定の電話帳ファイルは、[ダイヤルアップ ネットワーク] ダイアログ ボックスの [ユーザー設定] プロパティ シートでユーザーが選択したファイルです。
[in] unnamedParam3
RAS 接続の呼び出しパラメーターを指定する RASDIALPARAMS 構造体へのポインター。 RasGetEntryDialParams 関数を使用して、特定の電話帳エントリのこの構造体のコピーを取得します。
呼び出し元は、渡される構造体のバージョンを識別するために、 RASDIALPARAMS 構造体の dwSize メンバーを sizeof(RASDIALPARAMS) に設定する必要があります。
RASDIALPARAMS 構造体の szPhoneNumber メンバーが空の文字列である場合、RasDial は電話帳エントリに格納されている電話番号を使用します。
[in] unnamedParam4
lpvNotifier パラメーターの性質を指定します。 lpvNotifier が NULL の場合、dwNotifierType は無視されます。 lpvNotifier が NULL でない場合は、dwNotifierType を次のいずれかの値に設定します。
値 | 説明 |
---|---|
|
lpvNotifier パラメーターは、RasDialFunc コールバック関数を指します。 |
|
lpvNotifier パラメーターは RasDialFunc1 コールバック関数を指します。 |
|
lpvNotifier パラメーターは RasDialFunc2 コールバック関数を指します。 |
[in] unnamedParam5
RasDial イベント通知を受信するウィンドウ ハンドルまたは RasDialFunc、RasDialFunc1、または RasDialFunc2 コールバック関数を指定します。 dwNotifierType パラメーターは、lpvNotifier の性質を指定します。 詳細については、前述の説明を参照してください。
このパラメーターが NULL でない場合、 RasDial は RasDial イベントごとにウィンドウにメッセージを送信するか、コールバック関数を呼び出します。 さらに、 RasDial 呼び出しは非同期的に動作します。 RasDial は、接続が確立される直前にを返し、ウィンドウまたはコールバック関数を介してその進行状況を伝えます。
lpvNotifier が NULL の場合、RasDial 呼び出しは同期的に動作します。RasDial は、接続の試行が正常に完了するか失敗するまで戻りません。
lpvNotifier が NULL でない場合、ウィンドウまたはコールバック関数への通知は、RasDial の最初の呼び出しの後にいつでも発生する可能性があります。 通知は、次のいずれかのイベントが発生すると終了します。
- 接続が確立されます。 つまり、RAS 接続状態はRASCS_Connected。
- 接続が失敗します。 つまり、 dwError は 0 以外です。
- 接続で RasHangUp が呼び出されます。
[out] unnamedParam6
HRASCONN 型の変数へのポインター。 RasDial を呼び出す前に、HRASCONN 変数を NULL に設定します。 RasDial が成功すると、RAS 接続へのハンドルが *lphRasConn に格納されます。
戻り値
関数が成功した場合、戻り値は ERROR_SUCCESS され、RAS 接続へのハンドルは 、lphRasConn が指す変数で返されます。
関数が失敗した場合、戻り値は Routing および Remote Access Error Codes または Winerror.h から取得されます。
解説
すぐに戻った後に発生するエラーは、 RasGetConnectStatus によって検出できます。 データは、アプリケーションが RasHangUp を呼び出して接続を切断するまで使用できます。
アプリケーションは、NULL 以外の接続ハンドルが *lphRasConn に格納されるたびに、最終的に RasHangUp を呼び出す必要があります。 これは 、RasDial が 0 以外の (エラー) 値を返す場合でも適用されます。
アプリケーションは、RasDial notifier コールバック関数から RasHangUp を安全に呼び出すことができます。 ただし、これが行われると、ルーチンが戻るまでハングアップは発生しません。
lpRasDialExtensions が指す構造体でRDEOPT_PausedStatesが有効になっている場合、RasDial 関数は、RASCS_PAUSED ビットが 1 に設定されている状態になると、常に一時停止します。 このような一時停止状態から RasDial を再起動するには、RasDial をもう一度呼び出し、*lphRasConn の元の RasDial 呼び出しから返された接続ハンドルを渡します。 一時停止状態から再起動する場合は、元の RasDial 呼び出しで使用されるのと同じ通知を使用する必要があります。
lpvNotifier パラメーターは、進行状況通知メッセージを受信するウィンドウへのハンドルです。 進行状況の通知メッセージでは、wParam は RasDialFunc と RasDialFunc1 の rasconnstate パラメーターに相当し、lParam は RasDialFunc と RasDialFunc1 の dwError パラメーターに相当します。
進行状況通知メッセージは、システム登録済みメッセージ コードを使用します。 このメッセージ コードの値は、次のように取得できます。
UINT unMsg = RegisterWindowMessageA( RASDIALEVENT );
if (unMsg == 0)
unMsg = WM_RASDIALEVENT;
RAS では、参照される接続がサポートされます。 ダイヤルされているエントリが既に接続されている場合、 RasDial は SUCCESS を 返し、接続が参照されます。 接続を切断するには、接続上の各 RasDial を RasHangUp と一致させる必要があります。
一部の電話帳エントリでは認証に拡張認証プロトコル (EAP) が必要であるため、呼び出し元は RasDial を呼び出す前に RasGetEapUserIdentity を呼び出す必要があります。 RasGetEapUserIdentity がERROR_INVALID_FUNCTION_FOR_ENTRYを返す場合、電話帳エントリには EAP は必要ありません。 ただし、RasGetEapUserIdentity がNO_ERRORを返す場合、呼び出し元は RASGetEapUserIdentity から RASDIALEXTENSIONS の RasEapInfo メンバーと RASDIALPARAMS の szUserName メンバーに EAP ID 情報をコピーする必要があります。 詳細については、「 RasGetEapUserIdentity 」を参照してください。 電話帳エントリに EAP が必要な場合、エントリの RASENTRY 構造体の xamarOptions メンバーには、RASEO_RequireEAP フラグが含まれます。
RasDial がRASCS_CallbackSetByCaller状態に入る必要があることを指定するには、RasDial の最初の呼び出しで lpRasDialParams-szCallbackNumber> を "*" に設定します。 この状態で通知ハンドラーが呼び出されたら、コールバック番号をユーザーが指定した番号に設定します。
注意
ras.h ヘッダーは RasDial をエイリアスとして定義し、UNICODE プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択します。 encoding-neutral エイリアスの使用を encoding-neutral ではないコードと混在すると、コンパイル エラーまたはランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「 関数プロトタイプの規則」を参照してください。
要件
サポートされている最小のクライアント | Windows 2000 Professional [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows 2000 Server [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | ras.h |
Library | Rasapi32.lib |
[DLL] | Rasapi32.dll |