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).

            b.   Chains to CopyObject.mxe.

 

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).