Ddeml (JNA API)
Description: declaration: package: com.sun.jna.platform.win32, interface: Ddeml

Package com.sun.jna.platform.win32

# Interface Ddeml

All Superinterfaces:
  `AltCallingConvention`, `Library`, `StdCall`, `StdCallLibrary`

public interface Ddeml extends StdCallLibrary
Ported from Ddeml.h. Microsoft Windows SDK 7.1.

Bindings for the DDEML - Dynamic Data Exchange Management Library (DDEML)

See Also:
  - MSDN: About the DDEML

- ## Nested Class Summary

  Nested Classes
  Modifier and Type
  Interface
  Description
  `static class`
  `Ddeml.CONVCONTEXT`
  The following structure is used by `DdeConnect(int, com.sun.jna.platform.win32.Ddeml.HSZ, com.sun.jna.platform.win32.Ddeml.HSZ, com.sun.jna.platform.win32.Ddeml.CONVCONTEXT)` and `DdeConnectList(int, com.sun.jna.platform.win32.Ddeml.HSZ, com.sun.jna.platform.win32.Ddeml.HSZ, com.sun.jna.platform.win32.Ddeml.HCONVLIST, com.sun.jna.platform.win32.Ddeml.CONVCONTEXT)` and by `XTYP_CONNECT` and `XTYP_WILDCONNECT` callbacks.
  `static class`
  `Ddeml.CONVINFO`
  Contains information about a Dynamic Data Exchange (DDE) conversation.
  `static interface`
  `Ddeml.DdeCallback`
  `static class`
  `Ddeml.DDEML_MSG_HOOK_DATA`
  `static class`
  `Ddeml.HCONV`
  `static class`
  `Ddeml.HCONVLIST`
  `static class`
  `Ddeml.HDDEDATA`
  `static class`
  `Ddeml.HSZ`
  `static class`
  `Ddeml.HSZPAIR`
  The following structure is for use with `XTYP_WILDCONNECT` processing.
  `static class`
  `Ddeml.MONCBSTRUCT`
  Contains information about the current Dynamic Data Exchange (DDE) transaction.
  `static class`
  `Ddeml.MONCONVSTRUCT`
  Contains information about a Dynamic Data Exchange (DDE) conversation.
  `static class`
  `Ddeml.MONERRSTRUCT`
  Contains information about the current Dynamic Data Exchange (DDE) error.
  `static class`
  `Ddeml.MONHSZSTRUCT`
  Contains information about a Dynamic Data Exchange (DDE) string handle.
  `static class`
  `Ddeml.MONLINKSTRUCT`
  Contains information about a Dynamic Data Exchange (DDE) advise loop.
  `static class`
  `Ddeml.MONMSGSTRUCT`

  ## Nested classes/interfaces inherited from interface com.sun.jna.Library

  `Library.Handler`

  ## Nested classes/interfaces inherited from interface com.sun.jna.win32.StdCallLibrary

  `StdCallLibrary.StdCallCallback`

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final int`
  `APPCLASS_MASK`
  `static final int`
  `APPCLASS_MONITOR`
  Makes it possible for the application to monitor DDE activity in the system.
  `static final int`
  `APPCLASS_STANDARD`
  Registers the application as a standard (nonmonitoring) DDEML application.
  `static final int`
  `APPCMD_CLIENTONLY`
  Prevents the application from becoming a server in a DDE conversation.
  `static final int`
  `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(int, com.sun.jna.platform.win32.Ddeml.HSZ, com.sun.jna.platform.win32.Ddeml.HSZ, int)` or `DdeInitialize(com.sun.jna.platform.win32.WinDef.DWORDByReference, com.sun.jna.platform.win32.Ddeml.DdeCallback, int, int)` function.
  `static final int`
  `APPCMD_MASK`
  `static final int`
  `CADV_LATEACK`
  `static final int`
  `CBF_FAIL_ADVISES`
  Prevents the callback function from receiving `XTYP_ADVSTART` and `XTYP_ADVSTOP` transactions.
  `static final int`
  `CBF_FAIL_ALLSVRXACTIONS`
  Prevents the callback function from receiving server transactions.
  `static final int`
  `CBF_FAIL_CONNECTIONS`
  Prevents the callback function from receiving `XTYP_CONNECT` and `XTYP_WILDCONNECT` transactions.
  `static final int`
  `CBF_FAIL_EXECUTES`
  Prevents the callback function from receiving `XTYP_EXECUTE` transactions.
  `static final int`
  `CBF_FAIL_POKES`
  Prevents the callback function from receiving `XTYP_POKE` transactions.
  `static final int`
  `CBF_FAIL_REQUESTS`
  Prevents the callback function from receiving `XTYP_REQUEST` transactions.
  `static final int`
  `CBF_FAIL_SELFCONNECTIONS`
  Prevents the callback function from receiving `XTYP_CONNECT` transactions from the application's own instance.
  `static final int`
  `CBF_SKIP_ALLNOTIFICATIONS`
  Prevents the callback function from receiving any notifications.
  `static final int`
  `CBF_SKIP_CONNECT_CONFIRMS`
  Prevents the callback function from receiving `XTYP_CONNECT_CONFIRM` notifications.
  `static final int`
  `CBF_SKIP_DISCONNECTS`
  Prevents the callback function from receiving `XTYP_DISCONNECT` notifications.
  `static final int`
  `CBF_SKIP_REGISTRATIONS`
  Prevents the callback function from receiving `XTYP_REGISTER` notifications.
  `static final int`
  `CBF_SKIP_UNREGISTRATIONS`
  Prevents the callback function from receiving `XTYP_UNREGISTER` notifications.
  `static final int`
  `CP_WINANSI`
  default codepage for windows & old DDE convs.
  `static final int`
  `CP_WINNEUTRAL`
  `static final int`
  `CP_WINUNICODE`
  default codepage for usage from java
  `static final int`
  `DDE_FACK`
  `static final int`
  `DDE_FACKREQ`
  `static final int`
  `DDE_FACKRESERVED`
  `static final int`
  `DDE_FADVRESERVED`
  `static final int`
  `DDE_FAPPSTATUS`
  `static final int`
  `DDE_FBUSY`
  `static final int`
  `DDE_FDATRESERVED`
  `static final int`
  `DDE_FDEFERUPD`
  `static final int`
  `DDE_FNOTPROCESSED`
  `static final int`
  `DDE_FPOKRESERVED`
  `static final int`
  `DDE_FRELEASE`
  `static final int`
  `DDE_FREQUESTED`
  `static final int`
  `DMLERR_ADVACKTIMEOUT`
  A request for a synchronous advise transaction has timed out.
  `static final int`
  `DMLERR_BUSY`
  The response to the transaction caused the `DDE_FBUSY` flag to be set.
  `static final int`
  `DMLERR_DATAACKTIMEOUT`
  A request for a synchronous data transaction has timed out.
  `static final int`
  `DMLERR_DLL_NOT_INITIALIZED`
  A DDEML function was called without first calling the `DdeInitialize(com.sun.jna.platform.win32.WinDef.DWORDByReference, com.sun.jna.platform.win32.Ddeml.DdeCallback, int, int)` function, or an invalid instance identifier was passed to a DDEML function.
  `static final int`
  `DMLERR_DLL_USAGE`
  An application initialized as `APPCLASS_MONITOR` has attempted to perform a DDE transaction, or an application initialized as `APPCMD_CLIENTONLY` has attempted to perform server transactions.
  `static final int`
  `DMLERR_EXECACKTIMEOUT`
  A request for a synchronous execute transaction has timed out.
  `static final int`
  `DMLERR_FIRST`
  `static final int`
  `DMLERR_INVALIDPARAMETER`
  A parameter failed to be validated by the DDEML.
  `static final int`
  `DMLERR_LAST`
  `static final int`
  `DMLERR_LOW_MEMORY`
  A DDEML application has created a prolonged race condition (in which the server application outruns the client), causing large amounts of memory to be consumed.
  `static final int`
  `DMLERR_MEMORY_ERROR`
  A memory allocation has failed.
  `static final int`
  `DMLERR_NO_CONV_ESTABLISHED`
  A client's attempt to establish a conversation has failed.
  `static final int`
  `DMLERR_NO_ERROR`
  `static final int`
  `DMLERR_NOTPROCESSED`
  A transaction has failed.
  `static final int`
  `DMLERR_POKEACKTIMEOUT`
  A request for a synchronous poke transaction has timed out.
  `static final int`
  `DMLERR_POSTMSG_FAILED`
  An internal call to the PostMessage function has failed.
  `static final int`
  `DMLERR_REENTRANCY`
  An application instance with a synchronous transaction already in progress attempted to initiate another synchronous transaction, or the `DdeEnableCallback(int, com.sun.jna.platform.win32.Ddeml.HCONV, int)` function was called from within a DDEML callback function.
  `static final int`
  `DMLERR_SERVER_DIED`
  A server-side transaction was attempted on a conversation terminated by the client, or the server terminated before completing a transaction.
  `static final int`
  `DMLERR_SYS_ERROR`
  An internal error has occurred in the DDEML.
  `static final int`
  `DMLERR_UNADVACKTIMEOUT`
  A request to end an advise transaction has timed out.
  `static final int`
  `DMLERR_UNFOUND_QUEUE_ID`
  An invalid transaction identifier was passed to a DDEML function.
  `static final int`
  `DNS_FILTEROFF`
  `static final int`
  `DNS_FILTERON`
  `static final int`
  `DNS_REGISTER`
  `static final int`
  `DNS_UNREGISTER`
  `static final int`
  `EC_DISABLE`
  `static final int`
  `EC_ENABLEALL`
  `static final int`
  `EC_ENABLEONE`
  `static final int`
  `EC_QUERYWAITING`
  `static final int`
  `HDATA_APPOWNED`
  `static final Ddeml`
  `INSTANCE`
  `static final int`
  `MF_CALLBACKS`
  Notifies the callback function whenever a transaction is sent to any DDE callback function in the system.
  `static final int`
  `MF_CONV`
  Notifies the callback function whenever a conversation is established or terminated.
  `static final int`
  `MF_ERRORS`
  Notifies the callback function whenever a DDE error occurs.
  `static final int`
  `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(int)` function.
  `static final int`
  `MF_LINKS`
  Notifies the callback function whenever an advise loop is started or ended.
  `static final int`
  `MF_MASK`
  `static final int`
  `MF_POSTMSGS`
  Notifies the callback function whenever the system or an application posts a DDE message.
  `static final int`
  `MF_SENDMSGS`
  Notifies the callback function whenever the system or an application sends a DDE message.
  `static final int`
  `MSGF_DDEMGR`
  `static final int`
  `QID_SYNC`
  Pseudo Transaction ID constant for the synchronous transaction
  `static final int`
  `ST_ADVISE`
  `static final int`
  `ST_BLOCKED`
  `static final int`
  `ST_BLOCKNEXT`
  `static final int`
  `ST_CLIENT`
  `static final int`
  `ST_CONNECTED`
  `static final int`
  `ST_INLIST`
  `static final int`
  `ST_ISLOCAL`
  `static final int`
  `ST_ISSELF`
  `static final int`
  `ST_TERMINATED`
  `static final String`
  `SZDDE_ITEM_ITEMLIST`
  `static final String`
  `SZDDESYS_ITEM_FORMATS`
  `static final String`
  `SZDDESYS_ITEM_HELP`
  `static final String`
  `SZDDESYS_ITEM_RTNMSG`
  `static final String`
  `SZDDESYS_ITEM_STATUS`
  `static final String`
  `SZDDESYS_ITEM_SYSITEMS`
  `static final String`
  `SZDDESYS_ITEM_TOPICS`
  `static final String`
  `SZDDESYS_TOPIC`
  `static final int`
  `TIMEOUT_ASYNC`
  Timeout constants for asynchronous requests
  `static final int`
  `XCLASS_BOOL`
  `static final int`
  `XCLASS_DATA`
  `static final int`
  `XCLASS_FLAGS`
  `static final int`
  `XCLASS_MASK`
  `static final int`
  `XCLASS_NOTIFICATION`
  `static final int`
  `XST_ADVACKRCVD`
  `static final int`
  `XST_ADVDATAACKRCVD`
  `static final int`
  `XST_ADVDATASENT`
  `static final int`
  `XST_ADVSENT`
  `static final int`
  `XST_CONNECTED`
  `static final int`
  `XST_DATARCVD`
  `static final int`
  `XST_EXECACKRCVD`
  `static final int`
  `XST_EXECSENT`
  `static final int`
  `XST_INCOMPLETE`
  `static final int`
  `XST_INIT1`
  `static final int`
  `XST_INIT2`
  `static final int`
  `XST_NULL`
  `static final int`
  `XST_POKEACKRCVD`
  `static final int`
  `XST_POKESENT`
  `static final int`
  `XST_REQSENT`
  `static final int`
  `XST_UNADVACKRCVD`
  `static final int`
  `XST_UNADVSENT`
  `static final int`
  `XTYP_ADVDATA`
  Informs the client that the value of the data item has changed.
  `static final int`
  `XTYP_ADVREQ`
  The XTYP_ADVREQ transaction informs the server that an advise transaction is outstanding on the specified topic name and item name pair and that data corresponding to the topic name and item name pair has changed.
  `static final int`
  `XTYP_ADVSTART`
  A client uses the XTYP_ADVSTART transaction to establish an advise loop with a server.
  `static final int`
  `XTYP_ADVSTOP`
  A client uses the XTYP_ADVSTOP transaction to end an advise loop with a server.
  `static final int`
  `XTYP_CONNECT`
  A client uses the XTYP_CONNECT transaction to establish a conversation.
  `static final int`
  `XTYP_CONNECT_CONFIRM`
  A Dynamic Data Exchange (DDE) server callback function, DdeCallback, receives the XTYP_CONNECT_CONFIRM transaction to confirm that a conversation has been established with a client and to provide the server with the conversation handle.
  `static final int`
  `XTYP_DISCONNECT`
  An application's Dynamic Data Exchange (DDE) callback function, DdeCallback, receives the XTYP_DISCONNECT transaction when the application's partner in a conversation uses the `DdeDisconnect(com.sun.jna.platform.win32.Ddeml.HCONV)` function to terminate the conversation.
  `static final int`
  `XTYP_ERROR`
  A Dynamic Data Exchange (DDE) callback function, DdeCallback, receives the XTYP_ERROR transaction when a critical error occurs.
  `static final int`
  `XTYP_EXECUTE`
  A client uses the XTYP_EXECUTE transaction to send a command string to the server.
  `static final int`
  `XTYP_MASK`
  `static final int`
  `XTYP_MONITOR`
  A Dynamic Data Exchange (DDE) debugger's DDE callback function, DdeCallback, receives the XTYP_MONITOR transaction whenever a DDE event occurs in the system.
  `static final int`
  `XTYP_POKE`
  A client uses the XTYP_POKE transaction to send unsolicited data to the server.
  `static final int`
  `XTYP_REGISTER`
  A Dynamic Data Exchange (DDE) callback function, DdeCallback, receives the XTYP_REGISTER transaction type whenever a Dynamic Data Exchange Management Library (DDEML) server application uses the `DdeNameService(int, com.sun.jna.platform.win32.Ddeml.HSZ, com.sun.jna.platform.win32.Ddeml.HSZ, int)` function to register a service name, or whenever a non-DDEML application that supports the System topic is started.
  `static final int`
  `XTYP_REQUEST`
  A client uses the XTYP_REQUEST transaction to request data from a server.
  `static final int`
  `XTYP_SHIFT`
  `static final int`
  `XTYP_UNREGISTER`
  A Dynamic Data Exchange (DDE) callback function, DdeCallback, receives the XTYP_UNREGISTER transaction whenever a Dynamic Data Exchange Management Library (DDEML) server application uses the `DdeNameService(int, com.sun.jna.platform.win32.Ddeml.HSZ, com.sun.jna.platform.win32.Ddeml.HSZ, int)` function to unregister a service name, or whenever a non-DDEML application that supports the System topic is terminated.
  `static final int`
  `XTYP_WILDCONNECT`
  Enables a client to establish a conversation on each of the server's service name and topic name pairs that match the specified service name and topic name.
  `static final int`
  `XTYP_XACT_COMPLETE`
  A Dynamic Data Exchange (DDE) client callback function, DdeCallback, receives the XTYP_XACT_COMPLETE transaction when an asynchronous transaction, initiated by a call to the `DdeClientTransaction(com.sun.jna.Pointer, int, com.sun.jna.platform.win32.Ddeml.HCONV, com.sun.jna.platform.win32.Ddeml.HSZ, int, int, int, com.sun.jna.platform.win32.WinDef.DWORDByReference)` function, has completed.
  `static final int`
  `XTYPF_ACKREQ`
  `static final int`
  `XTYPF_NOBLOCK`
  `static final int`
  `XTYPF_NODATA`

  ### Fields inherited from interface com.sun.jna.Library

  `OPTION_ALLOW_OBJECTS, OPTION_CALLING_CONVENTION, OPTION_CLASSLOADER, OPTION_FUNCTION_MAPPER, OPTION_INVOCATION_MAPPER, OPTION_OPEN_FLAGS, OPTION_STRING_ENCODING, OPTION_STRUCTURE_ALIGNMENT, OPTION_SYMBOL_PROVIDER, OPTION_TYPE_MAPPER`

  ### Fields inherited from interface com.sun.jna.win32.StdCallLibrary

  `FUNCTION_MAPPER, STDCALL_CONVENTION`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `boolean`
  `DdeAbandonTransaction(int idInst, Ddeml.HCONV hConv, int idTransaction)`
  Abandons the specified asynchronous transaction and releases all resources associated with the transaction.
  `Pointer`
  `DdeAccessData(Ddeml.HDDEDATA hData, WinDef.DWORDByReference pcbDataSize)`
  Provides access to the data in the specified Dynamic Data Exchange (DDE) object.
  `Ddeml.HDDEDATA`
  `DdeAddData(Ddeml.HDDEDATA hData, Pointer pSrc, int cb, int cbOff)`
  Adds data to the specified Dynamic Data Exchange (DDE) object.
  `Ddeml.HDDEDATA`
  `DdeClientTransaction(Pointer pData, int cbData, Ddeml.HCONV hConv, Ddeml.HSZ hszItem, int wFmt, int wType, int dwTimeout, WinDef.DWORDByReference pdwResult)`
  Begins a data transaction between a client and a server.
  `Ddeml.HCONV`
  `DdeConnect(int idInst, Ddeml.HSZ hszService, Ddeml.HSZ hszTopic, Ddeml.CONVCONTEXT pCC)`
  Establishes a conversation with a server application that supports the specified service name and topic name pair.
  `Ddeml.HCONVLIST`
  `DdeConnectList(int idInst, Ddeml.HSZ hszService, Ddeml.HSZ hszTopic, Ddeml.HCONVLIST hConvList, Ddeml.CONVCONTEXT pCC)`
  Establishes a conversation with all server applications that support the specified service name and topic name pair.
  `Ddeml.HDDEDATA`
  `DdeCreateDataHandle(int idInst, Pointer pSrc, int cb, int cbOff, Ddeml.HSZ hszItem, int wFmt, int afCmd)`
  Creates a Dynamic Data Exchange (DDE) object and fills the object with data from the specified buffer.
  `Ddeml.HSZ`
  `DdeCreateStringHandle(int idInst, String psz, int iCodePage)`
  Creates a handle that identifies the specified string.
  `boolean`
  `DdeDisconnect(Ddeml.HCONV hConv)`
  Terminates a conversation started by either the `DdeConnect(int, com.sun.jna.platform.win32.Ddeml.HSZ, com.sun.jna.platform.win32.Ddeml.HSZ, com.sun.jna.platform.win32.Ddeml.CONVCONTEXT)` or `DdeConnectList(int, com.sun.jna.platform.win32.Ddeml.HSZ, com.sun.jna.platform.win32.Ddeml.HSZ, com.sun.jna.platform.win32.Ddeml.HCONVLIST, com.sun.jna.platform.win32.Ddeml.CONVCONTEXT)` function and invalidates the specified conversation handle.
  `boolean`
  `DdeDisconnectList(Ddeml.HCONVLIST hConvList)`
  Destroys the specified conversation list and terminates all conversations associated with the list.
  `boolean`
  `DdeEnableCallback(int idInst, Ddeml.HCONV hConv, int wCmd)`
  Enables or disables transactions for a specific conversation or for all conversations currently established by the calling application.
  `boolean`
  `DdeFreeDataHandle(Ddeml.HDDEDATA hData)`
  Frees a Dynamic Data Exchange (DDE) object and deletes the data handle associated with the object.
  `boolean`
  `DdeFreeStringHandle(int idInst, Ddeml.HSZ hsz)`
  Frees a string handle in the calling application.
  `int`
  `DdeGetData(Ddeml.HDDEDATA hData, Pointer pDst, int cbMax, int cbOff)`
  Copies data from the specified Dynamic Data Exchange (DDE) object to the specified local buffer.
  `int`
  `DdeGetLastError(int idInst)`
  `boolean`
  `DdeImpersonateClient(Ddeml.HCONV hConv)`
  Impersonates a Dynamic Data Exchange (DDE) client application in a DDE client conversation.
  `int`
  `DdeInitialize(WinDef.DWORDByReference pidInst, Ddeml.DdeCallback fnCallback, int afCmd, int ulRes)`
  Registers an application with the Dynamic Data Exchange Management Library (DDEML).
  `boolean`
  `DdeKeepStringHandle(int idInst, Ddeml.HSZ hsz)`
  Increments the usage count associated with the specified handle.
  `Ddeml.HDDEDATA`
  `DdeNameService(int idInst, Ddeml.HSZ hsz1, Ddeml.HSZ hsz2, int afCmd)`
  Registers or unregisters the service names a Dynamic Data Exchange (DDE) server supports.
  `boolean`
  `DdePostAdvise(int idInst, Ddeml.HSZ hszTopic, Ddeml.HSZ hszItem)`
  Causes the system to send an `XTYP_ADVREQ` transaction to the calling (server) application's Dynamic Data Exchange (DDE) callback function for each client with an active advise loop on the specified topic and item.
  `int`
  `DdeQueryConvInfo(Ddeml.HCONV hConv, int idTransaction, Ddeml.CONVINFO pConvInfo)`
  Retrieves information about a Dynamic Data Exchange (DDE) transaction and about the conversation in which the transaction takes place.
  `Ddeml.HCONV`
  `DdeQueryNextServer(Ddeml.HCONVLIST hConvList, Ddeml.HCONV hConvPrev)`
  Retrieves the next conversation handle in the specified conversation list.
  `int`
  `DdeQueryString(int idInst, Ddeml.HSZ hsz, Pointer psz, int cchMax, int iCodePage)`
  Copies text associated with a string handle into a buffer.
  `Ddeml.HCONV`
  `DdeReconnect(Ddeml.HCONV hConv)`
  Enables a client Dynamic Data Exchange Management Library (DDEML) application to attempt to reestablish a conversation with a service that has terminated a conversation with the client.
  `boolean`
  `DdeSetUserHandle(Ddeml.HCONV hConv, int id, BaseTSD.DWORD_PTR hUser)`
  Associates an application-defined value with a conversation handle or a transaction identifier.
  `boolean`
  `DdeUnaccessData(Ddeml.HDDEDATA hData)`
  Unaccesses a Dynamic Data Exchange (DDE) object.
  `boolean`
  `DdeUninitialize(int idInst)`
  Frees all Dynamic Data Exchange Management Library (DDEML) resources associated with the calling application.

- ## Field Details

  - ### INSTANCE

    static final Ddeml INSTANCE

  - ### XST_NULL

    static final int XST_NULL
    See Also:
      - Constant Field Values

  - ### XST_INCOMPLETE

    static final int XST_INCOMPLETE
    See Also:
      - Constant Field Values

  - ### XST_CONNECTED

    static final int XST_CONNECTED
    See Also:
      - Constant Field Values

  - ### XST_INIT1

    static final int XST_INIT1
    See Also:
      - Constant Field Values

  - ### XST_INIT2

    static final int XST_INIT2
    See Also:
      - Constant Field Values

  - ### XST_REQSENT

    static final int XST_REQSENT
    See Also:
      - Constant Field Values

  - ### XST_DATARCVD

    static final int XST_DATARCVD
    See Also:
      - Constant Field Values

  - ### XST_POKESENT

    static final int XST_POKESENT
    See Also:
      - Constant Field Values

  - ### XST_POKEACKRCVD

    static final int XST_POKEACKRCVD
    See Also:
      - Constant Field Values

  - ### XST_EXECSENT

    static final int XST_EXECSENT
    See Also:
      - Constant Field Values

  - ### XST_EXECACKRCVD

    static final int XST_EXECACKRCVD
    See Also:
      - Constant Field Values

  - ### XST_ADVSENT

    static final int XST_ADVSENT
    See Also:
      - Constant Field Values

  - ### XST_UNADVSENT

    static final int XST_UNADVSENT
    See Also:
      - Constant Field Values

  - ### XST_ADVACKRCVD

    static final int XST_ADVACKRCVD
    See Also:
      - Constant Field Values

  - ### XST_UNADVACKRCVD

    static final int XST_UNADVACKRCVD
    See Also:
      - Constant Field Values

  - ### XST_ADVDATASENT

    static final int XST_ADVDATASENT
    See Also:
      - Constant Field Values

  - ### XST_ADVDATAACKRCVD

    static final int XST_ADVDATAACKRCVD
    See Also:
      - Constant Field Values

  - ### CADV_LATEACK

    static final int CADV_LATEACK
    See Also:
      - Constant Field Values

  - ### ST_CONNECTED

    static final int ST_CONNECTED
    See Also:
      - Constant Field Values

  - ### ST_ADVISE

    static final int ST_ADVISE
    See Also:
      - Constant Field Values

  - ### ST_ISLOCAL

    static final int ST_ISLOCAL
    See Also:
      - Constant Field Values

  - ### ST_BLOCKED

    static final int ST_BLOCKED
    See Also:
      - Constant Field Values

  - ### ST_CLIENT

    static final int ST_CLIENT
    See Also:
      - Constant Field Values

  - ### ST_TERMINATED

    static final int ST_TERMINATED
    See Also:
      - Constant Field Values

  - ### ST_INLIST

    static final int ST_INLIST
    See Also:
      - Constant Field Values

  - ### ST_BLOCKNEXT

    static final int ST_BLOCKNEXT
    See Also:
      - Constant Field Values

  - ### ST_ISSELF

    static final int ST_ISSELF
    See Also:
      - Constant Field Values

  - ### DDE_FACK

    static final int DDE_FACK
    See Also:
      - Constant Field Values

  - ### DDE_FBUSY

    static final int DDE_FBUSY
    See Also:
      - Constant Field Values

  - ### DDE_FDEFERUPD

    static final int DDE_FDEFERUPD
    See Also:
      - Constant Field Values

  - ### DDE_FACKREQ

    static final int DDE_FACKREQ
    See Also:
      - Constant Field Values

  - ### DDE_FRELEASE

    static final int DDE_FRELEASE
    See Also:
      - Constant Field Values

  - ### DDE_FREQUESTED

    static final int DDE_FREQUESTED
    See Also:
      - Constant Field Values

  - ### DDE_FAPPSTATUS

    static final int DDE_FAPPSTATUS
    See Also:
      - Constant Field Values

  - ### DDE_FNOTPROCESSED

    static final int DDE_FNOTPROCESSED
    See Also:
      - Constant Field Values

  - ### DDE_FACKRESERVED

    static final int DDE_FACKRESERVED
    See Also:
      - Constant Field Values

  - ### DDE_FADVRESERVED

    static final int DDE_FADVRESERVED
    See Also:
      - Constant Field Values

  - ### DDE_FDATRESERVED

    static final int DDE_FDATRESERVED
    See Also:
      - Constant Field Values

  - ### DDE_FPOKRESERVED

    static final int DDE_FPOKRESERVED
    See Also:
      - Constant Field Values

  - ### MSGF_DDEMGR

    static final int MSGF_DDEMGR
    See Also:
      - Constant Field Values

  - ### CP_WINANSI

    static final int CP_WINANSI
    default codepage for windows & old DDE convs.
    See Also:
      - Constant Field Values

  - ### CP_WINUNICODE

    static final int CP_WINUNICODE
    default codepage for usage from java
    See Also:
      - Constant Field Values

  - ### CP_WINNEUTRAL

    static final int CP_WINNEUTRAL
    See Also:
      - Constant Field Values

  - ### XTYPF_NOBLOCK

    static final int XTYPF_NOBLOCK
    See Also:
      - Constant Field Values

  - ### XTYPF_NODATA

    static final int XTYPF_NODATA
    See Also:
      - Constant Field Values

  - ### XTYPF_ACKREQ

    static final int XTYPF_ACKREQ
    See Also:
      - Constant Field Values

  - ### XCLASS_MASK

    static final int XCLASS_MASK
    See Also:
      - Constant Field Values

  - ### XCLASS_BOOL

    static final int XCLASS_BOOL
    See Also:
      - Constant Field Values

  - ### XCLASS_DATA

    static final int XCLASS_DATA
    See Also:
      - Constant Field Values

  - ### XCLASS_FLAGS

    static final int XCLASS_FLAGS
    See Also:
      - Constant Field Values

  - ### XCLASS_NOTIFICATION

    static final int XCLASS_NOTIFICATION
    See Also:
      - Constant Field Values

  - ### XTYP_ERROR

    static final int XTYP_ERROR
    A Dynamic Data Exchange (DDE) callback function, DdeCallback, receives the XTYP_ERROR transaction when a critical error occurs.

    Used Parameters

    uType
      The transaction type.
    hconv
      A handle to the conversation associated with the error. This parameter is NULL if the error is not associated with a conversation.
    dwData1
      The error code in the low-order word. Currently, only the following error code is supported.

      Value | Meaning
      --- | ---
      DMLERR_LOW_MEMORY | Memory is low; advise, poke, or execute data may be lost, or the system may fail.

    Remarks

    An application cannot block this transaction type; the CBR_BLOCK return code is ignored. The Dynamic Data Exchange Management Library (DDEML) attempts to free memory by removing noncritical resources. An application that has blocked conversations should unblock them.

    See Also:
      - Constant Field Values

  - ### XTYP_ADVDATA

    static final int XTYP_ADVDATA
    Informs the client that the value of the data item has changed. The Dynamic Data Exchange (DDE) client callback function, DdeCallback, receives this transaction after establishing an advise loop with a server.

    Used Parameters

    uType
      The transaction type.
    uFmt
      The format atom of the data sent from the server.
    hconv
      A handle to the conversation.
    hsz1
      A handle to the topic name.
    hsz2
      A handle to the item name.
    hdata
      A handle to the data associated with the topic name and item name pair. This parameter is NULL if the client specified the `XTYPF_NODATA` flag when it requested the advise loop.

    Return value

    A DDE callback function should return `DDE_FACK` if it processes this transaction, `DDE_FBUSY` if it is too busy to process this transaction, or `DDE_FNOTPROCESSED` if it rejects this transaction.

    Remarks

    An application must not free the data handle obtained during this transaction. An application must, however, copy the data associated with the data handle if the application must process the data after the callback function returns. An application can use the `DdeGetData(com.sun.jna.platform.win32.Ddeml.HDDEDATA, com.sun.jna.Pointer, int, int)` function to copy the data.

    See Also:
      - Constant Field Values

  - ### XTYP_ADVREQ

    static final int XTYP_ADVREQ
    The XTYP_ADVREQ transaction informs the server that an advise transaction is outstanding on the specified topic name and item name pair and that data corresponding to the topic name and item name pair has changed. The system sends this transaction to the Dynamic Data Exchange (DDE) callback function, DdeCallback, after the server calls the `DdePostAdvise(int, com.sun.jna.platform.win32.Ddeml.HSZ, com.sun.jna.platform.win32.Ddeml.HSZ)` function.

    Used Parameters

    uType
      The transaction type.
    uFmt
      The format in which the data should be submitted to the client.
    hconv
      A handle to the conversation.
    hsz1
      A handle to the topic name.
    hsz2
      A handle to the item name that has changed.
    dwData1
      The count, in the low-order word, of XTYP_ADVREQ transactions that remain to be processed on the same topic, item, and format name set within the context of the current call to the `DdePostAdvise(int, com.sun.jna.platform.win32.Ddeml.HSZ, com.sun.jna.platform.win32.Ddeml.HSZ)` function. The count is zero if the current XTYP_ADVREQ transaction is the last one. A server can use this count to determine whether to create an HDATA_APPOWNED data handle to the advise data.
      The low-order word is set to `CADV_LATEACK` if the DDEML issued the XTYP_ADVREQ transaction because of a late-arriving DDE_ACK message from a client being outrun by the server.
      The high-order word is not used.

    Return value

    The server should first call the `DdeCreateDataHandle(int, com.sun.jna.Pointer, int, int, com.sun.jna.platform.win32.Ddeml.HSZ, int, int)` function to create a data handle that identifies the changed data and then return the handle. The server should return NULL if it is unable to complete the transaction.

    Remarks

    A server cannot block this transaction type; the CBR_BLOCK return code is ignored.

    See Also:
      - Constant Field Values

  - ### XTYP_ADVSTART

    static final int XTYP_ADVSTART
    A client uses the XTYP_ADVSTART transaction to establish an advise loop with a server. A Dynamic Data Exchange (DDE) server callback function, DdeCallback, receives this transaction when a client specifies XTYP_ADVSTART as the wType parameter of the `DdeClientTransaction(com.sun.jna.Pointer, int, com.sun.jna.platform.win32.Ddeml.HCONV, com.sun.jna.platform.win32.Ddeml.HSZ, int, int, int, com.sun.jna.platform.win32.WinDef.DWORDByReference)` function.

    Used Parameters

    uType
      The transaction type.
    uFmt
      The data format requested by the client.
    hconv
      A handle to the conversation.
    hsz1
      A handle to the topic name.
    hsz2
      A handle to the item name.

    Return value

    A server callback function should return TRUE to allow an advise loop on the specified topic name and item name pair, or FALSE to deny the advise loop. If the callback function returns TRUE, any subsequent calls to the `DdePostAdvise(int, com.sun.jna.platform.win32.Ddeml.HSZ, com.sun.jna.platform.win32.Ddeml.HSZ)` function by the server on the same topic name and item name pair causes the system to send `XTYP_ADVREQ` transactions to the server.

    Remarks

    If a client requests an advise loop on a topic name, item name, and data format for an advise loop that is already established, the Dynamic Data Exchange Management Library (DDEML) does not create a duplicate advise loop but instead alters the advise loop flags (`XTYPF_ACKREQ` and `XTYPF_NODATA`) to match the latest request.

    This transaction is filtered if the server application specified the `CBF_FAIL_ADVISES` flag in the `DdeInitialize(com.sun.jna.platform.win32.WinDef.DWORDByReference, com.sun.jna.platform.win32.Ddeml.DdeCallback, int, int)` function.

    See Also:
      - Constant Field Values

  - ### XTYP_ADVSTOP

    static final int XTYP_ADVSTOP
    A client uses the XTYP_ADVSTOP transaction to end an advise loop with a server. A Dynamic Data Exchange (DDE) server callback function, DdeCallback, receives this transaction when a client specifies XTYP_ADVSTOP in the `DdeClientTransaction(com.sun.jna.Pointer, int, com.sun.jna.platform.win32.Ddeml.HCONV, com.sun.jna.platform.win32.Ddeml.HSZ, int, int, int, com.sun.jna.platform.win32.WinDef.DWORDByReference)` function.

    Used Parameters

    uType
      The transaction type.
    uFmt
      The data format requested by the client.
    hconv
      A handle to the conversation.
    hsz1
      A handle to the topic name.
    hsz2
      A handle to the item name.

    Remarks

    This transaction is filtered if the server application specified the `CBF_FAIL_ADVISES` flag in the `DdeInitialize(com.sun.jna.platform.win32.WinDef.DWORDByReference, com.sun.jna.platform.win32.Ddeml.DdeCallback, int, int)` function.

    See Also:
      - Constant Field Values

  - ### XTYP_EXECUTE

    static final int XTYP_EXECUTE
    A client uses the XTYP_EXECUTE transaction to send a command string to the server. A Dynamic Data Exchange (DDE) server callback function, DdeCallback, receives this transaction when a client specifies XTYP_EXECUTE in the `DdeClientTransaction(com.sun.jna.Pointer, int, com.sun.jna.platform.win32.Ddeml.HCONV, com.sun.jna.platform.win32.Ddeml.HSZ, int, int, int, com.sun.jna.platform.win32.WinDef.DWORDByReference)` function.

    Used Parameters

    uType
      The transaction type.
    hconv
      A handle to the conversation.
    hsz1
      A handle to the topic name.
    hdata
      A handle to the command string.

    Return value

    A server callback function should return `DDE_FACK` if it processes this transaction, `DDE_FBUSY` if it is too busy to process this transaction, or `DDE_FNOTPROCESSED` if it rejects this transaction.

    Remarks

    This transaction is filtered if the server application specified the `CBF_FAIL_EXECUTES` flag in the `DdeInitialize(com.sun.jna.platform.win32.WinDef.DWORDByReference, com.sun.jna.platform.win32.Ddeml.DdeCallback, int, int)` function.

    An application must free the data handle obtained during this transaction. An application must, however, copy the command string associated with the data handle if the application must process the string after the callback function returns. An application can use the `DdeGetData(com.sun.jna.platform.win32.Ddeml.HDDEDATA, com.sun.jna.Pointer, int, int)` function to copy the data.

    Because most client applications expect a server application to perform an XTYP_EXECUTE transaction synchronously, a server should attempt to perform all processing of the XTYP_EXECUTE transaction either from within the DDE callback function or by returning the CBR_BLOCK return code. If the hdata parameter is a command that instructs the server to terminate, the server should do so after processing the XTYP_EXECUTE transaction.

    See Also:
      - Constant Field Values

  - ### XTYP_CONNECT

    static final int XTYP_CONNECT
    A client uses the XTYP_CONNECT transaction to establish a conversation. A Dynamic Data Exchange (DDE) server callback function, DdeCallback, receives this transaction when a client specifies a service name that the server supports (and a topic name that is not NULL) in a call to the `DdeConnect(int, com.sun.jna.platform.win32.Ddeml.HSZ, com.sun.jna.platform.win32.Ddeml.HSZ, com.sun.jna.platform.win32.Ddeml.CONVCONTEXT)` function.

    Used Parameters

    uType
      The transaction type.
    hsz1
      A handle to the topic name.
    hsz2
      A handle to the service name.
    dwData1
      A pointer to a CONVCONTEXT structure that contains context information for the conversation. If the client is not a DDEML application, this parameter is 0.
    dwData2
      Specifies whether the client is the same application instance as the server. If the parameter is 1, the client is the same instance. If the parameter is 0, the client is a different instance.

    Return value

    A server callback function should return TRUE to allow the client to establish a conversation on the specified service name and topic name pair, or the function should return FALSE to deny the conversation. If the callback function returns TRUE and a conversation is successfully established, the system passes the conversation handle to the server by issuing an `XTYP_CONNECT_CONFIRM` transaction to the server's callback function (unless the server specified the `CBF_SKIP_CONNECT_CONFIRMS` flag in the `function`).

    Remarks

    This transaction is filtered if the server application specified the `CBF_FAIL_CONNECTIONS` flag in the `DdeInitialize(com.sun.jna.platform.win32.WinDef.DWORDByReference, com.sun.jna.platform.win32.Ddeml.DdeCallback, int, int)` function.

    A server cannot block this transaction type; the CBR_BLOCK return code is ignored.

    See Also:
      - Constant Field Values

  - ### XTYP_CONNECT_CONFIRM

    static final int XTYP_CONNECT_CONFIRM
    A Dynamic Data Exchange (DDE) server callback function, DdeCallback, receives the XTYP_CONNECT_CONFIRM transaction to confirm that a conversation has been established with a client and to provide the server with the conversation handle. The system sends this transaction as a result of a previous `XTYP_CONNECT` or `XTYP_WILDCONNECT` transaction.

    Used Parameters

    uType
      The transaction type.
    hconv
      A handle to the new conversation.
    hsz1
      A handle to the topic name on which the conversation has been established.
    hsz2
      A handle to the service name on which the conversation has been established.
    dwData2
      Specifies whether the client is the same application instance as the server. If the parameter is 1, the client is the same instance. If the parameter is 0, the client is a different instance.

    Remarks

    This transaction is filtered if the server application specified the `CBF_SKIP_CONNECT_CONFIRMS` flag in the `DdeInitialize(com.sun.jna.platform.win32.WinDef.DWORDByReference, com.sun.jna.platform.win32.Ddeml.DdeCallback, int, int)` function.

    A server cannot block this transaction type; the CBR_BLOCK return code is ignored.

    See Also:
      - Constant Field Values

  - ### XTYP_XACT_COMPLETE

    static final int XTYP_XACT_COMPLETE
    A Dynamic Data Exchange (DDE) client callback function, DdeCallback, receives the XTYP_XACT_COMPLETE transaction when an asynchronous transaction, initiated by a call to the `DdeClientTransaction(com.sun.jna.Pointer, int, com.sun.jna.platform.win32.Ddeml.HCONV, com.sun.jna.platform.win32.Ddeml.HSZ, int, int, int, com.sun.jna.platform.win32.WinDef.DWORDByReference)` function, has completed.

    Used Parameters

    uType
      The transaction type.
    uFmt
      The format of the data associated with the completed transaction (if applicable) or NULL if no data was exchanged during the transaction.
    hConv
      A handle to the conversation.
    hsz1
      A handle to the topic name involved in the completed transaction.
    hsz2
      A handle to the item name involved in the completed transaction.
    hdata
      A handle to the data involved in the completed transaction, if applicable. If the transaction was successful but involved no data, this parameter is TRUE. This parameter is NULL if the transaction was unsuccessful.
    dwData1
      The transaction identifier of the completed transaction.
    dwData2
      Any applicable DDE_ status flags in the low word. This parameter provides support for applications dependent on DDE_APPSTATUS bits. It is recommended that applications no longer use these bits — they may not be supported in future versions of the DDEML.

    Remarks

    An application must not free the data handle obtained during this transaction. An application must, however, copy the data associated with the data handle if the application must process the data after the callback function returns. An application can use the `DdeGetData(com.sun.jna.platform.win32.Ddeml.HDDEDATA, com.sun.jna.Pointer, int, int)` function to copy the data.

    See Also:
      - Constant Field Values

  - ### XTYP_POKE

    static final int XTYP_POKE
    A client uses the XTYP_POKE transaction to send unsolicited data to the server. A Dynamic Data Exchange (DDE) server callback function, DdeCallback, receives this transaction when a client specifies XTYP_POKE in the `DdeClientTransaction(com.sun.jna.Pointer, int, com.sun.jna.platform.win32.Ddeml.HCONV, com.sun.jna.platform.win32.Ddeml.HSZ, int, int, int, com.sun.jna.platform.win32.WinDef.DWORDByReference)` function.

    Used Parameters

    uType
      The transaction type.
    uFmt
      The format of the data sent from the server.
    hConv
      A handle to the conversation.
    hsz1
      A handle to the topic name.
    hsz2
      A handle to the service name.
    hdata
      A handle to the data that the client is sending to the server.

    Return value

    A server callback function should return the `DDE_FACK` flag if it processes this transaction, the `DDE_FBUSY` flag if it is too busy to process this transaction, or the `DDE_FNOTPROCESSED` flag if it rejects this transaction.

    Remarks

    This transaction is filtered if the server application specified the `CBF_FAIL_POKES` flag in the `DdeInitialize(com.sun.jna.platform.win32.WinDef.DWORDByReference, com.sun.jna.platform.win32.Ddeml.DdeCallback, int, int)` function.

    See Also:
      - Constant Field Values

  - ### XTYP_REGISTER

    static final int XTYP_REGISTER
    A Dynamic Data Exchange (DDE) callback function, DdeCallback, receives the XTYP_REGISTER transaction type whenever a Dynamic Data Exchange Management Library (DDEML) server application uses the `DdeNameService(int, com.sun.jna.platform.win32.Ddeml.HSZ, com.sun.jna.platform.win32.Ddeml.HSZ, int)` function to register a service name, or whenever a non-DDEML application that supports the System topic is started.

    Used Parameters

    uType
      The transaction type.
    hsz1
      A handle to the base service name being registered.
    hsz2
      A handle to the instance-specific service name being registered.
    Remarks

    This transaction is filtered if the application specified the `CBF_SKIP_REGISTRATIONS` flag in the `DdeInitialize(com.sun.jna.platform.win32.WinDef.DWORDByReference, com.sun.jna.platform.win32.Ddeml.DdeCallback, int, int)` function.

    A application cannot block this transaction type; the CBR_BLOCK return code is ignored.

    An application should use the hsz1 parameter to add the service name to the list of servers available to the user. An application should use the hsz2 parameter to identify which application instance has started.

    See Also:
      - Constant Field Values

  - ### XTYP_REQUEST

    static final int XTYP_REQUEST
    A client uses the XTYP_REQUEST transaction to request data from a server. A Dynamic Data Exchange (DDE) server callback function, DdeCallback, receives this transaction when a client specifies XTYP_REQUEST in the `DdeClientTransaction(com.sun.jna.Pointer, int, com.sun.jna.platform.win32.Ddeml.HCONV, com.sun.jna.platform.win32.Ddeml.HSZ, int, int, int, com.sun.jna.platform.win32.WinDef.DWORDByReference)` function.

    Used Parameters

    uType
      The transaction type.
    uFmt
      The format in which the server should submit data to the client.
    hConv
      A handle to the conversation.
    hsz1
      A handle to the topic name.
    hsz2
      A handle to the service name.

    Return value

    The server should call the `DdeCreateDataHandle(int, com.sun.jna.Pointer, int, int, com.sun.jna.platform.win32.Ddeml.HSZ, int, int)` function to create a data handle that identifies the data and then return the handle. The server should return NULL if it is unable to complete the transaction. If the server returns NULL, the client will receive a `DDE_FNOTPROCESSED` flag.

    Remarks

    This transaction is filtered if the server application specified the `CBF_FAIL_REQUESTS` flag in the `DdeInitialize(com.sun.jna.platform.win32.WinDef.DWORDByReference, com.sun.jna.platform.win32.Ddeml.DdeCallback, int, int)` function.

    If responding to this transaction requires lengthy processing, the server can return the CBR_BLOCK return code to suspend future transactions on the current conversation and then process the transaction asynchronously. When the server has finished and the data is ready to pass to the client, the server can call the `DdeEnableCallback(int, com.sun.jna.platform.win32.Ddeml.HCONV, int)` function to resume the conversation.

    See Also:
      - Constant Field Values

  - ### XTYP_DISCONNECT

    static final int XTYP_DISCONNECT
    An application's Dynamic Data Exchange (DDE) callback function, DdeCallback, receives the XTYP_DISCONNECT transaction when the application's partner in a conversation uses the `DdeDisconnect(com.sun.jna.platform.win32.Ddeml.HCONV)` function to terminate the conversation.

    Used Parameters

    uType
      The transaction type.
    hconv
      A handle to that the conversation was terminated.
    dwData2
      Specifies whether the client is the same application instance as the server. If the parameter is 1, the client is the same instance. If the parameter is 0, the client is a different instance.

    Remarks

    This transaction is filtered if the application specified the `CBF_SKIP_DISCONNECTS` flag in the `DdeInitialize(com.sun.jna.platform.win32.WinDef.DWORDByReference, com.sun.jna.platform.win32.Ddeml.DdeCallback, int, int)` function.

    The application can obtain the status of the terminated conversation by calling the `DdeQueryConvInfo(com.sun.jna.platform.win32.Ddeml.HCONV, int, com.sun.jna.platform.win32.Ddeml.CONVINFO)` function while processing this transaction. The conversation handle becomes invalid after the callback function returns.

    An application cannot block this transaction type; the CBR_BLOCK return code is ignored.

    See Also:
      - Constant Field Values

  - ### XTYP_UNREGISTER

    static final int XTYP_UNREGISTER
    A Dynamic Data Exchange (DDE) callback function, DdeCallback, receives the XTYP_UNREGISTER transaction whenever a Dynamic Data Exchange Management Library (DDEML) server application uses the `DdeNameService(int, com.sun.jna.platform.win32.Ddeml.HSZ, com.sun.jna.platform.win32.Ddeml.HSZ, int)` function to unregister a service name, or whenever a non-DDEML application that supports the System topic is terminated.

    Used Parameters

    uType
      The transaction type.
    hsz1
      A handle to the base service name being unregistered.
    hsz2
      A handle to the instance-specific service name being unregistered.

    Remarks

    This transaction is filtered if the application specified the `CBF_SKIP_REGISTRATIONS` flag in the `DdeInitialize(com.sun.jna.platform.win32.WinDef.DWORDByReference, com.sun.jna.platform.win32.Ddeml.DdeCallback, int, int)` function.

    A application cannot block this transaction type; the CBR_BLOCK return code is ignored.

    An application should use the hsz1 parameter to remove the service name from the list of servers available to the user. An application should use the hsz2 parameter to identify which application instance has terminated.

    See Also:
      - Constant Field Values

  - ### XTYP_WILDCONNECT

    static final int XTYP_WILDCONNECT
    Enables a client to establish a conversation on each of the server's service name and topic name pairs that match the specified service name and topic name. A Dynamic Data Exchange (DDE) server callback function, DdeCallback, receives this transaction when a client specifies a NULL service name, a NULL topic name, or both in a call to the `DdeConnect(int, com.sun.jna.platform.win32.Ddeml.HSZ, com.sun.jna.platform.win32.Ddeml.HSZ, com.sun.jna.platform.win32.Ddeml.CONVCONTEXT)` or `DdeConnectList(int, com.sun.jna.platform.win32.Ddeml.HSZ, com.sun.jna.platform.win32.Ddeml.HSZ, com.sun.jna.platform.win32.Ddeml.HCONVLIST, com.sun.jna.platform.win32.Ddeml.CONVCONTEXT)` function.

    Used Parameters

    uType
      The transaction type.
    hsz1
      A handle to the topic name. If this parameter is NULL, the client is requesting a conversation on all topic names that the server supports.
    hsz2
      A handle to the service name. If this parameter is NULL, the client is requesting a conversation on all service names that the server supports.
    dwData1
      A pointer to a CONVCONTEXT structure that contains context information for the conversation. If the client is not a DDEML application, this parameter is set to 0.
    dwData2
      Specifies whether the client is the same application instance as the server. If the parameter is 1, the client is same instance. If the parameter is 0, the client is a different instance.

    Return value

    The server should return a data handle that identifies an array of HSZPAIR structures. The array should contain one structure for each service-name and topic-name pair that matches the service-name and topic-name pair requested by the client. The array must be terminated by a NULL string handle. The system sends the `XTYP_CONNECT_CONFIRM` transaction to the server to confirm each conversation and to pass the conversation handles to the server. The server will not receive these confirmations if it specified the `CBF_SKIP_CONNECT_CONFIRMS` flag in the `DdeInitialize(com.sun.jna.platform.win32.WinDef.DWORDByReference, com.sun.jna.platform.win32.Ddeml.DdeCallback, int, int)` function.

    The server should return NULL to refuse the XTYP_WILDCONNECT transaction.

    Remarks

    This transaction is filtered if the server application specified the `CBF_FAIL_CONNECTIONS` flag in the `DdeInitialize(com.sun.jna.platform.win32.WinDef.DWORDByReference, com.sun.jna.platform.win32.Ddeml.DdeCallback, int, int)` function.

    A server cannot block this transaction type; the CBR_BLOCK return code is ignored.

    See Also:
      - Constant Field Values

  - ### XTYP_MONITOR

    static final int XTYP_MONITOR
    A Dynamic Data Exchange (DDE) debugger's DDE callback function, DdeCallback, receives the XTYP_MONITOR transaction whenever a DDE event occurs in the system. To receive this transaction, an application must specify the `APPCLASS_MONITOR` value when it calls the `DdeInitialize(com.sun.jna.platform.win32.WinDef.DWORDByReference, com.sun.jna.platform.win32.Ddeml.DdeCallback, int, int)` function.

    Used Parameters

    uType
      The transaction type.
    hdata
      A handle to a DDE object that contains information about the DDE event. The application should use the `DdeAccessData(com.sun.jna.platform.win32.Ddeml.HDDEDATA, com.sun.jna.platform.win32.WinDef.DWORDByReference)` function to obtain a pointer to the object.
    dwData2
      The DDE event. This parameter can be one of the following values.

      Value | Meaning
      --- | ---
      `MF_CALLBACKS` | The system sent a transaction to a DDE callback function. The DDE object contains a MONCBSTRUCT structure that provides information about the transaction.
      `MF_CONV` | A DDE conversation was established or terminated. The DDE object contains a MONCONVSTRUCT structure that provides information about the conversation.
      `MF_ERRORS` | A DDE error occurred. The DDE object contains a MONERRSTRUCT structure that provides information about the error.
      `MF_HSZ_INFO` | A DDE application created, freed, or incremented the usage count of a string handle, or a string handle was freed as a result of a call to the `DdeUninitialize(int)` function. The DDE object contains a MONHSZSTRUCT structure that provides information about the string handle.
      `MF_LINKS` | A DDE application started or stopped an advise loop. The DDE object contains a MONLINKSTRUCT structure that provides information about the advise loop.
      `MF_POSTMSGS` | The system or an application posted a DDE message. The DDE object contains a MONMSGSTRUCT structure that provides information about the message.
      `MF_SENDMSGS` | The system or an application sent a DDE message. The DDE object contains a MONMSGSTRUCT structure that provides information about the message.

    Return value

    If the callback function processes this transaction, it should return 0.

    See Also:
      - Constant Field Values

  - ### XTYP_MASK

    static final int XTYP_MASK
    See Also:
      - Constant Field Values

  - ### XTYP_SHIFT

    static final int XTYP_SHIFT
    See Also:
      - Constant Field Values

  - ### TIMEOUT_ASYNC

    static final int TIMEOUT_ASYNC
    Timeout constants for asynchronous requests
    See Also:
      - Constant Field Values

  - ### QID_SYNC

    static final int QID_SYNC
    Pseudo Transaction ID constant for the synchronous transaction
    See Also:
      - Constant Field Values

  - ### SZDDESYS_TOPIC

    static final String SZDDESYS_TOPIC
    See Also:
      - Constant Field Values

  - ### SZDDESYS_ITEM_TOPICS

    static final String SZDDESYS_ITEM_TOPICS
    See Also:
      - Constant Field Values

  - ### SZDDESYS_ITEM_SYSITEMS

    static final String SZDDESYS_ITEM_SYSITEMS
    See Also:
      - Constant Field Values

  - ### SZDDESYS_ITEM_RTNMSG

    static final String SZDDESYS_ITEM_RTNMSG
    See Also:
      - Constant Field Values

  - ### SZDDESYS_ITEM_STATUS

    static final String SZDDESYS_ITEM_STATUS
    See Also:
      - Constant Field Values

  - ### SZDDESYS_ITEM_FORMATS

    static final String SZDDESYS_ITEM_FORMATS
    See Also:
      - Constant Field Values

  - ### SZDDESYS_ITEM_HELP

    static final String SZDDESYS_ITEM_HELP
    See Also:
      - Constant Field Values

  - ### SZDDE_ITEM_ITEMLIST

    static final String SZDDE_ITEM_ITEMLIST
    See Also:
      - Constant Field Values

  - ### DMLERR_NO_ERROR

    static final int DMLERR_NO_ERROR
    See Also:
      - Constant Field Values

  - ### DMLERR_FIRST

    static final int DMLERR_FIRST
    See Also:
      - Constant Field Values

  - ### DMLERR_ADVACKTIMEOUT

    static final int DMLERR_ADVACKTIMEOUT
    A request for a synchronous advise transaction has timed out.
    See Also:
      - Constant Field Values

  - ### DMLERR_BUSY

    static final int DMLERR_BUSY
    The response to the transaction caused the `DDE_FBUSY` flag to be set.
    See Also:
      - Constant Field Values

  - ### DMLERR_DATAACKTIMEOUT

    static final int DMLERR_DATAACKTIMEOUT
    A request for a synchronous data transaction has timed out.
    See Also:
      - Constant Field Values

  - ### DMLERR_DLL_NOT_INITIALIZED

    static final int DMLERR_DLL_NOT_INITIALIZED
    A DDEML function was called without first calling the `DdeInitialize(com.sun.jna.platform.win32.WinDef.DWORDByReference, com.sun.jna.platform.win32.Ddeml.DdeCallback, int, int)` function, or an invalid instance identifier was passed to a DDEML function.
    See Also:
      - Constant Field Values

  - ### DMLERR_DLL_USAGE

    static final int DMLERR_DLL_USAGE
    An application initialized as `APPCLASS_MONITOR` has attempted to perform a DDE transaction, or an application initialized as `APPCMD_CLIENTONLY` has attempted to perform server transactions.
    See Also:
      - Constant Field Values

  - ### DMLERR_EXECACKTIMEOUT

    static final int DMLERR_EXECACKTIMEOUT
    A request for a synchronous execute transaction has timed out.
    See Also:
      - Constant Field Values

  - ### DMLERR_INVALIDPARAMETER

    static final int DMLERR_INVALIDPARAMETER
    A parameter failed to be validated by the DDEML. Some of the possible causes follow:
    - The application used a data handle initialized with a different item name handle than was required by the transaction.
    - The application used a data handle that was initialized with a different clipboard data format than was required by the transaction.
    - The application used a client-side conversation handle with a server-side function or vice versa.
    - The application used a freed data handle or string handle.
    - More than one instance of the application used the same object.
    See Also:
      - Constant Field Values

  - ### DMLERR_LOW_MEMORY

    static final int DMLERR_LOW_MEMORY
    A DDEML application has created a prolonged race condition (in which the server application outruns the client), causing large amounts of memory to be consumed.
    See Also:
      - Constant Field Values

  - ### DMLERR_MEMORY_ERROR

    static final int DMLERR_MEMORY_ERROR
    A memory allocation has failed.
    See Also:
      - Constant Field Values

  - ### DMLERR_NOTPROCESSED

    static final int DMLERR_NOTPROCESSED
    A transaction has failed.
    See Also:
      - Constant Field Values

  - ### DMLERR_NO_CONV_ESTABLISHED

    static final int DMLERR_NO_CONV_ESTABLISHED
    A client's attempt to establish a conversation has failed.
    See Also:
      - Constant Field Values

  - ### DMLERR_POKEACKTIMEOUT

    static final int DMLERR_POKEACKTIMEOUT
    A request for a synchronous poke transaction has timed out.
    See Also:
      - Constant Field Values

  - ### DMLERR_POSTMSG_FAILED

    static final int DMLERR_POSTMSG_FAILED
    An internal call to the PostMessage function has failed.
    See Also:
      - Constant Field Values

  - ### DMLERR_REENTRANCY

    static final int DMLERR_REENTRANCY
    An application instance with a synchronous transaction already in progress attempted to initiate another synchronous transaction, or the `DdeEnableCallback(int, com.sun.jna.platform.win32.Ddeml.HCONV, int)` function was called from within a DDEML callback function.
    See Also:
      - Constant Field Values

  - ### DMLERR_SERVER_DIED

    static final int DMLERR_SERVER_DIED
    A server-side transaction was attempted on a conversation terminated by the client, or the server terminated before completing a transaction.
    See Also:
      - Constant Field Values

  - ### DMLERR_SYS_ERROR

    static final int DMLERR_SYS_ERROR
    An internal error has occurred in the DDEML.
    See Also:
      - Constant Field Values

  - ### DMLERR_UNADVACKTIMEOUT

    static final int DMLERR_UNADVACKTIMEOUT
    A request to end an advise transaction has timed out.
    See Also:
      - Constant Field Values

  - ### DMLERR_UNFOUND_QUEUE_ID

    static final int DMLERR_UNFOUND_QUEUE_ID
    An invalid transaction identifier was passed to a DDEML function. Once the application has returned from an `XTYP_XACT_COMPLETE` callback, the transaction identifier for that callback function is no longer valid.
    See Also:
      - Constant Field Values

  - ### DMLERR_LAST

    static final int DMLERR_LAST
    See Also:
      - Constant Field Values

  - ### HDATA_APPOWNED

    static final int HDATA_APPOWNED
    See Also:
      - Constant Field Values

  - ### CBF_FAIL_SELFCONNECTIONS

    static final int CBF_FAIL_SELFCONNECTIONS
    Prevents the callback function from receiving `XTYP_CONNECT` transactions from the application's own instance. This flag prevents an application from establishing a DDE conversation with its own instance. An application should use this flag if it needs to communicate with other instances of itself but not with itself.
    See Also:
      - Constant Field Values

  - ### CBF_FAIL_CONNECTIONS

    static final int CBF_FAIL_CONNECTIONS
    Prevents the callback function from receiving `XTYP_CONNECT` and `XTYP_WILDCONNECT` transactions.
    See Also:
      - Constant Field Values

  - ### CBF_FAIL_ADVISES

    static final int CBF_FAIL_ADVISES
    Prevents the callback function from receiving `XTYP_ADVSTART` and `XTYP_ADVSTOP` transactions. The system returns `DDE_FNOTPROCESSED` to each client that sends an `XTYP_ADVSTART` or `XTYP_ADVSTOP` transaction to the server.
    See Also:
      - Constant Field Values

  - ### CBF_FAIL_EXECUTES

    static final int CBF_FAIL_EXECUTES
    Prevents the callback function from receiving `XTYP_EXECUTE` transactions. The system returns `DDE_FNOTPROCESSED` to a client that sends an `XTYP_EXECUTE` transaction to the server.
    See Also:
      - Constant Field Values

  - ### CBF_FAIL_POKES

    static final int CBF_FAIL_POKES
    Prevents the callback function from receiving `XTYP_POKE` transactions. The system returns `DDE_FNOTPROCESSED` to a client that sends an `XTYP_POKE` transaction to the server.
    See Also:
      - Constant Field Values

  - ### CBF_FAIL_REQUESTS

    static final int CBF_FAIL_REQUESTS
    Prevents the callback function from receiving `XTYP_REQUEST` transactions. The system returns `DDE_FNOTPROCESSED` to a client that sends an `XTYP_REQUEST` transaction to the server.
    See Also:
      - Constant Field Values

  - ### CBF_FAIL_ALLSVRXACTIONS

    static final int 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.
    See Also:
      - Constant Field Values

  - ### CBF_SKIP_CONNECT_CONFIRMS

    static final int CBF_SKIP_CONNECT_CONFIRMS
    Prevents the callback function from receiving `XTYP_CONNECT_CONFIRM` notifications.
    See Also:
      - Constant Field Values

  - ### CBF_SKIP_REGISTRATIONS

    static final int CBF_SKIP_REGISTRATIONS
    Prevents the callback function from receiving `XTYP_REGISTER` notifications.
    See Also:
      - Constant Field Values

  - ### CBF_SKIP_UNREGISTRATIONS

    static final int CBF_SKIP_UNREGISTRATIONS
    Prevents the callback function from receiving `XTYP_UNREGISTER` notifications.
    See Also:
      - Constant Field Values

  - ### CBF_SKIP_DISCONNECTS

    static final int CBF_SKIP_DISCONNECTS
    Prevents the callback function from receiving `XTYP_DISCONNECT` notifications.
    See Also:
      - Constant Field Values

  - ### CBF_SKIP_ALLNOTIFICATIONS

    static final int CBF_SKIP_ALLNOTIFICATIONS
    Prevents the callback function from receiving any notifications. This flag is equivalent to combining all CBF_SKIP_ flags.
    See Also:
      - Constant Field Values

  - ### APPCMD_CLIENTONLY

    static final int 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`
    See Also:
      - Constant Field Values

  - ### APPCMD_FILTERINITS

    static final int 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(int, com.sun.jna.platform.win32.Ddeml.HSZ, com.sun.jna.platform.win32.Ddeml.HSZ, int)` or `DdeInitialize(com.sun.jna.platform.win32.WinDef.DWORDByReference, com.sun.jna.platform.win32.Ddeml.DdeCallback, int, int)` function. This flag is always in effect when an application calls `DdeInitialize(com.sun.jna.platform.win32.WinDef.DWORDByReference, com.sun.jna.platform.win32.Ddeml.DdeCallback, int, int)` for the first time, regardless of whether the application specifies the flag. On subsequent calls to `DdeInitialize(com.sun.jna.platform.win32.WinDef.DWORDByReference, com.sun.jna.platform.win32.Ddeml.DdeCallback, int, int)`, not specifying this flag turns off the application's service-name filters, but specifying it turns on the application's service name filters.
    See Also:
      - Constant Field Values

  - ### APPCMD_MASK

    static final int APPCMD_MASK
    See Also:
      - Constant Field Values

  - ### APPCLASS_STANDARD

    static final int APPCLASS_STANDARD
    Registers the application as a standard (nonmonitoring) DDEML application.
    See Also:
      - Constant Field Values

  - ### APPCLASS_MONITOR

    static final int 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.
    See Also:
      - Constant Field Values

  - ### APPCLASS_MASK

    static final int APPCLASS_MASK
    See Also:
      - Constant Field Values

  - ### MF_HSZ_INFO

    static final int 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(int)` function.
    See Also:
      - Constant Field Values

  - ### MF_SENDMSGS

    static final int MF_SENDMSGS
    Notifies the callback function whenever the system or an application sends a DDE message.
    See Also:
      - Constant Field Values

  - ### MF_POSTMSGS

    static final int MF_POSTMSGS
    Notifies the callback function whenever the system or an application posts a DDE message.
    See Also:
      - Constant Field Values

  - ### MF_CALLBACKS

    static final int MF_CALLBACKS
    Notifies the callback function whenever a transaction is sent to any DDE callback function in the system.
    See Also:
      - Constant Field Values

  - ### MF_ERRORS

    static final int MF_ERRORS
    Notifies the callback function whenever a DDE error occurs.
    See Also:
      - Constant Field Values

  - ### MF_LINKS

    static final int MF_LINKS
    Notifies the callback function whenever an advise loop is started or ended.
    See Also:
      - Constant Field Values

  - ### MF_CONV

    static final int MF_CONV
    Notifies the callback function whenever a conversation is established or terminated.
    See Also:
      - Constant Field Values

  - ### MF_MASK

    static final int MF_MASK
    See Also:
      - Constant Field Values

  - ### EC_ENABLEALL

    static final int EC_ENABLEALL
    See Also:
      - Constant Field Values

  - ### EC_ENABLEONE

    static final int EC_ENABLEONE
    See Also:
      - Constant Field Values

  - ### EC_DISABLE

    static final int EC_DISABLE
    See Also:
      - Constant Field Values

  - ### EC_QUERYWAITING

    static final int EC_QUERYWAITING
    See Also:
      - Constant Field Values

  - ### DNS_REGISTER

    static final int DNS_REGISTER
    See Also:
      - Constant Field Values

  - ### DNS_UNREGISTER

    static final int DNS_UNREGISTER
    See Also:
      - Constant Field Values

  - ### DNS_FILTERON

    static final int DNS_FILTERON
    See Also:
      - Constant Field Values

  - ### DNS_FILTEROFF

    static final int DNS_FILTEROFF
    See Also:
      - Constant Field Values

