═══ 1. Dynamic Data Exchange Classes ═══ Provide support for the Dynamic Data Exchange (DDE) used by the applications you develop. ═══ 1.1. Class Hierarchy ═══ ISet ├─IDDEActiveServerSet └─IDDEClientHotLinkSet IBase ├─IDDE ├─IDDEActiveServer └─IVBase ├─IEvent │ ├─IDDEBeginEvent │ ├─IDDEEndEvent │ │ └─IDDEClientEndEvent │ └─IDDEEvent │ ├─IDDEAcknowledgeEvent │ │ ├─IDDEAcknowledgeExecuteEvent │ │ ├─IDDEAcknowledgePokeEvent │ │ ├─IDDEClientAcknowledgeEvent │ │ └─IDDEServerAcknowledgeEvent │ └─IDDESetAcknowledgeInfoEvent │ ├─IDDEClientHotLinkEvent │ ├─IDDEDataEvent │ ├─IDDEExecuteEvent │ ├─IDDEPokeEvent │ ├─IDDERequestDataEvent │ └─IDDEServerHotLinkEvent └─IHandler ├─IDDEClientConversation └─IDDETopicServer ═══ 1.2. IDDE ═══ Description Derivation Public Functions Public Data Protected Data Nested Types Public Data includes Styles and Notification IDs if they exist. To close all the panels in a chapter, double click on this panel's system menu. ═══ Derivation - IDDE ═══ IBase │ IDDE Inherited by none. ═══ Class Description - IDDE ═══ iddecomm.hpp This class contains synonyms for DDE formats that are pre-defined by the operating system. ═══ Public Functions - IDDE ═══ Inherited Members IBase asDebugInfo asString messageFile messageText setMessageFile version ═══ IDDE - DDE Text Formats ═══ Dynamic Data Exchange formats that the class library supports. ═══ Public Data - IDDE ═══ DDE Text Formats bitmapFormat codepageTextFormat dibFormat difFormat displayBitmapFormat displayMetafileFormat displayMetafilePictureFormat displayTextFormat linkFormat metafileFormat metafilePictureFormat oemTextFormat paletteFormat sylkFormat textFormat tiffFormat ═══ Protected Data - IDDE ═══ Inherited Members IBase recoverable unrecoverable ═══ 1.2.1. IDDE::bitmapFormat ═══ The layout of this format is a BITMAPINFO2 structure. public: static Format const bitmapFormat; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.2.2. IDDE::codepageTextFormat ═══ This format consists of a CPTEXT structure, where the text portion of the structure must be in IDDE::textFormat format. The format allows applications to exchange text in a particular codepage. public: static Format const codepageTextFormat; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.2.3. IDDE::dibFormat ═══ This format consists of a DIB structure. public: static Format const dibFormat; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.2.4. IDDE::difFormat ═══ This format represents the Data Interchange Format which was developed by Software Arts and is used to transfer data to a Visicalc spreadsheet program. public: static Format const difFormat; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.2.5. IDDE::displayBitmapFormat ═══ The layout of this format is identical to that of the IDDE::bitmapFormat format. This format is the bitmap representation of a private data format. public: static Format const displayBitmapFormat; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.2.6. IDDE::displayMetafileFormat ═══ The layout of this format is identical to that of the IDDE::metafileFormat format. This format is the metafile representation of a private data format. public: static Format const displayMetafileFormat; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.2.7. IDDE::displayMetafilePictureFormat ═══ The layout of this format is identical to that of the IDDE::metafilePictureFormat format. This format is the metafile picture representation of a private data format. public: static Format const displayMetafilePictureFormat; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.2.8. IDDE::displayTextFormat ═══ The layout of this format is identical to that of the textFormat format. It is the textual format of a private data format. public: static Format const displayTextFormat; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.2.9. IDDE::linkFormat ═══ This format contains information needed to establish a DDE hot link. It is typically used in paste-link operations where the clipboard is being used to exchange information. The layout of the link format is: applicationName(0x00)topicName(0x00)itemName(0x00)(0x00). public: static Format const linkFormat; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.2.10. IDDE::metafileFormat ═══ This format contains the bits retrieved via the GpiQueryMetafileBits function. public: static Format const metafileFormat; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.2.11. IDDE::metafilePictureFormat ═══ This layout of this format consists of an MFP structure. It includes the information provided in the IDDE::metafileFormat format, with additional information defining the metafile bits. public: static Format const metafilePictureFormat; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.2.12. IDDE::oemTextFormat ═══ The layout of this format is identical to that of the IDDE::textFormat format. This format indicates that the text has been created using codpage 437 which is the U.S.-ENGLISH codepage. public: static Format const oemTextFormat; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.2.13. IDDE::paletteFormat ═══ This format consists of a PALETTEINFO structure. public: static Format const paletteFormat; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.2.14. IDDE::sylkFormat ═══ This format represents the Symbolic Link format developed by Microsoft Corp., which is used to exchange spreadsheets in an ASCI text format. public: static Format const sylkFormat; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.2.15. IDDE::textFormat ═══ This is a NULL (0x00) terminated ANSI character string. The string can contain a carriage return (0x0D) and/or a line-feed character (0x0A) to mark the end of a line. public: static Format const textFormat; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.2.16. IDDE::tiffFormat ═══ This format represents the Tag Image File Format which was developed by Microsoft, Aldus, and Hewlett-Packard for describing bitmapped data. public: static Format const tiffFormat; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ Nested Types - IDDE ═══ Type Definitions Format ═══ Type Definition - IDDE::Format ═══ typedef const char * Format; This is a synonym for the pre-defined DDE formats. ═══ 1.3. IDDEAcknowledgeEvent ═══ Description Derivation Constructors Public Functions Protected Functions Protected Data To close all the panels in a chapter, double click on this panel's system menu. ═══ Derivation - IDDEAcknowledgeEvent ═══ IBase │ IVBase │ IEvent │ IDDEEvent │ IDDEAcknowledgeEvent Inherited by: IDDEAcknowledgeExecuteEvent IDDEAcknowledgePokeEvent IDDEClientAcknowledgeEvent IDDEServerAcknowledgeEvent ═══ Class Description - IDDEAcknowledgeEvent ═══ iddeevt.hpp The IDDEAcknowledgeEvent class is the base class for the Dynamic Data Exchange (DDE) acknowledge event information classes. An object of this class or one of its subclasses is created when an IDDEClientConversation object or IDDETopicServer object needs to pass acknowledgment information to the client or server application. You do not construct objects of this class. See IDDEClientConversation and IDDETopicServer for information about those classes. ═══ Public Functions - IDDEAcknowledgeEvent ═══ Constructors IDDEAcknowledgeEvent ~IDDEAcknowledgeEvent Event Information applicationSpecificData isAckPositive isApplicationBusy isMessageUnderstood Inherited Members IDDEEvent format item IEvent controlHandle controlWindow dispatchingWindow eventId eventType handle operator = parameter1 parameter2 passToOwner result setControlHandle setDispatchingHandle setEventType setHandle setPassToOwner setResult window IVBase asDebugInfo asString IBase asDebugInfo asString messageFile messageText setMessageFile version ═══ IDDEAcknowledgeEvent - Constructors ═══ You can construct and destruct objects of this class, although normally you will never need to do so. These events are normally created and deleted for you by IDDETopicServer or IDDEClientConversation objects. ═══ IDDEAcknowledgeEvent - Event Information ═══ Use these members to query information about an acknowledgment. ═══ Protected Functions - IDDEAcknowledgeEvent ═══ Event Information transactionType Inherited Members IDDEEvent buffer setBuffer setStatus status ═══ Protected Data - IDDEAcknowledgeEvent ═══ Inherited Members IBase recoverable unrecoverable ═══ 1.3.1. IDDEAcknowledgeEvent::applicationSpecificData ═══ Returns any application-specific data that has been provided by the conversing application. public: unsigned char applicationSpecificData() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.3.2. IDDEAcknowledgeEvent::IDDEAcknowledgeEvent ═══ You can construct and destruct objects of this class, although normally you will never need to do so. These events are normally created and deleted for you by IDDETopicServer or IDDEClientConversation objects. public: IDDEAcknowledgeEvent(const IEvent& ddeEvent); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.3.3. IDDEAcknowledgeEvent::isAckPositive ═══ Returns true if the acknowledgment is positive; otherwise, it returns false. public: Boolean isAckPositive() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.3.4. IDDEAcknowledgeEvent::isApplicationBusy ═══ Returns true if the application busy flag is on; otherwise, it returns false. This is only set for a negative acknowledgment. public: Boolean isApplicationBusy() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.3.5. IDDEAcknowledgeEvent::isMessageUnderstood ═══ Returns false if the message not understood flag is on; otherwise, it returns true. This is only set for a negative acknowledgment. public: Boolean isMessageUnderstood() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.3.6. IDDEAcknowledgeEvent::transactionType ═══ Returns the event ID. protected: unsigned short transactionType() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.3.7. IDDEAcknowledgeEvent::~IDDEAcknowledgeEvent ═══ public: ~IDDEAcknowledgeEvent(); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.4. IDDEAcknowledgeExecuteEvent ═══ Description Derivation Constructors Public Functions Protected Functions Protected Data To close all the panels in a chapter, double click on this panel's system menu. ═══ Derivation - IDDEAcknowledgeExecuteEvent ═══ IBase │ IVBase │ IEvent │ IDDEEvent │ IDDEAcknowledgeEvent │ IDDEAcknowledgeExecuteEvent Inherited by none. ═══ Class Description - IDDEAcknowledgeExecuteEvent ═══ iddeevt.hpp The IDDEAcknowledgeExecuteEvent class provides event information to a client application regarding an acknowledgment of an executeCommands request. An object of this class is created when an IDDEClientConversation object needs to pass information to the client application about an acknowledgment resulting from an IDDEClientConversation::executeCommands request. You do not construct objects of this class. See IDDEClientConversation and executeCommands for information about that class and function. ═══ Public Functions - IDDEAcknowledgeExecuteEvent ═══ Constructors IDDEAcknowledgeExecuteEvent ~IDDEAcknowledgeExecuteEvent Event Information commands Inherited Members IDDEAcknowledgeEvent applicationSpecificData isAckPositive isApplicationBusy isMessageUnderstood IDDEEvent format item IEvent controlHandle controlWindow dispatchingWindow eventId eventType handle operator = parameter1 parameter2 passToOwner result setControlHandle setDispatchingHandle setEventType setHandle setPassToOwner setResult window IVBase asDebugInfo asString IBase asDebugInfo asString messageFile messageText setMessageFile version ═══ IDDEAcknowledgeExecuteEvent - Constructors ═══ You can construct and destruct objects of this class, although normally you will never need to do so. These events are normally created and deleted for you by IDDEClientConversation objects. ═══ IDDEAcknowledgeExecuteEvent - Event Information ═══ Use these members to query information about the command string you sent to the DDE server application. ═══ Protected Functions - IDDEAcknowledgeExecuteEvent ═══ Inherited Members IDDEAcknowledgeEvent transactionType IDDEEvent buffer setBuffer setStatus status ═══ Protected Data - IDDEAcknowledgeExecuteEvent ═══ Inherited Members IBase recoverable unrecoverable ═══ 1.4.1. IDDEAcknowledgeExecuteEvent::commands ═══ Returns the command string that the client asked the server application to execute. Note: The IDDEAcknowledgeExecuteEvent::commands function's IString is constructed from a void* and length. For character strings, if the terminating NULL is included in the length, it is in the buffer. Before performing string operations such as concatenation on this string, use IString::stripTrailing to strip any trailing NULL character. See IString and stripTrailing for information about that class and function. public: IString commands() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.4.2. IDDEAcknowledgeExecuteEvent::IDDEAcknowledgeExecuteEvent ═══ You can construct and destruct objects of this class, although normally you will never need to do so. These events are normally created and deleted for you by IDDEClientConversation objects. public: IDDEAcknowledgeExecuteEvent(const IEvent& ddeEvent); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.4.3. IDDEAcknowledgeExecuteEvent::~IDDEAcknowledgeExecuteEvent ═══ public: ~IDDEAcknowledgeExecuteEvent(); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.5. IDDEAcknowledgePokeEvent ═══ Description Derivation Constructors Public Functions Protected Functions Protected Data To close all the panels in a chapter, double click on this panel's system menu. ═══ Derivation - IDDEAcknowledgePokeEvent ═══ IBase │ IVBase │ IEvent │ IDDEEvent │ IDDEAcknowledgeEvent │ IDDEAcknowledgePokeEvent Inherited by none. ═══ Class Description - IDDEAcknowledgePokeEvent ═══ iddeevt.hpp The IDDEAcknowledgePokeEvent class provides event information to a client application regarding an acknowledgment to a IDDEClientConversation::pokeData request. An object of this class is created when an IDDEClientConversation object needs to pass information to the client application about an acknowledgment resulting from a pokeData request. You do not construct objects of this class. See IDDEClientConversation and pokeData for information about that class and function. ═══ Public Functions - IDDEAcknowledgePokeEvent ═══ Constructors IDDEAcknowledgePokeEvent ~IDDEAcknowledgePokeEvent Event Information pokedData Inherited Members IDDEAcknowledgeEvent applicationSpecificData isAckPositive isApplicationBusy isMessageUnderstood IDDEEvent format item IEvent controlHandle controlWindow dispatchingWindow eventId eventType handle operator = parameter1 parameter2 passToOwner result setControlHandle setDispatchingHandle setEventType setHandle setPassToOwner setResult window IVBase asDebugInfo asString IBase asDebugInfo asString messageFile messageText setMessageFile version ═══ IDDEAcknowledgePokeEvent - Constructors ═══ You can construct and destruct objects of this class, although normally you will never need to do so. These events are normally created and deleted for you by IDDEClientConversation objects. ═══ IDDEAcknowledgePokeEvent - Event Information ═══ Use these members to query information about the data you sent to the DDE server application. ═══ Protected Functions - IDDEAcknowledgePokeEvent ═══ Inherited Members IDDEAcknowledgeEvent transactionType IDDEEvent buffer setBuffer setStatus status ═══ Protected Data - IDDEAcknowledgePokeEvent ═══ Inherited Members IBase recoverable unrecoverable ═══ 1.5.1. IDDEAcknowledgePokeEvent::IDDEAcknowledgePokeEvent ═══ You can construct and destruct objects of this class, although normally you will never need to do so. These events are normally created and deleted for you by IDDEClientConversation objects. public: IDDEAcknowledgePokeEvent(const IEvent& ddeEvent); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.5.2. IDDEAcknowledgePokeEvent::pokedData ═══ Returns the data that the client asked the server application to set. Note: The IDDEAcknowledgePokeEvent::pokedData function's IString is constructed from a void* and length. For character strings, if the terminating NULL is included in the length, it is in the buffer. Before performing string operations such as concatenation on this string, use IString::stripTrailing to strip any trailing NULL character. See IString and stripTrailing for information about that class and function. public: IString pokedData() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.5.3. IDDEAcknowledgePokeEvent::~IDDEAcknowledgePokeEvent ═══ public: ~IDDEAcknowledgePokeEvent(); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.6. IDDEActiveServer ═══ Description Derivation Constructors Public Functions Protected Data To close all the panels in a chapter, double click on this panel's system menu. ═══ Derivation - IDDEActiveServer ═══ IBase │ IDDEActiveServer Inherited by none. ═══ Class Description - IDDEActiveServer ═══ iddecset.hpp The IDDEActiveServer class holds information about a Dynamic Data Exchange (DDE) server application and a particular topic the server application supports. Objects of this class are created to provide information about possible conversations when one of the two broadcast functions, IDDEClientConversation::supportedTopics or IDDEClientConversation::supportingApplications, is called. IDDEClientConversation objects create objects of this class, which are not intended to be created by application programmers. See IDDEClientConversation, supportedTopics, or supportingApplications for more information. ═══ Public Functions - IDDEActiveServer ═══ Constructors IDDEActiveServer ~IDDEActiveServer Server Attributes application isCaseSensitive topic Inherited Members IBase asDebugInfo asString messageFile messageText setMessageFile version ═══ IDDEActiveServer - Constructors ═══ You can construct and destruct objects of this class, although normally you will never need to do so. These events are normally created and deleted for you by IDDEClientConversation objects. ═══ IDDEActiveServer - Server Attributes ═══ Use these members to query information about a DDE server application. ═══ Protected Data - IDDEActiveServer ═══ Inherited Members IBase recoverable unrecoverable ═══ 1.6.1. IDDEActiveServer::application ═══ Returns the name of the server application. public: IString application() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.6.2. IDDEActiveServer::IDDEActiveServer ═══ You can construct and destruct objects of this class, although normally you will never need to do so. These events are normally created and deleted for you by IDDEClientConversation objects. public: IDDEActiveServer( const char* applicationName, const char* topicName, Boolean caseSensitive); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.6.3. IDDEActiveServer::isCaseSensitive ═══ Returns true if the server enforces case sensitivity; otherwise, it returns false. public: Boolean isCaseSensitive() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.6.4. IDDEActiveServer::topic ═══ Returns the name of the topic supported by the server. public: IString topic() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.6.5. IDDEActiveServer::~IDDEActiveServer ═══ public: ~IDDEActiveServer(); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.7. IDDEActiveServerSet ═══ Description Derivation Constructors Public Functions To close all the panels in a chapter, double click on this panel's system menu. ═══ Derivation - IDDEActiveServerSet ═══ ISet │ IDDEActiveServerSet Inherited by none. ═══ Class Description - IDDEActiveServerSet ═══ iddecset.hpp The IDDEActiverServerSet class is a set created using the ISet template class. The set contains pointers to IDDEActiveServer objects. See IDDEActiveServer for information about that class. An application creates an object of this class to use with the IDDEClientConversation::supportingApplications or IDDEClientConversation::supportedTopics function to hold the current set of active servers. If you remove individual elements of this set, delete the IDDEActiveServer object to which the element points or the memory is not recovered. See supportingApplications and supportedTopics for information about those functions. ═══ Public Functions - IDDEActiveServerSet ═══ Constructors IDDEActiveServerSet ~IDDEActiveServerSet ═══ IDDEActiveServerSet - Constructors ═══ You can construct and destruct objects of this class. ═══ IDDEActiveServerSet - Hidden Members ═══ These functions are placed in the private section of the class to prevent you from using them. ═══ 1.7.1. IDDEActiveServerSet::IDDEActiveServerSet ═══ You can construct and destruct objects of this class. public: IDDEActiveServerSet(); You can construct an object of this class using the default constructor, which does not accept any arguments. Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.7.2. IDDEActiveServerSet::~IDDEActiveServerSet ═══ This function removes all the elements from the set, and deletes them. public: ~IDDEActiveServerSet(); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.8. IDDEBeginEvent ═══ Description Derivation Constructors Public Functions Protected Data To close all the panels in a chapter, double click on this panel's system menu. ═══ Derivation - IDDEBeginEvent ═══ IBase │ IVBase │ IEvent │ IDDEBeginEvent Inherited by none. ═══ Class Description - IDDEBeginEvent ═══ iddeevt.hpp The IDDEBeginEvent class provides event information to a server application when a client has asked the server to begin a conversation. An object of this class is created when an IDDETopicServer object needs to pass an acceptConversation request to the server application. You do not construct objects of this class. See IDDETopicServer and acceptConversation for information about that class and function. ═══ Public Functions - IDDEBeginEvent ═══ Constructors IDDEBeginEvent ~IDDEBeginEvent Event Attributes application setCaseSensitive topic Inherited Members IEvent controlHandle controlWindow dispatchingWindow eventId eventType handle operator = parameter1 parameter2 passToOwner result setControlHandle setDispatchingHandle setEventType setHandle setPassToOwner setResult window IVBase asDebugInfo asString IBase asDebugInfo asString messageFile messageText setMessageFile version ═══ IDDEBeginEvent - Constructors ═══ You can construct and destruct objects of this class, although normally you will never need to do so. These events are normally created and deleted for you by IDDETopicServer objects. ═══ IDDEBeginEvent - Event Attributes ═══ Use these members to query information about the requested conversation and to set the case sensitivity of the conversation, if it is accepted. ═══ IDDEBeginEvent - Hidden Members ═══ These functions are placed in the private section of the class to prevent objects of this class from being copied. ═══ Protected Data - IDDEBeginEvent ═══ Inherited Members IBase recoverable unrecoverable ═══ 1.8.1. IDDEBeginEvent::application ═══ Returns the name of the requested application. public: IString application() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.8.2. IDDEBeginEvent::IDDEBeginEvent ═══ You can construct and destruct objects of this class, although normally you will never need to do so. These events are normally created and deleted for you by IDDETopicServer objects. public: IDDEBeginEvent(const IEvent& ddeBeginEvent); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.8.3. IDDEBeginEvent::setCaseSensitive ═══ Sets the case-sensitive flag to true. The server application should set this flag if it enforces case sensitivity. public: IDDEBeginEvent& setCaseSensitive(Boolean caseSensitive); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.8.4. IDDEBeginEvent::topic ═══ Returns the name of the requested topic. public: IString topic() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.8.5. IDDEBeginEvent::~IDDEBeginEvent ═══ public: ~IDDEBeginEvent(); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.9. IDDEClientAcknowledgeEvent ═══ Description Derivation Constructors Public Functions Protected Functions Protected Data To close all the panels in a chapter, double click on this panel's system menu. ═══ Derivation - IDDEClientAcknowledgeEvent ═══ IBase │ IVBase │ IEvent │ IDDEEvent │ IDDEAcknowledgeEvent │ IDDEClientAcknowledgeEvent Inherited by none. ═══ Class Description - IDDEClientAcknowledgeEvent ═══ iddeevt.hpp The IDDEClientAcknowledgeEvent class provides event information to a client application regarding an acknowledgment from a server. An object of this class or one of its subclasses is created when an IDDEClientConversation object needs to pass information about an acknowledgment to the client application. You do not construct objects of this class. See IDDEClientConversation for information about that class. ═══ Public Functions - IDDEClientAcknowledgeEvent ═══ Constructors IDDEClientAcknowledgeEvent ~IDDEClientAcknowledgeEvent Event Information isAckToBeginHotLink isAckToEndHotLink isAckToRequestData Inherited Members IDDEAcknowledgeEvent applicationSpecificData isAckPositive isApplicationBusy isMessageUnderstood IDDEEvent format item IEvent controlHandle controlWindow dispatchingWindow eventId eventType handle operator = parameter1 parameter2 passToOwner result setControlHandle setDispatchingHandle setEventType setHandle setPassToOwner setResult window IVBase asDebugInfo asString IBase asDebugInfo asString messageFile messageText setMessageFile version ═══ IDDEClientAcknowledgeEvent - Constructors ═══ You can construct and destruct objects of this class, although normally you will never need to do so. These events are normally created and deleted for you by IDDEClientConversation objects. ═══ IDDEClientAcknowledgeEvent - Event Information ═══ Use these members to query information about the type of the event that the acknowledgment is for. ═══ Protected Functions - IDDEClientAcknowledgeEvent ═══ Inherited Members IDDEAcknowledgeEvent transactionType IDDEEvent buffer setBuffer setStatus status ═══ Protected Data - IDDEClientAcknowledgeEvent ═══ Inherited Members IBase recoverable unrecoverable ═══ 1.9.1. IDDEClientAcknowledgeEvent::IDDEClientAcknowledgeEvent ═══ You can construct and destruct objects of this class, although normally you will never need to do so. These events are normally created and deleted for you by IDDEClientConversation objects. public: IDDEClientAcknowledgeEvent(const IEvent& ddeEvent); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.9.2. IDDEClientAcknowledgeEvent::isAckToBeginHotLink ═══ Returns true if the acknowledgment is in response to IDDEClientConversation::beginHotLink being called; otherwise, it returns false. See beginHotLink for information about that member. public: Boolean isAckToBeginHotLink() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.9.3. IDDEClientAcknowledgeEvent::isAckToEndHotLink ═══ Returns true if the acknowledgment is in response to IDDEClientConversation::endHotLink being called; otherwise, it returns false. See endHotLink for information about that member. public: Boolean isAckToEndHotLink() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.9.4. IDDEClientAcknowledgeEvent::isAckToRequestData ═══ Returns true if the acknowledgment is in response to IDDEClientConversation::requestData being called; otherwise, it returns false. See requestData for information about that member. public: Boolean isAckToRequestData() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.9.5. IDDEClientAcknowledgeEvent::~IDDEClientAcknowledgeEvent ═══ public: ~IDDEClientAcknowledgeEvent(); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.10. IDDEClientConversation ═══ Description Derivation Constructors Public Functions Protected Functions Protected Data To close all the panels in a chapter, double click on this panel's system menu. ═══ Derivation - IDDEClientConversation ═══ IBase │ IVBase │ IHandler │ IDDEClientConversation Inherited by none. ═══ Class Description - IDDEClientConversation ═══ iddeccnv.hpp The IDDEClientConversation class adds Dynamic Data Exchange (DDE) client function to an application. Create an object of this class for each conversation you want to initiate with a server application. The object manages all window, shared memory, and atom table processing. When a conversation with a server ends, the IDDEClientConversation object can initiate another conversation with that server or any other server. An object of this class can find all topics supported by all DDE server applications on the system. This class uses a window to communicate; therefore, window message processing must occur. This means that ICurrentThread::processMsgs must be called. There are several ways for this to occur. Normally, this is accomplished by calling IApplication::current().run(). See processMsgs, current, and run for information about those members. ═══ Public Functions - IDDEClientConversation ═══ Broadcasts supportedTopics supportingApplications Constructors IDDEClientConversation ~IDDEClientConversation Conversation Information application clientHandle inConversation isCaseSensitive outstandingTransactionCount topic Conversation Initiation and Termination begin end Hot Link Information hotLinkCount hotLinks Transactions beginHotLink endHotLink endHotLinks executeCommands pokeData requestData Inherited Members IHandler asDebugInfo asString disable enable handleEventsFor isEnabled stopHandlingEventsFor IVBase asDebugInfo asString IBase asDebugInfo asString messageFile messageText setMessageFile version ═══ IDDEClientConversation - Broadcasts ═══ Use these members to query information about the topics supported by the currently active DDE server applications. ═══ IDDEClientConversation - Constructors ═══ You can construct objects of this class in two ways. Both constructors have a Boolean argument, useEventThread. This argument is optional but is also highly recommended if the application must do any extensive processing or interacts with the user during any of the callback functions. Specifying true allows IDDEClientConversation to create a secondary thread to process incoming events. This prevents problems with window message processing because the thread is created without a message queue. If you specify false, no secondary thread is created and you should return promptly from all callback functions. ═══ IDDEClientConversation - Conversation Information ═══ Use these members to obtain the attributes of this object, including information about the conversation if there is one currently active. ═══ IDDEClientConversation - Conversation Initiation and Termination ═══ Use these members to begin and end conversations with DDE server applications. ═══ IDDEClientConversation - Event Dispatching ═══ Event dispatching members process events sent by the DDE server application. The dispatchHandlerEvent function is called whenever an event is sent to this object, and it calls one of the other appropriate members in this object to actually process the event. Typically, you do not need to override any of these members. If you want to provide some additional behavior before or after the event is processed, make sure that you call the IDDEClientConversation version of the member or unpredictable results can occur and the conversation may not be able to process further events from the DDE server application. You may need to override one of these members if the server application sends a DDE message not supported by the DDE protocol at that particular point in the conversation. You may need to do this because the IDDEClientConversation object throws these invalid events away. ═══ IDDEClientConversation - Event Processing ═══ Event-processing members are called to provide you with information when events are received from the DDE server application. To obtain the information provided by any of these virtual members, you must derive from this class and override the members. All of the members, except for the data member which is pure virtual, have default implementations so that you only need to override the members that provide information you wish to process. If you specify true for the useEventThread parameter of the IDDEClientConversation constructor, all of these members are invoked on a secondary thread. ═══ IDDEClientConversation - Hidden Members ═══ These functions are placed in the private section of the class to prevent you from copying objects of this class. ═══ IDDEClientConversation - Hot Link Information ═══ Use these members to obtain information about the hot links currently active in this object. ═══ IDDEClientConversation - Miscellaneous Implementation ═══ The IDDEClientConversation object uses these members to provide portions of its implementation. Typically you do not need to override these members. ═══ IDDEClientConversation - Transactions ═══ Use these members to send transactions to the DDE server application. Most of them accept a string that identifies the format in which the data is rendered. The default is IDDE::textFormat, which specifies text format. Formats are standardized by various vendors, who describe them in their operating system or application documentation. ═══ Protected Functions - IDDEClientConversation ═══ Event Dispatching dispatchHandlerEvent handleAck handleData handleInitiateAck handleTerminate Event Processing acknowledged conversationEnded data executeAcknowledged hotLinkInform pokeAcknowledged Miscellaneous Implementation endAllHotLinks findTransaction Inherited Members IHandler defaultProcedure dispatchHandlerEvent ═══ Protected Data - IDDEClientConversation ═══ Inherited Members IBase recoverable unrecoverable ═══ 1.10.1. IDDEClientConversation::acknowledged ═══ Provides generic acknowledgment from the server to a client initiated transaction. To get information provided by this function, provide a specialized implementation in the subclass. A positive acknowledgment can be sent in response to an IDDEClientConversation::beginHotLink or IDDEClientConversation::endHotLink member. A negative acknowledgment can be sent in response to the same two members, as well as to an IDDEClientConversation::requestData member. See beginHotLink, endHotLink, and requestData for information about those members. If true is specified for the useEventThread argument of the IDDEClientConversation constructor, this member is called on a secondary thread. protected: virtual void acknowledged( IDDEClientAcknowledgeEvent& event); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.10.2. IDDEClientConversation::application ═══ Returns the name of the server application with which the client is conversing. public: IString application() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.10.3. IDDEClientConversation::begin ═══ Attempts to initiate a conversation with the requested server application on the requested topic. The primary version of this overloaded member accepts the name of the requested application and topic as input and returns true if the conversation is successfully begun; otherwise it returns false. The version that accepts a server handle is provided along with the IDDEClientConversation::clientHandle member to allow an object of this class to converse with a server without engaging in the normal conversation initialization. See clientHandle for information about that function. Overload 1 public: virtual Boolean begin( const char* applicationName, const char* topicName); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ Exceptions ┌────────────────────┬────────────────────────────────────────┐ │IInvalidParameter │The applicationName or topicName │ │ │parameter is NULL or has a zero length. │ ├────────────────────┼────────────────────────────────────────┤ │IInvalidRequest │The object is already in conversation │ │ │with another application. │ ├────────────────────┼────────────────────────────────────────┤ │IAccessError │The operating system request to begin a │ │ │conversation failed. │ └────────────────────┴────────────────────────────────────────┘ Used in sample: DDE Client Sample: aclient.cpp Overload 2 public: virtual IDDEClientConversation& begin( const IWindowHandle& serverHandle); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ Exceptions ┌────────────────────┬────────────────────────────────────────┐ │IInvalidParameter │The server window handle is not valid. │ ├────────────────────┼────────────────────────────────────────┤ │IInvalidRequest │The object is already in conversation │ │ │with another application. │ └────────────────────┴────────────────────────────────────────┘ ═══ 1.10.4. IDDEClientConversation::beginHotLink ═══ Requests the server to send a notification every time the value of the item changes. If the sendData argument is true, the data is sent with the notification in the requested format. If the pacing argument is true, the server is asked to wait for an acknowledgment from the client before sending a subsequent notification. This function accepts a format string that identifies the format in which the data is rendered. The default is IDDE::textFormat, which specifies the text format. Formats are standardized by various vendors, who describe them in their operating system or application documentation. public: virtual IDDEClientConversation& beginHotLink( const char* item, IDDE::Format format = IDDE::textFormat, Boolean sendData = true, Boolean pacing = false); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ Exceptions ┌────────────────────┬────────────────────────────────────────┐ │IInvalidRequest │The object is not in conversation with a│ │ │server application, or a hot link for │ │ │this item and format is already active │ │ │or pending. │ ├────────────────────┼────────────────────────────────────────┤ │IInvalidParameter │The item or format parameter is NULL or │ │ │has a zero length. │ ├────────────────────┼────────────────────────────────────────┤ │IAccessError │The operating system request to post the│ │ │DDE message to the server application │ │ │failed. │ └────────────────────┴────────────────────────────────────────┘ Used in sample: DDE Client Sample: aclient.cpp ═══ 1.10.5. IDDEClientConversation::clientHandle ═══ Returns the window handle of the client conversation. This is provided, along with the IDDEClientConversation::begin member, to allow an object of this class to converse with a server without engaging in the normal conversation initialization. See begin for information about that member. public: IWindowHandle clientHandle() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.10.6. IDDEClientConversation::conversationEnded ═══ Notifies the client that the conversation is ending or ended. The conversation end can be initiated by either the client or the server, and can also be caused by an error condition in the IDDEClientConversation. protected: virtual void conversationEnded(IDDEClientEndEvent& event); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.10.7. IDDEClientConversation::data ═══ Provides data sent from the server. To get information provided by this member, provide a specialized implementation in the subclass. The data can be from an active hot link or as the result of the IDDEClientConversation::requestData member being called. See requestData for information about that member. If the server has requested an acknowledgment, the IDDEClientConversation object uses the return value from this member to determine whether to send a positive or negative acknowledgment. If the data is for a valid item and in the correct format, return true; otherwise, return false. If true is specified for the useEventThread argument of the IDDEClientConversation constructor, this member is called on a secondary thread. This member is pure virtual and must be overridden. protected: virtual Boolean data(IDDEDataEvent& event) = 0; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.10.8. IDDEClientConversation::dispatchHandlerEvent ═══ Calls the appropriate virtual member if a DDE client conversation event is found. protected: virtual Boolean dispatchHandlerEvent(IEvent& event); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ Exceptions ┌────────────────────┬────────────────────────────────────────┐ │IOutOfSystemResource│The operating system request to write to│ │ │a queue failed. See the text of the │ │ │exception for further information. │ ├────────────────────┼────────────────────────────────────────┤ │IAccessError │This function has been called │ │ │recursively, possibly violating DDE │ │ │synchronization rules. Either construct│ │ │this object with useEventThread=true, or│ │ │avoid displaying dialog boxes in the │ │ │event callback functions. │ └────────────────────┴────────────────────────────────────────┘ ═══ 1.10.9. IDDEClientConversation::end ═══ Ends the current conversation. public: virtual IDDEClientConversation& end(); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ Exceptions ┌────────────────────┬────────────────────────────────────────┐ │IInvalidRequest │The object is not in conversation with a│ │ │server application. │ └────────────────────┴────────────────────────────────────────┘ Used in sample: DDE Client Sample: aclient.cpp ═══ 1.10.10. IDDEClientConversation::endAllHotLinks ═══ Called by the IDDEClientConversation::endHotLinks function to update hot link instance data when one or more hot links are ending. The first version of this overloaded member is called when all hot links on an item are ending. The other version, which accepts no arguments, is used when all hot links are ending. See endHotLinks for information about that member. Overload 1 protected: virtual void endAllHotLinks(); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ Exceptions ┌────────────────────┬────────────────────────────────────────┐ │IAccessError │The operating system request to post the│ │ │DDE message to the server application │ │ │failed. │ ├────────────────────┼────────────────────────────────────────┤ │IInvalidRequest │There are no active hot links, or an │ │ │endHotLinks() request for all hot links │ │ │is pending. │ └────────────────────┴────────────────────────────────────────┘ Overload 2 protected: virtual void endAllHotLinks(const char* item); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ Exceptions ┌────────────────────┬────────────────────────────────────────┐ │IInvalidParameter │The item parameter has a zero length. │ ├────────────────────┼────────────────────────────────────────┤ │IAccessError │The operating system request to post the│ │ │DDE message to the server application │ │ │failed. │ ├────────────────────┼────────────────────────────────────────┤ │IInvalidRequest │There are no active hot links for this │ │ │item, or an endHotLinks() request for │ │ │this item is pending. │ └────────────────────┴────────────────────────────────────────┘ ═══ 1.10.11. IDDEClientConversation::endHotLink ═══ Requests the server to end a hot link on the specified item and format. This member accepts a format string that identifies the format in which the data is rendered. The default is IDDE::textFormat, which specifies the text format. Formats are standardized by various vendors, who describe them in their operating system or application documentation. public: virtual IDDEClientConversation& endHotLink( const char* item, IDDE::Format format = IDDE::textFormat); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ Exceptions ┌────────────────────┬────────────────────────────────────────┐ │IInvalidRequest │The object is not in conversation with a│ │ │server application, there is no hot link│ │ │for this item and format, or an │ │ │endHotLink(s) request for this item and │ │ │format is pending. │ ├────────────────────┼────────────────────────────────────────┤ │IInvalidParameter │The item or format parameter is NULL or │ │ │has a zero length. │ ├────────────────────┼────────────────────────────────────────┤ │IAccessError │The operating system request to post the│ │ │DDE message to the server application │ │ │failed. │ └────────────────────┴────────────────────────────────────────┘ ═══ 1.10.12. IDDEClientConversation::endHotLinks ═══ Requests the server to end one or more hot links. If the item argument is specified, the server is requested to end all hot links on the item in all formats. If no arguments are provided, the server is requested to end all hot links on all items in all formats. public: virtual IDDEClientConversation& endHotLinks( const char* item = 0); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ Exceptions ┌────────────────────┬────────────────────────────────────────┐ │IInvalidRequest │The object is not in conversation with a│ │ │server application. │ └────────────────────┴────────────────────────────────────────┘ Used in sample: DDE Client Sample: aclient.cpp ═══ 1.10.13. IDDEClientConversation::executeAcknowledged ═══ Positive or negative acknowledgment from the server as the result of the IDDEClientConversation::executeCommands member being called. To get information provided by this member, provide a specialized implementation in the subclass. See executeCommands for information about that member. If true is specified for the useEventThread argument of the IDDEClientConversation constructor, this member is called on a secondary thread. protected: virtual void executeAcknowledged( IDDEAcknowledgeExecuteEvent& event); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.10.14. IDDEClientConversation::executeCommands ═══ Requests the server to execute one or more commands. public: virtual IDDEClientConversation& executeCommands( const void* commands, unsigned long commandLength); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ Exceptions ┌────────────────────┬────────────────────────────────────────┐ │IInvalidRequest │The object is not in conversation with a│ │ │server application. │ ├────────────────────┼────────────────────────────────────────┤ │IInvalidParameter │The commands or commandLength parameter │ │ │is NULL. │ ├────────────────────┼────────────────────────────────────────┤ │IAccessError │The operating system request to post the│ │ │DDE message to the server application │ │ │failed. │ └────────────────────┴────────────────────────────────────────┘ ═══ 1.10.15. IDDEClientConversation::findTransaction ═══ Called by any of the handle members, such as IDDEClientConversation::handleAck and IDDEClientConversation::handleData, when it is suspected that the server is not sending acknowledgments when it should. If this member determines that the suspicion is correct, it simulates acknowledgments for the transactions that are waiting for these acknowledgments. protected: virtual Boolean findTransaction( const IEvent& event, Boolean removeMatch = false); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.10.16. IDDEClientConversation::handleAck ═══ Handles acknowledgments from server applications. protected: virtual void handleAck(const IEvent& ackEvent); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.10.17. IDDEClientConversation::handleData ═══ Handles data sent from server applications. protected: virtual void handleData(const IEvent& dataEvent); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.10.18. IDDEClientConversation::handleInitiateAck ═══ Handles acknowledgments from server applications to begin requests. protected: virtual void handleInitiateAck( const IEvent& initiateAckEvent); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.10.19. IDDEClientConversation::handleTerminate ═══ Handles IDDETopicServer::endConversation requests from server applications. See endConversation for information about that member. protected: virtual void handleTerminate(const IEvent& terminateEvent); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.10.20. IDDEClientConversation::hotLinkCount ═══ Returns a count of the number of hot links. public: unsigned long hotLinkCount() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.10.21. IDDEClientConversation::hotLinkInform ═══ Notifies the client that the value of an item in the server for which the client has a hot link has changed. To get information provided by this member, provide a specialized implementation in the subclass. If the server has requested an acknowledgment, the IDDEClientConversation object uses the return value from this member to determine whether to send a positive or negative acknowledgment. If the client has an active hot link for this item and has requested that only notifications be sent, return true; otherwise, return false. The default behavior is to return true. If true is specified for the useEventThread argument of the IDDETopicServer constructor, this member is called on a secondary thread. protected: virtual Boolean hotLinkInform( IDDEClientHotLinkEvent& event); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.10.22. IDDEClientConversation::hotLinks ═══ Adds all item and format pairs for which hot links have been established to the IDDEClientHotLinkSet passed in. Note: Include the iddecset.hpp header file when you use this function. See IDDEClientHotLinkSet for information about that class. public: IDDEClientConversation& hotLinks( IDDEClientHotLinkSet& hotLinkSet); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.10.23. IDDEClientConversation::IDDEClientConversation ═══ You can construct objects of this class in two ways. Both constructors have a Boolean argument, useEventThread. This argument is optional but is also highly recommended if the application must do any extensive processing or interacts with the user during any of the callback functions. Specifying true allows IDDEClientConversation to create a secondary thread to process incoming events. This prevents problems with window message processing because the thread is created without a message queue. If you specify false, no secondary thread is created and you should return promptly from all callback functions. Overload 1 public: IDDEClientConversation(Boolean useEventThread = true); This constructor initializes the object but does not start a conversation. Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ Exceptions ┌────────────────────┬────────────────────────────────────────┐ │IOutOfSystemResource│The operating system request for either │ │ │an event semaphore or a queue failed. │ │ │See the text of the exception for │ │ │further information. │ └────────────────────┴────────────────────────────────────────┘ Overload 2 public: IDDEClientConversation( const char* applicationName, const char* topicName, Boolean useEventThread = true); This constructor accepts the following arguments and attempts to begin a conversation with the requested server application on the requested topic:  The name of the server application with which a conversation is desired  The name of the topic about which a conversation is desired Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ Exceptions ┌────────────────────┬────────────────────────────────────────┐ │IOutOfSystemResource│The operating system request for either │ │ │an event semaphore or a queue failed. │ │ │See the text of the exception for │ │ │further information. │ └────────────────────┴────────────────────────────────────────┘ ═══ 1.10.24. IDDEClientConversation::inConversation ═══ Returns true if the client is currently in conversation with a server; otherwise, it returns false. public: Boolean inConversation() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.10.25. IDDEClientConversation::isCaseSensitive ═══ Returns true if the server has indicated it enforces case sensitivity; otherwise it returns false. public: Boolean isCaseSensitive() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.10.26. IDDEClientConversation::outstandingTransactionCount ═══ Returns the number of transactions initiated by the client to which the server has not responded. public: unsigned long outstandingTransactionCount() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.10.27. IDDEClientConversation::pokeAcknowledged ═══ Positive or negative acknowledgment from the server as the result of the IDDEClientConversation::pokeData member being called. To get information provided by this member, provide a specialized implementation in the subclass. If true is specified for the useEventThread argument of the IDDETopicServer constructor, this member is called on a secondary thread. See pokeData and IDDETopicServer for information about that member and class. protected: virtual void pokeAcknowledged( IDDEAcknowledgePokeEvent& event); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.10.28. IDDEClientConversation::pokeData ═══ Requests the server to set the specified item to the value of the data provided. This function accepts a format string that identifies the format in which the data is rendered. The default is IDDE::textFormat, which specifies the text format. Formats are standardized by various vendors, who describe them in their operating system or application documentation. public: virtual IDDEClientConversation& pokeData( const char* item, const void* data, unsigned long dataLength, IDDE::Format format = IDDE::textFormat); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ Exceptions ┌────────────────────┬────────────────────────────────────────┐ │IInvalidRequest │The object is not in conversation with a│ │ │server application. │ ├────────────────────┼────────────────────────────────────────┤ │IInvalidParameter │Either the item, format, or data │ │ │parameter is NULL, or the item or format│ │ │parameter has a zero length. │ ├────────────────────┼────────────────────────────────────────┤ │IAccessError │The operating system request to post the│ │ │DDE message to the server application │ │ │failed. │ └────────────────────┴────────────────────────────────────────┘ Used in sample: DDE Client Sample: aclient.cpp ═══ 1.10.29. IDDEClientConversation::requestData ═══ Requests the value of the item rendered in the specified format from the server. This function accepts a format string that identifies the format in which the data is rendered. The default is IDDE::textFormat, which specifies the text format. Formats are standardized by various vendors, who describe them in their operating system or application documentation. public: virtual IDDEClientConversation& requestData( const char* item, IDDE::Format format = IDDE::textFormat); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ Exceptions ┌────────────────────┬────────────────────────────────────────┐ │IInvalidRequest │The object is not in conversation with a│ │ │server application. │ ├────────────────────┼────────────────────────────────────────┤ │IInvalidParameter │The item or format parameter is NULL or │ │ │has a zero length. │ ├────────────────────┼────────────────────────────────────────┤ │IAccessError │The operating system request to post the│ │ │DDE message to the server application │ │ │failed. │ └────────────────────┴────────────────────────────────────────┘ Used in sample: DDE Client Sample: aclient.cpp ═══ 1.10.30. IDDEClientConversation::supportedTopics ═══ Adds IDDEActiveServer objects that represent topics supported by DDE server applications to the IDDEActiveServerSet passed in as the first argument. If the applicationName argument is specified, only the topics supported by that application are added to the set. The default is to add all topics supported by all server applications. Note: Include the iddecset.hpp header file when you use this function. See IDDEActiveServer and IDDEActiveServerSet for information about those classes. public: virtual IDDEClientConversation& supportedTopics( IDDEActiveServerSet& activeServerSet, const char* applicationName = 0); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.10.31. IDDEClientConversation::supportingApplications ═══ Adds IDDEActiveServer objects that represent DDE server applications that support the specified topic to the IDDEActiveServerSet passed in as the first argument. Note: Include the iddecset.hpp header file when you use this function. See IDDEActiveServer and IDDEActiveServerSet for information about those classes. public: virtual IDDEClientConversation& supportingApplications( IDDEActiveServerSet& activeServerSet, const char* topicName); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ Exceptions ┌────────────────────┬────────────────────────────────────────┐ │IInvalidParameter │The topicName parameter is NULL. │ └────────────────────┴────────────────────────────────────────┘ ═══ 1.10.32. IDDEClientConversation::topic ═══ Returns the name of the topic about which the client is conversing. public: IString topic() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.10.33. IDDEClientConversation::~IDDEClientConversation ═══ The destructor ends the conversation with the DDE server application if there is one active. public: virtual ~IDDEClientConversation(); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.11. IDDEClientEndEvent ═══ Description Derivation Constructors Public Functions Protected Data To close all the panels in a chapter, double click on this panel's system menu. ═══ Derivation - IDDEClientEndEvent ═══ IBase │ IVBase │ IEvent │ IDDEEndEvent │ IDDEClientEndEvent Inherited by none. ═══ Class Description - IDDEClientEndEvent ═══ iddeevt.hpp The IDDEClientEndEvent class provides event information to a client application when a conversation is ended or ending. An object of this class is created when an IDDEClientConversation object needs to notify the application that a conversation is ending or ended. You do not construct objects of this class. See IDDEClientConversation for information about that class. ═══ Public Functions - IDDEClientEndEvent ═══ Constructors IDDEClientEndEvent ~IDDEClientEndEvent Event Information application topic Inherited Members IDDEEndEvent sourceOfEnd IEvent controlHandle controlWindow dispatchingWindow eventId eventType handle operator = parameter1 parameter2 passToOwner result setControlHandle setDispatchingHandle setEventType setHandle setPassToOwner setResult window IVBase asDebugInfo asString IBase asDebugInfo asString messageFile messageText setMessageFile version ═══ IDDEClientEndEvent - Constructors ═══ You can construct and destruct objects of this class, although normally you will never need to do so. These events are normally created and deleted for you by IDDEClientConversation objects. ═══ IDDEClientEndEvent - Event Information ═══ Use these members to query information about the conversation that is ending. ═══ Protected Data - IDDEClientEndEvent ═══ Inherited Members IBase recoverable unrecoverable ═══ 1.11.1. IDDEClientEndEvent::application ═══ Returns the name of the server application for the conversation that is ending or ended. public: IString application() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ Used in sample: DDE Client Sample: aclient.cpp ═══ 1.11.2. IDDEClientEndEvent::IDDEClientEndEvent ═══ You can construct and destruct objects of this class, although normally you will never need to do so. These events are normally created and deleted for you by IDDEClientConversation objects. public: IDDEClientEndEvent( const IEvent& ddeEvent, Source endSource, IString application, IString topic); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.11.3. IDDEClientEndEvent::topic ═══ Returns the name of the topic supported by the conversation that is ending or ended. public: IString topic() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ Used in sample: DDE Client Sample: aclient.cpp ═══ 1.11.4. IDDEClientEndEvent::~IDDEClientEndEvent ═══ public: ~IDDEClientEndEvent(); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.12. IDDEClientHotLinkEvent ═══ Description Derivation Constructors Public Functions Protected Functions Protected Data To close all the panels in a chapter, double click on this panel's system menu. ═══ Derivation - IDDEClientHotLinkEvent ═══ IBase │ IVBase │ IEvent │ IDDEEvent │ IDDESetAcknowledgeInfoEvent │ IDDEClientHotLinkEvent Inherited by none. ═══ Class Description - IDDEClientHotLinkEvent ═══ iddeevt.hpp The IDDEClientHotLinkEvent class provides information to a client application when a hot link item change notification is sent by a server application. An object of this class is created when an IDDEClientConversation object needs to pass a hot link notification to the client application. An object of this class for each active hot link is also kept in a set by IDDEClientConversation objects to keep track of active hot links. You do not construct objects of this class. See IDDEClientConversation for information about that class. ═══ Public Functions - IDDEClientHotLinkEvent ═══ Constructors IDDEClientHotLinkEvent ~IDDEClientHotLinkEvent Event Information isAckRequested isDataRequested Inherited Members IDDESetAcknowledgeInfoEvent setApplicationBusy setApplicationSpecificData setMessageNotUnderstood IDDEEvent format item IEvent controlHandle controlWindow dispatchingWindow eventId eventType handle operator = parameter1 parameter2 passToOwner result setControlHandle setDispatchingHandle setEventType setHandle setPassToOwner setResult window IVBase asDebugInfo asString IBase asDebugInfo asString messageFile messageText setMessageFile version ═══ IDDEClientHotLinkEvent - Constructors ═══ You can construct and destruct objects of this class, although normally you will never need to do so. These events are usually created and deleted for you by IDDEClientConversation objects. ═══ IDDEClientHotLinkEvent - Event Information ═══ Use these members to query information about the hot link event. ═══ Protected Functions - IDDEClientHotLinkEvent ═══ Inherited Members IDDEEvent buffer setBuffer setStatus status ═══ Protected Data - IDDEClientHotLinkEvent ═══ Inherited Members IBase recoverable unrecoverable ═══ 1.12.1. IDDEClientHotLinkEvent::IDDEClientHotLinkEvent ═══ You can construct and destruct objects of this class, although normally you will never need to do so. These events are usually created and deleted for you by IDDEClientConversation objects. Overload 1 public: IDDEClientHotLinkEvent(const IEvent& ddeEvent); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ Overload 2 public: IDDEClientHotLinkEvent( const IDDEClientHotLinkEvent& ddeEvent); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.12.2. IDDEClientHotLinkEvent::isAckRequested ═══ Returns true if the server has requested an acknowledgment of receipt of the notification. The IDDEClientConversation object automatically sends the acknowledgment when it is requested. See IDDEClientConversation for information about that class. public: Boolean isAckRequested() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.12.3. IDDEClientHotLinkEvent::isDataRequested ═══ Returns true if the hot link is a data hot link. False is returned if it is a notification hot link. This function is only pertinent for objects of this class used to keep track of active hot links (contained in an IDDEClientHotLinkSet object). All other objects of this class are created for notifications sent by non-data hot links. See IDDEClientHotLinkSet for information about that class. public: Boolean isDataRequested() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.12.4. IDDEClientHotLinkEvent::~IDDEClientHotLinkEvent ═══ public: ~IDDEClientHotLinkEvent(); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.13. IDDEClientHotLinkSet ═══ Description Derivation Constructors Public Functions To close all the panels in a chapter, double click on this panel's system menu. ═══ Derivation - IDDEClientHotLinkSet ═══ ISet │ IDDEClientHotLinkSet Inherited by none. ═══ Class Description - IDDEClientHotLinkSet ═══ iddecset.hpp The IDDEClientHotLinkSet class is a set that was created using the ISet template class. The set contains pointers to IDDEClientHotLinkEvent objects. See IDDEClientHotLinkEvent for information about that class. An IDDEClientConversation object creates objects of this class to keep track of the active hot links for the conversation. An application creates an object of this class to call the IDDEClientConversation::hotLinks member to get the current set of active hot links. If you remove individual elements of the set, delete the IDDEClientHotLinkEvent to which each element points or the memory is not recovered. See IDDEClientConversation, and hotLinks for information about that class and member. ═══ Public Functions - IDDEClientHotLinkSet ═══ Constructors IDDEClientHotLinkSet ~IDDEClientHotLinkSet ═══ IDDEClientHotLinkSet - Constructors ═══ You can construct and destruct objects of this class. ═══ IDDEClientHotLinkSet - Hidden Members ═══ These functions are placed in the private section of the class to prevent you from using them. ═══ 1.13.1. IDDEClientHotLinkSet::IDDEClientHotLinkSet ═══ You can construct and destruct objects of this class. public: IDDEClientHotLinkSet(); You can construct objects of this class using the default constructor, which does not accept any arguments. Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.13.2. IDDEClientHotLinkSet::~IDDEClientHotLinkSet ═══ This member removes all the elements from the set, and deletes them. public: ~IDDEClientHotLinkSet(); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.14. IDDEDataEvent ═══ Description Derivation Constructors Public Functions Protected Functions Protected Data To close all the panels in a chapter, double click on this panel's system menu. ═══ Derivation - IDDEDataEvent ═══ IBase │ IVBase │ IEvent │ IDDEEvent │ IDDESetAcknowledgeInfoEvent │ IDDEDataEvent Inherited by none. ═══ Class Description - IDDEDataEvent ═══ iddeevt.hpp The IDDEDataEvent class provides event information and data to a client application. An object of this class is created when an IDDEClientConversation object needs to pass data sent from a server to the client application. This can result from a requestData request or from an active hot link. You do not construct objects of this class. See IDDEClientConversation and requestData for information about that class and member. ═══ Public Functions - IDDEDataEvent ═══ Constructors IDDEDataEvent ~IDDEDataEvent Event Information data isAckRequested isDataFromHotLink Inherited Members IDDESetAcknowledgeInfoEvent setApplicationBusy setApplicationSpecificData setMessageNotUnderstood IDDEEvent format item IEvent controlHandle controlWindow dispatchingWindow eventId eventType handle operator = parameter1 parameter2 passToOwner result setControlHandle setDispatchingHandle setEventType setHandle setPassToOwner setResult window IVBase asDebugInfo asString IBase asDebugInfo asString messageFile messageText setMessageFile version ═══ IDDEDataEvent - Constructors ═══ You can construct and destruct objects of this class, although normally you will never need to do so. These events are usually created and deleted for you by IDDEClientConversation objects. ═══ IDDEDataEvent - Event Information ═══ Use these members to query the data and other related information from the event. ═══ Protected Functions - IDDEDataEvent ═══ Inherited Members IDDEEvent buffer setBuffer setStatus status ═══ Protected Data - IDDEDataEvent ═══ Inherited Members IBase recoverable unrecoverable ═══ 1.14.1. IDDEDataEvent::data ═══ Returns the data provided by the server. Note: The IDDEDataEvent::data member's IString is constructed from a void* and length. For character strings, if the terminating NULL is included in the length, it is in the buffer. Before performing string operations such as concatenation on this string, use IString::stripTrailing to strip any trailing NULL character. See IString and stripTrailing for information about that class and member. public: IString data() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ Used in sample: DDE Client Sample: aclient.cpp ═══ 1.14.2. IDDEDataEvent::IDDEDataEvent ═══ You can construct and destruct objects of this class, although normally you will never need to do so. These events are usually created and deleted for you by IDDEClientConversation objects. public: IDDEDataEvent(const IEvent& ddeEvent); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.14.3. IDDEDataEvent::isAckRequested ═══ Returns true if the server has requested an acknowledgment of receipt of the data. The IDDEClientConversation object automatically sends the acknowledgment when it is requested. See IDDEClientConversation for information about that class. public: Boolean isAckRequested() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.14.4. IDDEDataEvent::isDataFromHotLink ═══ Returns true if the data is being sent as the result of an active hot link. Returns false if the data is sent in response to an IDDEClientConversation::requestData call. See requestData for information about that member. public: Boolean isDataFromHotLink() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ Used in sample: DDE Client Sample: aclient.cpp ═══ 1.14.5. IDDEDataEvent::~IDDEDataEvent ═══ public: ~IDDEDataEvent(); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.15. IDDEEndEvent ═══ Description Derivation Constructors Public Functions Protected Data Nested Types To close all the panels in a chapter, double click on this panel's system menu. ═══ Derivation - IDDEEndEvent ═══ IBase │ IVBase │ IEvent │ IDDEEndEvent Inherited by: IDDEClientEndEvent ═══ Class Description - IDDEEndEvent ═══ iddeevt.hpp The IDDEEndEvent class provides event information to a server application when a conversation is ended or ending. An object of this class is created when an IDDETopicServer object needs to notify the application that a conversation is ending or ended. You do not construct objects of this class. See IDDETopicServer for information about that class. ═══ Public Functions - IDDEEndEvent ═══ Constructors IDDEEndEvent ~IDDEEndEvent Event Information sourceOfEnd Inherited Members IEvent controlHandle controlWindow dispatchingWindow eventId eventType handle operator = parameter1 parameter2 passToOwner result setControlHandle setDispatchingHandle setEventType setHandle setPassToOwner setResult window IVBase asDebugInfo asString IBase asDebugInfo asString messageFile messageText setMessageFile version ═══ IDDEEndEvent - Constructors ═══ You can construct and destruct objects of this class, although normally you will never need to do so. These events are usually created and deleted for you by IDDETopicServer objects. ═══ IDDEEndEvent - Event Information ═══ Use these members and enumerations to determine the initiator or cause of the conversation termination. ═══ Protected Data - IDDEEndEvent ═══ Inherited Members IBase recoverable unrecoverable ═══ 1.15.1. IDDEEndEvent::IDDEEndEvent ═══ You can construct and destruct objects of this class, although normally you will never need to do so. These events are usually created and deleted for you by IDDETopicServer objects. public: IDDEEndEvent(const IEvent& ddeEvent, Source endSource); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.15.2. IDDEEndEvent::sourceOfEnd ═══ Returns one of the values of the IDDEEndEvent::Source enumeration indicating the source of the ending of the conversation. See Source for information about that enumeration. public: Source sourceOfEnd() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ Used in samples: DDE Client Sample: aclient.cpp DDE Server Sample: aserver.cpp ═══ 1.15.3. IDDEEndEvent::~IDDEEndEvent ═══ public: ~IDDEEndEvent(); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ Nested Types - IDDEEndEvent ═══ Enumerations Source ═══ Enums - Source ═══ enum Source { client, server, error }; Enumeration that is used to defined the possible sources of an end to a conversation: client Indicates that the client initiated the conversation's end. server Indicates that the server initiated the conversation's end. error Indicates that an error in a routine entered from the dispatcher would cause an exception to be thrown and the application would not have an opportunity to catch the exception. Since this situation could cause this application and the application being conversed with to abnormally end, this application is called back with an IDDEEndEvent object. The conversation is also terminated at this point. ═══ 1.16. IDDEEvent ═══ Description Derivation Constructors Public Functions Protected Functions Protected Data To close all the panels in a chapter, double click on this panel's system menu. ═══ Derivation - IDDEEvent ═══ IBase │ IVBase │ IEvent │ IDDEEvent Inherited by: IDDEAcknowledgeEvent IDDESetAcknowledgeInfoEvent ═══ Class Description - IDDEEvent ═══ iddeevt.hpp IDDEEvent is the base class for most Dynamic Data Exchange (DDE) event classes. An object of this class, or one of its subclasses, is created when an IDDEClientConversation object or IDDETopicServer object needs to pass information to the client or server application. You do not construct objects of this class. See IDDEClientConversation and IDDETopicServer for information about those classes. ═══ Public Functions - IDDEEvent ═══ Constructors IDDEEvent ~IDDEEvent Event Information format item Inherited Members IEvent controlHandle controlWindow dispatchingWindow eventId eventType handle operator = parameter1 parameter2 passToOwner result setControlHandle setDispatchingHandle setEventType setHandle setPassToOwner setResult window IVBase asDebugInfo asString IBase asDebugInfo asString messageFile messageText setMessageFile version ═══ IDDEEvent - Constructors ═══ You can construct and destruct objects of this class, although normally you will never need to do so. These events are usually created and deleted for you by IDDETopicServer or IDDEClientConversation objects. ═══ IDDEEvent - Event Information ═══ Use these members to query information about the item and format of the data that the event is dealing with. ═══ IDDEEvent - Implementation ═══ Derived classes use these members to set and obtain the attributes of this class. ═══ Protected Functions - IDDEEvent ═══ Implementation buffer setBuffer setStatus status ═══ Protected Data - IDDEEvent ═══ Inherited Members IBase recoverable unrecoverable ═══ 1.16.1. IDDEEvent::buffer ═══ Returns the data buffer. Note: The IDDEEvent::buffer member's IString is constructed from a void* and length. For character strings, if the terminating NULL is included in the length, it is in the buffer. Before performing string operations such as concatenation on this string, use IString::stripTrailing to strip any trailing NULL character. See IString and stripTrailing for information about that class and member. protected: IString buffer() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.16.2. IDDEEvent::format ═══ Returns the name of the format. public: IString format() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.16.3. IDDEEvent::IDDEEvent ═══ You can construct and destruct objects of this class, although normally you will never need to do so. These events are usually created and deleted for you by IDDETopicServer or IDDEClientConversation objects. Overload 1 public: IDDEEvent(const IDDEEvent& ddeEvent); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ Overload 2 public: IDDEEvent(const IEvent& ddeEvent); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.16.4. IDDEEvent::item ═══ Returns the name of the item. public: IString item() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ Used in samples: DDE Client Sample: aclient.cpp DDE Server Sample: aserver.cpp ═══ 1.16.5. IDDEEvent::setBuffer ═══ Sets the data into the data buffer. protected: IDDEEvent& setBuffer(IString dataBuffer); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.16.6. IDDEEvent::setStatus ═══ Sets the status field of the event. protected: IDDEEvent& setStatus(unsigned short status); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.16.7. IDDEEvent::status ═══ Returns the status of the event. protected: unsigned short status() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.16.8. IDDEEvent::~IDDEEvent ═══ public: ~IDDEEvent(); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.17. IDDEExecuteEvent ═══ Description Derivation Constructors Public Functions Protected Functions Protected Data To close all the panels in a chapter, double click on this panel's system menu. ═══ Derivation - IDDEExecuteEvent ═══ IBase │ IVBase │ IEvent │ IDDEEvent │ IDDESetAcknowledgeInfoEvent │ IDDEExecuteEvent Inherited by none. ═══ Class Description - IDDEExecuteEvent ═══ iddeevt.hpp The IDDEExecuteEvent class provides event information to a server application when a client has asked the server to execute a command string. An object of this class is created when an IDDETopicServer object needs to pass an executeCommands request to the server application. You do not construct objects of this class. See IDDETopicServer and executeCommands for information about that class and function. ═══ Public Functions - IDDEExecuteEvent ═══ Constructors IDDEExecuteEvent ~IDDEExecuteEvent Event Information commands Inherited Members IDDESetAcknowledgeInfoEvent setApplicationBusy setApplicationSpecificData setMessageNotUnderstood IDDEEvent format item IEvent controlHandle controlWindow dispatchingWindow eventId eventType handle operator = parameter1 parameter2 passToOwner result setControlHandle setDispatchingHandle setEventType setHandle setPassToOwner setResult window IVBase asDebugInfo asString IBase asDebugInfo asString messageFile messageText setMessageFile version ═══ IDDEExecuteEvent - Constructors ═══ You can construct and destruct objects of this class, although normally you will never need to do so. These events are normally created and deleted for you by IDDETopicServer objects. ═══ IDDEExecuteEvent - Event Information ═══ Use these members to query the command string sent by the DDE client application. ═══ Protected Functions - IDDEExecuteEvent ═══ Inherited Members IDDEEvent buffer setBuffer setStatus status ═══ Protected Data - IDDEExecuteEvent ═══ Inherited Members IBase recoverable unrecoverable ═══ 1.17.1. IDDEExecuteEvent::commands ═══ Returns the command string that the client has asked the server to execute. Note: The IDDEExecuteEvent::commands member's IString is constructed from a void* and length. For character strings, if the terminating NULL is included in the length, it is in the buffer. Before performing string operations such as concatenation on this string, use IString::stripTrailing to strip any trailing NULL character. See IString and stripTrailing for information about that class and member. public: IString commands() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.17.2. IDDEExecuteEvent::IDDEExecuteEvent ═══ You can construct and destruct objects of this class, although normally you will never need to do so. These events are normally created and deleted for you by IDDETopicServer objects. public: IDDEExecuteEvent(const IEvent& ddeEvent); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.17.3. IDDEExecuteEvent::~IDDEExecuteEvent ═══ public: ~IDDEExecuteEvent(); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.18. IDDEPokeEvent ═══ Description Derivation Constructors Public Functions Protected Functions Protected Data To close all the panels in a chapter, double click on this panel's system menu. ═══ Derivation - IDDEPokeEvent ═══ IBase │ IVBase │ IEvent │ IDDEEvent │ IDDESetAcknowledgeInfoEvent │ IDDEPokeEvent Inherited by none. ═══ Class Description - IDDEPokeEvent ═══ iddeevt.hpp The IDDEPokeEvent class provides event information to a server application when a client has asked the server to set an item to a new value. An object of this class is created when an IDDETopicServer object needs to pass a pokeData request to the server application. You do not construct objects of this class. See IDDETopicServer and pokeData for information about that class and member. ═══ Public Functions - IDDEPokeEvent ═══ Constructors IDDEPokeEvent ~IDDEPokeEvent Event Information pokedData Inherited Members IDDESetAcknowledgeInfoEvent setApplicationBusy setApplicationSpecificData setMessageNotUnderstood IDDEEvent format item IEvent controlHandle controlWindow dispatchingWindow eventId eventType handle operator = parameter1 parameter2 passToOwner result setControlHandle setDispatchingHandle setEventType setHandle setPassToOwner setResult window IVBase asDebugInfo asString IBase asDebugInfo asString messageFile messageText setMessageFile version ═══ IDDEPokeEvent - Constructors ═══ You can construct and destruct objects of this class, although normally you will never need to do so. These events are normally created and deleted for you by IDDETopicServer objects. ═══ IDDEPokeEvent - Event Information ═══ Use these members to query the data that the DDE client application has sent to be poked. ═══ Protected Functions - IDDEPokeEvent ═══ Inherited Members IDDEEvent buffer setBuffer setStatus status ═══ Protected Data - IDDEPokeEvent ═══ Inherited Members IBase recoverable unrecoverable ═══ 1.18.1. IDDEPokeEvent::IDDEPokeEvent ═══ You can construct and destruct objects of this class, although normally you will never need to do so. These events are normally created and deleted for you by IDDETopicServer objects. public: IDDEPokeEvent(const IEvent& ddeEvent); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.18.2. IDDEPokeEvent::pokedData ═══ Returns the data that the client asked the server to set an item's value to. Note: The IDDEPokeEvent::pokedData member's IString is constructed from a void* and length. For character strings, if the terminating NULL is included in the length, it is in the buffer. Before performing string operations such as concatenation on this string, use IString::stripTrailing to strip any trailing NULL character. See IString and stripTrailing for information about that class and member. public: IString pokedData() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ Used in sample: DDE Server Sample: aserver.cpp ═══ 1.18.3. IDDEPokeEvent::~IDDEPokeEvent ═══ public: ~IDDEPokeEvent(); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.19. IDDERequestDataEvent ═══ Description Derivation Constructors Public Functions Protected Functions Protected Data To close all the panels in a chapter, double click on this panel's system menu. ═══ Derivation - IDDERequestDataEvent ═══ IBase │ IVBase │ IEvent │ IDDEEvent │ IDDESetAcknowledgeInfoEvent │ IDDERequestDataEvent Inherited by none. ═══ Class Description - IDDERequestDataEvent ═══ iddeevt.hpp The IDDERequestDataEvent class provides event information to a server application when a client has requested data. An object of this class is created when an IDDETopicServer object needs to pass requests for data to the server application. You do not construct objects of this class. See IDDETopicServer for information about that class. ═══ Public Functions - IDDERequestDataEvent ═══ Constructors IDDERequestDataEvent ~IDDERequestDataEvent Event Information requestAck setData Inherited Members IDDESetAcknowledgeInfoEvent setApplicationBusy setApplicationSpecificData setMessageNotUnderstood IDDEEvent format item IEvent controlHandle controlWindow dispatchingWindow eventId eventType handle operator = parameter1 parameter2 passToOwner result setControlHandle setDispatchingHandle setEventType setHandle setPassToOwner setResult window IVBase asDebugInfo asString IBase asDebugInfo asString messageFile messageText setMessageFile version ═══ IDDERequestDataEvent - Constructors ═══ You can construct and destruct objects of this class, although normally you will never need to do so. These events are normally created and deleted for you by IDDETopicServer objects. ═══ IDDERequestDataEvent - Event Information ═══ Use these members to provide the data requested by the DDE client application and to set the related attributes of the event. ═══ Protected Functions - IDDERequestDataEvent ═══ Inherited Members IDDEEvent buffer setBuffer setStatus status ═══ Protected Data - IDDERequestDataEvent ═══ Inherited Members IBase recoverable unrecoverable ═══ 1.19.1. IDDERequestDataEvent::IDDERequestDataEvent ═══ You can construct and destruct objects of this class, although normally you will never need to do so. These events are normally created and deleted for you by IDDETopicServer objects. public: IDDERequestDataEvent(const IEvent& ddeEvent); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.19.2. IDDERequestDataEvent::requestAck ═══ Sets the request acknowledgment flag. public: IDDERequestDataEvent& requestAck(); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.19.3. IDDERequestDataEvent::setData ═══ Provides the requested data so it can be sent to the client. This member is overloaded so that either buffers of data or character strings can be easily sent. Overload 1 public: IDDERequestDataEvent& setData( const void* dataBuffer, unsigned long dataLength); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ Overload 2 public: IDDERequestDataEvent& setData(const char* dataString); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ Used in sample: DDE Server Sample: aserver.cpp ═══ 1.19.4. IDDERequestDataEvent::~IDDERequestDataEvent ═══ public: ~IDDERequestDataEvent(); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.20. IDDEServerAcknowledgeEvent ═══ Description Derivation Constructors Public Functions Protected Functions Protected Data To close all the panels in a chapter, double click on this panel's system menu. ═══ Derivation - IDDEServerAcknowledgeEvent ═══ IBase │ IVBase │ IEvent │ IDDEEvent │ IDDEAcknowledgeEvent │ IDDEServerAcknowledgeEvent Inherited by none. ═══ Class Description - IDDEServerAcknowledgeEvent ═══ iddeevt.hpp The IDDEServerAcknowledgeEvent class provides event information to a server application regarding an acknowledgment from a client. An object of this class is created when an IDDETopicServer object needs to pass information about an acknowledgment to the server application. You do not construct objects of this class. See IDDETopicServer for information about that class. ═══ Public Functions - IDDEServerAcknowledgeEvent ═══ Constructors IDDEServerAcknowledgeEvent ~IDDEServerAcknowledgeEvent Event Information data isAckToHotLinkUpdate Inherited Members IDDEAcknowledgeEvent applicationSpecificData isAckPositive isApplicationBusy isMessageUnderstood IDDEEvent format item IEvent controlHandle controlWindow dispatchingWindow eventId eventType handle operator = parameter1 parameter2 passToOwner result setControlHandle setDispatchingHandle setEventType setHandle setPassToOwner setResult window IVBase asDebugInfo asString IBase asDebugInfo asString messageFile messageText setMessageFile version ═══ IDDEServerAcknowledgeEvent - Constructors ═══ You can construct and destruct objects of this class, although normally you will never need to do so. These events are normally created and deleted for you by IDDETopicServer objects. ═══ IDDEServerAcknowledgeEvent - Event Information ═══ Use these members to query information about an acknowledgment received from a DDE client application. ═══ Protected Functions - IDDEServerAcknowledgeEvent ═══ Inherited Members IDDEAcknowledgeEvent transactionType IDDEEvent buffer setBuffer setStatus status ═══ Protected Data - IDDEServerAcknowledgeEvent ═══ Inherited Members IBase recoverable unrecoverable ═══ 1.20.1. IDDEServerAcknowledgeEvent::data ═══ Returns the data the server provided to the client. Note: The IDDEServerAcknowledgeEvent:: data member's IString is constructed from a void* and length. For character strings, if the terminating NULL is included in the length, it is in the buffer. Before performing string operations such as concatenation on this string, use IString::stripTrailing to strip any trailing NULL character. See IString and stripTrailing for information about that class and member. public: IString data() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.20.2. IDDEServerAcknowledgeEvent::IDDEServerAcknowledgeEvent ═══ You can construct and destruct objects of this class, although normally you will never need to do so. These events are normally created and deleted for you by IDDETopicServer objects. public: IDDEServerAcknowledgeEvent(const IEvent& ddeEvent); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.20.3. IDDEServerAcknowledgeEvent::isAckToHotLinkUpdate ═══ Returns true if the acknowledgment is in response to IDDETopicServer::hotLinkUpdate being called. It returns false if it is in response to data being provided for an IDDETopicServer::requestData call. See hotLinkUpdate and requestData for information about those members. public: Boolean isAckToHotLinkUpdate() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.20.4. IDDEServerAcknowledgeEvent::~IDDEServerAcknowledgeEvent ═══ public: ~IDDEServerAcknowledgeEvent(); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.21. IDDEServerHotLinkEvent ═══ Description Derivation Constructors Public Functions Protected Functions Protected Data To close all the panels in a chapter, double click on this panel's system menu. ═══ Derivation - IDDEServerHotLinkEvent ═══ IBase │ IVBase │ IEvent │ IDDEEvent │ IDDESetAcknowledgeInfoEvent │ IDDEServerHotLinkEvent Inherited by none. ═══ Class Description - IDDEServerHotLinkEvent ═══ iddeevt.hpp The IDDEServerHotLinkEvent class provides event information to a server application when a client has asked the server to begin a hot link. An object of this class is created when an IDDETopicServer object needs to pass a beginHotLink request to the server application. You do not construct objects of this class. See IDDETopicServer and beginHotLink for information about that class and function. ═══ Public Functions - IDDEServerHotLinkEvent ═══ Constructors IDDEServerHotLinkEvent ~IDDEServerHotLinkEvent Event Information isDataRequested isPacingRequested Inherited Members IDDESetAcknowledgeInfoEvent setApplicationBusy setApplicationSpecificData setMessageNotUnderstood IDDEEvent format item IEvent controlHandle controlWindow dispatchingWindow eventId eventType handle operator = parameter1 parameter2 passToOwner result setControlHandle setDispatchingHandle setEventType setHandle setPassToOwner setResult window IVBase asDebugInfo asString IBase asDebugInfo asString messageFile messageText setMessageFile version ═══ IDDEServerHotLinkEvent - Constructors ═══ You can construct and destruct objects of this class, although normally you will never need to do so. These events are normally created and deleted for you by IDDETopicServer objects. ═══ IDDEServerHotLinkEvent - Event Information ═══ Use these members to query information about the hot link associated with this event. ═══ Protected Functions - IDDEServerHotLinkEvent ═══ Inherited Members IDDEEvent buffer setBuffer setStatus status ═══ Protected Data - IDDEServerHotLinkEvent ═══ Inherited Members IBase recoverable unrecoverable ═══ 1.21.1. IDDEServerHotLinkEvent::IDDEServerHotLinkEvent ═══ You can construct and destruct objects of this class, although normally you will never need to do so. These events are normally created and deleted for you by IDDETopicServer objects. public: IDDEServerHotLinkEvent(const IEvent& ddeEvent); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.21.2. IDDEServerHotLinkEvent::isDataRequested ═══ Returns true if the client application has requested a data hot link. Returns false if a notification link has been requested. public: Boolean isDataRequested() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.21.3. IDDEServerHotLinkEvent::isPacingRequested ═══ Returns true if the client application has requested the server to request an acknowledgment from the client whenever it sends data or a notification. public: Boolean isPacingRequested() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.21.4. IDDEServerHotLinkEvent::~IDDEServerHotLinkEvent ═══ public: ~IDDEServerHotLinkEvent(); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.22. IDDESetAcknowledgeInfoEvent ═══ Description Derivation Constructors Public Functions Protected Functions Protected Data To close all the panels in a chapter, double click on this panel's system menu. ═══ Derivation - IDDESetAcknowledgeInfoEvent ═══ IBase │ IVBase │ IEvent │ IDDEEvent │ IDDESetAcknowledgeInfoEvent Inherited by: IDDEClientHotLinkEvent IDDEDataEvent IDDEExecuteEvent IDDEPokeEvent IDDERequestDataEvent IDDEServerHotLinkEvent ═══ Class Description - IDDESetAcknowledgeInfoEvent ═══ iddeevt.hpp The IDDESetAcknowledgeInfoEvent class is the base class for Dynamic Data Exchange (DDE) event information classes that need to set acknowledgment information. An object of a subclass of IDDESetAcknowledgeInfoEvent is only created for events that the application can respond to with a negative acknowledgment. You do not construct objects of this class. ═══ Public Functions - IDDESetAcknowledgeInfoEvent ═══ Constructors IDDESetAcknowledgeInfoEvent ~IDDESetAcknowledgeInfoEvent Event Information setApplicationBusy setApplicationSpecificData setMessageNotUnderstood Inherited Members IDDEEvent format item IEvent controlHandle controlWindow dispatchingWindow eventId eventType handle operator = parameter1 parameter2 passToOwner result setControlHandle setDispatchingHandle setEventType setHandle setPassToOwner setResult window IVBase asDebugInfo asString IBase asDebugInfo asString messageFile messageText setMessageFile version ═══ IDDESetAcknowledgeInfoEvent - Constructors ═══ You can construct and destruct objects of this class, although normally you will never need to do so. These events are normally created and deleted for you by IDDETopicServer or IDDEClientConversation objects. ═══ IDDESetAcknowledgeInfoEvent - Event Information ═══ Use these members to set the information for an acknowledgment being sent to the DDE partner application. ═══ Protected Functions - IDDESetAcknowledgeInfoEvent ═══ Inherited Members IDDEEvent buffer setBuffer setStatus status ═══ Protected Data - IDDESetAcknowledgeInfoEvent ═══ Inherited Members IBase recoverable unrecoverable ═══ 1.22.1. IDDESetAcknowledgeInfoEvent::IDDESetAcknowledgeInfoEvent ═══ You can construct and destruct objects of this class, although normally you will never need to do so. These events are normally created and deleted for you by IDDETopicServer or IDDEClientConversation objects. Overload 1 public: IDDESetAcknowledgeInfoEvent( const IDDESetAcknowledgeInfoEvent& ddeEvent); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ Overload 2 public: IDDESetAcknowledgeInfoEvent(const IEvent& ddeEvent); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.22.2. IDDESetAcknowledgeInfoEvent::setApplicationBusy ═══ Sets the application busy flag. This is used by a client or server application to indicate why a request or response to a request cannot be processed. public: IDDESetAcknowledgeInfoEvent& setApplicationBusy(); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.22.3. IDDESetAcknowledgeInfoEvent::setApplicationSpecificData ═══ Sets application-specific information. This can be used when a client and server application have a pre-defined protocol for exchanging information. public: IDDESetAcknowledgeInfoEvent& setApplicationSpecificData( unsigned char applicationData); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.22.4. IDDESetAcknowledgeInfoEvent::setMessageNotUnderstood ═══ Sets the message not understood flag. This is used by a client or server application to indicate why a request or response to a request cannot be processed. public: IDDESetAcknowledgeInfoEvent& setMessageNotUnderstood(); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.22.5. IDDESetAcknowledgeInfoEvent::~IDDESetAcknowledgeInfoEvent ═══ public: ~IDDESetAcknowledgeInfoEvent(); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.23. IDDETopicServer ═══ Description Derivation Constructors Public Functions Protected Functions Protected Data To close all the panels in a chapter, double click on this panel's system menu. ═══ Derivation - IDDETopicServer ═══ IBase │ IVBase │ IHandler │ IDDETopicServer Inherited by none. ═══ Class Description - IDDETopicServer ═══ iddetsrv.hpp The IDDETopicServer class adds Dynamic Data Exchange (DDE) server function to an application. Create an object of this class for each topic you want to support in a DDE server application. The object manages all window, shared memory, and atom table processing. This class uses a window to communicate; therefore, window message processing must occur. This means that ICurrentThread::processMsgs must be called. There are several ways for this to occur. Normally, this is accomplished by calling IApplication::current().run(). See processMsgs, current, and run for information about those members. ═══ Public Functions - IDDETopicServer ═══ Constructors IDDETopicServer ~IDDETopicServer Conversation Initiation and Termination beginConversation endConversation Hot Link Updates hotLinkUpdate Server Information application conversationCount hotLinkCount serverHandle topic Inherited Members IHandler asDebugInfo asString disable enable handleEventsFor isEnabled stopHandlingEventsFor IVBase asDebugInfo asString IBase asDebugInfo asString messageFile messageText setMessageFile version ═══ IDDETopicServer - Constructors ═══ You can construct and destruct objects of this class. ═══ IDDETopicServer - Conversation Initiation and Termination ═══ Use these members to begin and end conversations with DDE client applications. ═══ IDDETopicServer - Event Dispatching ═══ Event dispatching members process events sent by DDE client applications. The dispatchHandlerEvent function is called whenever an event is sent to this object, and it calls one of the other appropriate members in this object to actually process the event. Typically, you do not need to override any of these members. If you wish to provide some additional behavior before or after the event is processed make sure that you call the IDDETopicServer version of the member or unpredictable results can occur and the conversation may not be able to process further events from the DDE client application. You may need to override one of these members if the client application sends a DDE message not supported by the DDE protocol at that particular point in the conversation. You may need to do this because the IDDETopicServer object throws these invalid events away. ═══ IDDETopicServer - Event Processing ═══ Event-processing members provide you with information when events, typically requests, are received from a DDE client application. To obtain the information provided by any of these virtual members, and to support the requested transactions, derive from this class and override the members. All of the members, except for the requestData member which is pure virtual, have default implementations so that you only need to override the functions that you want to support or use. If you specify true for the useEventThread parameter of the IDDETopicServer constructor, all of these members except for acceptConversation and in some cases requestHotLinkData, are invoked on a secondary thread. ═══ IDDETopicServer - Hidden Members ═══ These members are placed in the private section of the class to prevent you from copying objects of this class. ═══ IDDETopicServer - Hot Link Updates ═══ Use these members to initiate the sending of hot link updates to DDE client applications. ═══ IDDETopicServer - Server Information ═══ Use these members to query information about the attributes of objects of this class. ═══ Protected Functions - IDDETopicServer ═══ Event Dispatching dispatchHandlerEvent handleAck handleAdvise handleExecute handleInitiate handlePoke handleRequest handleTerminate handleUnadvise removeLink Event Processing acceptConversation acknowledged beginHotLink conversationEnded executeCommands hotLinkEnded pokeData requestData requestHotLinkData Inherited Members IHandler defaultProcedure dispatchHandlerEvent ═══ Protected Data - IDDETopicServer ═══ Inherited Members IBase recoverable unrecoverable ═══ 1.23.1. IDDETopicServer::acceptConversation ═══ Informs the server that a client is asking to begin a conversation. The topic server calls this member if the application and topic match, ignoring mismatches due to different cases. The application should return promptly from this member because the request is sent, not posted, by the client application. Therefore, this member is always called in the main thread. Return true if the conversation is accepted. (The application can indicate it enforces case sensitivity by calling IDDEBeginEvent::setCaseSensitive. See setCaseSensitive for information about that member.) If the conversation request is rejected, return false so the topic server does not accept the conversation. The default behavior is to return true. protected: virtual Boolean acceptConversation( unsigned long conversationId, IDDEBeginEvent& event); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.23.2. IDDETopicServer::acknowledged ═══ Informs the server that a client has acknowledged the receipt of data or notification of changed hot link data. If true is specified for the useEventThread argument of the IDDETopicServer constructor, this member is called on a secondary thread. Note: The IDDETopicServer::hotLinkUpdate and IDDETopicServer::endConversation members must not be called from this member. Otherwise, a dead-lock can occur. See hotLinkUpdate and endConversation for information about those members. protected: virtual void acknowledged( unsigned long conversationId, IDDEServerAcknowledgeEvent& event); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.23.3. IDDETopicServer::application ═══ Returns the name of the server application. public: IString application() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.23.4. IDDETopicServer::beginConversation ═══ This is provided along with the IDDETopicServer::serverHandle member to allow a topic server to get in conversation with a client without engaging in the normal conversation initialization. See serverHandle for information about that member. This member sets the window handle associated with the client conversation. To initiate a conversation in this manner, the client and server application must have their own method for exchanging their window handles. public: virtual IDDETopicServer& beginConversation( const IWindowHandle& clientHandle); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ Exceptions ┌────────────────────┬────────────────────────────────────────┐ │IInvalidParameter │The client window handle is not valid. │ ├────────────────────┼────────────────────────────────────────┤ │IInvalidRequest │A conversation with this client window │ │ │is already active. │ └────────────────────┴────────────────────────────────────────┘ ═══ 1.23.5. IDDETopicServer::beginHotLink ═══ Informs the server that a client is requesting a hot link on a particular item and format. If the application supports hot links for this item and format, return true so the topic server sends the client a positive acknowledgment. The IDDETopicServer::hotLinkUpdate member is provided for sending either data or a notification when the item's value changes. See hotLinkUpdate for information about that member. If the application does not support this hot link request, it should use any appropriate members of the IDDEServerHotLinkEvent object to indicate the reason and return false. This causes the topic server to send a negative acknowledgment to the client. See IDDEServerHotLinkEvent for information about that class. If true is specified for the useEventThread argument of the IDDETopicServer constructor, this member is called on a secondary thread. The default behavior is to return false. protected: virtual Boolean beginHotLink( unsigned long conversationId, IDDEServerHotLinkEvent& event); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.23.6. IDDETopicServer::conversationCount ═══ Returns the number of conversations in which the topic server is currently engaged. public: unsigned long conversationCount() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.23.7. IDDETopicServer::conversationEnded ═══ Notifies the server that the conversation is ending or ended. The conversation end can be initiated by either the client or the server, and can also be caused by an error condition in the IDDEClientConversation. See IDDEClientConversation for information about that class. If true is specified for the useEventThread argument of the IDDETopicServer constructor, this member is called on a secondary thread. protected: virtual void conversationEnded( unsigned long conversationId, IDDEEndEvent& event); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.23.8. IDDETopicServer::dispatchHandlerEvent ═══ Calls the appropriate virtual member if a DDE topic server event is found. protected: virtual Boolean dispatchHandlerEvent(IEvent& event); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ Exceptions ┌────────────────────┬────────────────────────────────────────┐ │IOutOfSystemResource│The operating system request to write to│ │ │a queue failed. See the text of the │ │ │exception for further information. │ ├────────────────────┼────────────────────────────────────────┤ │IAccessError │This function has been called │ │ │recursively, possibly violating DDE │ │ │synchronization rules. Either construct│ │ │this object with useEventThread=true, or│ │ │avoid displaying dialog boxes in the │ │ │event callback functions. │ └────────────────────┴────────────────────────────────────────┘ ═══ 1.23.9. IDDETopicServer::endConversation ═══ Ends a conversation with a DDE client. public: virtual IDDETopicServer& endConversation( unsigned long conversationId); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ Exceptions ┌────────────────────┬────────────────────────────────────────┐ │IInvalidRequest │There is no active conversation │ │ │identified by this ID. │ └────────────────────┴────────────────────────────────────────┘ ═══ 1.23.10. IDDETopicServer::executeCommands ═══ Informs the server that a client is requesting the application to execute a string of one or more commands. If the application supports the request and successfully executes the commands, return true so the topic server sends the client a positive acknowledgment. If the application cannot honor this request, it should use any appropriate members of the IDDEExecuteEvent object to indicate the reason and return false. This causes the topic server to send a negative acknowledgment to the client. The default behavior is to return false. See IDDEExecuteEvent for information about that class. If true is specified for the useEventThread argument of the IDDETopicServer constructor, this member is called on a secondary thread. protected: virtual Boolean executeCommands( unsigned long conversationId, IDDEExecuteEvent& event); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.23.11. IDDETopicServer::handleAck ═══ Handles acknowledgments from client applications. protected: virtual void handleAck(const IEvent& ackEvent); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.23.12. IDDETopicServer::handleAdvise ═══ Handles IDDETopicServer::beginHotLink requests from client applications. See beginHotLink for information about that member. protected: virtual void handleAdvise(const IEvent& adviseEvent); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.23.13. IDDETopicServer::handleExecute ═══ Handles IDDETopicServer::executeCommands requests from client applications. See executeCommands for information about that member. protected: virtual void handleExecute(const IEvent& executeEvent); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.23.14. IDDETopicServer::handleInitiate ═══ Handles begin requests from client applications. protected: virtual void handleInitiate(const IEvent& initiateEvent); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.23.15. IDDETopicServer::handlePoke ═══ Handles IDDETopicServer::pokeData requests from client applications. See pokeData for information about that member. protected: virtual void handlePoke(const IEvent& pokeEvent); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.23.16. IDDETopicServer::handleRequest ═══ Handles IDDETopicServer::requestData requests from client applications. See requestData for information about that member. protected: virtual void handleRequest(const IEvent& requestEvent); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.23.17. IDDETopicServer::handleTerminate ═══ Handles end requests from client applications. protected: virtual void handleTerminate(const IEvent& terminateEvent); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.23.18. IDDETopicServer::handleUnadvise ═══ Handles IDDETopicServer::hotLinkEnded requests from client applications. See hotLinkEnded for information about that member. protected: virtual void handleUnadvise(const IEvent& unadviseEvent); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.23.19. IDDETopicServer::hotLinkCount ═══ Returns the number of hot links in which the topic server is currently engaged. public: unsigned long hotLinkCount() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.23.20. IDDETopicServer::hotLinkEnded ═══ Informs the server that a client has ended one or more hot links. If the format is a 0-length string, all hot links on the specified item are ended. If the item is a 0-length string, all hot links with this client are ended. If true is specified for the useEventThread argument of the IDDETopicServer constructor, this member is called on a secondary thread. protected: virtual void hotLinkEnded( unsigned long conversationId, IDDEEvent& event); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.23.21. IDDETopicServer::hotLinkUpdate ═══ Sends either data or a change notification for items whose data has changed to all clients who have an active hot link for this item. IDDETopicServer::requestHotLinkData is called for each format that has an active hot link and requires data. The number of hot links for which data or a notification is sent is returned to the caller. See requestHotLinkData for information about that member. If there is an outstanding acknowledgment for a hot link, the notification is not sent to the client to which the hot link belongs. When the acknowledgment is satisfied, a notification is sent to the client with the most current data if it is a data hot link. public: unsigned long hotLinkUpdate(const char* item); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ Exceptions ┌────────────────────┬────────────────────────────────────────┐ │IInvalidParameter │The item parameter is NULL or has a zero│ │ │length. │ ├────────────────────┼────────────────────────────────────────┤ │IAccessError │The operating system request to post the│ │ │DDE message to a client application │ │ │failed. │ ├────────────────────┼────────────────────────────────────────┤ │IInvalidRequest │There is no active hot link for this │ │ │item and format. │ └────────────────────┴────────────────────────────────────────┘ Used in sample: DDE Server Sample: aserver.cpp ═══ 1.23.22. IDDETopicServer::IDDETopicServer ═══ You can construct and destruct objects of this class. public: IDDETopicServer( const char* applicationName, const char* supportedTopic, IFrameWindow* owner = 0, Boolean useEventThread = true); You can construct objects of this class in the following way. The constructor accepts the following two required arguments and two optional arguments.  The name of the application to which the topic server belongs (required)  The name of the topic that the topic server supports (required)  The third argument is optional, but highly recommended if the application has a main frame window. IDDETopicServer creates an IFrameWindow object, which must be destructed for the application to end normally. Specifying this argument guarantees that this window is destructed when the main frame window is closed. The alternative is to ensure that all objects of IDDETopicServer are deleted before attempting to end the application. See IFrameWindow for information about that class.  The fourth argument is also optional, but also highly recommended if the application must do any extensive processing or interacts with the user during any of the callback functions. Specifying true allows the IDDETopicServer object to create a secondary thread to process incoming events. This prevents problems with window message processing because the thread is created without a message queue. If you specify false, no secondary thread is created and you should return promptly from all callback functions. Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ Exceptions ┌────────────────────┬────────────────────────────────────────┐ │IInvalidParameter │The applicationName or supportedTopic │ │ │parameter is NULL or has a zero length. │ ├────────────────────┼────────────────────────────────────────┤ │IOutOfSystemResource│The operating system request for either │ │ │an event semaphore or a queue failed. │ │ │See the text of the exception for │ │ │further information. │ └────────────────────┴────────────────────────────────────────┘ Used in sample: DDE Server Sample: aserver.cpp ═══ 1.23.23. IDDETopicServer::pokeData ═══ Informs the server that a client is requesting it to set an item to the new value provided by the client. If the application is able to honor the request, return true so the topic server sends the client a positive acknowledgment. If the application is unable to honor the request, it should use any appropriate members of the IDDEPokeEvent object to indicate the reason and return false. This causes the topic server to send a negative acknowledgment to the client. The default behavior is to return false. See IDDEPokeEvent for information about that class. If true is specified for the useEventThread argument of the IDDETopicServer constructor, this member is called on a secondary thread. protected: virtual Boolean pokeData( unsigned long conversationId, IDDEPokeEvent& event); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.23.24. IDDETopicServer::removeLink ═══ Called by the IDDETopicServer::handleUnadvise function to update hot link information when a client ends a hot link. See handleUnadvise for information about that member. protected: virtual Boolean removeLink( IString item, IString format, unsigned long conversationId); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.23.25. IDDETopicServer::requestData ═══ Informs the server that a client is requesting data for an item in a specified format. If the request is for an item and format the application supports, it should provide the data using the IDDERequestDataEvent::setData member and return true. The application can also request an acknowledgment from the client when it has received the data using the IDDERequestDataEvent::requestAck function. See setData and requestAck for information about those members. If the application cannot provide the data, it can indicate one of several reasons using the appropriate members of IDDERequestDataEvent and return false. This causes the topic server to send the client a negative acknowledgment. This function is pure virtual and must be overridden. See IDDERequestDataEvent for information about that class. If true is specified for the useEventThread argument of the IDDETopicServer constructor, this member is called on a secondary thread. protected: virtual Boolean requestData( unsigned long conversationId, IDDERequestDataEvent& event) = 0; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.23.26. IDDETopicServer::requestHotLinkData ═══ Informs the server that data is required for an item in a specified format. This member is called once for each format that has an active hot link that requires data when the server calls the IDDETopicServer::hotLinkUpdate member for an item. The server calls the hotLinkUpdate member when an item with active hot links changes. See hotLinkUpdate for information about that member. There is no need for this member to call the IDDERequestDataEvent::requestAck member because the topic server does this automatically for all hot links that have pacing active. (The server can request an acknowledgment even if pacing is not active.) For hot links that have pacing active and an outstanding acknowledgment, the update is not sent. See requestAck for information about that member. When the acknowledgment is received, the topic server requests the latest update if the data has changed while the acknowledgment was outstanding. In these cases, if true is specified for the useEventThread argument of the IDDETopicServer constructor, this member is called on a secondary thread; otherwise, it is called in the main thread. Note: The IDDETopicServer::hotLinkUpdate and IDDETopicServer::endConversation members must not be called from this member. Otherwise, a dead-lock can occur. See hotLinkUpdate and endConversation for information about those members. protected: virtual void requestHotLinkData( IDDERequestDataEvent& event); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.23.27. IDDETopicServer::serverHandle ═══ Returns the window handle of the topic server. This is provided along with the IDDETopicServer::beginConversation member to allow a topic server to get in conversation with a client without engaging in the normal conversation initialization. Only a client is normally allowed to initiate a conversation. See beginConversation for information about that member. public: IWindowHandle serverHandle() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.23.28. IDDETopicServer::topic ═══ Returns the name of the supported topic. public: IString topic() const; Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘ ═══ 1.23.29. IDDETopicServer::~IDDETopicServer ═══ The destructor will end all conversations with all DDE client applications as part of its cleanup. public: virtual ~IDDETopicServer(); Platform Support ┌────────────┬────────────┐ │PM │MOTIF │ ├────────────┼────────────┤ │Yes │No │ └────────────┴────────────┘