DdeInitialize
The DdeInitialize
function registers an application with the Dynamic Data Exchange Management
Library
UINT DdeInitialize(
LPDWORD pidInst, |
// pointer to
instance identifier |
PFNCALLBACK pfnCallback, |
// pointer to
callback function |
DWORD afCmd, |
// set of command
and filter flags |
DWORD ulRes |
// reserved |
); |
|
Parameters
pidInst
Points 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
Points 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
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 a combination of the following filter flags:
Flag |
Meaning |
APPCLASS_MONITOR |
Makes it
possible for the application to monitor DDE activity in the system. This flag
is for use by DDE monitoring applications. The application specifies the
types of DDE activity to monitor by combining one or more monitor flags with
the APPCLASS_MONITOR flag. For details, see the following Remarks section. |
APPCLASS_STANDARD |
Registers
the application as a standard (nonmonitoring) DDEML application. |
APPCMD_CLIENTONLY |
Prevents
the application from becoming a server in a DDE conversation. The application
can only be a client. This flag reduces consumption of resources by the
DDEML. It includes the functionality of the CBF_FAIL_ALLSVRXACTIONS flag. |
APPCMD_FILTERINITS |
Prevents
the DDEML from sending XTYP_CONNECT and XTYP_WILDCONNECT transactions to the
application until the application has created its string handles and
registered its service names or has turned off filtering by a subsequent call
to the DdeNameService |
CBF_FAIL_ALLSVRXACTIONS |
Prevents
the callback function from receiving server transactions. The system returns
DDE_FNOTPROCESSED to each client that sends a transaction to this
application. This flag is equivalent to combining all CBF_FAIL_ flags. |
CBF_FAIL_ADVISES |
Prevents
the callback function from receiving XTYP_ADVSTART |
CBF_FAIL_CONNECTIONS |
Prevents
the callback function from receiving XTYP_CONNECT |
CBF_FAIL_EXECUTES |
Prevents
the callback function from receiving XTYP_EXECUTE |
CBF_FAIL_POKES |
Prevents
the callback function from receiving XTYP_POKE3EAM_IF transactions. The system returns
DDE_FNOTPROCESSED to a client that sends an XTYP_POKE transaction to the
server. |
CBF_FAIL_REQUESTS |
Prevents
the callback function from receiving XTYP_REQUEST |
CBF_FAIL_SELFCONNECTIONS |
Prevents
the callback function from receiving XTYP_CONNECT |
CBF_SKIP_ALLNOTIFICATIONS |
Prevents
the callback function from receiving any notifications. This flag is
equivalent to combining all CBF_SKIP_ flags. |
CBF_SKIP_CONNECT_CONFIRMS |
Prevents
the callback function from receiving XTYP_CONNECT_CONFIRM |
CBF_SKIP_DISCONNECTS |
Prevents
the callback function from receiving XTYP_DISCONNECT |
CBF_SKIP_REGISTRATIONS |
Prevents
the callback function from receiving XTYP_REGISTER |
CBF_SKIP_UNREGISTRATIONS |
Prevents
the callback function from receiving XTYP_UNREGISTER |
MF_CALLBACKS |
Notifies the
callback function whenever a transaction is sent to any DDE callback function
in the system. |
MF_CONV |
Notifies
the callback function whenever a conversation is established or terminated. |
MF_ERRORS |
Notifies
the callback function whenever a DDE error occurs. |
MF_HSZ_INFO |
Notifies
the callback function whenever a DDE application creates, frees, or
increments the usage count of a string handle or whenever a string handle is
freed as a result of a call to the DdeUninitialize |
MF_LINKS |
Notifies
the callback function whenever an advise loop is started or ended. |
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.
Return Values
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_DLL_USAGE
DMLERR_INVALIDPARAMETER
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_ALLSVRACTIONS 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
CONVCONTXT structure (CP_WINANSI or CP_WINUNICODE).
See Also