## # DdeInitialize Function # -------------------------------------------------------------------------------- # The DdeInitialize function registers an application with the Dynamic Data Exchange Management Library # (DDEML). An application must call this function before calling any other Dynamic Data Exchange # Management Library (DDEML) function. # # [*Syntax*] UINT DdeInitialize( LPDWORD pidInst, PFNCALLBACK pfnCallback, DWORD afCmd, DWORD ulRes ); # # pidInst:: Pointer to the application instance identifier. At initialization, this parameter # should point to 0. If the function succeeds, this parameter points to the instance # identifier for the application. This value should be passed as the idInst parameter in all # other DDEML functions that require it. If an application uses multiple instances of the # DDEML dynamic-link library (DLL), the application should provide a different callback # function for each instance. # If pidInst points to a nonzero value, reinitialization of the DDEML is implied. In this case, pidInst # must point to a valid application-instance identifier. # pfnCallback:: Pointer to the application-defined Dynamic Data Exchange (DDE) callback function. # This function processes DDE transactions sent by the system. For more information, see # the DdeCallback callback function. # afCmd:: Specifies a set of APPCMD_, CBF_, and MF_ flags. The APPCMD_ flags provide special # instructions to DdeInitialize. The CBF_ flags specify filters that prevent specific types of # transactions from reaching the callback function. The MF_ flags specify the types of DDE # activity that a DDE monitoring application monitors. Using these flags enhances the # performance of a DDE application by eliminating unnecessary calls to the callback function. # This parameter can be one or more of the following values. # MF_POSTMSGS # Notifies the callback function whenever the system or an application posts a DDE message. # MF_SENDMSGS # Notifies the callback function whenever the system or an application sends a DDE message. # ulRes:: Reserved; must be set to zero. # # *Returns*:: If the function succeeds, the return value is DMLERR_NO_ERROR. # If the function fails, the return value is one of the following values: # DMLERR_SYS_ERROR # --- # *Remarks*: # An application that uses multiple instances of the DDEML must not pass DDEML objects between # instances. # A DDE monitoring application should not attempt to perform DDE operations (establish conversations, # issue transactions, and so on) within the context of the same application instance. # A synchronous transaction fails with a DMLERR_REENTRANCY error if any instance of the same task has a # synchronous transaction already in progress. # The CBF_FAIL_ALLSVRXACTIONS flag causes the DDEML to filter all server transactions and can be changed # by a subsequent call to DdeInitialize. The APPCMD_CLIENTONLY flag prevents the DDEML from creating key # resources for the server and cannot be changed by a subsequent call to DdeInitialize. # There is an ANSI version and a Unicode version of DdeInitialize. The version called determines the # type of the window procedures used to control DDE conversations (ANSI or Unicode), and the default # value for the iCodePage member of the CONVCONTEXT structure (CP_WINANSI or CP_WINUNICODE). # Windows 95/98/Me: DdeInitializeW is supported by the Microsoft Layer for Unicode (MSLU). To use this, # you must add certain files to your application, as outlined in Microsoft Layer for Unicode on Windows # 95/98/Me Systems . # # --- # Enhanced (snake_case) API: # # :call-seq: # success = dde_initialize(pid_inst, pfn_callback, af_cmd, ul_res) # function :DdeInitialize, [:LPDWORD, :PFNCALLBACK, :DWORD, :DWORD], :UINT describe "#dde_initialize" do spec{ use{ success = DdeInitialize(pid_inst=0, pfn_callback=0, af_cmd=0, ul_res=0) }} spec{ use{ success = dde_initialize(pid_inst=0, pfn_callback=0, af_cmd=0, ul_res=0) }} it "original api registers an application with the Dynamic Data Exchange Management Library " do pending success = DdeInitialize(pid_inst=0, pfn_callback=0, af_cmd=0, ul_res=0) end it "snake_case api registers an application with the Dynamic Data Exchange Management Library " do pending success = dde_initialize(pid_inst=0, pfn_callback=0, af_cmd=0, ul_res=0) end end # describe dde_initialize