Modifying Multi-Edit Startup

Command Line Switches

Multi Edit offers the ability to configure almost all of its options via the Tools | Customize dialog. This dialog box allows the user to set up default configurations that remain constant from one Multi-Edit session to another. Sometimes, the user needs to change a default setting temporarily, or there are some options that can't be configured due to hardware constraints. This is where command line options can be used.

For all switches, a space between MEW32 and the / is optional, but you must separate multiple command line options with a space.
For all switches, a dash ”-“ instead of a slash ”/“ may be used.

For all filenames on the command line it is recommended that you use quotes around the filename. Quotes are required if there are spaces in the filename.

No Restore - /NR

This is used if you have the Restore feature turned ON (via the Session Manager Setup dialog box) and would like to invoke Multi-Edit without restoring the previous status of the editor. This will not disable Multi-Edit from saving the status as you exit.

To use the No Restore command line switch, type the following at the command prompt:

MEW32 /NR

A space between MEW32 and the / is optional, but you must separate multiple command line options with a space.

Read Only - /RO

The Read Only switch is available so a writable file can be loaded read-only into Multi-Edit. To use the Read Only command line switch, place /RO before the name of the files you want to load read-only. For example, the following will load file hello.txt and goodbye.txt as read only:

MEW32 /RO “hello.txt” “goodbye.txt”

A space between MEW32 and the / is optional, but you must separate multiple command line options with a space.

Read/Write - /RW

