lineDial 函式會撥打指定呼叫上的指定可撥號號碼。
語法
LONG lineDialW(
HCALL hCall,
LPCWSTR lpszDestAddress,
DWORD dwCountryCode
);
參數
hCall
要撥打號碼的呼叫句柄。 應用程式必須是呼叫的擁有者。 hCall 的呼叫狀態可以是任何狀態,但 閑置 和 中斷連線除外。
lpszDestAddress
使用標準可撥號號碼格式來撥號的目的地。
dwCountryCode
目的地的國家或地區代碼。 實作會使用此方式來選取目的地位址的呼叫進度通訊協定。 如果指定了 0 的值,則會使用服務提供者定義的預設呼叫進度通訊協定。
傳回值
如果函式是以異步方式完成,則傳回正要求標識碼,如果發生錯誤,則傳回負錯誤號碼。 如果函式成功,則對應 LINE_REPLY 訊息的 dwParam2 參數為零,如果發生錯誤,則為負錯誤號碼。 可能的傳回值為:
LINEERR_ADDRESSBLOCKED、LINEERR_INVALPOINTER、LINEERR_DIALBILLING、LINEERR_NOMEM、LINEERR_DIALDIALTONE、LINEERR_NOTOWNER、LINEERR_DIALPROMPT、LINEERR_OPERATIONFAILED、LINEERR_DIALQUIET、LINEERR_OPERATIONUNAVAIL、LINEERR_INVALCALLHANDLE、LINEERR_RESOURCEUNAVAIL、LINEERR_INVALCALLSTATE、LINEERR_UNINITIALIZED、LINEERR_INVALCOUNTRYCODE。
言論
如果傳回LINEERR_INVALADDRESS,則尚未完成撥號。 如果傳回LINEERR_DIALBILLING、LINEERR_DIALQUIET、LINEERR_DIALDIALTONE或LINEERR_DIALPROMPT,則 lineDial 不會執行任何動作。 例如,在發生問題字元之前,沒有可撥號地址、沒有攔截切換狀態已變更等等。
lineDial 函式用於撥打現有通話外觀。 例如,在為轉移或會議設定通話之後,會自動配置諮詢電話,而 線路 函式將用來執行此諮詢通話的撥號。 如果線路的裝置功能允許,可以在多階段撥號過程中多次叫用 lineDial 函式。 此外,可以在以CRLF分隔的單一撥號字串中提供多個位址。 提供反向多任務處理的服務提供者可以建立每個位址的個別實體呼叫,並可傳回單一呼叫句柄,以匯總對應用程式的所有呼叫。 所有位址都會使用相同的國家或地區代碼。
當地址傳遞至服務提供者之後,撥號會視為已完成;不是在呼叫最後連接之後。 提供反向多任務處理的服務提供者可以一次提供多個位址。 服務提供者會將LINE_CALLSTATE訊息傳送給應用程式,以通知其呼叫進度。 若要在建立呼叫時中止呼叫嘗試,叫用應用程式應該使用 lineDrop。
應用程式可以將 lineDial 函式的 lpszDestAddress 參數設定為空字串的位址,以指出撥號已完成, 但只有當先前呼叫 lineMakeCall 和 lineDial 函式時,lpszDestAddress 所指定的字元串, 以分號終止。
lineDial 函式也可以在部分撥號中使用。 若要使用部分撥號起始呼叫,應用程式會呼叫 lineMakeCall,並指定部分撥號字串。 部分撥號字串是以分號終止的任何撥號字串。 呼叫通常會轉換為LINECALLSTATE_DIALING,之後可以呼叫 lineDial 來指定更多撥號字串,每個字串串都以分號終止。 撥號完成的方式是呼叫 lineDial,且撥號字串不是以分號終止(例如空字串)。 這項技術可讓應用程式與使用者執行互動式部分撥號,或啟用比 TSP 更複雜的撥號功能。
如果 null 目的地字串或以分號 (“;”) 結尾的空字串輸入 lineMakeCall, 應用程式轉換為LINE_CALLSTATE_DIALTONE。 lineDial 函式可以在此狀態下呼叫,以輸入單一撥號字串或多個部分撥號字元串,每個字串都以分號分隔。 應用程式會在輸入第一個數字之後轉換為LINECALLSTATE_DIALING狀態。
注意
tapi.h 標頭會根據 UNICODE 預處理器常數的定義,將 lineDial 定義為自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程序代碼,可能會導致編譯或運行時間錯誤不符。 如需詳細資訊,請參閱函式原型的
要求
| 要求 | 價值 |
|---|---|
| 目標平臺 | 窗戶 |
| 標頭 | tapi.h |
| 連結庫 | Tapi32.lib |
| DLL | Tapi32.dll |