 |  |  |  |  |  |  |  |  |
| | Pre-Requisites
The UNICODE is supported starting from Windows 2000 and in order to display some Unicode characters you need Unicode fonts like "Arial Unicode MS" in your machine. These fonts must be assigned to your controls if needed (use the Font property).
This library is fully compatible with all Windows versions.
See >> Configure "Regional Settings" <<
You can compile the sources directly into your program by adding every source file into your project. In this case never stop the program using the Stop button or VB6 will crash. Never use breakpoints with the Unicode Menu or the VB6 will hang up (only for customers that purchased the sources).
You may experience problems also when using compiled version of this library in VB6 Environment; don't worry because when your program will be compiled all will work ok; these controls has been tested for a lot of time and in many commercial applications.
You can set-up Unicode properties at design-time (Text, Caption, Tip) only using the Custom Property Panel because the VB6 property panel is Ansi. For setting Unicode Properties at run-time you can use the clsMultiLngSupport class or the powerful ctlUniStyler control that will permit you to change the look&feel of your application with only one line of code.
In Non UNICODE systems like Windows 95/98/Me/NT4 where using the clsFileIni class with UNICODE files you'll obtain empty strings because UNICODE APIs fail (The ANSI API used on Unicode files fails). Old Windows systems only support ANSI .ini files; you can use Unicode .ini files in old system using the clsFileIniEx class.
Use the sample project in UNICODE platforms (Windows 2000+) or you cannot see many pieces of texts because I've used a .ini UNICODE file (not compatible with old Windows platforms).
You need a working copy of the Microsoft Visual Basic 6 Environment with the latest Service Pack available (actually version 6b). Every version of VB6 is compatible.
UNICODE Tooltip
In order to use Unicode Tooltips you need to: 1- Draw a ctlUniToolTipManager control on the first form of your application (this enables tooltips and manages the tooltip form instances) 2- Set the "Tip" property of controls, don't use the ToolTipText property because is ANSI only.
clsCommDialogs - Common Dialogs
You need to call the InitDialog method (only a time) before using this class
clsMultiLngSupport - Multi Language Helper Class
See details
KeyDown, KeyPress, KeyUp events
VB6 uses Signed integers for KeyDown, KeyPress and KeyUp events; Unicode also uses two bytes (like a VB6 integer) but Unsigned, so the VB6 definition is OK for the event but the KeyAscii / KeyCode value may arrive negative as this Unicode library passes the two bytes value directly to the VB6 standard event.
You can manage the KeyAscii / KeyCode value simply by using the clsCommonWrapper.ChrW or ASCW functions. It's also possible to obtain the real Unsigned Integer (in a VB6 long) from the negative value simply by converting the KeyAscii / KeyCode value to a Long using the clsCommonWrapper.MakeDWord (KeyAscii, 0) function
KeyPreview
Unfortunately, the KeyPreview MUST not be used as the VB6 form container is not Unicode and may filter chars in some systems. I tried it using Italian and English locales and it works as these locales supports the full ANSI charset. By setting the locale to chinese the KeyPreview property causes controls to run incorrectly. If you need the KeyPreview property, do it by hands managing KeyDown, KeyPress and KeyUp events of controls.
IME Input
TextBoxex, RichTextBox, ComboBox, ListBoxes, Canvas support Input Method Editors
See documentation here
FONT
These controls have the Font property. If you set the font in this way:
Set Usercontrol.Font = MyFont the control will change the font immediately
If you use a construct like this:
Usercontrol.Font.Name = "Verdana" the control will not understand the changes made to the font object.
In VB6 usercontrols there is a method that will permit UserControls to know if a property of the font has changed but this method is quite expensive (in terms of memory used) so we preferred not to add it. We added a new method to all controls called "ApplyFontChanges" that you can call when you need to notify the control the change of the Font.
so you have to write:
Usercontrol.Font.Name = "Verdana" Usercontrol.ApplyFontChanges
Creating custom VB6 usercontrols
Some controls contained into this package my have bad iterations when used into Usercontrols. This because VB6 cannot detect, in some cases, that the usercontrol is in Design or User mode so the control may appear running at design time (so you cannot move it in many cases). You can create your usercontrols using a simple tip described here
Controls Style
You can change the predefined controls style by setting the property DefaultButtonStyle of the clsCommonWrapper class before your program starts (or in the initialize event of your first form). This value is global for every control in your application.
External references needed: | |  | | | | | |  | | |
(The Microsoft Visual Basic 6 Runtime) STDOLE2.TLB, ASYCFILT.DLL, COMCAT.DLL, msvbvm60.dll, OLEAUT32.DLL, OLEPRO32.DLL |
These libraries contain functions that permit VB6 programs to run. Refer to file "Sample Install.iss" (The Inno Setup Script used to make the setup for this library) if you need to create a new setup for your application. The Latest VB6 runtime can be downloaded from our site at this address: http://www.hexagora.com/download/support/VB6RunTime.exe
These libraries MUST be distributed with your compiled application. Note that starting from Windows 2000 these components are already distributed by Microsoft. |
(The Microsoft Layer for Unicode) Unicows.dll |
This library wraps every Unicode function (exported by GDI32.dll and USER32.dll) and chooses if call the Ansi or Unicode one basing on the current Windows version.
This library MUST be distributed with your compiled application.
You can put this file into the Windows\System32 directory or in your installation path; you don't need to register this component. |
| richupd.exe |
Only if you are using the ctlUniRichTextBoxXP control in your application.
This is the Microsoft RichEdit control update for version 3.0 (the latest available). I suggest you to install this upgrade on your customers if they are using your application under Windows 95 - 98 - Me - NT4.
Without the update the ctlUniRichTextBoxXP will continue work but with less capabilities. You can check the RichEdit library version using the ctlUniRichTextBoxXP.RichEditVersion method.
Download the package from here |
| HexOle.tlb |
Contains interface declaration for using advanced capabilities of the ctlUniRichTextBoxXP control
Needed only at design time, just copy it in the same folder of your project |
| WinSubHook2Uni.tlb |
Contains many API declarations and the Interfaces for using the cUniSubClass and cUniTimer classes
Needed only at design time, just copy it in the same folder of your project |
| OleGuids3.tlb |
Contains the API interface IPAOInPlaceActivate that permits API controls to partecipate to the Tab management in VB6 forms
Needed only at design time, just copy it in the same folder of your project |
ShellLinkA.tlb ShellLinkW.tlb
|
Contain API interfaces for the ShellLink class, used to manage Unicode and Ansi shell links
Needed only at design time, just copy it in the same folder of your project | |  | | | | | | |  | | | | |  | |
|