Microsoft® eMbedded Visual Basic® 3.0 Release Notes

April 2000

Your feedback is greatly appreciated and will help us give you the most useful features.

Please visit our website for the Microsoft© Windows CE tools at http://www.microsoft.com/cetools.

To locate material in these Release Notes, select one of the general categories under Contents, or choose Find from the Edit menu of the browser.

Contents

Major Changes

Supported SDKs

This release supports the following SDKs:

SDK Release Notes

Palm-size PC 1.2

Supported Operating Systems

This release supports the following desktop operating systems:

Supported Languages (Localization) for this Release

Installation

Setup

Invalid Setup File Error

We suggest that you include no more than one CPU from a CPU family when creating a setup with the VB App Install Wizard. If you include multiple CPUs from the same family then it will cause confusion when your users try to go and install it.

Known Issues for eMbedded Visual Basic

Overall

H/PC Pro — Form Object

The ShowInTaskBar property is always true, regardless of whether it is set to True or False in the Properties or Code windows.

Pocket PC — Quitting an Application

When an Input box is displayed, Ctrl+Q will not work to quit the application. You must first close the Input box.

Saving Forms

Saving a Visual Basic 6 and eMbedded Visual Basic form in the same directory with the same name causes errors if the forms contain a ListBox and or a ComboBox, because both forms (Visual Basic 6 and eMbedded Visual Basic) access the same .frx file.

Erroneous Return Value

VarType(Screen.ActiveControl) returns 11(vbBoolean). Should return 9(vbObject)

IDE

Activate vs. Resize events

On the emulator, eMbedded Visual Basic invokes the Activate event before Resize event.

ActiveX DLLs, Removing While In Use

The Control Manager allows you to remove the references to ActiveX controls while they are in use. Although the controls are not removed from the device, they are removed from the Registry. Closing the application and trying to run it again results in an error message.

Workaround

Be careful not to uninstall from the device any ActiveX controls needed for your application.

ADOCE for H/PC Pro and Palm-size PC 1.2 Platforms

The sample code throughout the online Help documents is modeled on the Pocket PC platform.

Workaround:

To use the ADOCE data access object with the H/PC Pro and Palm-size PC 1.2 platforms:

Following is sample code showing how to programmatically reference the ADOCE control using eMbedded Visual Basic for the H/PC Pro and Palm-size PC 1.2 platforms:

Dim objRecordset   'Declare a variable for the recordset
Set objRecordset = CreateObject("ADOCE.Recordset")

APIs — Additional Supported:

CreateFileForMapping:

Syntax:

Public Declare Function CreateFileForMapping Lib "Coredll" (ByVal lpfilename As String, ByVal dwDesiredAccess As Long, ByVal dwShareModule As Long, lpSecurityAttributes As Long, ByVal dwCreateDisposition As Long, ByVal dwFlagsandAttributes As Long, ByVal hTemplateFile As Long) As Long

APIs — Not Supported

The following APIs are not supported:

AbortDoc GetCurrentThread
CheckRadioButton GetCurrentThreadID
CloseEnhMetaFile GetObject
CreateCursor GetProcAddress
DeleteEnhMetaFile GetStringType
EndDoc GetStringTypeA
EndPage LockResource
EnumSystemCodePages MsgWaitForMultipleObjects
EnumTimeFormats SetClassWord
ExitWindowsEx SetSysColors
GetAsyncKeyState StartPage
GetCurrentProcess WnetOptnEnum
GetCurrentProcessID  

"CreateObjectWithEvents" Keyword

This keyword is recognized, and the functionality works; however, the IDE is case-sensitive in this instance, and the keyword must be properly capitalized: "CreateObjectWithEvents"

Custom Menu Bars: Not supported for this release. You are not able to save customizations of menu bars in the IDE.

Declare Statements

"Global" Keyword Not Supported.

The keyword "Global" is not supported by the version of VBScript used for eMbedded Visual Basic.

MsgBox Constant vbSystemModal

MsgBox is implemented on VBScript and does not support vbSystemModal. The constant is included to allow backward compatibility.

MoveWindow Function

This function does not generate the WM_SIZE message in the emulator for the same size window. The Resize event is not evoked.

Porting VBCE 6.0 Project Causes Loss of Data

When loading a project created in a prior version of eMbedded Visual Basic, the Application Title and all the Version Information is removed. This includes the Title, Comments, CompanyName, FileDescription, LegalCopyright, LegalTrademarks, and ProductName properties of the Application.

Recovering Controls Removed from the Toolbox

The Components dialog box notes that : " Pressing SHIFT while clicking OK removes unused control references from your project."

This is true, and works very well with all ActiveX controls. However, if you have not included any intrinsic controls on your form prior to executing this action, all of the intrinsic controls (except Line and Shape) will be removed from the toolbox.

Workaround:

If the intrinsic controls have already been removed, they can be added to the Components.

Resource Editor

The eMbedded Visual C++ Resource editor can be used for creating Resource Files to run in eMbedded Visual Basic.

Sub Main Converts to Form

When you open a vbp project which uses a Sub Main as the startup object, it is converted to a form name. This results in the project running but behaving incorrectly.

Workaround:

Use the Project Properties dialog box to change the startup object back to Sub Main.

Terminating an Application

