Q217375: INFO: Windows CE Toolkit for Visual Basic 6.0 Release Notes
Article: Q217375
Product(s): Microsoft Visual Basic for Windows
Version(s): 1.0
Operating System(s):
Keyword(s): kbToolkit kbVBp600 kbOSWinCEsearch
Last Modified: 26-FEB-2002
-------------------------------------------------------------------------------
The information in this article applies to:
- Microsoft Windows CE Toolkit for Visual Basic 6.0, version 1.0
-------------------------------------------------------------------------------
SUMMARY
=======
Contents
--------
- Installation Procedure
- Samples
- Known Issues
- Property Issues
- Method Issues
- Event Issues
- Function Issues
- Constant and Variable Issues
- Statement Issues
- Control, Object, and Collection Issues
- Project and Module Issues
- Additional Toolkit Issues
MORE INFORMATION
================
Installation Procedure
----------------------
You must install Microsoft Visual Basic 6.0 before you can install the Microsoft
Windows CE Toolkit for Visual Basic 6.0.
1. Install Visual Basic 6.0.
2. Run Setup.exe from the setup folder on the CD.
3. Follow the instructions in the setup program.
NOTE: In order to use the H/PC SDK included with this release, you must install
it as part of the Visual Basic CE 6.0 install (either Complete or Custom). In
addition, you can install it first and then install Visual Basic CE version
6.0.
To save disk space, you can use the Custom install option during the H/PC SDK
installation and clear the following components, which are not required for
Visual Basic CE development:
- Device Driver Development Kit
- Include Files
- Libs
- Microsoft Foundation Classes (MFC)
- ActiveX Template Library (ATL)
- Desktop Components
- Help Files
- Win32 Sample Files
- ATL Sample Files
- MFC Sample Files
NOTE: These are required for the Windows CE Toolkit for Visual C++ 6.0
development.
Samples
-------
The toolkit directory contains a Samples subdirectory, and each sample has its
own subdirectory. There is a Readme.txt file for each sample. The following is a
listing of the samples included in the toolkit:
- CEPad: A basic text editor.
- Dice: A game sample.
- LoanCalc: Shows how to use Financial library.
- MSCEComm: Serial communications sample.
- NWind: Northwind database order entry application demonstrating the TabStrip,
Listview and ADOCE controls.
- Scribble: Graphics interactive sample using the PictureBox.
- Setup1: This is not a Windows CE Project, but a Standard EXE project for
Visual Basic 6.0. It is provided here for your use, should you wish to
customize your setup programs.
- TreeView: Demonstrates use of the TreeView and ImageList controls.
- WSock: Demonstrates use of Winsock TCP/IP communications.
For additional information about the samples included with the Windows CE Toolkit
for Visual Basic 6.0, please see the following article in the Microsoft
Knowledge Base:
Q212885 INFO: VBCE: Samples Included with the Windows CE Toolkit for VB6
Known Issues
------------
The following sections describe the known language-related issues present in the
toolkit.
Property Issues
- You cannot change the BorderStyle property of a Label control at run-time.
- Setting font properties on Microsoft Foundation Classes (MFC) controls will
not cause the controls to repaint automatically. You must manually cause an
MFC control to repaint itself after changing the font properties.
- You can highlight items in a combo box control with the Locked property set
to True. This behavior differs from Visual Basic 6.0 in that setting the
Locked property to True does not prevent the items in the combo box control
from being highlighted.
- The Err object does not support the LastDLLError property.
- The Value property of a check box control may return an incorrect result
inside the control's Click event in cases where the event is generated by
changing the Value property directly instead of by choosing the control with
a stylus.
- If you use a coordinate system for the ScaleMode property other than twips,
some properties, such as CurrentX, will differ slightly from their expected
values. All coordinates are stored internally as twips, so other coordinate
systems may be subject to rounding errors during conversion.
- The Appearance property of the command button object has no effect on the
appearance of the control.
- The design-time settings for the ScaleHeight and ScaleWidth properties of a
form are not returned correctly when read at run-time. If these two
properties are changed during run-time, the correct values are returned.
- Some intrinsic controls may generate both a KeyDown and KeyPress event in
cases where Visual Basic 6.0 generates only the KeyDown event.
- If you compile or save a Visual Basic for Windows CE 6.0 project and switch
to a Visual Basic 6.0 project, the App.Path property of the Visual Basic 6.0
project defaults to the last path where your Windows CE project or .vb file
was saved.
- Visual Basic for Windows CE does not save the data in ItemData for combo
boxes as it does for list boxes.
- The toolkit does not support setting the TabIndex property on controls during
the Form_Load event.
- The ClipControls property for the Form object does not affect how controls
are drawn.
- For the Text property of the ListView control, the Item label text is
invisible until ListView is refreshed.
- The Comm control ParityReplace property does not use the ParityReplace
character when there is a parity mismatch. Additionally, invalid characters
are sent when Parity is set to Space.
- The Break property of the Comm control suspends communication until it is set
to False. This works the opposite way in Visual Basic 6.0, where setting the
Break property to True enables you to send and receive data.
- For the ListView control, only the first line of a multiline ListItem label
is visible until you set the WordWrap property at run-time.
- For a CommandBar control, setting the Style property of a button to 3
(cbrSeparator) returns zero when the Style property is read.
- For a Grid control, setting the CellFontItalic property True and then
right-aligning the text, causes the text to truncate.
- Using the Form1.ActiveControl property during a Form_Activate event raises
error 5 (Invalid Procedure Call or Argument).
- Do not change the CommandBar Height property. If you attempt to do so at
run-time, the property value is set to the new height, but the actual
CommandBar height does not change. The CommandBar height is determined by the
number and size of the controls it contains.
- The index parameter of the ListView.ListItems.Add property is ignored. Items
are always added to the end of the list.
- In the CommonDialog control, if a user chooses a combined path and file name
longer than the MaxFileSize property, the control reacts as if the user
cancelled the dialog box.
- The toolkit does not save an ActiveX control?s Enabled property in the
project file, so settings for the Enabled property are not maintained across
development sessions. To save Enabled property settings, write code to set
the Enabled property in the Form_Load event.
- For the ListView control, the LabelWrap property works correctly when you set
it at run-time. However, if you set the LabelWrap property to False at
design-time, the label text remains wrapped.
- For the TreeView control, using the Key property to access a Node within a
collection raises an error 13. To avoid generating an error, use the Index
property instead of the Key property.
- Once you specify the ImageList property of a TabStrip control, all tabs will
have an image on them, even if an Image parameter was not specified when you
added the tab.
Method Issues
- An error occurs if you call the App.End method in a Form_Load event if a
Module invokes the form.
- In the WaitForEvents method, .pvbload does not exit when used with the
App.End method.
- The application does not exit if you call the WaitForEvents method twice.
- An error does not occur if you call the WaitForEvents method from Form code.
- A method is issued if you call the WaitForEvents method from a control's
event code.
- On a Handheld PC (H/PC), Err.Raise does not work unless you call Err.Clear
first. However, this does not apply to a H/PC running the Handheld PC Pro
Edition software.
- When using the File control Get method, you cannot read any binary file
written using Microsoft Visual Basic 5.0. This is because binary files
written using the toolkit contain four additional header bytes at the
beginning of the file. To read a binary file using the toolkit, use the
Declare statement and CreateFile function to access the file.
- The compiler does not test for variable or procedure names that are the same
as objects or object properties. This enables you to accidentally override
methods such as DrawCircle. Overriding the standard objects and methods is
not recommended.
- For the TreeView control?s GetVisibleCount method, no partially visible items
are included in the count.
Event Issues
- Under some circumstances, the Click event of a Label control may occur twice
in a row.
- When the drop-down arrow of a combo box control is clicked, the following
events are generated:
- GotFocus
- LostFocus
- GotFocus
- DropDown
- You should not use a common dialog control in a Form_Load event because other
applications may cause the dialog box to disappear. If the dialog box
disappears, your application may wait indefinitely for a response from the
control with no forms visible and no way for the user to terminate the
application.
- In the toolkit, the events for the Grid control occur in a different order
from Visual Basic 6.0. The following table shows how Grid events start in
Visual Basic and in the toolkit.
Windows CE Toolkit for Visual Basic 6.0 Visual Basic 6.0
------------------------------------------------------------
LeaveCell LeaveCell
EnterCell SelChange
RowColChange EnterCell
SelChange RowColChange
GridClick GridClick
- The LostFocus and GotFocus events occur when you edit a ListItem label for a
TreeView or ListView control. The following table shows the order in which
the events take place:
Control Events
-------------------------
ListView BeforeLabelEdit
LostFocus
AfterlabelEdit
GotFocus
TreeView BeforeLabelEdit
LostFocus
GotFocus
AfterLabelEdit
- When you issue a public function from an unloaded form in Visual Basic 6.0,
the function occurs first, then the Form_Load event occurs. In Visual Basic
for Windows CE, however, the Form_Load event occurs prior to the function
call.
- If you use an accelerator key or the TAB key to navigate to a combo box
control, the GotFocus event of the control occurs twice.
- The Click event for the TabStrip control occurs only when the tab is changed.
It does not occur when a user attempts to re-select a selected tab.
Function Issues
- The Left function does not work correctly in forms because the Left property
of the form overrides the function of the same name. Use the Mid function or
call the Left function from a module instead.
- The compiler does not check for a valid or unused event prefix for the
CreateObjectWithEvents function. Event prefixes must start with an alpha
character, and subsequent characters can be either alphanumeric or an
underscore. Do not use the same prefix as an existing control.
- When using the CreateObjectWithEvents function, you cannot place event code
in a Form file.
- If you use the MsgBox function in the Form_Load event, the application form
opens as a minimized form.
Constant and Variable Issues
- You cannot use a constant to define another constant. All constants must be a
literal.
- It is possible to declare a variable that has the same name as a control.
However, you should avoid doing this because such declarations are not
detected during compilation and may cause unpredictable results.
Statement Issues
- When using the ListView control, you cannot use the Set statement to set the
SelectedItem property. The following code example shows the syntax you should
use as an alternative:
Form1.ListView1.SelectedItem = AnItem
- The Dim As statement enables any data type in the As clause, even unsupported
data types. The As clause is discarded during compilation and is intended
only for use with the Intellisense feature of the integrated development
environment IDE.
- You cannot use the Set statement when assigning an object to a property. You
can use the Set statement only when assigning an object to a variable. Use
the standard assignment operator (=) to assign an object to a property.
- When using the Declare statement, you must pass variant parameters ByRef, not
with ByVal. In addition, the Declare statement function cannot have a variant
return value.
Control, Object, and Collection Issues
- When using the Comm control, only the Data Bit settings of 8 and 7 are
supported. If you attempt to use a Data Bit setting of 6 or 5, the characters
passed are not valid.
- The END, HOME, PAGE UP or PAGE DOWN keys cannot be used to navigate in the
Grid Control.
- When using the Winsock control, suspending a device with an active TCP
connection causes the application on the device to continually raise the
following error when the device is turned back on:
Error 10054 'The connection is reset by remote side'
- Images from an Imagelist control used in some controls may appear in black
and white rather than in color. This occurs only in the emulator, not on a
device.
- An MFC control does not use the 'Activates when visible' check box option
selected in the MFC control wizard when run on a Visual Basic for Windows CE
6.0 form. When you run the created control on a form, the control always runs
as if the 'Activates when visible' option is on.
- You cannot create an invisible MFC ActiveX<AE> control at run-time.
- An ActiveX control with a transparent background does not display on a form
with a transparent background. Instead, the control has a white background.
- In the emulator, if a combo box has the focus when you choose the Close
button on the command bar, the application terminates. This happens only
under emulation.
- Keyboard accelerators work only on the last MenuBar added to a command bar.
- Intellisense for the File control may suggest parentheses where none are
required.
- When using a Form object, illegally accessing a constant or variable does not
raise an error.
- When using the CommandBar control, you can change only the width of the right
most command bar item.
- The toolkit sets the order of forms in the Forms collection to the
design-time order, while Visual Basic 6.0 sets the order of forms to the
run-time load order.
- With the toolkit, it is possible to assign extremely large or extremely small
Form dimensions. Visual Basic 6.0 typically enforces minimum and maximum Form
dimensions based on screen resolution and the window style of the form.
- If you hide all the menu items on a form, the menu names are not visible, but
the black box containing the menus is not. In Visual Basic 6.0, the entire
menu area disappears.
- To put a bitmap file in a picture box, add the bitmap file to the project and
specify the name of the bitmap in the Picture property. Note that the picture
does not show up in design-time, only in run-time.
- All the controls that have both Height and Width allow values to be assigned
to them that are smaller than the lowest possible value, however the controls
will ignore any values lower than their minimum.
Project and Module Issues
- You cannot refer to module names explicitly. Syntax such as Module1.Function1
will not work. All modules are concatenated during compilation, and the
specific module names are not retained.
- All Private variables are treated as if they were Public variables.
- You cannot build a Visual Basic for Windows CE 6.0 project from the command
line because Visual Basic does not load the add-in before it compiles the
project.
- Do not reset the menus or toolbars while editing a Visual Basic for Windows
CE project. This clears the menus, causing a failure when you shut down
Visual Basic.
Additional Toolkit Issues
- The Data View Window command on the View menu can not be hidden by the add-in
and remains visible, though not usable, in a Windows CE project.
- Msvbvm and OLE are permanently installed at the top of the Project References
and thus override all other references. This behavior causes the IDE for the
toolkit to display hints for Visual Basic 6.0 instead of Visual Basic for
Windows CE 6.0. To bypass this default behavior, use Dim...As with Windows
CE-specific types.
- Top-level menu items created with the Menu Editor must have at least one
submenu item in Visual Basic for Windows CE 6.0.
- If you have a device connected to the IDE or Control Manager, and then you
exchange another device for the current one, you do not need to create a new
device in the Platform Manager if you use the old device name. As this may
change in the future, you should create a separate connection for each
device.
- Visual Basic 6.0 indicates that certain features are available when they are
not. These features include CausesValidation, DragIcon, DragMode, Index,
Drag, DragDrop, and Validate; for a complete list, refer to Help. Visual
Basic 6.0 uses the type libraries in Msvbvm60.dll and VB6.olb to provide
certain default properties and events for objects. Although Visual Basic for
Windows CE does not use these libraries, they cannot be removed or disabled
in the References dialog box.
- When using the emulation environment, if you cancel the download/launch of a
Visual Basic CE application prior to the emulator starting, it may cause the
emulator to fail. Canceling while connecting to a device may result in Visual
Basic CE hanging on its connection to the device. Both of these cases are
very rare and usually only occur if you immediately try to cancel before a
connection is established. To avoid this behavior, always allow the initial
connection (or emulator) to start before canceling the download.
Information in this document is subject to change without notice and is provided
for informational purposes only. The entire risk of the use or results of the
use of this document remains with the user, and Microsoft Corporation makes no
warranties, either expressed or implied. The example companies, organizations,
products, people and events depicted herein are fictitious. No association with
any real company, organization, product, person or event is intended or should
be inferred. Complying with all applicable copyright laws is the responsibility
of the user. Without limiting the rights under copyright, no part of this
document may be reproduced, stored in or introduced into a retrieval system, or
transmitted in any form or by any means (electronic, mechanical, photocopying,
recording, or otherwise), or for any purpose, without the express written
permission of Microsoft Corporation. Microsoft may have patents, patent
applications, trademarks, copyrights, or other intellectual property rights
covering subject matter in this document. Except as expressly provided in any
written license agreement from Microsoft, the furnishing of this document does
not give you any license to these patents, trademarks, copyrights, or other
intellectual property.
Microsoft, MS, MS-DOS, Visual Basic, Visual C++, Windows, Win32, Windows NT, and
Visual Studio are either registered trademarks or trademarks of Microsoft
Corporation in the U.S.A. and/or other countries.
The names of actual companies and products mentioned herein may be the trademarks
of their respective owners.
REFERENCES
==========
Online Help for the Windows CE Toolkit for Visual Basic 6.0
For additional information, click the article number below to view the article in
the Microsoft Knowledge Base:
Q260080 INFO: eMbedded Visual Basic 3.0 Release Notes
Additional query words: vbce vbce6 faq wince
======================================================================
Keywords : kbToolkit kbVBp600 kbOSWinCEsearch
Technology : kbVBSearch kbAudDeveloper kbWinCETKVBSearch kbWinCESearch kbWinCETK100VB600
Version : :1.0
Issue type : kbinfo
=============================================================================
THE INFORMATION PROVIDED IN THE MICROSOFT KNOWLEDGE BASE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. MICROSOFT DISCLAIMS ALL WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING THE WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL MICROSOFT CORPORATION OR ITS SUPPLIERS BE LIABLE FOR ANY DAMAGES WHATSOEVER INCLUDING DIRECT, INDIRECT, INCIDENTAL, CONSEQUENTIAL, LOSS OF BUSINESS PROFITS OR SPECIAL DAMAGES, EVEN IF MICROSOFT CORPORATION OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES SO THE FOREGOING LIMITATION MAY NOT APPLY.
Copyright Microsoft Corporation 1986-2002.