lineGenerateDigits 函式會使用指定的訊號模式,在指定的呼叫上起始指定的數位產生為帶內音調。 使用 lpszDigits NULL 值呼叫此函式, 中止目前正在產生任何數位。 叫用 lineGenerateDigits 或 lineGenerateTone,而數位產生正在進行中會中止目前的數位產生或音調產生,並起始最近指定數位或音調的產生。
語法
LONG lineGenerateDigitsA(
HCALL hCall,
DWORD dwDigitMode,
LPCSTR lpszDigits,
DWORD dwDuration
);
參數
hCall
呼叫的句柄。 應用程式必須是呼叫的擁有者。 hCall 的呼叫狀態可以是任何狀態。 TAPI 不會強加任何 callstate 需求,不過某些 Tapi 服務提供者可能會要求 hCall 處於LINECALLSTATE_CONNECTED狀態。
dwDigitMode
用來表示這些數位之訊號的格式。 請注意,dwDigitMode 只能設定單一旗標。 此參數使用其中一個 LINEDIGITMODE_ 常數。
lpszDigits
null終止字元緩衝區的指標,其中包含要產生的數位。 有效字元是針對 dwDigitModes中提供的 LINEDIGITMODE_ 常數 指定的字元。
此外,逗號 (,) 也是有效的字元。 逗號會在前一個和下一個數位的訊號之間插入額外的延遲。 此暫停的持續時間是已定義的組態,而線路裝置功能則表示此持續時間。 多個逗號可用來插入較長的暫停。 在產生期間會忽略無效的數位,而不是回報為錯誤。
驚嘆號 (!) 是有效的字元。 此字元會造成「攔截」作業,如 可撥號位址所述,。
dwDuration
DTMF 位數和脈衝和 DTMF 之間的間距,以毫秒為單位的持續時間。 值為 0 會使用預設值。 dwDuration 參數必須位於 LINEDEVCAPS中 MinDialParams 和 MaxDialPara ms 所指定的範圍內。 如果超出範圍,實際值會設定為範圍中最接近的值。
傳回值
如果要求成功或發生錯誤,則傳回零。 可能的傳回值為:
LINEERR_INVALCALLHANDLE、LINEERR_NOTOWNER、LINEERR_INVALCALLSTATE、LINEERR_OPERATIONUNAVAIL、LINEERR_INVALDIGITMODE、LINEERR_OPERATIONFAILED、LINEERR_INVALPOINTER、LINEERR_RESOURCEUNAVAIL、LINEERR_NOMEM、LINEERR_UNINITIALIZED。
言論
lineGenerateDigits 函式會在成功起始數位產生時順利完成,而不是產生所有數位時。 相較於 lineDial,其會以網路相依的方式撥入數位,lineGenerateDigits 保證在使用脈衝時,在語音通道上使用 DTMF 或攔截切換撥號脈衝時,以帶狀音調產生數位。 lineGenerateDigits 函式通常不適合撥打或撥號。 其適用於透過已建立呼叫的端對端訊號。
在產生 lpszDigits 中的所有數字之後,或在中止或取消數位產生之後,就會將 LINE_GENERATE 訊息傳送至應用程式。
只有一個頻內產生要求(音調產生或數位產生)能夠針對屬於通話擁有者的所有應用程式進行每個呼叫。 呼叫上的數位產生會藉由起始另一個數位產生要求或音調產生要求來取消。 若要取消目前的位數產生,應用程式可以叫用 lineGenerateDigits,併為 lpszDigits 參數指定 NULL。
根據服務提供者和硬體,應用程式可以監視它自己產生的數位。 如果不需要的話,應用程式可以在產生數位時停用數字監視。
注意
tapi.h 標頭會根據 UNICODE 預處理器常數的定義,將 lineGenerateDigits 定義為自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程序代碼,可能會導致編譯或運行時間錯誤不符。 如需詳細資訊,請參閱函式原型的
要求
| 要求 | 價值 |
|---|---|
| 目標平臺 | 窗戶 |
| 標頭 | tapi.h |
| 連結庫 | Tapi32.lib |
| DLL | Tapi32.dll |