Pvbkill does not terminate an application if the path does not have "\" at the beginning of it.

Controls

Changing the Icons for a TreeView Control:

There are two images for the TreeView control, the "Image" and "SelectedImage". When the Image property is initially set by the user, the unselected image is the one which is set. To change the image of the SelectedImage property, you must explicitly set SelectedImage.

Commandbar Buttons Not Displayed Properly

If you add a ComboBox to the CommandBar and the ComboBox width exceeds the form width, the CommandBar divides into two lines. At run-time, only the upper half of the CommandBar buttons will be visible. To avoid this scenario, reduce the Width of the ComboBox or try to make it multiple-button width.

ComboBox and ListBox:

CommonDialog Control

When using ShowSave, if the filename entered is slightly smaller than the MaxFileSize an erroneous error is raised.

Frame and Child controls

When a parent frame is disabled, child controls continue to report their actual window state. Everything works correctly if controls are disabled individually or not contained inside a frame.

Grid Control

CellFontWidth Property

The default value for this property is zero. If you read the value of this property before setting it to anything, it returns a value of zero. However, if you set the CellFontWidth property to a value then read it back, you are able to read back the value that you set correctly. The new font width is also reflected correctly in the string displayed on the screen. This is true for both English and Japanese fonts.

Constants — ColAlignment Property

The constants for the Grid control's ColAlignment property have changed. The following table illustrates the changes.

Old Constant New Constant
FlexAlignCenter FlexAlignCenterCenter
FlexAlignLeft FlexAlignLeftCenter
FlexAlignRight FlexAlignRightCenter

Constants — Sort Property

The constants for the Grid control's Sort property have changed. See the Online Help documentation for the new Sort constants.

Selecting Cells

When the Row or Col property of a Grid control is set to a cell which is already selected, the LeaveCell, EnterCell, RowColChange, and SelChange events all fire, as if a new cell has been selected.

Workaround:

Use a global boolean variable. Set it before changing Row or Col, test for it in the event handler, unset it after changing Row or Col.

Code Example:

Option Explicit
Dim bIgnoreGridEvents As Boolean

Private Sub Form_Load()
bIgnoreGridEvents = False
End Sub

Private Sub MyMethod()
bIgnoreGridEvents = True
GridCtrl1.Col = 1
bIgnoreGridEvents = False
End Sub

Private Sub GridCtrl1_LeaveCell()
If bIgnoreGridEvents Then Exit Sub
MsgBox "You clicked a cell!"
End Sub

Image Control

The Picture property of the Image control does not support 24-bit bitmap images.

Workaround:

Use a 16-bit image instead.

Intrinsic Controls

Label Control, Disabling at Design Time

Setting the Enabled property of a label control to False at design time causes an Application error.

Workaround:

Set the property at run time in the Form_Load event.

ListView Control

PictureBox Control

Shape and Line Controls

The z-order of the Shape and Line controls cannot be changed during run time.

Textbox Control

TreeView Control

Winsock Control

Debugger

The Debug object is not supported. Code completion shows Debug object methods in the Immediate Window.

Break Mode/Setting Breakpoints

Debug Methods

Err Object — LastDLLError property

This property, though included in the Code Completion options, is not supported for the H/PC Pro or Pocket PC platforms.

Immediate Window

Watches Window

Unsuported:

Online Help

Type Property

Samples

Dice— H/PC Pro and Palm-size PC 1.2

After finishing a game of Dice, you will be prompted to play another game. If you click yes, Dice generates the following application error:

Application Error

An error was encountered while running this program: Variable is undefined: "mnuGameNew_Click"

Winsock Sample — H/PC Pro and Palm-size PC 1.2

Note No data is actually lost, it is merely sent in two or more separate events. That the correct number of bytes are received by the app on the device can be proved by changing the sample to output "Len(sockdata)" in a button click event and pressing the button after the DataArrival event stops firing.

Additional Documentation

If you have accepted the default directories when installing Microsoft eMbedded Visual Tools, additional documentation can be found in the following locations:

Subject Area Path and File Name
Installation and Setup C:\Program Files\Microsoft eMbedded Tools\README.HTM
eMbedded Visual Basic C:\Program Files\Microsoft eMbedded Tools\EVB\releasenotes.htm
eMbedded Visual C++ C:\Program Files\Microsoft eMbedded Tools\EVC\releasenotes.htm
SDK: H/PC Pro C:\Windows CE Tools\hpcproreadme.htm
SDK: Palm-size PC 1.2 C:\Windows CE Tools\pspc12readme.htm
SDK: Pocket PC C:\Windows CE Tools\pocketpcreadme.htm

Legal Requirements

Information in this document, including URL and other Internet Web site references, is subject to change without notice. Unless otherwise noted, the example companies, organizations, products, people and events depicted herein are fictitious and 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.

© 2000 Microsoft Corporation. All rights reserved.

Microsoft; MS-DOS; Windows; Windows NT; eMbedded Visual Basic; eMbedded Visual C++; SDK for Windows CE, Handheld PC Professional Edition 3.0; SDK for Windows CE for the Palm-size PC 1.2; and Windows Platform SDK for Pocket PC are either registered trademarks or trademarks of Microsoft Corporation in the United States and/or other countries.

The names of actual companies and products mentioned herein may be the trademarks of their respective owners.