Version 3.0

VB Language Manager Pro Version 3.0, released on March 6, 1996, is fully compatible with VB4, has some significant new features and many minor enhancement, and fixes the (very few) bugs users found in V2.11. As usual, we reviewed all customer requests and suggestions during the design stage, and implemented as many as possible.

Since only ~2% of VBLM customers purchased the standard edition of previous versions, we discontinued it; from V3 onward, VBLM Pro is the only edition available.


VBLM3 provides full support for all of the new features, files, formats etc in VB4, while retaining backwards compatibility. VBLM3 works with VB2, VB3, VB4 16, and VB4 32. It runs under Win3.x, Win95, and WinNT.


String Extraction

The first thing previous users will notice when they open the string extraction (sx) window is that the incredible clutter of V2.x is gone, replaced with spiffy new tabbed pages. Each sx token list appears on its own page, with an explanation, an activate check box, and a pattern-matching checkbox. Aside from VB4 compatibility, the single biggest change in VBLM3 is that you can now use wildcard characters on all token lists (first suggested, I think, by Peter Biddlecombe in the UK). You can also specify case-sensitive vs. case-insensitive matching on a token-by-token basis. See pattern matching for more info.

If you switch to the Miscellaneous page, you'll see that VBLM3 now has (limited) ability to extract string properties stored in FRX files (requested by many users), as well as menu-shortcut keys (requested by Roger Smith, among others). See String Properties and FRX files and extracting menu shortcut keys for details.

Finally, the sx log file now provides more precise information; it shows you the tokens as well as the token lists that caused strings to be ignored.

Language Table Editor

The LTE's file menu now has an item to run the ChapMap applet supplied with Windows for easy access to special characters. The path for CharMap, as well as an option to have it always displayed on top, are set under General Options.

At the suggestion of Timothy Nathan, the edit menu now has an item that copies the original string into the translation.

If you open the code window, you'll see that it now has an Always on Top entry on the file menu.

Bug Fix: The delete key now fires the dirty flag (Mark Magner found this, and he's grown old waiting for me to fix it; sorry about that, Mark).

Bug Fix: Switching V2.x's LTE window between normal and maximized state could result in a screwy situation where the translations were displayed next to the wrong string (this looked ominous, but it was merely a display problem). Fixed.


Due to the complexities of working with several different versions of VB, the Interaction with VB option has been scaled back to a single choice of running VB and loading the build; see Running VB after a Build.

As requested by numerous users, the RSV Build Options now allow you to specify your own support files.

Bug Fix: When VBLM 2.x built an RSV, it refused to replace strings that followed any token that had "CONST" in it. Kjell Stolpe found this, when VBLM wouldn't replace strings in MsgBox calls that used the MB_ICONSTOP constant. Fixed.


Timothy Nathan pointed out that VBLM presented the user with an annoying number of confirmation dialog boxes when updating a project ("Do you want to update?", "Do you really want to update?", etc). Some have been eliminated.

VBLM3 comes with a help system add-in that lets you browse, print, and full-text-search the help file; just click the Browse and Find Text buttons.


I think that's about it. Thanks to all users who took the time to make suggestions and/or help me track down bugs, and thank you for your business!

Ben Whipple

Version 3.01

VBLM Pro Version 3.01 shipped on April 10, 1996 with the following bugs fixed:

V3.0 had problems with long file names, especially with FRX files. V3.01 implements almost complete support for long file names (it works fine with VB projects that use them, and uses them in the localized versions it creates, but it will not let you use long names for its own files, ie *.lmp, *.lmd, or *.lmx).

V3.0 would not extract or replace strings assigned to the new enumerated properties in OCX controls (eg SSTab1.TabCaption(0)).

V3.0 generated an illegal function call error in GetSpecStrings if the sx assignments list was active, a matching token was found, and it had a minus sign in front of it.

As always, sorry for the problems and thanks to the users who took the time and trouble to report them and help me figure them out.

Ben Whipple

Version 3.02

VB Language Manager Pro Version 3.02 shipped on November 8, 1996 with fixes for the following assorted bugs (the trailing number in parens is the number of people who reported them):

> V301 had problems reading 32 bit VBP files that had long directory names embedded in file specs, and would report a subscript out of range error (SSOOR) in VBLM's GetVBProject procedure (3).

> Under very specific circumstances (Windows NT 3.5+, 32 bit VB, multiple overlapping long names, etc) V3.01might fail to resolve LFNs properly, rendering it unable to finish reading the VBP file (1).

> When a large number of applications were running, after completing a build V301 sometimes acted as though it had failed to start VB4_32, even though it had succeeded (2).

> V301 generated an illegal function call error in GetStrings when reading the contents of a VB4 multiline text box out of the FRX file if the textbox contained nothing but tab characters (1).

> V301 would drop the minus signs when extracting/applying dimensions. This affected child controls on VB4/Sheridan tabs, which set the left property to a negative value for all controls not on the active tab (1).

> If you exited the V301's build window using Alt-F4 instead of clicking OK or Cancel, the main window remained disabled (V302 won't allow you to exit using Alt-F4) (1).

