DdeInitializeA 函式 (ddeml.h)
向 動態數據交換管理連結庫 註冊應用程式, (DDEML) 。 應用程式必須先呼叫此函式,才能呼叫任何其他動態數據交換管理連結庫 (DDEML) 函式。
語法
UINT DdeInitializeA(
[in, out] LPDWORD pidInst,
[in] PFNCALLBACK pfnCallback,
[in] DWORD afCmd,
DWORD ulRes
);
參數
[in, out] pidInst
類型: LPDWORD
應用程式實例標識碼。 在初始化時,此參數應該指向 0。 如果函式成功,此參數會指向應用程式的實例標識碼。 此值應該當作所有其他需要它的 DDEML 函式中的 idInst 參數傳遞。 如果應用程式使用 DDEML 動態連結庫的多個實例 (DLL) ,則應用程式應該為每個實例提供不同的回呼函式。
如果 pidInst 指向非零值,則會隱含重新初始化 DDEML。 在此情況下, pidInst 必須指向有效的應用程式實例識別碼。
[in] pfnCallback
類型: PFNCALLBACK
應用程式定義 DDE 回呼函式的指標。 此函式會處理系統所傳送的 DDE 交易。 如需詳細資訊,請參閱 DdeCallback 回 呼函式。
[in] afCmd
類型: DWORD
一組 APPCMD_、 CBF_和 MF_ 旗標。 APPCMD_旗標會提供 DdeInitialize 的特殊指示。 CBF_旗標會指定篩選條件,以防止特定類型的交易到達回呼函式。 MF_旗標會指定 DDE 監視應用程式監視的 DDE 活動類型。 使用這些旗標可藉由排除對回呼函式的不必要的呼叫,來增強 DDE 應用程式的效能。
此參數可以是下列一或多個值。
值 | 意義 |
---|---|
|
讓應用程式能夠監視系統中的 DDE 活動。 此旗標供 DDE 監視應用程式使用。 應用程式會藉由結合一或多個監視旗標與 APPCLASS_MONITOR 旗標,指定要監視的 DDE 活動類型。 如需詳細資訊,請參閱下列一節。 |
|
將應用程式註冊為標準 (非監視) DDEML 應用程式。 |
|
防止應用程式成為 DDE 交談中的伺服器。 應用程式只能是用戶端。 此旗標可減少 DDEML 的資源耗用量。 它包含 CBF_FAIL_ALLSVRXACTIONS 旗標的功能。 |
|
防止 DDEML 將 XTYP_CONNECT 和 XTYP_WILDCONNECT 交易傳送至應用程式,直到應用程式建立其字串句柄並註冊其服務名稱,或已關閉後續 對 DdeNameService 或 DdeInitialize 函式的篩選。 不論應用程式是否指定旗標,應用程式第一次呼叫 DdeInitialize 時,此旗標一律會生效。 在 後續對 DdeInitialize 的呼叫上,未指定此旗標會關閉應用程式的服務名稱篩選,但指定它會開啟應用程式的服務名稱篩選。 |
|
防止回呼函式接收伺服器交易。 系統會 將DDE_FNOTPROCESSED 傳回傳送交易給此應用程式的每個用戶端。 此旗標相當於合併所有CBF_FAIL_旗標。 |
|
防止回呼函式接收 XTYP_ADVSTART 和 XTYP_ADVSTOP 交易。 系統會將 DDE_FNOTPROCESSED 傳回給傳送 XTYP_ADVSTART 或 XTYP_ADVSTOP 交易給伺服器的每個用戶端。 |
|
防止回呼函式接收 XTYP_CONNECT 和 XTYP_WILDCONNECT 交易。 |
|
防止回呼函式接收 XTYP_EXECUTE 交易。 系統會將 DDE_FNOTPROCESSED 傳回給將 XTYP_EXECUTE 交易傳送至伺服器的用戶端。 |
|
防止回呼函式接收 XTYP_POKE 交易。 系統會將 DDE_FNOTPROCESSED 傳回給將 XTYP_POKE 交易傳送至伺服器的用戶端。 |
|
防止回呼函式接收 XTYP_REQUEST 交易。 系統會將 DDE_FNOTPROCESSED 傳回給將 XTYP_REQUEST 交易傳送至伺服器的用戶端。 |
|
防止回呼函式接收來自應用程式本身實例的交易 XTYP_CONNECT 。 此旗標可防止應用程式使用自己的實例建立 DDE 交談。 如果應用程式需要與本身的其他實例通訊,但不能與本身通訊,則應用程式應該使用此旗標。 |
|
防止回呼函式接收任何通知。 此旗標相當於合併所有CBF_SKIP_旗標。 |
|
防止回呼函式接收 XTYP_CONNECT_CONFIRM 通知。 |
|
防止回呼函式接收 XTYP_DISCONNECT 通知。 |
|
防止回呼函式接收 XTYP_REGISTER 通知。 |
|
防止回呼函式接收 XTYP_UNREGISTER 通知。 |
|
每當交易傳送至系統中的任何 DDE 回呼函式時,通知回呼函式。 |
|
每當建立或終止交談時,通知回呼函式。 |
|
每當發生 DDE 錯誤時,通知回呼函式。 |
|
每當 DDE 應用程式建立、釋放或遞增字串句柄的使用計數,或每當字串句柄因 呼叫 DdeUninitialize 函式而釋放時,就會通知回調函式。 |
|
每當建議迴圈啟動或結束時,通知回呼函式。 |
|
每當系統或應用程式張貼 DDE 訊息時,通知回呼函式。 |
|
每當系統或應用程式傳送 DDE 訊息時,通知回呼函式。 |
ulRes
類型: DWORD
保留;必須設定為零。
傳回值
類型: UINT
如果函式成功,則傳回值 會DMLERR_NO_ERROR。
如果函式失敗,傳回值就是下列其中一個值:
備註
使用多個 DDEML 實例的應用程式不得在實例之間傳遞 DDEML 物件。
DDE 監視應用程式不應該嘗試執行 DDE 作業, (建立交談、發出交易等) 相同應用程式實例的內容。
如果相同工作的任何實例正在進行同步交易,同步交易就會失敗 ,並出現DMLERR_REENTRANCY 錯誤。
CBF_FAIL_ALLSVRXACTIONS 旗標會導致 DDEML 篩選所有伺服器交易,並可透過後續呼叫 DdeInitialize 來變更。 APPCMD_CLIENTONLY 旗標可防止 DDEML 為伺服器建立密鑰資源,而且後續呼叫 DdeInitialize 時無法變更。
有 ANSI 版本和 Unicode 版本的 DdeInitialize。 呼叫的版本會決定用來控制 ANSI 或 Unicode () DDE 交談的視窗程式類型,以及 CONVCONTEXT 結構 (CP_WINANSI ( 或CP_WINUNICODE) 之 iCodePage 成員的預設值。
注意
ddeml.h 標頭會將 DdeInitialize 定義為別名,根據 UNICODE 預處理器常數的定義,自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程序代碼,可能會導致編譯或運行時間錯誤不符。 如需詳細資訊,請參閱 函式原型的慣例。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 2000 Professional [僅限傳統型應用程式] |
最低支援的伺服器 | Windows 2000 Server [僅限桌面應用程式] |
目標平台 | Windows |
標頭 | ddeml.h (包含 Windows.h) |
程式庫 | User32.lib |
Dll | User32.dll |