- ## Method Details

  - ### DdeInitialize

    int DdeInitialize(WinDef.DWORDByReference pidInst, Ddeml.DdeCallback fnCallback, int afCmd, int ulRes)
    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.
    Parameters:
      `pidInst` - 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.

      `fnCallback` - A pointer to the application-defined DDE callback function. This function processes DDE transactions sent by the system. For more information, see the DdeCallback callback function.
      `afCmd` - 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.

      Value | Meaning
      --- | ---
      `APPCLASS_MONITOR` 0x00000001L | 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` 0x00000000L | Registers the application as a standard (nonmonitoring) DDEML application.
      `APPCMD_CLIENTONLY` 0x00000010L | 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` 0x00000020L | 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(int, com.sun.jna.platform.win32.Ddeml.HSZ, com.sun.jna.platform.win32.Ddeml.HSZ, int)` or DdeInitialize function. This flag is always in effect when an application calls DdeInitialize for the first time, regardless of whether the application specifies the flag. On subsequent calls to DdeInitialize, not specifying this flag turns off the application's service-name filters, but specifying it turns on the application's service name filters.
      `CBF_FAIL_ALLSVRXACTIONS` 0x0003f000 | 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` 0x00004000 | Prevents the callback function from receiving `XTYP_ADVSTART` and `XTYP_ADVSTOP` transactions. The system returns `DDE_FNOTPROCESSED` to each client that sends an `XTYP_ADVSTART` or `XTYP_ADVSTOP` transaction to the server.
      `CBF_FAIL_CONNECTIONS` 0x00002000 | Prevents the callback function from receiving `XTYP_CONNECT` and `XTYP_WILDCONNECT` transactions.
      `CBF_FAIL_EXECUTES` 0x00008000 | Prevents the callback function from receiving `XTYP_EXECUTE` transactions. The system returns `DDE_FNOTPROCESSED` to a client that sends an `XTYP_EXECUTE` transaction to the server.
      `CBF_FAIL_POKES` 0x00010000 | Prevents the callback function from receiving `XTYP_POKE` transactions. The system returns `DDE_FNOTPROCESSED` to a client that sends an `XTYP_POKE` transaction to the server.
      `CBF_FAIL_REQUESTS` 0x00020000 | Prevents the callback function from receiving `XTYP_REQUEST` transactions. The system returns `DDE_FNOTPROCESSED` to a client that sends an `XTYP_REQUEST` transaction to the server.
      `CBF_FAIL_SELFCONNECTIONS` 0x00001000 | Prevents the callback function from receiving `XTYP_CONNECT` transactions from the application's own instance. This flag prevents an application from establishing a DDE conversation with its own instance. An application should use this flag if it needs to communicate with other instances of itself but not with itself.
      `CBF_SKIP_ALLNOTIFICATIONS` 0x003c0000 | Prevents the callback function from receiving any notifications. This flag is equivalent to combining all CBF_SKIP_ flags.
      `CBF_SKIP_CONNECT_CONFIRMS` 0x00040000 | Prevents the callback function from receiving `XTYP_CONNECT_CONFIRM` notifications.
      `CBF_SKIP_DISCONNECTS` 0x00200000 | Prevents the callback function from receiving `XTYP_DISCONNECT` notifications.
      `CBF_SKIP_REGISTRATIONS` 0x00080000 | Prevents the callback function from receiving `XTYP_REGISTER` notifications.
      `CBF_SKIP_UNREGISTRATIONS` 0x00100000 | Prevents the callback function from receiving `XTYP_UNREGISTER` notifications.
      `MF_CALLBACKS` 0x08000000 | Notifies the callback function whenever a transaction is sent to any DDE callback function in the system.
      `MF_CONV` 0x40000000 | Notifies the callback function whenever a conversation is established or terminated.
      `MF_ERRORS` 0x10000000 | Notifies the callback function whenever a DDE error occurs.
      `MF_HSZ_INFO` 0x01000000 | 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(int)` function.
      `MF_LINKS` 0x20000000 | Notifies the callback function whenever an advise loop is started or ended.
      `MF_POSTMSGS` 0x04000000 | Notifies the callback function whenever the system or an application posts a DDE message.
      `MF_SENDMSGS` 0x02000000 | 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_DLL_USAGE`
      - `DMLERR_INVALIDPARAMETER`
      - `DMLERR_SYS_ERROR`

  - ### DdeUninitialize

    boolean DdeUninitialize(int idInst)
    Frees all Dynamic Data Exchange Management Library (DDEML) resources associated with the calling application.
    Parameters:
      `idInst` - The application instance identifier obtained by a previous call to the `DdeInitialize(com.sun.jna.platform.win32.WinDef.DWORDByReference, com.sun.jna.platform.win32.Ddeml.DdeCallback, int, int)` function.
    Returns:
      true if function succeeded

  - ### DdeConnectList

    Ddeml.HCONVLIST DdeConnectList(int idInst, Ddeml.HSZ hszService, Ddeml.HSZ hszTopic, Ddeml.HCONVLIST hConvList, Ddeml.CONVCONTEXT pCC)
    Establishes a conversation with all server applications that support the specified service name and topic name pair. An application can also use this function to obtain a list of conversation handles by passing the function an existing conversation handle. The Dynamic Data Exchange Management Library removes the handles of any terminated conversations from the conversation list. The resulting conversation list contains the handles of all currently established conversations that support the specified service name and topic name.
    Parameters:
      `idInst` - The application instance identifier obtained by a previous call to the `DdeInitialize(com.sun.jna.platform.win32.WinDef.DWORDByReference, com.sun.jna.platform.win32.Ddeml.DdeCallback, int, int)` function.
      `hszService` - A handle to the string that specifies the service name of the server application with which a conversation is to be established. If this parameter is 0L, the system attempts to establish conversations with all available servers that support the specified topic name.
      `hszTopic` - A handle to the string that specifies the name of the topic on which a conversation is to be established. This handle must have been created by a previous call to the `DdeCreateStringHandle(int, java.lang.String, int)` function. If this parameter is 0L, the system will attempt to establish conversations on all topics supported by the selected server (or servers).
      `hConvList` - A handle to the conversation list to be enumerated. This parameter should be 0L if a new conversation list is to be established.
      `pCC` - A pointer to the CONVCONTEXT structure that contains conversation-context information. If this parameter is NULL, the server receives the default CONVCONTEXT structure during the `XTYP_CONNECT` or `XTYP_WILDCONNECT` transaction.
    Returns:
      If the function succeeds, the return value is the handle to a new conversation list.

      If the function fails, the return value is 0L. The handle to the old conversation list is no longer valid.

      The `DdeGetLastError(int)` function can be used to get the error code, which can be one of the following values:

      - `DMLERR_DLL_NOT_INITIALIZED`
      - `DMLERR_INVALIDPARAMETER`
      - `DMLERR_NO_CONV_ESTABLISHED`
      - `DMLERR_NO_ERROR`
      - `DMLERR_SYS_ERROR`

  - ### DdeQueryNextServer

    Ddeml.HCONV DdeQueryNextServer(Ddeml.HCONVLIST hConvList, Ddeml.HCONV hConvPrev)
    Retrieves the next conversation handle in the specified conversation list.
    Parameters:
      `hConvList` - A handle to the conversation list. This handle must have been created by a previous call to the `DdeConnectList(int, com.sun.jna.platform.win32.Ddeml.HSZ, com.sun.jna.platform.win32.Ddeml.HSZ, com.sun.jna.platform.win32.Ddeml.HCONVLIST, com.sun.jna.platform.win32.Ddeml.CONVCONTEXT)` function.
      `hConvPrev` - A handle to the conversation handle previously returned by this function. If this parameter is 0L, the function returns the first conversation handle in the list.
    Returns:
      If the list contains any more conversation handles, the return value is the next conversation handle in the list; otherwise, it is 0L.

  - ### DdeDisconnectList

    boolean DdeDisconnectList(Ddeml.HCONVLIST hConvList)
    Destroys the specified conversation list and terminates all conversations associated with the list.
    Parameters:
      `hConvList` - A handle to the conversation list. This handle must have been created by a previous call to the `DdeConnectList(int, com.sun.jna.platform.win32.Ddeml.HSZ, com.sun.jna.platform.win32.Ddeml.HSZ, com.sun.jna.platform.win32.Ddeml.HCONVLIST, com.sun.jna.platform.win32.Ddeml.CONVCONTEXT)` function.
    Returns:
      true if the function succeeds, the return value is nonzero.

      The `DdeGetLastError(int)` function can be used to get the error code, which can be one of the following values:

      - `DMLERR_DLL_NOT_INITIALIZED`
      - `DMLERR_INVALIDPARAMETER`
      - `DMLERR_NO_ERROR`

  - ### DdeConnect

    Ddeml.HCONV DdeConnect(int idInst, Ddeml.HSZ hszService, Ddeml.HSZ hszTopic, Ddeml.CONVCONTEXT pCC)
    Establishes a conversation with a server application that supports the specified service name and topic name pair. If more than one such server exists, the system selects only one.
    Parameters:
      `idInst` - The application instance identifier obtained by a previous call to the `DdeInitialize(com.sun.jna.platform.win32.WinDef.DWORDByReference, com.sun.jna.platform.win32.Ddeml.DdeCallback, int, int)` function.
      `hszService` - A handle to the string that specifies the service name of the server application with which a conversation is to be established. This handle must have been created by a previous call to the `DdeCreateStringHandle(int, java.lang.String, int)` function. If this parameter is 0L, a conversation is established with any available server.
      `hszTopic` - A handle to the string that specifies the name of the topic on which a conversation is to be established. This handle must have been created by a previous call to `DdeCreateStringHandle(int, java.lang.String, int)`. If this parameter is 0L, a conversation on any topic supported by the selected server is established.
      `pCC` - A pointer to the CONVCONTEXT structure that contains conversation context information. If this parameter is NULL, the server receives the default CONVCONTEXT structure during the `XTYP_CONNECT` or `XTYP_WILDCONNECT` transaction.
    Returns:
      If the function succeeds, the return value is the handle to the established conversation.

      If the function fails, the return value is 0L.

      The `DdeGetLastError(int)` function can be used to get the error code, which can be one of the following values:

      - `DMLERR_DLL_NOT_INITIALIZED`
      - `DMLERR_INVALIDPARAMETER`
      - `DMLERR_NO_CONV_ESTABLISHED`
      - `DMLERR_NO_ERROR`

  - ### DdeDisconnect

    boolean DdeDisconnect(Ddeml.HCONV hConv)
    Terminates a conversation started by either the `DdeConnect(int, com.sun.jna.platform.win32.Ddeml.HSZ, com.sun.jna.platform.win32.Ddeml.HSZ, com.sun.jna.platform.win32.Ddeml.CONVCONTEXT)` or `DdeConnectList(int, com.sun.jna.platform.win32.Ddeml.HSZ, com.sun.jna.platform.win32.Ddeml.HSZ, com.sun.jna.platform.win32.Ddeml.HCONVLIST, com.sun.jna.platform.win32.Ddeml.CONVCONTEXT)` function and invalidates the specified conversation handle.
    Parameters:
      `hConv` - A handle to the active conversation to be terminated.
    Returns:
      true if the function succeeds

      The `DdeGetLastError(int)` function can be used to get the error code, which can be one of the following values:

      - `DMLERR_DLL_NOT_INITIALIZED`
      - `DMLERR_NO_CONV_ESTABLISHED`
      - `DMLERR_NO_ERROR`

  - ### DdeReconnect

    Ddeml.HCONV DdeReconnect(Ddeml.HCONV hConv)
    Enables a client Dynamic Data Exchange Management Library (DDEML) application to attempt to reestablish a conversation with a service that has terminated a conversation with the client. When the conversation is reestablished, the Dynamic Data Exchange Management Library (DDEML) attempts to reestablish any preexisting advise loops.
    Parameters:
      `hConv` - A handle to the conversation to be reestablished. A client must have obtained the conversation handle by a previous call to the `DdeConnect(int, com.sun.jna.platform.win32.Ddeml.HSZ, com.sun.jna.platform.win32.Ddeml.HSZ, com.sun.jna.platform.win32.Ddeml.CONVCONTEXT)` function or from an `XTYP_DISCONNECT` transaction.
    Returns:
      If the function succeeds, the return value is the handle to the reestablished conversation.

      If the function fails, the return value is 0L.

      The `DdeGetLastError(int)` function can be used to get the error code, which can be one of the following values:

      - `DMLERR_DLL_NOT_INITIALIZED`
      - `DMLERR_INVALIDPARAMETER`
      - `DMLERR_NO_CONV_ESTABLISHED`
      - `DMLERR_NO_ERROR`

  - ### DdeQueryConvInfo

    int DdeQueryConvInfo(Ddeml.HCONV hConv, int idTransaction, Ddeml.CONVINFO pConvInfo)
    Retrieves information about a Dynamic Data Exchange (DDE) transaction and about the conversation in which the transaction takes place.
    Parameters:
      `hConv` - A handle to the conversation.
      `idTransaction` - The transaction. For asynchronous transactions, this parameter should be a transaction identifier returned by the `DdeClientTransaction(com.sun.jna.Pointer, int, com.sun.jna.platform.win32.Ddeml.HCONV, com.sun.jna.platform.win32.Ddeml.HSZ, int, int, int, com.sun.jna.platform.win32.WinDef.DWORDByReference)` function. For synchronous transactions, this parameter should be `QID_SYNC`.
      `pConvInfo` - A pointer to the CONVINFO structure that receives information about the transaction and conversation. The cb member of the CONVINFO structure must specify the length of the buffer allocated for the structure.
    Returns:
      If the function succeeds, the return value is the number of bytes copied into the CONVINFO structure.

      If the function fails, the return value is FALSE.

      The `DdeGetLastError(int)` function can be used to get the error code, which can be one of the following values:

      - `DMLERR_DLL_NOT_INITIALIZED`
      - `DMLERR_NO_CONV_ESTABLISHED`
      - `DMLERR_NO_ERROR`
      - `DMLERR_UNFOUND_QUEUE_ID`

  - ### DdeSetUserHandle

    boolean DdeSetUserHandle(Ddeml.HCONV hConv, int id, BaseTSD.DWORD_PTR hUser)
    Associates an application-defined value with a conversation handle or a transaction identifier. This is useful for simplifying the processing of asynchronous transactions. An application can use the `DdeQueryConvInfo(com.sun.jna.platform.win32.Ddeml.HCONV, int, com.sun.jna.platform.win32.Ddeml.CONVINFO)` function to retrieve this value.
    Parameters:
      `hConv` - A handle to the conversation.
      `id` - The transaction identifier to associate with the value specified by the hUser parameter. An application should set this parameter to `QID_SYNC` to associate hUser with the conversation identified by the hConv parameter.
      `hUser` - The value to be associated with the conversation handle.
    Returns:
      true If the function succeeds.

      The `DdeGetLastError(int)` function can be used to get the error code, which can be one of the following values:

      - `DMLERR_DLL_NOT_INITIALIZED`
      - `DMLERR_INVALIDPARAMETER`
      - `DMLERR_NO_ERROR`
      - `DMLERR_UNFOUND_QUEUE_ID`

  - ### DdeAbandonTransaction

    boolean DdeAbandonTransaction(int idInst, Ddeml.HCONV hConv, int idTransaction)
    Abandons the specified asynchronous transaction and releases all resources associated with the transaction.
    Parameters:
      `idInst` - The application instance identifier obtained by a previous call to the `DdeInitialize(com.sun.jna.platform.win32.WinDef.DWORDByReference, com.sun.jna.platform.win32.Ddeml.DdeCallback, int, int)` function.
      `hConv` - A handle to the conversation in which the transaction was initiated. If this parameter is 0L, all transactions are abandoned (that is, the idTransaction parameter is ignored).
      `idTransaction` - The identifier of the transaction to be abandoned. If this parameter is 0L, all active transactions in the specified conversation are abandoned.
    Returns:
      true if the function succeeds

      The `DdeGetLastError(int)` function can be used to get the error code, which can be one of the following values:

      - `DMLERR_DLL_NOT_INITIALIZED`
      - `DMLERR_INVALIDPARAMETER`
      - `DMLERR_NO_ERROR`
      - `DMLERR_UNFOUND_QUEUE_ID`

  - ### DdePostAdvise

    boolean DdePostAdvise(int idInst, Ddeml.HSZ hszTopic, Ddeml.HSZ hszItem)
    Causes the system to send an `XTYP_ADVREQ` transaction to the calling (server) application's Dynamic Data Exchange (DDE) callback function for each client with an active advise loop on the specified topic and item. A server application should call this function whenever the data associated with the topic name or item name pair changes.
    Parameters:
      `idInst` - The application instance identifier obtained by a previous call to the `DdeInitialize(com.sun.jna.platform.win32.WinDef.DWORDByReference, com.sun.jna.platform.win32.Ddeml.DdeCallback, int, int)` function.
      `hszTopic` - A handle to a string that specifies the topic name. To send notifications for all topics with active advise loops, an application can set this parameter to 0L.
      `hszItem` - A handle to a string that specifies the item name. To send notifications for all items with active advise loops, an application can set this parameter to 0L.
    Returns:
      true if the function succeeds

      The `DdeGetLastError(int)` function can be used to get the error code, which can be one of the following values:

      - `DMLERR_DLL_NOT_INITIALIZED`
      - `DMLERR_DLL_USAGE`
      - `DMLERR_NO_ERROR`

  - ### DdeEnableCallback

    boolean DdeEnableCallback(int idInst, Ddeml.HCONV hConv, int wCmd)
    Enables or disables transactions for a specific conversation or for all conversations currently established by the calling application.
    Parameters:
      `idInst` - The application-instance identifier obtained by a previous call to the `DdeInitialize(com.sun.jna.platform.win32.WinDef.DWORDByReference, com.sun.jna.platform.win32.Ddeml.DdeCallback, int, int)` function.
      `hConv` - A handle to the conversation to enable or disable. If this parameter is NULL, the function affects all conversations.
      `wCmd` - The function code. This parameter can be one of the following values.

      Value | Meaning
      --- | ---
      `EC_ENABLEALL` | Enables all transactions for the specified conversation.
      `EC_ENABLEONE` | Enables one transaction for the specified conversation.
      `EC_DISABLE` | Disables all blockable transactions for the specified conversation. A server application can disable the following transactions: `XTYP_ADVSTART` `XTYP_ADVSTOP` `XTYP_EXECUTE` `XTYP_POKE` `XTYP_REQUEST` A client application can disable the following transactions: `XTYP_ADVDATA` `XTYP_XACT_COMPLETE`
      `EC_QUERYWAITING` | Determines whether any transactions are in the queue for the specified conversation.

    Returns:
      If the function succeeds, the return value is nonzero.

      If the function fails, the return value is zero.

      If the wCmd parameter is `EC_QUERYWAITING`, and the application transaction queue contains one or more unprocessed transactions that are not being processed, the return value is TRUE; otherwise, it is FALSE.

      The `DdeGetLastError(int)` function can be used to get the error code, which can be one of the following values:

      - `DMLERR_DLL_NOT_INITIALIZED`
      - `DMLERR_INVALIDPARAMETER`
      - `DMLERR_NO_ERROR`

  - ### DdeImpersonateClient

    boolean DdeImpersonateClient(Ddeml.HCONV hConv)
    Impersonates a Dynamic Data Exchange (DDE) client application in a DDE client conversation.
    Parameters:
      `hConv` - A handle to the DDE client conversation to be impersonated.
    Returns:
      true if the function succeeds

      To get extended error information call GetLastError.

  - ### DdeNameService

    Ddeml.HDDEDATA DdeNameService(int idInst, Ddeml.HSZ hsz1, Ddeml.HSZ hsz2, int afCmd)
    Registers or unregisters the service names a Dynamic Data Exchange (DDE) server supports. This function causes the system to send `XTYP_REGISTER` or `XTYP_UNREGISTER` transactions to other running Dynamic Data Exchange Management Library (DDEML) client applications.
    Parameters:
      `idInst` - The application instance identifier obtained by a previous call to the `DdeInitialize(com.sun.jna.platform.win32.WinDef.DWORDByReference, com.sun.jna.platform.win32.Ddeml.DdeCallback, int, int)` function.
      `hsz1` - A handle to the string that specifies the service name the server is registering or unregistering. An application that is unregistering all of its service names should set this parameter to 0L.
      `hsz2` - Reserved; should be set to 0L.
      `afCmd` - The service name options. This parameter can be one of the following values.

      Value | Meaning
      --- | ---
      `DNS_REGISTER` | Registers the error code service name.
      `DNS_UNREGISTER` | Unregisters the error code service name. If the hsz1 parameter is 0L, all service names registered by the server will be unregistered.
      `DNS_FILTERON` | Turns on service name initiation filtering. The filter prevents a server from receiving `XTYP_CONNECT` transactions for service names it has not registered. This is the default setting for this filter. If a server application does not register any service names, the application cannot receive `XTYP_WILDCONNECT` transactions.
      `DNS_FILTEROFF` | Turns off service name initiation filtering. If this flag is specified, the server receives an `XTYP_CONNECT` transaction whenever another DDE application calls the `DdeConnect(int, com.sun.jna.platform.win32.Ddeml.HSZ, com.sun.jna.platform.win32.Ddeml.HSZ, com.sun.jna.platform.win32.Ddeml.CONVCONTEXT)` function, regardless of the service name.

    Returns:
      If the function succeeds, it returns a nonzero value. That value is not a true HDDEDATA value, merely a Boolean indicator of success. The function is typed HDDEDATA to allow for possible future expansion of the function and a more sophisticated return value.

      If the function fails, the return value is 0L.

      The `DdeGetLastError(int)` function can be used to get the error code, which can be one of the following values:

      - `DMLERR_DLL_NOT_INITIALIZED`
      - `DMLERR_DLL_USAGE`
      - `DMLERR_INVALIDPARAMETER`
      - `DMLERR_NO_ERROR`

  - ### DdeClientTransaction

    Ddeml.HDDEDATA DdeClientTransaction(Pointer pData, int cbData, Ddeml.HCONV hConv, Ddeml.HSZ hszItem, int wFmt, int wType, int dwTimeout, WinDef.DWORDByReference pdwResult)
    Begins a data transaction between a client and a server. Only a Dynamic Data Exchange (DDE) client application can call this function, and the application can use it only after establishing a conversation with the server.
    Parameters:
      `pData` - The beginning of the data the client must pass to the server.

      Optionally, an application can specify the data handle (HDDEDATA) to pass to the server and in that case the cbData parameter should be set to -1. This parameter is required only if the wType parameter is `XTYP_EXECUTE` or `XTYP_POKE`. Otherwise, this parameter should be NULL.

      For the optional usage of this parameter, `XTYP_POKE` transactions where pData is a data handle, the handle must have been created by a previous call to the `DdeCreateDataHandle(int, com.sun.jna.Pointer, int, int, com.sun.jna.platform.win32.Ddeml.HSZ, int, int)` function, employing the same data format specified in the wFmt parameter.

      `cbData` - The length, in bytes, of the data pointed to by the pData parameter, including the terminating NULL, if the data is a string. A value of -1 indicates that pData is a data handle that identifies the data being sent.
      `hConv` - A handle to the conversation in which the transaction is to take place.
      `hszItem` - A handle to the data item for which data is being exchanged during the transaction. This handle must have been created by a previous call to the `DdeCreateStringHandle(int, java.lang.String, int)` function. This parameter is ignored (and should be set to 0L) if the wType parameter is `XTYP_EXECUTE`.
      `wFmt` - The standard clipboard format in which the data item is being submitted or requested.

      If the transaction specified by the wType parameter does not pass data or is `XTYP_EXECUTE`, this parameter should be zero.

      If the transaction specified by the wType parameter references non-execute DDE data ( `XTYP_POKE`, `XTYP_ADVSTART`, `XTYP_ADVSTOP`, `XTYP_REQUEST`), the wFmt value must be either a valid predefined (CF_) DDE format or a valid registered clipboard format.

      `wType` - The transaction type. This parameter can be one of the following values.

      Value | Meaning
      --- | ---
      `XTYP_ADVSTART` | Begins an advise loop. Any number of distinct advise loops can exist within a conversation. An application can alter the advise loop type by combining the `XTYP_ADVSTART` transaction type with one or more of the following flags: `XTYPF_NODATA`. Instructs the server to notify the client of any data changes without actually sending the data. This flag gives the client the option of ignoring the notification or requesting the changed data from the server. `XTYPF_ACKREQ`. Instructs the server to wait until the client acknowledges that it received the previous data item before sending the next data item. This flag prevents a fast server from sending data faster than the client can process it.
      `XTYP_ADVSTOP` | Ends an advise loop.
      `XTYP_EXECUTE` | Begins an execute transaction.
      `XTYP_POKE` | Begins a poke transaction.
      `XTYP_REQUEST` | Begins a request transaction.

      `dwTimeout` - The maximum amount of time, in milliseconds, that the client will wait for a response from the server application in a synchronous transaction. This parameter should be `TIMEOUT_ASYNC` for asynchronous transactions.
      `pdwResult` - A pointer to a variable that receives the result of the transaction. An application that does not check the result can use NULL for this value. For synchronous transactions, the low-order word of this variable contains any applicable DDE_ flags resulting from the transaction. This provides support for applications dependent on DDE_APPSTATUS bits. It is, however, recommended that applications no longer use these bits because they may not be supported in future versions of the Dynamic Data Exchange Management Library (DDEML). For asynchronous transactions, this variable is filled with a unique transaction identifier for use with the `DdeAbandonTransaction(int, com.sun.jna.platform.win32.Ddeml.HCONV, int)` function and the `XTYP_XACT_COMPLETE` transaction.
    Returns:
      If the function succeeds, the return value is a data handle that identifies the data for successful synchronous transactions in which the client expects data from the server. The return value is nonzero for successful asynchronous transactions and for synchronous transactions in which the client does not expect data. The return value is zero for all unsuccessful transactions.

      The `DdeGetLastError(int)` function can be used to get the error code, which can be one of the following values:

      - `DMLERR_ADVACKTIMEOUT`
      - `DMLERR_BUSY`
      - `DMLERR_DATAACKTIMEOUT`
      - `DMLERR_DLL_NOT_INITIALIZED`
      - `DMLERR_EXECACKTIMEOUT`
      - `DMLERR_INVALIDPARAMETER`
      - `DMLERR_MEMORY_ERROR`
      - `DMLERR_NO_CONV_ESTABLISHED`
      - `DMLERR_NO_ERROR`
      - `DMLERR_NOTPROCESSED`
      - `DMLERR_POKEACKTIMEOUT`
      - `DMLERR_POSTMSG_FAILED`
      - `DMLERR_REENTRANCY`
      - `DMLERR_SERVER_DIED`
      - `DMLERR_UNADVACKTIMEOUT`

  - ### DdeCreateDataHandle

    Ddeml.HDDEDATA DdeCreateDataHandle(int idInst, Pointer pSrc, int cb, int cbOff, Ddeml.HSZ hszItem, int wFmt, int afCmd)
    Creates a Dynamic Data Exchange (DDE) object and fills the object with data from the specified buffer. A DDE application uses this function during transactions that involve passing data to the partner application.
    Parameters:
      `idInst` - The application instance identifier obtained by a previous call to the `DdeInitialize(com.sun.jna.platform.win32.WinDef.DWORDByReference, com.sun.jna.platform.win32.Ddeml.DdeCallback, int, int)` function.
      `pSrc` - The data to be copied to the DDE object. If this parameter is NULL, no data is copied to the object.
      `cb` - The amount of memory, in bytes, to copy from the buffer pointed to by pSrc. (include the terminating NULL, if the data is a string). If this parameter is zero, the pSrc parameter is ignored.
      `cbOff` - An offset, in bytes, from the beginning of the buffer pointed to by the pSrc parameter. The data beginning at this offset is copied from the buffer to the DDE object.
      `hszItem` - A handle to the string that specifies the data item corresponding to the DDE object. This handle must have been created by a previous call to the `DdeCreateStringHandle(int, java.lang.String, int)` function. If the data handle is to be used in an `XTYP_EXECUTE` transaction, this parameter must be 0L.
      `wFmt` - The standard clipboard format of the data.
      `afCmd` - The creation flags. This parameter can be HDATA_APPOWNED, which specifies that the server application calling the DdeCreateDataHandle function owns the data handle this function creates. This flag enables the application to share the data handle with other DDEML applications rather than creating a separate handle to pass to each application. If this flag is specified, the application must eventually free the shared memory object associated with the handle by using the `DdeFreeDataHandle(com.sun.jna.platform.win32.Ddeml.HDDEDATA)` function. If this flag is not specified, the handle becomes invalid in the application that created the handle after the data handle is returned by the application's DDE callback function or is used as a parameter in another DDEML function.
    Returns:
      If the function succeeds, the return value is a data handle.

      If the function fails, the return value is 0L.

      The `DdeGetLastError(int)` function can be used to get the error code, which can be one of the following values:

      - `DMLERR_DLL_NOT_INITIALIZED`
      - `DMLERR_INVALIDPARAMETER`
      - `DMLERR_MEMORY_ERROR`
      - `DMLERR_NO_ERROR`

  - ### DdeAddData

    Ddeml.HDDEDATA DdeAddData(Ddeml.HDDEDATA hData, Pointer pSrc, int cb, int cbOff)
    Adds data to the specified Dynamic Data Exchange (DDE) object. An application can add data starting at any offset from the beginning of the object. If new data overlaps data already in the object, the new data overwrites the old data in the bytes where the overlap occurs. The contents of locations in the object that have not been written to are undefined.
    Parameters:
      `hData` - A handle to the DDE object that receives additional data.
      `pSrc` - The data to be added to the DDE object.
      `cb` - The length, in bytes, of the data to be added to the DDE object, including the terminating NULL, if the data is a string.
      `cbOff` - An offset, in bytes, from the beginning of the DDE object. The additional data is copied to the object beginning at this offset.
    Returns:
      If the function succeeds, the return value is a new handle to the DDE object. The new handle is used in all references to the object.

      If the function fails, the return value is zero.

      The `DdeGetLastError(int)` function can be used to get the error code, which can be one of the following values:

      - `DMLERR_DLL_NOT_INITIALIZED`
      - `DMLERR_INVALIDPARAMETER`
      - `DMLERR_MEMORY_ERROR`
      - `DMLERR_NO_ERROR`

  - ### DdeGetData

    int DdeGetData(Ddeml.HDDEDATA hData, Pointer pDst, int cbMax, int cbOff)
    Copies data from the specified Dynamic Data Exchange (DDE) object to the specified local buffer.
    Parameters:
      `hData` - A handle to the DDE object that contains the data to copy.
      `pDst` - A pointer to the buffer that receives the data. If this parameter is NULL, the DdeGetData function returns the amount of data, in bytes, that would be copied to the buffer.
      `cbMax` - The maximum amount of data, in bytes, to copy to the buffer pointed to by the pDst parameter. Typically, this parameter specifies the length of the buffer pointed to by pDst.
      `cbOff` - An offset within the DDE object. Data is copied from the object beginning at this offset.
    Returns:
      If the pDst parameter points to a buffer, the return value is the size, in bytes, of the memory object associated with the data handle or the size specified in the cbMax parameter, whichever is lower.

      If the pDst parameter is NULL, the return value is the size, in bytes, of the memory object associated with the data handle.

      The `DdeGetLastError(int)` function can be used to get the error code, which can be one of the following values:

      - `DMLERR_DLL_NOT_INITIALIZED`
      - `DMLERR_INVALIDPARAMETER`
      - `DMLERR_NO_ERROR`

  - ### DdeAccessData

    Pointer DdeAccessData(Ddeml.HDDEDATA hData, WinDef.DWORDByReference pcbDataSize)
    Provides access to the data in the specified Dynamic Data Exchange (DDE) object. An application must call the `DdeUnaccessData(com.sun.jna.platform.win32.Ddeml.HDDEDATA)` function when it has finished accessing the data in the object.
    Parameters:
      `hData` - A handle to the DDE object to be accessed.
      `pcbDataSize` - A pointer to a variable that receives the size, in bytes, of the DDE object identified by the hData parameter. If this parameter is NULL, no size information is returned.
    Returns:
      If the function succeeds, the return value is a pointer to the first byte of data in the DDE object.

      If the function fails, the return value is NULL.

      The `DdeGetLastError(int)` function can be used to get the error code, which can be one of the following values:

      - `DMLERR_DLL_NOT_INITIALIZED`
      - `DMLERR_INVALIDPARAMETER`
      - `DMLERR_NO_ERROR`

  - ### DdeUnaccessData

    boolean DdeUnaccessData(Ddeml.HDDEDATA hData)
    Unaccesses a Dynamic Data Exchange (DDE) object. An application must call this function after it has finished accessing the object.
    Parameters:
      `hData` - A handle to the DDE object.
    Returns:
      true if the function succeeds

      The `DdeGetLastError(int)` function can be used to get the error code, which can be one of the following values:

      - `DMLERR_DLL_NOT_INITIALIZED`
      - `DMLERR_INVALIDPARAMETER`
      - `DMLERR_NO_ERROR`

  - ### DdeFreeDataHandle

    boolean DdeFreeDataHandle(Ddeml.HDDEDATA hData)
    Frees a Dynamic Data Exchange (DDE) object and deletes the data handle associated with the object.
    Parameters:
      `hData` - A handle to the DDE object to be freed. This handle must have been created by a previous call to the `DdeCreateDataHandle(int, com.sun.jna.Pointer, int, int, com.sun.jna.platform.win32.Ddeml.HSZ, int, int)` function or returned by the `DdeClientTransaction(com.sun.jna.Pointer, int, com.sun.jna.platform.win32.Ddeml.HCONV, com.sun.jna.platform.win32.Ddeml.HSZ, int, int, int, com.sun.jna.platform.win32.WinDef.DWORDByReference)` function.
    Returns:
      true if freeing succeeded

      The `DdeGetLastError(int)` function can be used to get the error code, which can be one of the following values:

      - `DMLERR_INVALIDPARAMETER`
      - `DMLERR_NO_ERROR`

  - ### DdeGetLastError

    int DdeGetLastError(int idInst)
    Parameters:
      `idInst` - The application instance identifier obtained by a previous call to the `DdeInitialize(com.sun.jna.platform.win32.WinDef.DWORDByReference, com.sun.jna.platform.win32.Ddeml.DdeCallback, int, int)` function.
    Returns:
      See `Ddeml`.DMLERR_*

  - ### DdeCreateStringHandle

    Ddeml.HSZ DdeCreateStringHandle(int idInst, String psz, int iCodePage)
    Creates a handle that identifies the specified string. A Dynamic Data Exchange (DDE) client or server application can pass the string handle as a parameter to other Dynamic Data Exchange Management Library (DDEML) functions.
    Parameters:
      `idInst` - The application instance identifier obtained by a previous call to the `DdeInitialize(com.sun.jna.platform.win32.WinDef.DWORDByReference, com.sun.jna.platform.win32.Ddeml.DdeCallback, int, int)` function.
      `psz` - The null-terminated string for which a handle is to be created. This string can be up to 255 characters. The reason for this limit is that DDEML string management functions are implemented using atoms.
      `iCodePage` - The code page to be used to render the string. This value should be either `CP_WINANSI` (the default code page) or `CP_WINUNICODE`, depending on whether the ANSI or Unicode version of `DdeInitialize(com.sun.jna.platform.win32.WinDef.DWORDByReference, com.sun.jna.platform.win32.Ddeml.DdeCallback, int, int)` was called by the client application.
    Returns:
      If the function succeeds, the return value is a string handle.

      If the function fails, the return value is 0L.

      The `DdeGetLastError(int)` function can be used to get the error code, which can be one of the following values:

      - `DMLERR_INVALIDPARAMETER`
      - `DMLERR_NO_ERROR`
      - `DMLERR_SYS_ERROR`

  - ### DdeQueryString

    int DdeQueryString(int idInst, Ddeml.HSZ hsz, Pointer psz, int cchMax, int iCodePage)
    Copies text associated with a string handle into a buffer.
    Parameters:
      `idInst` - The application instance identifier obtained by a previous call to the `DdeInitialize(com.sun.jna.platform.win32.WinDef.DWORDByReference, com.sun.jna.platform.win32.Ddeml.DdeCallback, int, int)` function.
      `hsz` - A handle to the string to copy. This handle must have been created by a previous call to the `DdeCreateStringHandle(int, java.lang.String, int)` function.
      `psz` - A pointer to a buffer that receives the string. To obtain the length of the string, this parameter should be set to NULL.
      `cchMax` - The length, in characters, of the buffer pointed to by the psz parameter. For the ANSI version of the function, this is the number of bytes; for the Unicode version, this is the number of characters. If the string is longer than ( cchMax� 1), it will be truncated. If the psz parameter is set to NULL, this parameter is ignored.
      `iCodePage` - The code page used to render the string. This value should be either `CP_WINANSI` or `CP_WINUNICODE`.
    Returns:
      If the psz parameter specified a valid pointer, the return value is the length, in characters, of the returned text (not including the terminating null character). If the psz parameter specified a NULL pointer, the return value is the length of the text associated with the hsz parameter (not including the terminating null character).

      If an error occurs, the return value is 0L

  - ### DdeFreeStringHandle

    boolean DdeFreeStringHandle(int idInst, Ddeml.HSZ hsz)
    Frees a string handle in the calling application.
    Parameters:
      `idInst` - The application instance identifier obtained by a previous call to the `DdeInitialize(com.sun.jna.platform.win32.WinDef.DWORDByReference, com.sun.jna.platform.win32.Ddeml.DdeCallback, int, int)` function.
      `hsz` - A handle to the string handle to be freed. This handle must have been created by a previous call to the `DdeCreateStringHandle(int, java.lang.String, int)` function.
    Returns:
      true if the function succeeds.

  - ### DdeKeepStringHandle

    boolean DdeKeepStringHandle(int idInst, Ddeml.HSZ hsz)
    Increments the usage count associated with the specified handle. This function enables an application to save a string handle passed to the application's Dynamic Data Exchange (DDE) callback function. Otherwise, a string handle passed to the callback function is deleted when the callback function returns. This function should also be used to keep a copy of a string handle referenced by the CONVINFO structure returned by the `DdeQueryConvInfo(com.sun.jna.platform.win32.Ddeml.HCONV, int, com.sun.jna.platform.win32.Ddeml.CONVINFO)` function.
    Parameters:
      `idInst` - The application instance identifier obtained by a previous call to the `DdeInitialize(com.sun.jna.platform.win32.WinDef.DWORDByReference, com.sun.jna.platform.win32.Ddeml.DdeCallback, int, int)` function.
      `hsz` - A handle to the string handle to be saved.
    Returns:
      true if the function succeeded