This file contains information about Address Manager and DDE support. /**************************************************************************** * * * Here is the DDE protocol * * * * * * Address Manager currently acts only as a SERVER application for DDE * * conversations. This means *any* application can ask AM for data, * * such as an address or a phone number. * * * * The following protocol is used and must be followed by any application * * wishing to get data from AM: * * * * 1. Initiate the conversation with AM * * * * AppName Topic * * ------- ----- * * Address (ie. mynames.add) * * * * 2. Request data from AM * * * * Using W4W macro lang, this can be done using * * DDERequest() function. For example, the following * * request could be made: * * * * DDERequest(ChanNum, "a Smith"); * * * * This would request all names from AM that match "Smith" * * * * * * If you are programming in the SDK, the client app would * * post a WM_DDE_REQUEST message to AM with the appropriate * * parameters passed in wParam and lParam. The HIWORD(lParam) * * in this case would be CF_TEXT. * * * * * * The types of data that can be requested are outlined below. The * * syntax is as follows: * * * * <> indicate a required field, and the text between <> will * * describe what goes there. * * * * {} indicate an optional field * * * * [] indicate a logical entity. See the protocol for "complete * * control" below to see what I mean. * * * * * * 1===> The protocol for addresses is: * * * * a * * * * NOTE: THIS PROTOCOL IS OUTDATED AND IS SUPERCEDED BY THE * * "Complete Control" PROTOCOL BELOW. THIS IS PROVIDED * * FOR BACKWARD COMPATIBILITY ONLY. * * * * 2===> The protocol for phone numbers is: * * * * p h{wf} * * * * Here, h is for "home" phone, the w for "work" and the f for "fax" * * You may request any or all of the phone numbers for a given person. * * * * NOTE: THIS PROTOCOL IS OUTDATED AND IS SUPERCEDED BY THE * * "Complete Control" PROTOCOL BELOW. THIS IS PROVIDED * * FOR BACKWARD COMPATIBILITY ONLY. * * * * 3===> The protocol for retrieving the number of names in a specified * * list is: * * * * c [List] * * * * where the call looks like DDERequest(ChanNum, "c [Current List]") * * The [List] field is REQUIRED, but can be set to [Current List] to * * return a count for the current list AM is showing. * * This does NOT return the total entries in the file, just the * * entries for the specified list. To get a total count in the file, * * specify [All Addresses] as the List * * * * * * 4===> The protocol for retreiving the name of the current list being * * shown in Address Manager is: * * * * * * l * * * * where the call looks like DDERequest(ChanNum, "l"). So if you are * * currently viewing the "Friends" list in Address Manager, this * * call will return "Friends" * * * * 5===> The "COMPLETE CONTROL" Protocol * * * * * * The protocol for complete control of what you want and where you * * want it from is: * * * * uf <[List]> {[Name]} * * * * where: * * * * List is: "All Addresses" or a user defined list. This field * * is REQUIRED. To retreive data from the current list * * specify [Current List] in this field * * * * Name is: Exact name, as entered in Address Manager. This field * * is OPTIONAL, and if left out will return the first * * name for the list specified in [List] * * * * Format String is: Definition of what data to return, for the * * requested name. This field is REQUIRED * * * * The format string can be made up of one or * * more of the following: * * * * String Returns * * ------ ------- * * %NAME Sal. + Full Name * * %SAL Salutation * * %FN First Name * * %MN Middle Name * * %LN Last Name * * %CO Company * * %A1 Address Line 1 * * %A2 Address Line 2 * * %A3 Address Line 3 * * %CITY City * * %ST State * * %ZIP Zip * * %HP Home Phone * * %WP Work Phone * * %WE Work Extension * * %FP Fax Phone * * %HISB His Birthday * * %HERB Her Birthday * * %AN Anniversary * * %CMT Comments * * %CR Inserts New Line * * %TAB Inserts TAB char * * % Inserts exact text * * * * A typical format string might look like this: * * * * * * %FN% %MN% %LN%CR%A1%CR%A2%CR%A3%CR%CITY% %ST%, %ZIP * * * * * * Example of how to use this protocol: * * * * * * uf [Friends] %FN% %MN% %LN%CR * * * * This example will retrieve information from the first entry in * * the Friends list. The First Name, Middle Name and Last Name * * followed by a carriage return/line feed will be returned. Note * * how a space char has been inserted between each names, using * * the "% " format string. * * * * * * IMPORTANT INFORMATION * * ===================== * * * * * The total length of the DDE string sent to Address Manager * * can not exceed 512 bytes. * * * * * The total length of an idividual part of the format string * * can not exceed 50 bytes. See the last entry in the table * * above to see what I'm talking about. * * * * * Note that this protocol will give you either a specific name * * from a specific list, or the first name from a specific list. * * Once you have used this protocol, you can use the next * * protocol (described below) to get the next name from the * * same list. * * * * * * 6===> The "COMPLETE CONTROL" Protocol's partner * * * * The protocl to retrieve the next name from a specified list (as * * specified in the previous protocol) is: * * * * un * * * * This protocol can only be used AFTER a call has been made using the * * previously mentioned protocol. Essentially, you use the "uf" * * protocol to get the first name, specify the list you want to get * * information from, specify *what* information you want, and then * * you use this protocol to get information for the next name in the * * list. * * * * 3. Terminate the DDE conversation. * * * * * ****************************************************************************/