> V301 did not save changes, even after asking if you wanted to, if the dirty flag was set when you went to create a new project or open an existing one (1).

> V301 could report an SSOOR error in GetStrings when creating/updating the lmp from a VB4 project that used conditional compilation on procedure declarations (2).

These bugs are all fixed in V302. As always, sorry for the problems and thanks to the users who took the time and trouble to report them and help me figure them out.

Ben Whipple

Version 3.03

VBLM Version 3.03 shipped on June 13, 1997. V3.03 has three new features and two bug fixes.


The three new features all relate to the creation of runtime switched (RSV) apps. The two that have been implemented as options are accessed as checkboxes on the RSV Build Options Window. Hats Off to Ron Gordon at GGT for suggesting them.

Include User Code

This option allows the user to customize the code that VBLM adds to forms for initialization and switch-on-the-fly purposes. When checked, VBLM adds user-defined prefix code at the beginning of the VBLM_SetProperties procedure, and user-defined suffix code at the end. This option is off by default.

The default prefix code is: Call VBLM_UserPrefixCode(Me)

The default suffix code is: Call VBLM_UserSuffixCode(Me)

Both of these are stored in the [BuildOptions] sections of the VBLM.INI file, and can be changed either by editing this file directly or by using the inputbox that pops up when the Include User Code option is checked.

Sub VBLM_UserPrefixCode(frm as Form) and Sub VBLM_UserSuffixCode(frm as Form)are stub procedures in the VBLM_RTA.BAS and VBLM_RTB.BAS support files supplied with V3.03. You can edit these template files that reside in the VBLM directory, or more wisely, edit copies and set VBLM's RSV Support File options to point to them.

NOTE: You can define multiline prefix and suffix code by using VBLM's CRLF alias in the string assigned. The default alias is "~~", two tildes (though this can changed by editing the CRLFAlias key in the [General] section of VBLM.INI).

Auto-Select All Languages

When this option is checked, all languages listed on the Build Options window are automatically selected for inclusion when the BUILD RSV option is checked. This option is off by default.

Copy FRX Files

The boilerplate RSV support forms supplied with VBLM do not have FRX files. As of V3.03, if you select a different support form that DOES have a FRX file, VBLM will automatically copy it into the build directory along with the FRM file.


Win32 Common Controls Collections & Properties.

Hats off to Mark Dionne at Kurzweil, who was first to discover, report and help me fix a problem in the form initialization code VBLM generated for forms using MSFT's Win32 Common Controls (toolbar, statusbar, etc). The symptom was that Control.Property references in VBLM_SetProperties code were incorrect and would not compile. The cause was MSFT's syntax for storing text properties assigned to collections associated with these controls (eg, the captions of the Buttons collection on a toolbar). This syntax is very different from that used on other controls, and VBLM did not parse it properly.

V3.03 now correctly reads this syntax, and correctly builds the Control.Property code in VBLM_SetProperties.

Failure to Copy FRX Files

Hats off to John Calvert, who helped me figure out why VBLM sometimes failed to copy all FRX files during a build. The problem was that the FRX files associated with form files with long names don't necessarily have the same short name as the forms. V3.03 now figures out the correct name in all cases, and properly copies all FRX files.

That's about it for 3.03. Thank you for your business!

Ben Whipple

See Also

Complete Revision History