This will reverse the /RO option and will cause files following it to be loaded as writeable (assuming the file attributes allow this). To use the Read/Write command line switch, place /RO before the name of the files you want to load as writeable. For example, the following will load files hello.txt and goodbye.txt as read-only, and load file friday.txt as writeable (assuming the file's attributes allow it):

MEW32 /RO “hello.txt” “goodbye.txt” /RW “friday.txt”

A file flagged as read-only will never be loaded writable even when using the /RW command line switch.

The double quotes around the file names are not necessary if there are no spaces in the file names; however, if a file name has a space in it, it must be enclosed in quotes, otherwise Multi-Edit will interpret it as two different files to be loaded.

A space between MEW32 and the / is optional, but you must separate multiple command line options with a space.

No Splash - /NoSplash

Use this command line switch for removing the Splash Screen when starting Multi-Edit.

To use the No Splash command line switch, type the following at the command prompt:

MEW32 /NoSplash

A space between MEW32 and the / is optional, but you must separate multiple command line options with a space.

No Restore, No Save - /NS

This option works similarly to /NR, in that it instructs Multi-Edit not to restore the editor's previous status on startup, but it also instructs Multi-Edit not to save the status upon exiting.

To use the No Restore No Save command line switch, type the following at the command prompt:

MEW32 /NS

A space between MEW32 and the / is optional, but you must separate multiple command line options with a space.

Start The Last Session - /SR

Start Multi-Edit with the session used at the last time Multi-Edit was run.

To use the Start The Last Session command line switch, type the following at the command prompt:

MEW32 /SR

The /SR switch is added by default with installation of Multi-Edit.

A space between MEW32 and the / is optional, but you must separate multiple command line options with a space.

Display Session Manager - /SM

This option will start the session manager after starting Multi-Edit. This allows you to immediately pick a session from the list displayed or create a new session to work in.

To use the Display Session Manager command line switch, type the following at the command prompt:

MEW32 /SM

A space between MEW32 and the / is optional, but you must separate multiple command line options with a space.

Start A Named Session - /SN[session_name]

Similar to /SM, this option starts a specific session which you define in the command line. Unlike the /R option, the session_name must immediately follow the /SN command line option. The session_name refers to the actual session name, not the working directory. If you are specifying a session containing space characters, you may either substitute the underscore for each space, or enclose the session name in double quotes. For example a session called MY NEW SESSION could be specified /SNMY_NEW_SESSION. Session names are not case sensitive. The session manager will warn you if you try to create a session with a conflicting name. For example, it will warn you if you try to create a session named MY_NEW_SESSION when you already have a session named MY NEW SESSION.

To use the Start A Named Session command line switch, type the following at the command prompt:

MEW32 /SN[session name]

Examples:

MEW32 /SNmy_new_session
MEW32 /SN”my new session”

There is no space between /SN and the session name.

If the session name has a space in it, enclose the session name in double quotes, or substitute an underbar for each space character.

A space between MEW32 and the / is optional, but you must separate multiple command line options with a space.

Multiple Instances - /NI

This tells Multi-Edit to invoke another instance if one is already running. In other words, you can have multiple copies of Multi-Edit running at once.

To use the Multiple Sessions command line switch, type the following at the command prompt:

MEW32 /NI

A space between MEW32 and the / is optional, but you must separate multiple command line options with a space.

Run A Macro - /R [macro_name]

Runs the macro macro_name immediately upon startup. A space between the /R and the macro_name is optional.

A macro executed in this manner is run immediately upon startup. If you want to run a macro from the command line, you should take into consideration that not everything in Multi-Edit has been initialized when the macro executes. Consider using Startup.cfg and Startup2.cfg files as described in the next section below. You can also declare a Post-load macro for a particular file extension in the Edit Filename Extension Setup dialog.

To use the Run a Macro command line switch, type the following at the command prompt:

MEW32 /R[macro name]

Examples:

   Run macro ‘saturday’ located in file ‘ohio.mac’

MEW32 /R “ohio^saturday”

By default Multi-Edit looks in the \Mac folder of the Multi-Edit installation for macro files such as ohio.mac (e.g. C:\Program Files\Multi-Edit 2008\Mac). This is where *.mac files automatically end up when you compile a *.s file.

A space between MEW32 and the / is optional, but you must separate multiple command line options with a space.

Bypass VCS - /NV

Using this command line switch allows you to bypass the Version Control initialization.

To use the Bypass VCS command line switch, type the following at the command prompt:

MEW32 /NV

A space between MEW32 and the / is optional, but you must separate multiple command line options with a space.

Load A File - [filename]

You can load a file into Multi-Edit by specifying its filename as a command line option. Multi-Edit will attempt to determine the file's type. See File Types (Line Terminators) in the Files section of the chapter Working in Multi-Edit for information on how Multi-Edit determines a file's type. Alternatively, you can specify a “file type” for a file to use upon startup (see following switches below).

To use the Load A File command line switch, type the following at the command prompt:

MEW32 [filename]

When loading files in Multi-Edit, take care to specify the full path and filename to the file, especially when loading files not in the working directory. It is also recommended that you use quotes around the filename. Quotes are required if there are spaces in the filename.

A space between MEW32 and the / is optional, but you must separate multiple command line options with a space.

Load A DOS File - /*[filename]

Loads the file in MSDOS format. To use the Load A DOS File command line switch, type the following at the command prompt:

MEW32 /*[filename]

When loading files in Multi-Edit, take care to specify the full path and filename to the file, especially when loading files not in the working directory. It is also recommended that you use quotes around the filename. Quotes are required if there are spaces in the filename.

A space between MEW32 and the / is optional, but you must separate multiple command line options with a space.

Load A Unix File - /![filename]

Loads the file in Unix format. To use the Load A Unix File command line switch, type the following at the command prompt:

MEW32 /![filename]

When loading files in Multi-Edit, take care to specify the full path and filename to the file, especially when loading files not in the working directory. It is also recommended that you use quotes around the filename. Quotes are required if there are spaces in the filename.

A space between MEW32 and the / is optional, but you must separate multiple command line options with a space.

Load A Mac File - /%[filename]

Loads the file in Macintosh format. To use the Load A Mac File command line switch, type the following at the command prompt:

MEW32 /%[filename]

When loading files in Multi-Edit, take care to specify the full path and filename to the file, especially when loading files not in the working directory. It is also recommended that you use quotes around the filename. Quotes are required if there are spaces in the filename.

A space between MEW32 and the / is optional, but you must separate multiple command line options with a space.

Load A Binary File - /&[filename]

Loads the file in Binary format. To use the Load A Binary File command line switch, type the following at the command prompt:

MEW32 /&[filename]

The record length for a binary file is determined by the Filename Extension Setup for that file type (Tools | Customize | General | Filename Extensions). If no record length is given there, a default value of 16 is used.

When loading files in Multi-Edit, take care to specify the full path and filename to the file, especially when loading files not in the working directory. It is also recommended that you use quotes around the filename. Quotes are required if there are spaces in the filename.

A space between MEW32 and the / is optional, but you must separate multiple command line options with a space.

Load A List Of Files - /@[filelist]

This command line option instructs Multi-Edit to open the list of files defined in the filelist. The file list must be an MSDOS text file that contains only one file per line. To use the Load A List of Files command line switch, type the following at the command prompt:

MEW32 /@[filelist]

Example: MEW32 /@“C:\TEMP\my list.txt”

Take care to specify the full path and filename to the file containing your list, especially when the file is not in the working directory. It is also recommended that you use quotes around the full path and filename. Quotes are required if there are spaces in the path or filename.

Within the file containing your list, do not enclose filenames in quotes. Just put one filename per line.

A space between MEW32 and the / is optional, but you must separate multiple command line options with a space.

Goto Line n - /L[n]

This will cause Multi-Edit to move to line n in the previous file mentioned on the command line. If this switch comes before any filenames, then it will apply to the first file mentioned on the command line.

To use the Goto Line n command line switch, type the following at the command prompt:

MEW32 [filename] /L[n]

Example: MEW32 “myfile.txt” /L32

See Goto Column n (below) for more examples. There is no = between /L and the number. A space between MEW32 and the / is optional, but you must separate multiple command line options with a space.

Goto Column n - /C[n]

This will cause Multi-Edit to move to column n in the previous file mentioned on the command line. If this switch comes before any filenames, then it will apply to the first file mentioned on the command line.

To use the Goto Column n command line switch, type the following at the command prompt:

MEW32 [filename] /C[n]

Examples:
Move to line 12 column 7 in myfile.txt: MEW32 myfile.txt /L12 /C7
Move to line 35 column 20 in goodbye.txt: MEW32 myfile.txt hello.txt goodbye.txt /L35 /C20 saturday.txt
Move to line 12 column 7 in myfile.txt. Move to line 35 column 20 in goodbye.txt: MEW32 /L12 /C7 myfile.txt hello.txt goodbye.txt /L35 /C20 saturday.txt

   (In this example, since /L12 /C7 occurs before any filename, it is applied to the first file listed.)

There is no = sign between /C and the number.
A space between MEW32 and the / is optional, but you must separate multiple command line options with a space.

Startup.cfg And Startup2.cfg Files

With the introduction of the Update script and Add-On package support in Multi-Edit 8, a method to use these features to replace the Startup.s file was added to Multi-Edit 9.0. Using the Update scripting language, a Startup.cfg file is created that will allow almost everything that can be done with the Startup.s file to be done but without needing to compile a macro. To support this an entry was added to the Add-On package list called Startup, which will run the Startup.cfg and Startup2.cfg update scripts when Multi-Edit starts or switches session just like any other Add-On package.

The advantage of using the Startup.cfg file over the Startup.s method is that being set up as an Add-On package it can be enabled/disabled as the user pleases just by selecting a button in the Add-On Package Manager dialog.

Startup.cfg is run before all of the command line options are processed and before the session data is restored. Startup2.cfg serves the same purpose except it is run after the command line is processed and the session data is restored which allows for doing things such as overriding global variable values that would be restored in a session restore. Both are run during startup and session switches.

Below are some of the things that can be done in the Startup.cfg file.

;Setting a global integer variable
    GInt variable_name value
;Setting a global string variable
    GStr variable_name value
;Load a macro file
    LoadMac macro_file
;Run a macro
    RunMac macro_command_line

See The Update Macro Processor (next) for more on creating Startup.cfg and Startup2.cfg files.

For actual examples of these, see the Startup.cfg and Startup2.cfg files in the Multi-Edit 2008 Defaults sub-directory.

The Update Macro Processor

The purpose of the Update macro is to provide a simple script driven method of updating command maps, menus, toolboxes and other db files. It can also be used for configuring and installing Add-On packages. The following will describe the script language defined in the Update macro.

A script file is a text file that contains lines of commands that perform desired functions. The extensions for these script files can be anything, but using one of the four defined extensions is desired. These are:

Extension Description
.CFG contain scripts to configure Multi-Edit, a good way to replace STARTUP.S.
.DAT contain scripts to install Add-On packages. Used by the Install macro.
.DEL contains scripts to uninstall Add-On packages. Used by the Install macro.
.UPD contain scripts to update db files.

• Line comments
• Block comments
• Conditionals
• Commands

Commands are further divided into

• General commands
• Data commands
• Set commands

Statements are not case sensitive and can be entered however the user desires.

In this document the following have special meaning:

• Text enclosed in { } can be used zero or more times.
• Text enclosed in [] is optional.
• Commands are shown in Mixed Case and start with a capital letter.
• User entered data is shown in italics.

Update Script Reference

Line Comments

; A line starting with a ; is interpreted as a line comment, where all text between the ';' and end of line character are ignored.

Blank lines are also treated as a line comment and are ignored.

Block Comments

End of block comment

A line starting with is found. When this is found, the block comment ends and the following line will be interpreted as a new statement to be executed.

Block comments can be nested.

Conditionals

IfRC expression

Every statement, when run, sets the Result variable, which can be tested with the IfRC statement. A line starting with IfRC, meaning If Result Code, will enable statements to be conditionally executed depending upon the evaluated result of an expression. An expression that evaluates to True will cause all the following lines to be executed until a line starting with either Else or EndIf is encountered, otherwise it will ignore the following lines until either Else or EndIf is found.

Expression is defined as an operator followed by a number. All valid expressions are listed below, where number is a user-defined number.

Expression Description
== number evaluates True when Result is equal to number
< number evaluates True when Result is less than number
> number evaluates True when Result is greater than number
<= number evaluates True when Result is less than or equal to number
>= number evaluates True when Result is greater than or equal to number
!= number evaluates True when Result is not equal to number

If expression

A line starting with If will enable statements to be conditionally executed depending upon the evaluated result of expression. An expression that evaluates to True will cause all of the following lines to be executed until a line starting with Else or EndIf is encountered, otherwise all following lines until either Else or EndIf are found are ignored.

Expression is defined as statement1 operator statement2, where statement can be any of the following:

a string
a number
a global_str_var, i.e. <~Str_Var>
a global_int_var, i.e. <~Int_Var>

Operator can be any of the following:

Operator Description
== evaluates True when statement1 is equal to statement
< evaluates True when statement1 is less than statement
> evaluates True when statement1 is greater than statement
<= evaluates True when statement1 is less than or equal to statement
>= evaluates True when statement1 is greater than or equal to statement
!= evaluates True when statement1 is not equal to statement

Else

When a line starting with the Else statement is found, the following lines will NOT be executed if the preceding IfRC expression evaluated to True. Otherwise they will be executed until a line starting with EndIf is located.

Endif

A line starting with EndIf will end the conditional execution for the innermost encountered IfRC.

Conditional statements may be nested up to 16 levels deep.

Loop

A line starting with the Loop statement will save the line number it is on so that the matching EndLoop statement can reset the next line to be executed to be the Loop statement.

EndLoop

A line starting with the EndLoop statement will cause the matching Loop statement to be the next statement executed.

Break

When a line starting with the Break statement is found, all lines up to and including the next EndLoop statement are ignored. The next statement to be executed will be the line following the EndLoop.

Loop statements may be nested up to 10 levels deep.

Quit

When this command is encountered, processing of the script file is stopped and the rest of the file is ignored. This allows a way to exit processing of a script file.

General Commands

The commands in this section are used to create/set global variables, manipulate macros, files, directories, and execute programs. There is also a command to allow registering a resource DLL with Multi-Edit.

GInt global_int_var [ number ]
GStr global_str_var [ string ]

These commands allow setting global integer and string variables, respectively. If number or string is not provided, then values of 0 and ”” are
used which will erase the global variable. Otherwise the variable is created and set to the passed value.

The result code is always set to _noError (See DbTools.sh for the definition of the error codes).

Global variables may be referred to in some of the other script commands by using the metacommand <~var_name>, where var_name is the name of a string global variable.

LoadMac macro_file_name

This command loads the macro file, macro_file_name, into memory. All metacommands are translated in macro_file_name before the Load_Macro_File( ) function is called.

The result code is set to the Error_Level resulting from running the Load_Macro_File( ) function unless macro_file_name is blank, and is then set to _errorNoFile.

RunMac macro_name { parameter }

This command causes the macro macro_name to be run using the parameter list. This command translates all metacommands contained in the macro command line.

The result code is set to whatever Return_Int contains upon exiting the macro unless macro_name is not specified, and is then set to _errorNoFile.

Compile macro_name

This command compiles the macro macro_name. All metacommands are translated. If macro_name starts with the ”@” character, then the file macro_name is read as a list of macros to be compiled.

The result code is the result of the WinExecAndWait macro used to execute the compiler unless macro_name is blank, and is then set to _errorNoFile.

This will fail if you did not choose to install the CMac compiler during installation. The CMac compiler is not installed by default. If the compile fails, the user will get a dialog message saying “ERROR OCCURRED: Compile did not complete” and the user must click the dialog OK button to continue the installation.

Md directory_name MkDir directory_name

These commands try to make the directory directory_name. All metacommands contained in directory_name are translated.

The result code is set to the result of the MkDir( ) function unless directory_name is not specified, and is then set to _errorNoFile.

Rd directory_name
RmDir directory_name

These commands try to remove the directory directory_name. All metacommands contained in directory_name are translated.

The result code is set to the result of the RmDir( ) function unless directory_name is not specified, and is then set to _errorNoFile.

CopyFile src_file_name dest_file_name

This command copies a file src_file_name to dest_file_name. All metacommands are translated.

The result code is set to the result of the Copy_File( ) function unless src_file_name and dest_file_name are blank, and is then set to _errorNoFile.

DelFile file_name

This command causes the file file_name to be deleted. All metacommands are translated.

The result code is set to the Error_Level resulting from the Del_File( ) function unless file_name is blank, in which case it is set to _errorNoFile.

RenFile old_file_name new_file_name

This command renames the file old_file_name to new_file_name. All metacommands are translated.

The result code is set to the result of the Rename_File( ) function unless old_file_name and new_file_name are blank, and is then set to _errorNoFile.

LoadFile file_name

This command loads file_name into the editor. All metacommands are translated.

The result code is set to the Error_Level resulting from LdFiles macro unless file_name is blank, in which case it will use the current file path and name for prompt when no filename passed.

Exec program { parameter }

This command executes program, passing the parameter list on the command line. All metacommands are translated.

The following Set command affects the operation of the Exec command.

Set WrkDir

This sets the working directory that the ExecProg( ) macro changes to when executing the program.

The result code is set to the result of the ExecProg macro used to run program unless program is not specified, and is then set to _errorNoFile.

RegDll dll_name

This command registers the resources in the DLL dll_name with Multi-Edit.

The result code is set to _NoError unless dll_name is blank or the DLL file is not found, and is then set to _errorNoFile.

Data Commands

The following commands are used to add, delete, replace, and update data records in dB files. There are commands to operate on general data, and other commands that work with data of a specific type, such as CmdMaps, Toolbars, and Menus.

DelPage page_name

This command is used to delete the page header page_name, as well as all of the data contained under page_name. All metacommands are translated.
The result code is set to the result of DbDelPage( ) macro unless page_name is blank, and then it will be set to _errorNoDbPage

Dat data_record

This command is used to add, delete, replace, and update general data records in dB files.

There are a number of Set commands that need to be run before using this command.

The following Set commands affect this Dat command. Commands marked with * must, at a minimum, be run before a Dat command is processed.

*Set File: Sets the dB file the following Dat commands use.
*Set Page: Sets the page in the dB file the following Dat commands use.
Set Func: Sets the operation the following Dat commands perform.
Set Create: Specifies if the dB File or Page is to be created.
Set Dups: Specifies whether duplicate data records are allowed.
Set Insert: Specifies where data_record is inserted when added.
Set Dat: Specifies a data record that the next Dat command tries to locate to insert data_record before or after.
Set RecNo: Specifies the record number the next Dat command tries to delete or the record number data_record is inserted before or after.

This command overrides Set Dat.

Set Replace Dat: Specifies the data record that the next Dat command tries to replace.
Set Replace RecNo: Specifies the record number that the next Dat command tries to replace.
Set Update Dat: Specifies the data record that the next Dat command tries to update.
Set Update RecNo: Specifies the record number that the next Dat command tries to update.
Set Fields: Specifies the fields that will be included or excluded on the next Dat command after a Set Replace Dat, Set Replace RecNo, Set Update Dat or Set Update RecNo command.

data_record is the complete data record that is to be added or deleted, or the data record used to replace or update a located record.

The result code is set to the result of the DbPutRecord( ) or DbDelRecord( ) macros.

FirstMatch field_id

This command is used to locate the first of multiple data records in dB files matching a regular expression in a specified field. If a record is found, the global string variable !UpdMatchStr is set to the data from the found record specified by the parameter field_id or the complete record if field_id is not specified. It also sets up some internal variables that the NextMatch command uses for locating the next matching record. Use the Loop … EndLoop statements with the NextMatch command to process all matching data records. The CloseMatch command should be used to clean up the internal variable data used by the FirstMatch/NextMatch commands before ending the Loop.

There are a number of Set commands that need to be run before using this command.

The following Set commands affect the FirstMatch command. Commands marked with * must, at a minimum, be run before a FirstMatch command.

*Set File: Sets the dB file the following FirstMatch command uses.
*Set Page: Sets the page in the dB file the following FirstMatch command uses.
*Set Dat: Specifies a regular expression the next FirstMatch command will try to find.
*Set Fields I: Specifies the field that the next FirstMatch command will search to try to find a pattern matching the regular expression specified by the Set Dat command.

field_id is the field identifier of the data from the found record that is returned in the global string variable, !UpdMatchStr.

The result code is set to _noError if at least one matching record was found, otherwise _errorNoDbRecord is returned.

Example:

;--- Add HTML commands ---
  Set Page EXT.DB
  Set Fields I EXT=
  Set Dat (HTM)|(ASP)|(CDF)|(JSP)
  FirstMatch EXT=
  Loop
    IfRc == 0
      Set Page <~!UpdMatchStr>.PGM
      Set Create True
      Set Update Dat PN=HtmlTidy
      Dat PN=HtmlTidyCL=d:\Mew32\HtmlTidy -wrap 79 -ium <FILE>.<EXT>WORKLOC=1PT=HtmlTidyEXEID=1SHOW=0
    Else
      CloseMatch
      Break
    EndIf
    NextMatch EXT=
  EndLoop

NextMatch field_id

This command is used to locate the next data record in dB files set up by the FirstMatch command. If a record is found, the global string variable !UpdMatchStr is set to the data from the found record specified by the parameter field_id, or the complete record is returned if field_id is not specified.

The data to match is set up by the FirstMatch command and must be run before using this command.

field_id is the field identifier of the data from the found record that is returned in the global string variable, !UpdMatchStr.

The result code is set to the value returned by the DbFindNext macro.

CloseMatch

This command is used to clean up the internal variable data the FirstMatch command sets up.

The result code is set to the value returned by the DbFindClose macro if a previous FirstMatch was run, otherwise it will return _errorNoDbRecord.
Sec section_name

This command is used to add, delete, replace, and update sections in command map files.

There are a number of Set commands that need to be run before using this command.

The following Set commands affect the Sec command. Commands marked with * must, at a minimum, be run before a Sec command.

*Set File: Sets the dB file the following Sec commands use.

Set File blank to use the user's default cmdmap file.

Set Func: Sets the operation the following Sec commands perform.
Set Insert: Specifies where section_name is inserted when added.
Set Sec: Specifies the section that the next Sec command tries to locate to insert the new section before or after.
Set Replace Sec: Specifies the section that the next Sec command tries to replace.
Set Update Sec: Specifies the section that the next Sec command tries to update.

section_record is the name of a command section to add or delete, or to use to replace or update the located section.

The result code is set to the results of the DbPutCmdSection( ) or DbDelCmdSection( ) macros.

Cmd cmd_record

This command is used to add, delete, replace, and update CmdMap record entries in CmdMap dB files.

A number of Set commands must be run before this command will function properly.

Following is the list of Set commands that affect the Cmd command. Commands marked with * must, at a minimum, be run before a Cmd command is executed.

*Set File: Sets the dB file the following Cmd commands use.

Set File blank to use the user's default CmdMap file.

Set Func: Sets the operation the following Cmd commands perform.
Set Dups: Specifies whether duplicate CmdMap records are allowed.
Set Insert: Specifies where cmd_record is inserted when added.
Set Sec: Specifies the CmdMap section under which the following Cmd commands locate and place CmdMap records.
Set Cmd: Specifies the CmdMap record the next Cmd command tries to locate to insert cmd_record before or after.
Set Replace Cmd: Specifies the CmdMap record that the next Cmd command tries to replace.
Set Update Cmd: Specifies the CmdMap record that the next Cmd command tries to update.
Set Fields: Specifies the fields to included or excluded on the next Cmd command after a Set Replace Cmd or Set Update Cmd command.

cmd_record is the complete CmdMap record to add or delete or the record to replace or update the located CmdMap record.

The result code is the result of running the DbPutCmd( ) or DbDelCmd( ) macros.

Mnu menu_record

This command is used to add, delete, replace, and update menu entries under a specified menu page in CmdMap dB files.
A number of Set commands must be run before this command will function properly.

Following is the list of Set command that affect the Mnu command. Commands marked with * must, at a minimum, be run before a Mnu command is executed.

*Set File: Sets the dB file the following Mnu commands use.

Set File blank to use the user's default CmdMap file.

*Set Page: Sets the page in the dB file the following Mnu commands use, i.e. CONTEXT.MNU.
Set Func: Sets the operation the following Mnu commands perform.
Set Dups: Specifies whether duplicate Menu entries are allowed.

The separator command is always duplicated.

Set Insert: Specifies where menu_record is inserted.
Set Mnu: Specifies the menu entry that the next Mnu command tries to locate to insert menu_record before or after.
Set Replace Mnu: Specifies the menu entry that the next Mnu command tries to replace.
Set Update Mnu: Specifies the menu entry that the next Mnu command tries to update.

menu_record is the complete menu record to add or delete, used to replace or update the located menu record.

The result code is the result of running the DbPutMenu( ) or DbDelMenu( ) macros.

Tbx toolbox_record

This command is used to add, delete, and replace/update toolbox records in CmdMap dB files and to set up the environment to allow the Btn command to add, delete, and replace/update buttons for the specified toolbox.

A number of Set commands can be used to alter this command.

The following Set commands affect the operation of the Tbx command. Commands marked with * must be run before this command will function properly.

*Set File: Sets the dB file the following Tbx commands use.

Set File blank to use the user's default CmdMap file.

Set Func: Sets the operation the following Tbx commands perform.
Set Dups: Specifies whether duplicate toolboxes are allowed.
Set Insert: Specifies where toolbox_record is inserted when added.
Set Tbx: Specifies the toolbox entry that the next Tbx command tries to locate to insert toolbox_record before or after.
Set Replace Tbx: Specifies the toolbox record that the next Tbx command tries to replace.
Set Update Tbx: Specifies the toolbox record that the next Tbx command tries to update.
Set Fields: Specifies the fields to included or excluded on the next Tbx command after a Set Replace Tbx or Set Update Tbx command.

toolbox_record is the complete toolbox record to add, delete, replace, or update the located toolbox record.

The result code is the result of running the DbPutToolBox( ) or DbDelToolBox( ) macros.

Btn button_record

This command is used to add, delete, and replace/update toolbox button records in CmdMap dB files for a specified toolbox.

A number of Set commands can be used to alter this command.

The following Set commands affect the operation of the Btn command. Commands marked with * must be run before this command will function properly.

*Set File: Sets the dB file the following Btn commands use.

Set File blank to use the user's default CmdMap file.

Set Func: Sets the operation the following Btn commands perform.
Set Dups: Specifies whether duplicate buttons are allowed.
Set Insert: Specifies where button_record is inserted when added.
*Set Tbx: Specifies the toolbox page under which the following Btn commands locate and place buttons.
Set Btn: Specifies the button that the next Btn command tries to locate to insert button_record before or after.
Set BtnNo: Specifies the button position number the next Btn command inserts button_record before or after.

This overrides a Set Btn command.

Set Replace Btn: Specifies the button the next Btn command tries to replace.
Set Replace BtnNo: Specifies the button number the next Btn command tries to replace.
Set Update Btn: Specifies the button the next Btn command tries to update.
Set Update BtnNo: Specifies the button number the next Btn command tries to update.

button_record is the complete button record to add or delete, or to use to replace, or update the located button record.

The result code is the result of running the DbPutButton( ) or DbDelButton( ) macros.

Set Commands

The set commands are used to set up the operating environment for the data and a few of the general commands. There are quite a few set commands. Some affect most commands while others only affect a few commands. All set commands are discussed below.

Set Log Off, On, Reset, Msg [text]

The Set Log command is used to enable and disable the logging of messages to a log file. It can also be used to write messages to the screen and log file from script files.

Whether a log file is created and written to or not depends upon the state of the Log flag.

The following table shows the meaning of each state.

Flag Description
Off Commands will not write progress and error messages to the log file.
On Commands will write progress and error messages to the log file.
Reset Will reset the Log status to what it was when the Update macro was first run. The initial Log status is set by the Install macro and is user configurable
Msg text This option will not affect the Log status but is used to write text to the status line and to the log file when logging is On.

Set NoMsgBox Off, On, Reset

The Set NoMsgBox command is used to enable and disable the use of a modeless message box dialog to display the logging and error messages while the script is being executed. The transparency of a modeless dialog can be set via Tools | Customize | User Interface – Dialog Transparency.

Whether the message box dialog is used or not depends upon the state of the NoMsgBox flag. The following table shows the meaning of each state.

State Description
Off The message box will not be used to display progress and error messages.
On Progress and error messages will be shown in a modeless message box dialog.
Reset Will reset the NoMsgBox status to what it was when the Update macro was first run. The initial NoMsgBox status is set by the Install macro and is user configurable.

Set Verify Off, On, Reset

The Set Verify command is used to enable and disable a verify dialog before a data command is executed asking if the user wants to execute the current data command.

Whether the verify dialog is shown or not, depends upon the state of the Verify flag. The following table shows the meaning of each state.

State Description
Off The user will not be prompted before a data command is executed.
On The user will be prompted to verify their desire to proceed with the current data command.
Reset Will reset the Verify status to what it was when the Update macro was started. The initial Verify status is set by the Install macro and is user configurable.

Set WrkDir [ work_directory ]

The Set WrkDir command specifies the working directory that is used when the Exec command is run. The last directory set is used until another Set WrkDir is executed.

Set EndMac macro_name { parameter } {; macro_name { parameter } }

The Set EndMac command is used to specify a list of macros that are to be executed just before the Install macro exits. A global variable is set to contain the list of macros that the Install macro runs and then deletes when all macros have been executed.

This command should only be used in scripts that are run by the Install macro and will have no effect when running the Update macro alone.

Set Create False ( Default ), True

The Set Create command specifies whether a File or Page is created when it does not already exist. The File or Page will be created if it does not exist when Create is set True.

A Set Create must be done BEFORE a Set File for it to affect the creation of Files, and remains in the last set state until another Set Create command is run.

A Set Create must be done AFTER Set Page to have a page created when a data command is performed. This is needed because the Set Page command causes the flags used by the data commands to be set to the defaults (Create False).

Set File [ file_name ]

The Set File command loads the specified file (file_name) or the user's default WCmdMap file when file_name is blank, into a window. The file will be created if it does not exist when the “Create” option is set to True. If file_name contains no path information, then the user's path is used unless no user id is specified, and then the Multi-Edit directory is used.

Every time a new file is loaded, the previously loaded file is saved.

A Set File file_name command should always be run before any data commands that make changes to files. The only exception is when the user's default WCmdMap file is being used.

Set Func Add ( Default ), Delete

The Set Func command is use to specify what operation will be done when a data command is executed. This flag remains in the last set state until changed by another Set Func or a Set Page command is run which will reset it to the default (Add).

Command Description
Add (Default) Causes a data command to run the appropriate DbPutXxx macro in DbTools to add, replace or update the specified data. The actual operation that is performed, normally Add, is determined by flags set by the Set Replace or Set Update commands. When one of these commands is run the next data operation will be a Replace or Update but the following data operation will then revert back to Add unless another Set Replace/Update command is run.
Delete The Delete state will cause a data command to run the appropriate DbDelXxx macro in DbTools to delete the specified data.

The Set Update and Set Replace commands also sets the Func state to Add but sets flags to indicate the next data operation will be an Update or Replace.

Set Page [ db_page_name ]

The Set Page command sets the page that the Dat and Mnu commands use when updating data or menus. This option will reset most of the data options to their defaults.

Set Insert After ( Default ), Before

The Set Insert command is used to specify where the data for data commands will be inserted into the file. This option will remain in the last set state until another Set Insert changes it or a Set Page is executed.

Command Description
After (Default) Will cause the data to be inserted after the specified data record or at the end of the page when no data is found.
Before Will cause the data to be inserted before a found data record or as the first entry in the page if no data record was found.

Set Dups False ( Default ), True

The Set Dups command determines whether duplicate records are allowed when a data command is run. This option will remain in the last set state until it is set by another Set Dups or a Set Page is executed, in which case it will be reset to the default (False).

Command Description
False (Default) Will not allow a duplicate record to be added to the file when a data command is executed.
True Will allow duplicate records to be added to the file when a data command is executed

Set CmdTrans Off ( Default ), On

The Set CmdTrans command determines whether the data commands will have the command line metacommands translated or not before the command is run. This option will remain in the last set state until it is set by another Set CmdTrans or a Set page is executed, in which case it will be reset to the default (Off) state.

Command Description
Off (Default) Will cause the command line to be used exactly as it appears.
On Will cause all metacommands in the command line to be translated before the data command is executed

Set RecNo [ record_no ]

The Set RecNo command sets the record number the next Dat command will use when searching for a data record. This value will only be used for the next Dat command and will be updated to the current record number after the Dat command is finished. This option should be used when you desire to replace or delete a specific record by number or specify a record number to insert a new record before or after.

The Set Page and Set Func commands causes this to be set to 0 which is also the same as doing a Set RecNo with no record_no specified.

Set BtnNo [ button_no ]

The Set BtnNo command is used to set the button position number the Btn command will use when searching for a button in a Toolbox. This value will be updated after every Btn command, thus causing the added buttons to be inserted before/after the previous button unless another Set BtnNo or Set Btn command is run.

The Set Page, Set Func and Set Tbx commands cause BtnNo to be set to 0. Also when button_no is not specified BtnNo will be set to 0.

Set Dat find_data

The Set Dat command is used to set the data record the following Dat command tries to locate to insert the new data record before or after depending upon the state of the Insert mode.

find_data contains a field name followed by the data for that field that is to be searched for, i.e. NAME=Test. Only one field and its data should be specified.

Set Sec find_section_name

The Set Sec command sets the CmdMap section. The following Sec command tries to locate and insert the new section before or after. It also sets the CmdMap section the following Cmd command places its command records under…

find_section_name is the text for the section name, i.e. File Operations.

Set Cmd find_cmd

The Set Cmd command sets the command record that the following Cmd command tries to locate to insert the new command record before or after.

find_cmd contains the field name and data to search for. There are three fields that can be specified. See the following page for the Command Description Table.

Command Description
NAME=name Used to locate the CmdMap record by name, where name is a text string specifying the command name, i.e. Delete Window.
KEY=keystr Used to locate the CmdMap record by assigned key value, where keystr is a text string of the following form. /KL=F3/K1=114/K2=1 Both primary and secondary keys will be searched.
WCMD=number Used to locate the CmdMap record by WCmd number, where number is a WCmd number

Set Mnu find_menu

The Set Mnu command sets the menu entry the next Mnu command tries to locate to insert a new menu entry before or after.

find_menu contains a string that specifies the entire menu entry. This string is made up of one of the following:

Command Description
/WCMD=number Specifies the WCmd number used to locate the menu by WCmd, where number is a WCmd number.
/IN=level Specifies the indent level of the menu to locate, where level is the level number. /#= entries only need to be specified up to # equal to level
/1=menu_str Specifies the text of a level 1 menu entry, where menu_str is the text string, i.e. &File.
/2=menu_str Specifies the level 2 menu entry, where menu_str is the text of a menu entry, i.e. &Open.
/3=menu_str Specifies the text of the level 3 menu entry.
/4=menu_str Specifies the text of the level 4 menu entry.

There is a trick to adding multiple menu entries. Insert the last menu entry first, then switch to entering the rest of the menu entries in reverse order, working your way to the top of the menu you wish to build. Here is an example:

Set Mnu /1=Addon/2=EDX/IN=2
Set Insert After
Mnu MENU=/TX=About EDX Add-On/IN=3/SP=0 WCMD=11204
Set Insert Before
Mnu MENU=/TX=/IN=3/SP=1 WCMD=6969
Mnu MENU=/TX=List &ModeShift Keys/IN=3/SP=0 WCMD=11095
Mnu MENU=/TX=List &Command Keys/IN=3/SP=0 WCMD=11094

This avoids a problem encountered when entering more than one separating line in a menu (a separating line is identified by /SP=1 and has WCMD=6969).

Set Tbx find_toolbox

The Set Tbx command sets the toolbox entry the next Tbx command tries to locate to insert a new toolbox record before or after and it also sets the toolbox page the following Btn commands use to place their buttons under.

find_toolbox contains a string that specifies the toolbox name, i.e. Search. This string will be used by the Btn command to locate the page under which buttons are added, replaced, updated and removed.

Set Btn button_wcmd

The Set Btn command sets the button WCmd the next Btn command tries to insert a new button before or after. This option is overridden by the Set BtnNo so only one or the other should be used.

button_wcmd contains a number that represents the WCmd for that button to locate.

Set Replace Dat find_data, RecNo record_no, Sec find_section_name, Cmd find_cmd, Mnu find_menu, Tbx find_toolbox, Btn button_wcmd, BtnNo button_no

These commands set the appropriate values so the next command of the same type can replace the located item. See the appropriate Set Xxx section for the meaning of each parameter.

These set the replace flag and only affect the next command because the replace flag is cleared when the next command is run.

Set Update Dat find_data, RecNo record_no, Sec find_section_name, Cmd find_cmd, Mnu find_menu, Tbx find_toolbox, Btn button_wcmd, BtnNo button_no

These commands set the appropriate values so the next command of the same type can update the located item. See the appropriate Set Xxx section for the meaning of each parameter.

These set the update flag and only affect the next command because the update flag is cleared when the next command is run.

An update will replace the data if it was located but will add the new data when no data was located.

Set Fields I /F=field_name { field_name }, X /F=field_name { field_name }

The Set Fields command sets the fields that are either included or excluded from a replace or update operation. This command should appear after a Set Replace or Set Update command but before the Xxx data command.

When no parameters are specified after the Set Fields command, the next data operation will replace or update the whole record.

A parameter of “I /F=field_name { field_name }” causes only the fields specified by field_name in the located data record to be replaced with the data from the specified fields of the new data record, i.e. included.

A parameter of “X /F=field_name { field_name }” causes the fields specified by field_name in the located data record to NOT be replaced with the data from the specified fields of the new data record, i.e. excluded.

field_name is a list of space delimited fields names, i.e. NAME= KEY=

Example: Set Fields I NAME= KEY=

In the above example there must be exactly one space before and after I . Separate multiple fields with a space.

Add-On Packages Installation Files

Installation Overview

Instead of having each Add-On package developer design and code their own installation and management macro, MESI has provided a standardized way of installing Add-On packages to Multi-Edit. This is done through a couple of entries in the Tools menu and a few script files that the Add-On developer creates. These script files are written in the script language defined in the Update Macro document. This script language is powerful enough that we use it ourselves to update the command map file whenever we release a Multi-Edit update.

More information on setting up your own Add-On Packages or about the Update macro can be downloaded from our web site.

Install.lst (Required)

This file contains a list of information that the Install macro uses to install a package. It contains a single line which is a Multi-Edit db record that can contain the following fields:

Please note that the 0x7F character is represented by the  symbol below. There is no space between the  and the letter.

Field Description
P= The package name (Required)
V= The version of the package (Required)
F= A script file to copy files etc “MyAddOn.dat” (Required)
CF= A script file to add package commands “MyAddOn.upd”
D= The default installation directory
R= A readme file
U= A script file to delete package “MyAddOn.del”
I= A macro command to initialize the package upon startup and session switches
POST= A macro command that is run after a session is restored.
EM= A macro command that is run when the Enable button in the Manage Add-On Package dialog is selected.
DM= A macro command that is run when the Disable button in the Manage Add-On Package dialog is selected.
DLL= A .DLL file that could contain bitmaps etc
NDC= No DLL Copy flag, 0-Copy DLL to Multi-Edit dir, 1-Do not copy
.dat file (Required)

This file contains an update script that copies any needed files into the proper directories. If an external installation program such as Wise Installation System or Install Shield is used, which installs all of the files into the correct directories, then this file would be blank.

This file must always exist but can be blank.

.upd File

This file contains an update script that adds data to the command map file allowing you to modify commands, key mapping, menus and toolbar information.

.del File

This file contains an update script that removes the Add-On package. It removes all of the data added to the configuration files by the MyAddOn.upd script. It can also remove all of the files added by the MyAddOn.dat script if an external installation program was not used to install the package.

For some real examples of these installation files, install Multi-Edit into a scratch directory and select ALL of the checkboxes when it gives you the “Select Components” list box. Then go to the AddOns directory within that Multi-Edit installation (e.g. C:\Program Files\Multi-Edit 2008\AddOns) and search for all the *.upd, *.dat, *.del, and *.lst files. Also have a look at the *.upd file in the add-on EDX. Smooth Scroll, Scroll Margins, much more! This add-on is in the User Created Macros forum of the Multi-Edit web site (www.multieditsoftware.com/forums).

Integrating External Applications

DDE

DDE Server Name

The Multi-Edit server name = “Multi-Edit”

EXECUTE Command Syntax

In the table below, the + sign denotes one or more occurrences of the item, * denotes zero or more occurrences of the item. Also the table continues on the following page.

Name Definition Comment
Execute_string command+ An execute request consists of one or more commands
command [command_name args*] Each command is enclosed in square brackets. A command may have an optional argument list.
command_name grchar+ A valid command name consists of one or more alphanumeric characters.
Grchar [a-zA-Z0-9!#$%^&()-_{}~] The set of legal MS-DOS file system characters.
Args (arglist) Command arguments are contained within parentheses.
Arglist Arg or any arg, arglist An argument list consists of zero or more arguments separated by commas.
Arg “string” or string An argument consists of a string or a string enclosed in double quotation marks. The argument may be empty.
String grchar* A series of valid string characters.

Examples

The following set of examples are all valid command strings:

[Quit]
[Pos(5,8)]
[Text("Insert Text")]

When the command has no arguments (the Quit example above), it is not valid to use command name with an empty set of parentheses. The following example shows a command that takes three arguments, and the second argument has been omitted:

[ThreeArgCommand("arg 1",,"arg 3")]

Commands may be concatenated to form a single execute-request string. The commands will be executed in the order they occur in the request. For example, the following sequence of commands might be used to make a selection and copy it to the Clipboard:

[Select(all)][Copy]
Including Special Characters In String Arguments

Characters that are not alphanumeric—quotation marks, tabs, and so on—can be embedded in the argument strings by using the backslash character (\) as an escape code. Quotation marks can also be included by inserting them as pairs. The backslash escape mechanism (as used in CMac strings) gives complete flexibility. Turn the page for an example.

The examples below show the command string and resulting text.

Examples of Embedding Special Characters in Argument Strings

Argument Resultant string
””“Woof””, said the big dog.” “Woof”, said the big dog.
“\”Woof\”, said the big dog.” “Woof”, said the big dog.

Because the escape characters are stripped from the strings, you cannot include the \0 (null) character in a string. Doing so effectively truncates the string.

Returning Result Information

Returning result information from an Execute command is not provided by the DDE protocol, so Multi-Edit uses the standard used by Microsoft Word and Excel, the “Execute Control 1” Protocol. When a client wants to be able to retrieve result information from Multi-Edit, it tells the Multi-Edit that it would like to have this information saved in a named DDE item. It does this by sending a special execute command naming the Result item, followed by the command for which it wants to retrieve the result information. For example, let's say we are about to make a request to open a file and want to know if it succeeds or, if not, why it failed. To do this, we would send the following DDE execute command:

[Result(OpenResults)][Open(bogus.dat)]

The Result command tells Multi-Edit to create a special temporary DDE item, called OpenResults, under the current conversation. When the Open command is executed, its result information is copied to the OpenResults item. When the command request is complete, the client can ask Multi-Edit for the contents of the OpenResults item. The server will return the string returned by the Open command, and then delete the special temporary OpenResults item.

[Result]
-or-
[Result()]

If the name of the item given in the Result command is the same as an existing item for the topic, the existing item will be suspended while the Result item is active. When result reporting is turned off, the original item is reactivated. Suspending an existing item is a choice that the client makes. The client can enumerate the current list of items for the topic, so there is no reason for it to override an existing item without being aware that it is doing so.

Once a Result command is active, it remains active until the conversation is ended, a new Result command is issued or Result info is requested.
Whenever Multi-Edit needs to return data in response to an execute command, it concatenates the new data onto the end of any existing Result item data. Each item is terminated by a termination sequence, \r\n (carriage return, line feed).

Result strings are dependent on the function called.

Supported Execute Command Set

Example: [RunMacro(“Macro_File^Macro_Name /Parm1=foo/Parm2=other foo”)]

Command Topic Description
RunMacro System Takes one parameter, which is the name of the macro and any string parameters
Command Topic Description
RM System Takes one parameter, which is the name of the macro and any string parameters

Example: [PrepareExit]

Command Topic Description
PrepareExit System Does all necessary work to close Multi-Edit. However, does not close. This allows for checking if user stops the exit. Returns: a 1 if successful, 0 otherwise.

Example: [Quit]

Command Topic Description
Quit System Shuts down Multi-Edit.

Example: [LineCol(4,6)]

Command Topic Description
LineCol Current Window Sets current line and column. Accepts two parameters, where first is the line and second is the column.
Topic Item Description
CurrentWindow Name Complete filename of the current window.
CurrentWindow LineCol Line and Column position of the current window.

COM

Multi-Edit 2008 contains a COM server that will allow programs to control Multi-Edit via the COM interface. We use this interface for all of our IDE integration packages except for the Watcom integration, which still uses DDE.

When Multi-Edit 2008 is installed, it registers its COM server type library with Windows so that other programs can access it. The following is the basic information needed to get started.

Type Library: MEW32 Library (MEW32.tlb in MEW32.exe)
Interface: Iapp
Methods: Quit, RunMac, GlobalInt, GlobalStr

Once a Multi-Edit COM object is opened, any Multi-Edit global integer or string can be read or written via the GlobalInt and GlobalStr methods.
To do anything else the RunMacro command is used to run a Multi-Edit macro that can be user written or one of the system macros. We provide a set of macros in the file Remote.s that we use in our IDE integration Add-On's which allow most things to be done.

On the following pages is a sample Visual Basic Script that shows how to control Multi-Edit via a script. Additional wrappers can be found on the Multi-Edit website. This is the code that is used in most of our IDE integration packages.

'==================================================================
' Script to illustrate use of automating Multi-Edit


 ==================================================================
' ------------------------------------------------------------------
' Call the main subroutine
' ------------------------------------------------------------------
call Main( )
' ------------------------------------------------------------------
' We are finishing now
' ------------------------------------------------------------------
WScript.Quit( 0 )
' ------------------------------------------------------------------
' The main subroutine
' ------------------------------------------------------------------
Sub Main
    ' --------------------------------------------------------------
    ' Get an object of the params passed in to this script
    ' --------------------------------------------------------------
    Set objArgs = Wscript.Arguments
    ' --------------------------------------------------------------
    ' Check the arguments passed, only have 1 param in this script
    ' --------------------------------------------------------------
    If objArgs.Count <> 1 Then
        WScript.Echo "Please pass only 1 param, for Multi-Edit to open"
        WScript.Quit ( 1 )
    End If
    ' --------------------------------------------------------------
    ' Create an instance of Multi-Edit automation server
    ' --------------------------------------------------------------
    Set objMEW32 = CreateObject( "MEW32.App" )
    ' --------------------------------------------------------------
    ' Open the specified  
    ' --------------------------------------------------------------
    objMEW32.RunMac( "Remote^RemActivate" )
    objMEW32.RunMac( "Remote^RemReloadFile /L=2/FLAGS=1/F=" + objArgs( 0 ) )
    objMEW32.RunMac( "Remote^RemReloadFile /L=2/FLAGS=0/F=d:\src\scripts\Multi-EditObj.vbs" )
    objMEW32.RunMac( "Remote^RemShowMsg Hello World!" )
'    WScript.Echo objMEW32.GlobalInt( "!ComTest" )
'    WScript.Echo objMEW32.GlobalStr( "@Default_Ext_List" )
'    WScript.Echo
'    objMEW32.RunMac( "Remote^RemGetActiveFile /GN=!RemActiveFile" )
'    WScript.Echo "ActiveFile: " + objMEW32.GlobalStr( "!RemActiveFile" )
'    objMEW32.GlobalInt( "!ComTest" ) = 6
'    WScript.Echo objMEW32.GlobalInt( "!ComTest" )
'    objMEW32.GlobalStr( "!ComTestStr" ) = "ComTest"
'    WScript.Echo objMEW32.GlobalStr( "!ComTestStr" )
    ' Clear globals
    objMEW32.GlobalInt( "!ComTest" ) = 0
    objMEW32.GlobalStr( "!ComTestStr" ) = ""
    ' --------------------------------------------------------------
    ' Close Multi-Edit and Clean up
    ' --------------------------------------------------------------
'    objMEW32.Quit
    Set objMEW32 = Nothing
End Sub
' ------------------------------------------------------------------
' End of script
' ------------------------------------------------------------------
 
doc/manual2k8/startup.txt · Last modified: 2008/07/09 14:53 (external edit)     Back to top