共用方式為


DdeInitializeW 函式 (ddeml.h)

動態數據交換管理連結庫 (DDEML) 註冊應用程式。 應用程式必須先呼叫此函式,才能呼叫任何其他動態數據交換管理連結庫 (DDEML) 函式。

語法

UINT DdeInitializeW(
  [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_ 旗標會提供特殊指示,DdeInitializeCBF_ 旗標會指定篩選條件,以防止特定類型的交易到達回呼函式。 MF_ 旗標會指定 DDE 監視應用程式監視的 DDE 活動類型。 使用這些旗標可藉由消除回呼函式不必要的呼叫,來增強 DDE 應用程式的效能。

此參數可以是下列其中一或多個值。

價值 意義
APPCLASS_MONITOR
0x000000001L
讓應用程式能夠監視系統中的 DDE 活動。 此旗標可供 DDE 監視應用程式使用。 應用程式會藉由結合一或多個監視旗標與 APPCLASS_MONITOR 旗標,指定要監視的 DDE 活動類型。 如需詳細資訊,請參閱下列一節。
APPCLASS_STANDARD
0x00000000L
將應用程式註冊為標準 (非監視) DDEML 應用程式。
APPCMD_CLIENTONLY
0x00000010L
防止應用程式成為 DDE 交談中的伺服器。 應用程式只能是用戶端。 此旗標可減少 DDEML 的資源耗用量。 其中包含 CBF_FAIL_ALLSVRXACTIONS 旗標的功能。
APPCMD_FILTERINITS
0x000000020L
防止 DDEML 將 XTYP_CONNECTXTYP_WILDCONNECT 交易傳送至應用程式,直到應用程式建立字串句柄並註冊其服務名稱,或藉由後續呼叫 DdeNameServiceDdeInitialize 函式關閉篩選。 無論應用程式是否指定旗標,當應用程式第一次呼叫 DdeInitialize 時,這個旗標一律會生效。 在後續呼叫 DdeInitialize時,未指定此旗標會關閉應用程式的服務名稱篩選,但指定它會開啟應用程式的服務名稱篩選。
CBF_FAIL_ALLSVRXACTIONS
0x0003f000
防止回呼函式接收伺服器交易。 系統會將 DDE_FNOTPROCESSED 傳回傳送交易至此應用程式的每個用戶端。 此旗標相當於合併所有CBF_FAIL_旗標。
CBF_FAIL_ADVISES
0x00004000
防止回呼函式接收 XTYP_ADVSTARTXTYP_ADVSTOP 交易。 系統會將 DDE_FNOTPROCESSED 傳回傳送 XTYP_ADVSTARTXTYP_ADVSTOP 交易給伺服器的每個用戶端。
CBF_FAIL_CONNECTIONS
0x00002000
防止回呼函式接收 XTYP_CONNECTXTYP_WILDCONNECT 交易。
CBF_FAIL_EXECUTES
0x00008000
防止回呼函式接收 XTYP_EXECUTE 交易。 系統會將 DDE_FNOTPROCESSED 傳回傳送 XTYP_EXECUTE 交易至伺服器的用戶端。
CBF_FAIL_POKES
0x00010000
防止回呼函式接收 XTYP_POKE 交易。 系統會將 DDE_FNOTPROCESSED 傳回傳送 XTYP_POKE 交易至伺服器的用戶端。
CBF_FAIL_REQUESTS
0x00020000
防止回呼函式接收 XTYP_REQUEST 交易。 系統會將 DDE_FNOTPROCESSED 傳回傳送 XTYP_REQUEST 交易至伺服器的用戶端。
CBF_FAIL_SELFCONNECTIONS
0x00001000
防止回呼函式從應用程式自己的實例接收 XTYP_CONNECT 交易。 此旗標可防止應用程式建立與其本身實例的 DDE 交談。 如果應用程式需要與本身的其他實例通訊,但不要與本身通訊,則應用程式應該使用此旗標。
CBF_SKIP_ALLNOTIFICATIONS
0x003c0000
防止回呼函式接收任何通知。 此旗標相當於合併所有CBF_SKIP_旗標。
CBF_SKIP_CONNECT_CONFIRMS
0x00040000
防止回呼函式接收 XTYP_CONNECT_CONFIRM 通知。
CBF_SKIP_DISCONNECTS
0x00200000
防止回呼函式接收 XTYP_DISCONNECT 通知。
CBF_SKIP_REGISTRATIONS
0x00080000
防止回呼函式接收 XTYP_REGISTER 通知。
CBF_SKIP_UNREGISTRATIONS
0x00100000
防止回呼函式接收 XTYP_UNREGISTER 通知。
MF_CALLBACKS
0x08000000
每當交易傳送至系統中的任何 DDE 回呼函式時,通知回呼函式。
MF_CONV
0x40000000
每當建立或終止交談時,通知回呼函式。
MF_ERRORS
0x10000000
每當發生 DDE 錯誤時,通知回呼函式。
MF_HSZ_INFO
0x01000000
每當 DDE 應用程式建立、釋放或遞增字串句柄的使用計數,或每當字串句柄因為呼叫 DdeUninitialize 函式而釋放字串句柄時,就會通知回呼函式。
MF_LINKS
0x20000000
每當建議迴圈啟動或結束時,通知回呼函式。
MF_POSTMSGS
0x04000000
每當系統或應用程式張貼 DDE 訊息時,通知回呼函式。
MF_SENDMSGS
0x02000000
每當系統或應用程式傳送 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。 呼叫的版本會決定用來控制 DDE 交談的視窗程式類型(ANSI 或 Unicode),以及 CONVCONTEXT 結構之 iCodePage 成員的預設值(CP_WINANSICP_WINUNICODE)。

注意

ddeml.h 標頭會根據 UNICODE 預處理器常數的定義,將 DdeInitialize 定義為自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程序代碼,可能會導致編譯或運行時間錯誤不符。 如需詳細資訊,請參閱函式原型的 慣例。

要求

要求 價值
最低支援的用戶端 Windows 2000 Professional [僅限傳統型應用程式]
支援的最低伺服器 Windows 2000 Server [僅限傳統型應用程式]
目標平臺 窗戶
標頭 ddeml.h (包括 Windows.h)
連結庫 User32.lib
DLL User32.dll

另請參閱

動態數據交換管理連結庫概觀