Figures
Figure 1
Figure 1
Figure 1 Unicode to Non-Unicode Conversion Functions
API
To Unicode
From Unicode
Win32
MultiByteToWideChar
WideCharToMultiByte
C runtime
mbstowcs
wcstombs
eMbedded Visual Basic
N/A
N/A
MFC
N/A
N/A
Figure 2 WMI

Figure 2 Windows CE 3.0 Platform Builder
Figure 5 Remote Tools
eMbedded Visual Basic and eMbedded Visual C++
Tool Name
Description
Heap Walker
Displays current memory heaps that have been created in the address space of each process. Lists objects that have been allocated in each heap, along with the contents of each object.
Process Viewer
Displays the currently active processes and the DLLs currently in use. Allows you to stop any process.
Registry Editor
Displays and edits registry entries. Lets you access the registry on a Windows CE-based device or within Windows CE emulator. It also lets you edit the registry on the host itself (Windows 9x, Windows NT, or Windows 2000).
File Viewer
Views the file system on a Windows CE-based device or within the Windows CE emulator, and copies files between a Windows CE file system and a desktop file system.
Spy
Examines the windows and the messages on a Windows CE-based device.
Zoom
Grab screen shots from a Windows CE-based device. This is helpful when writing documentation or when trying to document a bug.
Platform Manager
Configures the communications transport channel between a development system and a Windows CE-based device.
eMbedded Visual Basic Only
Tool Name
Description
Control Manager
Sets up, configures, and downloads ActiveX controls for specific Windows CE-based devices.
Application Install Wizard
Allows you to package an eMbedded Visual Basic-based program for distribution. Puts together the needed runtime libraries and ActiveX controls for different CPUs.
Error Lookup
Converts a Win32 error code, as returned by GetLastError, into readable text.
Figure 6 WMI

Figure 6 VBEdit Running in the Pocket PC Emulator
Figure 7 Files Needed to Run VBEdit
File
Description
Size
VBEDIT.VB
Tokenized version of VBEDIT
8KB
MSCEComDlg.dll
Common dialog ActiveX control
93KB
MSCEFile.dll
File system ActiveX control
94KB
MSCEMenuBar.dll
Pocket PC menu ActiveX control
103KB
Subtotal of application-specific files
298KB
pvbdecl.dll (*)
Supports Declare statement to allow Visual Basic-based programs to call DLLs
26KB
Pvbform2.dll (*)
Default forms package, intrinsic controls, and core objects
196KB
Pvbhost2.dll (*)

58KB
pvbload.exe (*)
Visual Basic startup program
9KB
vbscript.dll (*)
VBScript parser
268KB
Subtotal of Visual Basic redistributable files
557KB
Total VBEdit Files
855KB
(*) = Visual Basic Runtime
Figure 8 Operating Systems and their APIs
Operating System
MS-DOS
Win16
OS/2
POSIX
Win32
Windows 3.1





Windows 95





Windows 98





Windows Me





Windows NT





Windows 2000





Windows CE





Figure 10 SIP Handling Provided by IDE's Typical Hello World! Application
Action
Implementation
Reason
Put menu at the bottom of the Window, with SIP within the menu.
Call SHCreateMenuBar, after populating the SHMENUBARINFO data structure.
Other menus show up at the top of windows.
Allocate structure SHACTIVATEINFO to hold SIP state info.
Allocates global variable: static SHACTIVATEINFO s_sai;
Required to prepare for proper handling of WM_ACTIVATE and WM_SETTINGCHANGE messages.
Detect changes to SIP state.
Handle WM_SETTINGCHANGE message and call SHHandleWMSettingChange.
Detect when the user has made changes to the SIP and save the current SIP state into SHACTIVATEINFO.
Make dialogs full screen, with the SIP visible for the user to use for edit controls.
Call SHInitDialog in response to WM_INITDIALOG message.
Full-screen dialogs are part of the Pocket PC way of doing things, and users will expect your programs to work this way. This function makes it easy to follow this standard.
Figure 11 Changes Needed for Proper SIP Handling in Typical Hello World! App
Change
Implementation
Reason
Initialize cbSize member of the SHACTIVATEINFO structure.
On receipt of WM_CREATE message, s_sai.cbSize = sizeof(SHACTIVATEINFO);
Without this set, the calls to SHHandleWMSettingChange and SHHandleWMActivate fail.
Add call to SHHandleWMActivate in response to WM_ACTIVATE message.
Call SHHandleWMActivate in the same way that SHHandleWMSettingChange gets called in response to WM_ACTIVATE.
Causes the program's main window to be properly resized when it becomes active. Also sets or resets the current state of SIP in the SHACTIVATEINFO structure.
Page view tracker