Macros and Dependencies
Version 2.1
February 24, 2005
Explanation: The following is a list of macros which depend on other macros as procedures. That is, they do not work unless the dependent macro is in the same directory when they are compiled. Status Alpha means it doesn't yet work for me in its current form, and I have not yet included it in those available from my Web site. Beta means it works for me but has not been fully tested. Release means it works in all circumstances on my machine, and I hope it will work the same on yours. Under each macro are the procedures it uses, which need to be in the Local directory for the macro to function. The Procedures have an extension of ".proc," which shows that they only are compiled as a part of a macro.
Variables: S1$ through S4$ are temporary strings passed to other procedures which get cleared. S5$ through S9$ are strings which keep their values between macros. p1 through p9 and p1$ through p9$ are temporary variables within procedures which get cleared.
1. CallerID.mac Status: Alpha
a. Purpose: On incoming telephone call, displays Caller ID information and plays a custom sound announcing the call.
b. Incorporates CheckFile.proc, GetINIData.proc
2. CheckBoxValue.proc Status: Release
a. Purpose: Converts vValue$ into the actual descriptive value of a checkbox type field.
b. Takes vValue$, vD$, uses p1 - p4, p1$ - p3$, returns vValue$
3. CheckFile.proc Status: Release
a. Purpose: Checks to see if specified INI or MXE file exists; if it doesn't find an INI file it runs a Setup macro; if it doesn't find an MXE file, it prompts to compile the specified macro.
b. Takes vIBase$, vFile$, vCategory$, uses p1, p1$
4. CopyObject.mac Status: Release
a. Purpose: Copies a Person or Organization’s name and address, or a Thing’s description and data, to the Clipboard. Takes S9$; if S9$ is a program, launches that program and Pastes.
b. Incorporates GetObject.proc, GetData.proc
5. CopyObjectName.mac Status: Release
a. Purpose: Copies an object's name (if a Person, constructs the whole name) to the Clipboard.
b. Incorporates GetObject.proc, GetData.proc
6. EMail.mac Status: Release
a. Purpose: Sends e-mail to selected addresses, options regarding copies.
b. Incorporates CheckFile.proc, GetObject.proc, PlaySound.proc
c. Chains to EMail Setup.mxe if no INI file.
7. EMailSelected.mac Status: Release
a. Purpose: Sends e-mail to only one e-mail address.
b. Chains to EMail.mxe.
8. EMailSetup.mac Status: Release
a. Purpose: Sets up initialization file for EMail.mac.
b. Incorporates Replace.proc, WaitForFile.proc. CheckFile.proc
c. Chains to EMail.mxe.
9. ExpObject.mac Status: Release
a. Purpose: Exports an object's information to a text file.
b. Incorporates GetObject.proc, GetData.proc, WaitForFile.proc
10. ExpoList.mac Status: Alpha
a. Purpose: Exports all objects of a specified category on the current list to a text file.
b. Incorporates GetStringData.proc
11. FindReplace.mac Status: Release
a. Purpose: Finds and replaces portions of a string in the current display list. For global changes to objects' data.
b. Incorporates GetStringData.proc, Replace.proc
12. GetData.proc Status Release
a. Purpose: Gets data fields and field values from objects for use by other macros. After calling this procedure, all the selected object's data is in vValue$(1) through vValue$(36).
b. Takes vGetData and S6$, uses vFile$, vMemo$(20), vMemoO$(20), vCatType$, p1$, p2$, p3$, p1, p2, p3, vObject$(16), vObjectID(16), vAdrYorN(16), vAdrChoice$, vMenuText$, vConnType$, vD$, vPosT, vPosV Object Field Names, Object Field Values, returns vGetData, Object Field Names, Object Field Values, Object name (on Clipboard), clears S6$.
c. Incorporates GetPath.proc, GetStringData.proc, CheckFile.proc, CheckBoxValue.proc, RadioButtonValue.proc
d. Incorporated in CopyObject.mac, CopyObjectName.mac, EMail.mac, ExpObject.mac, Internet.mac, all "Push to" macros, SetLocal.mac, and TransferAddress.mac.
e. Chains to GetDataSetup.mxe if no INI file for the category.
13. GetDataSetup.mac Status Release
a. Purpose: Sets up initialization file for GetData.proc.
b. Incorporates GetStringData.proc, WaitForFile.proc
c. Chains to original macro that used GetData.proc.
14. GetINIData.proc Status: Release
a. Purpose: Gets specified entry from a specified INI file. Not used any more because it is very slow, but useful for coding.
b. Takes vVariable$ and vSection$, uses p1, p1$, p2$, and vFileLoc, returns vVariable$, keeps vSection$ and vFileLoc
15. GetObject.proc Status: Release
a. Purpose: Chooses selected object or prompts to select an object from the list of a particular type (PERSON, ORGANIZATION, or THING) or types.
b. Takes S2$ ("Current" or "Ask"), S3$ (Types allowed), and vSound$, uses p1$, clears p1$, S2$ and S3$
c. Incorporates PlaySound.proc
16. GetPath.proc Status: Release
a. Purpose: Divides a total file name into its path and filename, usually for an IBase. E.g., "c:\Data\Local\IBases\MAK" gets split into "c:\Data\Local\IBases\" and "MAK."
b. Takes p1$, uses p2$ and p1, returns vFile$ and vPath$
17. GetStringData.proc Status: Release
a. Purpose: Gets the string data (name, value, type, attributes, etc.) for an object field. From that you can tell what kind of field it is and what is in it.
b. Also produces vLen, vHex2$, vHex3$, vHex4$, vPosN, vPosV, vPosT, vPosA, vPosO, vPosS
18. ICAccess.mac Status: Alpha
a. Purpose: Access to InfoCentral data from within WordPerfect.
b. Incorporates EMail.mac (?), GetStringData.proc, GetData.proc
19. Internet.mac Status: Release
a. Purpose: Accesses the Internet address for a selected object or pulls up a map for an address (MapIt).
b. Incorporates CheckFile.proc, GetObject.proc, GetData.proc, WaitForFile.proc, PostalAbbrev.proc., StateAbbrev.proc, Replace.proc.
c. Chains to Internet Setup.mxe if no INI file.
20. InternetSetup.mac Status: Release
a. Purpose: Sets up initialization file for Internet.mac.
b. Incorporates WaitForFile.proc
c. Chains to Internet.mxe.
21. ListInfo.mac Status: Release
a. Purpose: Exports the current list structure to a text file. Useful for disk directories. Works independently or as called from the PerfectScript "ICListInfo.wcm" macro.
22. MapIt.mac Status: Release
a. Purpose: Retrieves a map to the selected object from one of several different map services.
b. Chains to Internet.mxe (i.e., just a front end), sending it a value in S8$.
23. MapItSelected.mac Status: Release
a. Purpose: Retrieves a map to the selected object from specified map service.
b. Chains to Internet.mxe, sending it a value in S8$.
24. MultiCon.mac Status: Release
a. Purpose: Connect one object to all objects of a specified category on the list.
b. Incorporates GetObject.proc, Replace.proc
25. PalmExpoList.mac Status: Alpha
a. Purpose: Exports the entire current list to a CSV format importable to Palm Desktop.
b. Incorporates GetData.proc
26. PhoneFix.mac Status: Release
a. Purpose: Removes or adds "[1] " from telephone numbers on current tab.
b. Incorporates Replace.proc
27. PlaySound.proc Status: Release
a. Purpose: Plays a WAV file using Wizmo, if present, or Sound Recorder if not.
b. Takes vSound$; if blank, doesn't play anything.
28. PostalAbbrev.proc Status: Release
a. Purpose: Transforms a street address into postal abbreviations for MapIt.
b. Takes S1$, S2$, transforms and returns them.
29. Push Menu.mac Status: Release
a. Purpose: Presents a menu of "Push to" macros available.
b. Incorporates CheckFile.proc, Replace.proc, GetObject.proc, WaitForFile.proc
c. Chains to Push MenuSetup.mxe if no INI file.
30. Push MenuSetup.mac Status: Release
a. Purpose: Sets up initialization file for Push Menu.mac.
b. Incorporates WaitForFile.proc
c. Chains to Push Menu.mxe
31. Push to EMail.mac Status: Release
a. Purpose: Exports a name and address to Mozilla Thunderbird address book.
b. Incorporates GetObject.proc. GetData.proc
32. Push to Fax.mac Status: Release
a. Purpose: Exports a name and address to WinFax address book.
b. Incorporates GetObject.proc. GetData.proc
33. Push to Outlook.mac Status: Release
a. Purpose: Exports a name and address, or task, or event, or memo to Microsoft Outlook.
b. Incorporates GetObject.proc. GetData.proc
34. Push to Palm.mac Status: Release
a. Purpose: Exports a name and address, or task, or event, or memo to Palm Desktop.
b. Incorporates GetObject.proc. GetData.proc
35. Push to Stamps.mac Status: Release
a. Purpose: Exports a name and address to Stamps.com address book.
b. Incorporates GetObject.proc. GetData.proc, StateAbbrev.proc, Replace.proc
36. Push to Timeslips.mac Status: Release
a. Purpose: Exports a name and address to Timeslips version 7.
b. Incorporates GetObject.proc. GetData.proc, StateAbbrev.proc
37. Push to WordPerfect.mac Status: Release
a. Purpose: Exports an object to WordPerfect 11. Easily alterable to push to another program that needs an address block (e.g., any other word processor).
38. RadioButtonValue.proc Status: Release
a. Purpose: Converts vValue$ into the actual descriptive value of a radio button type field.
b. Takes vValue$, vD$, uses p1 - p3 , returns vValue$
39. Replace.proc Status: Release
a. Purpose: Replaces one substring with another within another string. For example: If S1$ is "##String##", S2$ is "@", and S3$ is "#", pReplace will return "@@String@@". Useful for fixing up strings.
b. Takes S1$ (string being operated on), S2$ (what to insert), S3$ (what to delete), returns S1$, keeps S2$, S3$
40. SetLocal.mac Status: Release
a. Purpose: Sets the Local directory for InfoCentral.
b. Incorporates WaitForFile.proc, GetObject.proc, GetData.proc, Replace.proc
41. StateAbbrev.proc Status: Release
a. Purpose: Turns long state and country names into their abbreviations (e.g., "Texas" to "TX" and "United States" to "US"). Only works for Canada and the U.S.
b. Takes S1$ (Country) and S2$ (State or Province), uses vState$(55), p1, p2, returns S1$, S2$
42. Template for Push To.mac Status: Release
a. Purpose: Template for creating your own "Push To" macros.
b. Incorporates GetObject.proc. GetData.proc
43. Transfer Address.mac Status: Release
a. Purpose: Transfer a Person or Organization's address to another one.
b. Incorporates GetObject.proc. GetData.proc
44. Transfer Value.mac Status: Release
a. Purpose: Transfer the value of a radio button, checkbox, or memo field in one object to all other objects of the same category on the list. Mainly for setting categories into checkboxes and such.
b. Incorporates GetObject.proc. GetStringData.proc, CheckBoxValue.proc, RadioButtonValue.proc
c. Takes S7$
45. Transfer Any Value.mac Status: Release
a. Purpose: Transfer the value of ANY field in one object to all other objects of the same category on the list. Use only with caution! Feeds the value "All fields" via S7$ to Transfer Value.mac.
46. WaitForFile.proc Status: Release
a. Purpose: Waits for a generated file (e.g., an INI file) to appear on disk, then continues.
b. Takes vFile$, uses p1$ and p1, clears p1$ and p1
Version History
2.2, March 9, 2005: TransferValue.mac added. Glitches in GetData fixed; RadioButtonValue and CheckboxValue split off into procedures. CopyObject and GetDataSetup revised a bit to deal with non-standard iBases (e.g., coin collections) better.
2.1, February 24, 2005: Moves the GetData INI files to the IBases directory, adds GetPath procedure.
2.0, February 15, 2005: Renames all procedures into ".proc" extensions, improvements to MapIt, EMail, and GetData.proc (formerly pGetData.mac).