Welcome to the Windows CE Toolkit for Visual C++ 5.0

With the Microsoft® Windows® CE Toolkit for Visual C++® 5.0, you can cross-develop Windows CE applications while working in the same integrated development environment (IDE) that supports the Win32® application development.

What do you want to know more about?

Introduction

Packages and Configurations

Resource Editor Features

Development Model

Remote Tools

What do you want to do?

Uninstalling the Windows CE Toolkit for Visual C++ 5.0

Starting a Program

Using the Resource Editors

Compiling and Linking a Program

Debugging a Program

Building Applications

Compiler Options

Default Settings


Introduction

The Windows CE Toolkit for Visual C++ 5.0 is similar to Visual C++ 5.0 in both functionality and design. Several Visual C++ features have not been implemented because of inherent limitations in the Windows CE operating system. These limitations impose certain restrictions that are explained in the following table.

Visual C++ 5.0 | Windows CE Toolkit for Visual C++ 5.0
Win32 API | Subset of the Win32 API set.
C Runtime Functions | Subset of the standard CRT.
CL native compiler | CL is used for the native emulation environment. Additional new compilers: SHCL for remote SH3 devices (WCESH) CLMIPS for remote MIPS devices (WCEMIPS)
Common Development Tools | Uses the same tools as Win32 for the emulation environment, plus adds Remote Tools. Resource editor features are modified to support unique Windows CE formats, such as 4-color bitmap images.
Microsoft Foundation Classes | Supports a subset of the MFC classes supported on Win32.


Packages and Configurations

Windows CE Toolkit for Visual C++ 5.0 provides an overlay that allows you to simultaneously develop applications for multiple targets. On an x86 host machine, you can build programs from a single makefile for execution and debugging in the following environments:

  • Windows CE Emulation Environment (x86EM)
  • Windows CE SH3 target device (WCESH)
  • Windows CE MIPS target device (WCEMIPS)


Resource Editor Features

Windows CE Toolkit for Visual C++ 5.0 does not support the Toolbar resource editor. The following Visual C++ controls in the dialog box resource editor are also not supported.

  • New Hot Key
  • New Animate
  • New Rich Edit
  • Windows Custom control

The Windows CE Toolkit for Visual C++ 5.0 resource editors have been customized to help:

  • Produce icons and bitmap images in the 4-color (two bit-per-pixel grayscale) format used by Windows CE devices.
  • Convert existing bitmap images to 4-color images.
  • Build dialog boxes that use the standard Windows CE features (toolbars, OK buttons and so on).


Development Model

The following table presents an overview of the various ways you can use the Windows CE Toolkit for Visual C++ 5.0 to build applications.

1. | Getting Started | You do not need a remote device to begin developing Windows CE applications. Launch Visual C++ 5.0 and choose File, New, Project.
2. | Choosing a Project Type | Application, MFC, AppWizards, Dynamic-Link Library, Static Library and Makefile are supported project types for Windows CE.
3. | Choosing your Target Platform(s) | Win32 (x86EM): Emulation on an x86 host Win32 (WCEMIPS): MIPS target device (VR4100 or PR3910) Win32 (WCESH): SH3 target device Win32: Standard Win32 API
4. | Writing your Program | Use the Windows CE API and supported C Runtime Library functions for maximum portability across platforms.
5. | Building your Program | Each application builds with the appropriate compiler and libraries. Flags and options default automatically for debug and release versions for each target platform. To modify these defaults for a selected project, choose Project, Settings.
6. | Executing and Debugging in Emulation | Use the integrated visual debugger to test your project in the emulation environment during the initial stages of development.
7. | Executing and Remote Debugging | Download your program to the device and use Remote Tools to refine and debug the project on the remote platform.


Remote Tools

The Windows CE Toolkit for Visual C++ 5.0 adds seven menu items to the Microsoft® Visual Studio™ Tools menu. Double-click any of these items to start a Windows CE remote tool from within the Visual Studio IDE. You can also start a remote tool by entering its file name in the Open field of the Windows NT Run dialog box, then clicking OK.

The following table provides a brief description of each of the Windows CE remote tools.

Windows CE Tool | Description
Windows CE Spy | Displays a graphical view, on the desktop computer, of Windows CE system processes, threads, windows, and window messages running on the remote device.
Windows CE Registry Editor | Manages remote device registry entries from the desktop computer.
Windows CE Zoom | Captures an image from the remote device and displays it on the desktop computer.
Windows CE Process Viewer | Displays a graphical view, on the desktop computer, of Windows CE process and thread characteristics. The Process Viewer enables you to view memory usage and search for memory leaks.
Windows CE Heap Walker | Enables you to view detailed information about heap IDs and flags for processes that are running on the remote device. The Windows CE Heap Walker is a useful tool to determine if an application has memory leaks.
Windows CE Object Viewer | Displays a hierarchical view, on the desktop computer, of the Windows CE object store. The Remote Object Viewer enables you to transfer objects between the emulation object store and the remote device.
Remote Connection Server | Used in version 1.0 to establish a communications link between the desktop computer and the remote device.


Uninstalling the Windows CE Toolkit for Visual C++ 5.0

If you decide to remove the Windows CE Toolkit for Visual C++ 5.0, perform the following procedure.

To uninstall the Windows CE Toolkit for Visual C++ 5.0

  • In the Visual C++ program group, click the Uninstall WCE Toolkit for Visual C++ 5.0 icon and follow the on-screen instructions

    -or-

  • from the \VC subdirectory of your Visual Studio installation, double-click Wceremove.exe and follow the on-screen instructions.

To uninstall both Visual C++ 5.0 and the Windows CE Toolkit for Visual C++ 5.0

  1. Uninstall the Windows CE Toolkit for Visual C++ 5.0 by clicking the Uninstall WCE icon in the Visual C++ 5.0 program group, and then following the on-screen instructions

    -or-

    from the \VC subdirectory of your Visual Studio installation, double-click Wceremove.exe and follow the on-screen instructions.

  2. Uninstall Visual C++ 5.0 by first double-clicking the My Computer icon on your Windows desktop, and then double-clicking the Control Panel icon.
  3. On the Windows Control Panel, double-click Add/Remove Programs.
  4. On the Install/Uninstall folder, select Microsoft Visual C++ 5.0.
  5. Click Add/Remove and follow the on-screen instructions.

To install any other Visual Studio add-on products

  1. Uninstall the Windows CE Toolkit for Visual C++ 5.0 by clicking the Uninstall WCE icon in the Visual C++ 5.0 program group and follow the on-screen instructions

    -or-

    from the \VC subdirectory of your Visual Studio installation, double-click Wceremove.exe and follow the on-screen instructions.

  2. Install any of the other Visual Studio add-on products.
  3. Reinstall the Windows CE Toolkit for Visual C++ 5.0.


Starting a Program

You will create Windows CE projects within the same Visual Studio integrated development environment that hosts Visual C++. Many of the same Visual C++ development tools that help you create, test, and refine your programs are available in the Windows CE Toolkit for Visual C++ 5.0. Projects are organized in workspaces, as they are in Visual C++.

Wizards are available to help you create project files and starter files. Resource editors are also provided to help you create and modify application resources. Additional tools and options support the special requirements of Windows CE cross-development. For a summary of the key differences between Visual C++ 5.0 and the Windows CE Toolkit for Visual C++ 5.0, see the Introduction.

To start a new Windows CE project

  1. On the File menu, click New.
  2. Click the Projects tab.
  3. Select the type of project you want to create.
  4. In the Platforms check box list, select the platforms you want to target.
  5. Enter a text string in the Project Name field, and click OK.


Using the Resource Editors

The Visual C++ resource editors have been customized for Windows CE development, and include support for color images. Windows CE 2.0 supports 2 bits per pixel (2-bpp), 4 bits per pixel (4-bpp), and 8 bits per pixel (8-bpp) color devices, and can logically support 32 bits per pixel device-independent bitmaps (DIBs).

To create a 4-color bitmap

In version 1.0 and version 1.01 of the Windows CE Toolkit for Visual C++ 5.0, color resources are converted to 4-color (2-bit, monochrome) during the linking process. Because version 2.0 of the Windows CE Toolkit for Visual C++ 5.0 supports 8-bit color, color resources do not have to be converted.

  1. On the File menu, click New.
  2. Click the Files tab.
  3. Select Bitmap File, and click OK

    -or-

    double-click Bitmap File.

  4. Create or import a bitmap.
  5. On the Image menu, click Convert to 4-Color

    -or-

    when using version 1.0 or version 1.01 of the Windows CE Toolkit for Visual C++ 5.0, build your project by clicking Build from on the Build menu (or by clicking the Build button on the Visual Studio toolbar). The bitmap will be converted to 4-color (2-bit, monochrome) during the linking process.

To create a 4-color icon

  1. On the File menu, choose New, and open Icon File on the Files tab.
  2. On the Image menu, double-click New Device Image to add the two sizes of 4-color Windows CE image to your icon.

To convert bitmap images between 4-color and standard formats

  1. Open the image in the resource editor.
  2. Double-click the empty area of the left image pane to open the Bitmap Properties dialog box.

  3. In the Colors drop-down box, choose a number. To convert the bitmap to a Windows CE 4-color image, select the number 4.

To add the standard Windows CE font to a dialog box

  1. In the resource editor, open the dialog box.
  2. Double-click the dialog box image to open Dialog Properties.
  3. On the General tab, click the Font button, and select the PegasusDialog font.

To create a scrollbar

  1. On the Visual Studio Insert menu, click Resource.
  2. Select Dialog, and click New

    -or-

    double-click Dialog.

  3. Drag the vertical or horizontal scrollbar control from the Controls toolbar onto the Dialog Editor Window.
  4. Make sure that any scrollbar you create for Windows CE is at least 57 inches long.

To add a caption bar OK button to a dialog box

  1. In the resource editor, open the dialog box.
  2. Double-click the dialog box image to open Dialog Properties.
  3. Click the Extended Styles tab, and then click Caption Bar OK (WCE only). The OK button will not be visible in the resource editor, but will appear in the dialog box after the application is built.

Tip Windows® NT uses 16x15 bitmaps on its button bars, while Windows CE uses 16x16 bitmaps. Adjust the image size to 16x16 when designing images for use on Windows CE button bars.


Compiling and Linking a Program

When you work within the integrated development environment, compile and link a project by clicking Build from the Build menu, or by clicking the Build button on the toolbar. You can also compile individual project files by clicking Compile from the Build menu, or by clicking the Compile button on the toolbar. When you work from the command line, you can compile and link individual project files.

Note When linking files, use the correct subsystem flag for the platform you are targeting. If you are working within the Visual Studio IDE, the correct flag is provided automatically; do not change it. When working from the command line, refer to the following table to specify the correct subsystem flag.

Target Platform | Subsystem Flag
Standard Win32 target | -subsystem:windows
Windows CE Emulation | -subsystem:windows -windowsce:emulation
Windows CE remote target device | -subsystem:windowsce

To prepare to build

  1. On the Project menu, click Set Active Project. This will ensure that the project you want to build is the active project.
  2. On the Build menu, click Set Active Project Configuration to select a target platform, and to specify whether to build a debug or release version of the active project.
  3. On the Project menu, click Settings and verify that the correct settings are displayed on all of the tabs in the Project Settings dialog box.
  4. To automatically download your program to the remote device after building it, click to select Always Download on the Build menu. Clear the Always Download option if you do not have a remote device connected to the desktop computer.
  5. If you are building for a remote device, make sure the device is properly connected to and communicating with the desktop computer. On the Tools menu, click Remote Connection Server to establish a connection.

Tips Activate the Build Toolbar to make it easier to select your active project configuration. If screen space is limited, deactivate the default Build MiniBar. To configure toolbars, choose Customize from the Tools menu and select the Toolbars tab.

Keep the Download Always option selected on the Build menu so you will not need to use Update Remote Output File after each build.

Windows CE sample programs are in the \WCE\Samples\Win32 subdirectory of your Visual Studio installation, and are documented in the InfoViewer under Windows CE SDK.

Do not keep two separate image source pools to develop for emulation and remote targets at the same time. If the link flags are set correctly, the images will be converted between 4-color and 16-color bitmaps automatically during linking.

To build and download

  1. On the Build menu, click Build to compile and link only the active project

    -or-

    click Rebuild All to rebuild the dependencies of the active project.

  2. If you have selected the Always Download option and you are building for a remote target platform, you will be prompted for information about file names and locations.
  3. Follow the progress of the compiling and linking process in the Build window.
  4. If you want to download a program to the remote device without building it, on the Build menu, click Update Remote Output File.

Notes To open a command-line window with appropriately set environment variables, use the icons installed in the Windows CE Toolkit for Visual C++ 5.0 program group.

Different target platforms require different compilers.

The LINK and LIB commands have been augmented with support for the SH3 platform in the /MACHINE flag. The new syntax is:
/MACHINE:{I386|MIPS|ALPHA|PPC|M68K|MPPC|SH3}

Download your program to a remote Windows CE device from the command line using pfile.exe. (DevStudio\SharedIDE\bin). Type pfile at the command prompt for more information.


Debugging a Program

To debug a Windows CE program, the program must be running in either an emulated or remote Windows CE environment. Under emulation, the Windows CE debugging process is similar to the Visual C++ debugging process. However, to debug a Windows CE program, the program is copied to the object store (during the build process) and executed in a simulated Windows CE environment on your desktop computer.

The remote debugging model varies, depending on the connection between the remote device and the desktop computer. The Windows CE Toolkit for Visual C++ 5.0 builds all binaries on the desktop computer and then downloads the binaries to the remote device.

To prepare to debug a program on a remote device

  1. Make sure the remote device is properly connected to the desktop computer.
  2. On the Tools menu, click Remote Connection Server or any of the remote tools to establish a connection to the remote device.
  3. On the Build menu, click either Set Active Configuration or Configurations, and then click the Debug option for the platform you want to target.
  4. On the Build menu, click Debugger Remote Connection.
  5. In the Remote Connection dialog box, select a target platform from the Platform drop-down combo box and click OK.
  6. On the Build menu, click Update Remote Output File to load your program onto the remote device.

Note If you enable Always Download on the Build menu, your program will be automatically loaded onto the remote device during the build process.

To debug on a remote device

  1. On the Build menu, click Start Debug.
  2. Select Step Into if you want the debugger to stop at the WinMain entry point

    -or-

    select Go if you want the debugger to stop only at soft or hard breakpoints.

  3. The debug subsystem will download and initialize on the device, and a series of loads will run until a breakpoint is hit. The integrated debugger is then connected to the device and can control the debug session.
  4. Perform the debug procedure.
  5. To exit safely, when the debugger is stopped at a breakpoint, click Stop Debugging on the Build menu.
  6. When you exit safely, the debug cycle of building, downloading, debugging, and exiting can go on indefinitely.

Note If you stop the debugger when it is not at a breakpoint, you may leave the remote device in an undetermined state. The debugger can only unload the debug subsystem when the device is at a breakpoint.

Remote debugging differs from native debugging in the following ways:

  • All exceptions from any process on the target machine are caught by the debugger. By default, the debugger stops when it catches an exception.
  • The project directory, and any project subdirectories, are at the top of the remote symbol mapping order.
  • Debug\Stop debugging behavior is continued on exit.
  • There is no asynchronous communications with the target — no asynchronous stop, breakpoints, memory updates, etc.
  • There is no support for single button stepping out of routines. An alternative is to set a breakpoint or run to cursor on the call stack routine calling the current routine.

Tips You can enable and disable breakpoints while the debugger is running. The procedure is the same if you set the breakpoints before debugging. Use the hand icon to set or remove a breakpoint where the cursor is positioned, or click Breakpoints on the Edit menu, and specify the line number.

To optimize performance while single-stepping, close any unnecessary windows in the debugger.

Click Step Into if you have not set a breakpoint in your executable. If you start debugging using Go, and no breakpoints are set, you may lose control of the target device and may have to restart it.

Verify that the host machine and the remote device are connected by checking for a connection icon in the icon tray of both taskbars.

If your remote device loses its connection during debugging, there are several ways to attempt reconnection: unplug and replug the PC-link, run Repllog.exe on the remote device, or cycle its power.

If your workspace contains both EXE and DLL projects, select EXE as the active project when debugging.


Running and Debugging MFC for Windows CE Applications

There are some special considerations when you want to debug an application that you created using the Microsoft Foundation Classes (MFC) for Windows CE.

To run and debug an application you created with MFC for Windows CE, you must first copy the mfcce20d.dll file to the windows directory on the targeted device. Mfcce20d.dll is located in the Devstudio\Wce\Lib\Wce200\target directory, where target is the directory that corresponds to your application's target platform, for example, wcemips.

In order to be able to step into the Microsoft Foundation Classes (MFC) source files when you are debugging in an emulated environment, you must copy the mfcce20d.dll and mfcce20d.pdb files into the windows directory on the targeted device.

When you debug the MFC application, the system will ask for the location of mfcce20.dll. Select "browse" and point the browser at the mfcce20.dll file on the target device.


Compiler Options

The Windows CE Toolkit for Visual C++ 5.0 uses different compilers to build for the various supported target platforms. The following options are available with both the SH3 and MIPS compilers unless otherwise indicated. "MIPS only" indicates that the option is available only on the MIPS compiler Clmips.exe. "SH only" indicates that the option is available only on the SH compiler Shcl.exe.

-OPTIMIZATION-
/O1 minimize space | /Op[-] improve floating-point consistency
/O2 maximize speed | /Os favor code space
/Oa assume no aliasing (MIPS only) | /Ot favor code speed
/Ob<n> inline expansion (default n=0) | /Ow assume cross-function aliasing (MIPS only)
/Od disable optimizations (default) | /Ox maximum opts. (/Ogitb1 /Gs)
/Og enable global optimization | /Oy[-] enable frame pointer omission
/Oi enable intrinsic functions | /Qtime[0-9] Opt for 0=space vs. 9=time (SH only)
-OUTPUT FILES-
/Fa[file] name assembly listing file | /Fp<file> name precompiled header file
/FA[sc] configure assembly listing | /Fr[file] name source browser file
/Fd[file] name .PDB file (MIPS only) | /FR[file] name extended .SBR file
/Fe<file> name executable file | /Fo<file> name object file
/Fm[file] name map file |
-PREPROCESSOR-
/C don't strip comments | /U<name> remove predefined macro
/D<name>{=|#}<text> define macro | /u remove all predefined macros
/E preprocess to stdout | /I<dir> add to include search path
/EP preprocess to stdout, no #line | /X ignore "standard places"
/P preprocess to file | /FI<file> name forced include file
-LANGUAGE-
/vd{0|1} disable/enable vtordisp (MIPS only) | /Za disable extensions (implies /Op)
/vm<x> type of pointers to members (MIPS only) | /Ze enable extensions (default)
/Zi generate debugging information | /Zg generate function prototypes
/Z7 generate old-style debug info | /Zl omit default library name in .OBJ
/Zd line number debugging info only | /Zs syntax check only
/Zp[n] pack structs on n-byte boundary |
-MISCELLANEOUS-
/?, /help print this help message | /w disable all warnings
/c compile only, no link | /W<n> set warning level (default n=1)
/H<num> max external name length (MIPS only) | /WX treat warnings as errors
/J default char type is unsigned | /Yc[file] create .PCH file
/nologo suppress copyright message | /Yd put debug info in every .OBJ (MIPS only)
/Tc<source file> compile file as .c | /Yu[file] use .PCH file
/Tp<source file> compile file as .cpp | /YX[file] automatic .PCH
/V<string> set version string | /Zn turn off SBRPACK for .SBR files
-LINKING-
/F<num> set stack size | /LDd Create .DLL debug library (MIPS only)
/LD Create .DLL | /link [linker options and libraries]
-CODE GENERATION (General)-
/Gd __cdecl calling convention (MIPS only) | /Gh enable hook function call (MIPS only)
/Gr __fastcall calling convention (MIPS only) | /GR[-] enable C++ RTTI
/Gf enable string pooling | /Gy separate functions for linker
/GF enable read-only string pooling | /Gt[n] data objects <= n bytes are near (MIPS only)
/Ge enable stack checking calls (MIPS only) |
/Gs[num] disable stack checking calls (MIPS only) |
-CODE GENERATION (Machine Specific)-
/QMRWCE generate Windows CE MIPS code | /Qsh3r3 generate code for SH3 Rev. 3 (SH only)
/QMmips1 MIPS1 ISA (MIPS only) | /Qsh3r4 generate code for SH3 Rev. 4 (SH only)
/QMmips2 MIPS2 ISA(default) (MIPS only) | /Qsh3r5 generate code for SH3 Rev. 5 (SH only)
/QMmips3 MIPS3 ISA (MIPS only) | /Qsh3r6 generate code for SH3 Rev. 6 (SH only)
/QMmips4 MIPS4 ISA (MIPS only) | /Qsh3r7 generate code for SH3 Rev. 7 (SH only)
/QMNoDivCheck no divide by zero check (MIPS only) | /Qsh3r8 generate code for SH3 Rev. 8 (SH only)
/QMOb<n> basic block threshold (MIPS only) |
/QMOu<n> unroll n loop iterations (MIPS only) |
/QMPux<n> use mips3 opcodes if n=1 (MIPS only) |


Default Settings

The following topics describe the default settings for building applications, dynamic-link libraries (DLLs), and static libraries in debug and release configurations.

Building Applications: Release Configuration

Building Applications: Debug Configuration

Building Dynamic Link Libraries: Release Configuration

Building Dynamic Link Libraries: Debug Configuration

Building Static Libraries: Release Configuration

Building Static Libraries: Debug Configuration


Building Applications: Release Configuration

To determine the default settings when using the Windows CE Toolkit for Visual C++ 5.0 to build applications for the release configuration, refer to the following tables.

Compiler Flags

Win32 (WCE x86em) | Win32 (WCE MIPS) | Win32 (WCE SH)
-NOLOGO -ML -W3 -02 -DWIN32 -DNDEBUG -D_WINDOWS -DSTRICT -D_WIN32_CE -DUNDER_NT -D_WIN32_CE_EMULATION -DUNICODE -D_UNICODE -D_X86_ -Fp -Yx -Fo -C | -NOLOGO -W3 -02 -DMIPS -D_MIPS_ -DNDEBUG -D_WIN32_CE -DUNICODE -Fp -Yx -Fo -QMRWCE -c | -NOLOGO -W3 -02 -DSH3 -D_SH3_ -DNDEBUG -D_WIN32_CE -DUNICODE -Fp -Yx -Fo -c

Linker Flags

Win32 (WCE x86em) | Win32 (WCE MIPS) | Win32 (WCE SH)
-subsystem:windows -windowsce:emulation | -entry: WinMainCRTStartup -base:0x00010000 -align:4096 -machine:MIPS -subsystem:windowsce |  | -entry: WinMainCRTStartup -base: 0x00010000 -align:4096 -machine:SH3 -subsystem:windowsce

RC Flags

Win32 (WCE x86em) | Win32 (WCE MIPS) | Win32 (WCE SH)
-D_WIN32_CE -DUNDER_NT -D_WIN32_CE_EMULATION -DNDEBUG | -r -DMIPS -D_MIPS_ -D_WIN32_CE -DNDEBUG | -r -DSH3 -D_SH3_ -D_WIN32_CE -DNDEBUG

Libraries

Win32 (WCE x86em) | Win32 (WCE MIPS) |  | Win32 (WCE SH)
comctl32.lib coredll.lib winmm.lib |  | commcrtl.lib coredll.lib libc.lib | commcrtl.lib coredll.lib libc.lib


Building Applications: Debug Configuration

To determine the default settings when using the Windows CE Toolkit for Visual C++ 5.0 to build applications for the debug configuration, refer to the following tables.

Compiler Flags

Win32 (WCE x86em) | Win32 (WCE MIPS) |  | Win32 (WCE SH)
NOLOGO -MLd -W3 -Gm -Zi -0d -DWIN32 -D_DEBUG -D_WINDOWS -DSTRICT -D_WIN32_CE -DUNDER_NT -D_WIN32_CE_ EMULATION -DUNICODE -D_UNICODE -D_X86_ -Fp -Yx -Fo -C |  | -NOLOGO -W3 -Zi -0d -DMIPS -D_MIPS_ -DDEBUG -D_WIN32_CE -DUNICODE -Fp -Yx -Fo -QMRWCE -c |  | -NOLOGO -W3 -Zi -0d -DSH3 -D_SH3_ -DDEBUG -D_WIN32_CE -DUNICODE -Fp -Yx -Fo -c

Linker Flags

Win32 (WCE x86em) | Win32 (WCE MIPS) |  | Win32 (WCE SH)
-subsystem:windows -windowsce:emulation | -entry: WinMainCRTStartup -base:0x00010000 -align:4096 -machine:MIPS -subsystem:windowsce | -entry: WinMainCRTStartup -base:0x0x00010000 -align:4096 -machine:SH3 -subsystem:windowsce

RC Flags

Win32 (WCE x86em) | Win32 (WCE MIPS) | Win32 (WCE SH)
D_WIN32_CE -DUNDER_NT -D_WIN32_CE_EMULATION -D_DEBUG | -r -DMIPS -D_MIPS_ -D_WIN32_CE -DDEBUG | -r -DSH3 -D_SH3_ -D_WIN32_CE -DDEBUG

Libraries

Win32 (WCE x86em) | Win32 (WCE MIPS) |  | Win32 (WCE SH)
comctl32.lib coredll.lib winmm.lib |  | commcrtl.lib coredll.lib libcd.lib | commcrtl.lib coredll.lib libcd.lib

Executable Paths

Win32 (WCE x86em) | Win32 (WCE MIPS) |  | Win32 (WCE SH)
\msdev\wce\emul\bin |  | \msdev\wce\bin \msdev\wce\target\bin\ \wcemips |  | \msdev\wce\bin \msdev\wce\target\bin \wcesh

Library Paths

Win32 (WCE x86em) | Win32 (WCE MIPS) |  | Win32 (WCE SH)
\msdev\wce\lib\x86em |  | \msdev\wce\lib\wcemips | \msdev\wce\lib\wcesh

Include Paths

Win32 (WCE x86em) | Win32 (WCE MIPS) |  | Win32 (WCE SH)
\msdev\wce\include |  | \msdev\wce\include |  | \msdev\wce\include


Building Dynamic Link Libraries: Release Configuration

To determine the default settings when using the Windows CE Toolkit for Visual C++ 5.0 to build dynamic-link libraries (DLLs) for the release configuration, refer to the following tables.

Compiler Flags

Win32 (WCE x86em) | Win32 (WCE MIPS) |  | Win32 (WCE SH)
-NOLOGO -MT -W3 -02 -DWIN32 -DNDEBUG -D_WINDOWS -DSTRICT -D_WIN32_CE -DUNDER_NT -D_WIN32_CE_EMULATION -DUNICODE -D_UNICODE -D_X86_ -Fp -Yx -Fo -C |  | -NOLOGO -W3 -02 -DMIPS -D_MIPS_ -DNDEBUG -D_WIN32_CE -DUNICODE -Fp -Yx -Fo -QMRWCE -c |  | -NOLOGO -W3 -02 -DSH3 -D_SH3_ -DNDEBUG -D_WIN32_CE -DUNICODE -Fp -Yx -Fo -c

Linker Flags

Win32 (WCE x86em) | Win32 (WCE MIPS) |  | Win32 (WCE SH)
-subsystem:windows -windowsce:emulation | -entry: _DllMainCRTStartup -base: 0x10000000 -align:4096 -dll -machine:MIPS -subsystem:windowsce | -entry: _DllMainCRTStartup -base:0x10000000 -align:4096 -dll -machine:SH3 -subsystem:windowsce

RC Flags

Win32 (WCE x86em) | Win32 (WCE MIPS) |  | Win32 (WCE SH)
-D_WIN32_CE -DUNDER_NT -D_WIN32_CE_EMULATION -DNDEBUG |  | -r -DMIPS -D_MIPS_ -D_WIN32_CE -DNDEBUG |  | -r -DSH3 -D_SH3_ -D_WIN32_CE -DNDEBUG

Libraries

Win32 (WCE x86em) | Win32 (WCE MIPS) |  | Win32 (WCE SH)
comctl32.lib coredll.lib winmm.lib |  | commcrtl.lib coredll.lib libc.lib |  | commcrtl.lib coredll.lib libc.lib


Building Dynamic Link Libraries: Debug Configuration

To determine the default settings when using the Windows CE Toolkit for Visual C++ 5.0 to build dynamic-link libraries (DLLs) for the debug configuration, refer to the following tables.

Compiler Flags

Win32 (WCE x86em) | Win32 (WCE MIPS) |  | Win32 (WCE SH)
-NOLOGO -MTd -W3 -Gm -Zi -0d -DWIN32 -D_DEBUG -D_WINDOWS -DSTRICT -D_WIN32_CE -DUNDER_NT -D_WIN32_CE_EMULATION -DUNICODE -D_UNICODE -D_X86_ -Fp -Yx -Fo -C |  | -NOLOGO -W3 -Zi -0d -DMIPS -D_MIPS_ -DDEBUG -D_WIN32_CE -DUNICODE -Fp -Yx -Fo -QMRWCE -c |  | -NOLOGO -W3 -Zi -0d -DSH3 -D_SH3_ -DDEBUG -D_WIN32_CE -DUNICODE -Fp -Yx -Fo -c

Linker Flags

Win32 (WCE x86em) | Win32 (WCE MIPS) | Win32 (WCE SH)
-subsystem:windows -windowsce:emulation | -entry: _DllWinMainCRTStartup -base: 0x10000000 -align:4096 -dll -debug -machine:MIPS -subsystem:windowsce |  | -entry: _DllMainCRTStartup -base:0x10000000 -align:4096 -dll -debug -machine:SH3 -subsystem:windowsce

RC Flags

Win32 (WCE x86em) | Win32 (WCE MIPS) |  | Win32 (WCE SH)
-D_WIN32_CE -DUNDER_NT -D_WIN32_CE_EMULATION -DDEBUG |  | -r -DMIPS -D_MIPS_ -D_WIN32_CE -DDEBUG |  | -r -DSH3 -D_SH3_ -D_WIN32_CE -DDEBUG

Libraries

Win32 (WCE x86em) | Win32 (WCE MIPS) |  | Win32 (WCE SH)
comctl32.lib coredll.lib winmm.lib |  | commcrtl.lib coredll.lib libcd.lib |  | commcrtl.lib coredll.lib libcd.lib

Executable Paths

Win32 (WCE x86em) | Win32 (WCE MIPS) |  | Win32 (WCE SH)
\msdev\wce\emul\bin |  | \msdev\wce\bin \msdev\wce\target\bin \wcemips |  | \msdev\wce\bin \msdev\wce\target\bin \wcesh

Library Paths

Win32 (WCE x86em) | Win32 (WCE MIPS) | Win32 (WCE SH)
\msdev\wce\lib\x86em | \msdev\wce\lib\wcemips | \msdev\wce\lib\wcesh

Include Paths

Win32 (WCE x86em) | Win32 (WCE MIPS) |  | Win32 (WCE SH)
\msdev\wce\include | \msdev\wce\include | \msdev\wce\include


Building Static Libraries: Release Configuration

To determine the default settings when using the Windows CE Toolkit for Visual C++ 5.0 to build static libraries for the release configuration, refer to the following table.

Compiler Flags

Win32 (WCE x86em) | Win32 (WCE MIPS) | Win32 (WCE SH)
-NOLOGO -ML -W3 -02 -DWIN32 -DNDEBUG -D_WINDOWS -DSTRICT -D_WIN32_CE -DUNDER_NT -D_WIN32_CE_EMULATION -DUNICODE -D_UNICODE -D_X86_ -Fp -Yx -Fo -C | -NOLOGO -W3 -02 -DMIPS -D_MIPS_ -DNDEBUG -D_WIN32_CE -DUNICODE -Fp -Yx -Fo -QMRWCE -c | -NOLOGO -W3 -02 -DSH3 -D_SH3_ -DNDEBUG -D_WIN32_CE -DUNICODE -Fp -Yx -Fo -c


Building Static Libraries: Debug Configuration

To determine the default settings when using the Windows CE Toolkit for Visual C++ 5.0 to build static libraries for the debug configuration, refer to the following table.

Compiler Flags

Win32 (WCE x86em) | Win32 (WCE MIPS) | Win32 (WCE SH)
-NOLOGO -MLd -W3 -Z7 -0d -DWIN32 -D_DEBUG -D_WINDOWS -DSTRICT -D_WIN32_CE -DUNDER_NT -D_WIN32_CE_EMULATION -DUNICODE -D_UNICODE -D_X86_ -Fp -Yx -Fo -C | -NOLOGO -W3 -Zi -0d -DMIPS -D_MIPS_ -DDEBUG -D_WIN32_CE -DUNICODE -Fp -Yx -Fo -QMRWCE -c | -NOLOGO -W3 -Zi -0d -DSH3 -D_SH3_ -DDEBUG -D_WIN32_CE -DUNICODE -Fp -Yx -Fo -c


Developing for Different Versions of Windows CE

Use the version of the Windows® CE Toolkit for Visual C++® 5.0 development libraries (1.0, 1.01, or 2.0) that corresponds to the version of Windows CE running on the target device. You do not need to manually change the link library when you write for platforms that support earlier versions of Windows CE. The Windows CE Toolkit for Visual C++ will automatically select the appropriate default link library for the specified version of Windows CE.

To develop applications for version 1.0 of Windows CE

  1. Add "#define_WIN32_WCE 100" to your source files before the line that includes the header file, Windows.h.

    -or-

    add "/D"_WIN32_WCE=100" to the compiler command line.

  2. Link with the version 1.0 libraries.

To check the default link library

  1. Start Microsoft® Visual Studio™.
  2. On the Tools menu, select Options.
  3. In the Options dialog box, click the Directories tab.
  4. On the Platform drop-down menu, select the platform you want to target.
  5. On the Show directories for drop-down menu, select Library files to display the default library files.

Note If the version 1.0 files are the default, the file name \DevStudio\WCE\lib\WCE100\device_name will be displayed. If the version 1.01 files are the default, the file name \DevStudio\WCE\lib\WCE101\device_name will be displayed.

Note You can also start emulation by clicking EXPLOREM.EXE, a file located by default in Program Files\Windows CE Platform SDK\wce\emul\hpc\windows.


Windows CE Emulation

The Microsoft® Windows® CE emulation environment provides a Microsoft® Windows® NT desktop version of Windows CE. Emulation provides support for Windows CE common controls and the Windows CE object store file system.

The object store is managed by a file called FILESYS.EXE and contains the Windows CE registry, databases, and other files. The tree structure is identical to the tree structure of the object store on the remote device, and all semantics are the same. Most of the Windows CE functionality is retained, including desktop shortcuts, object store browsing, drag-and-drop operations, context-sensitive menus, and support for all shell APIs.

To run emulation on your desktop PC, you must first have Microsoft® Windows NT® 4.0, Microsoft® Visual C++® 5.0, and the Microsoft® Windows® CE Toolkit for Visual C++® 5.0 installed.

To start emulation, start FILESYS.EXE indirectly by clicking Desktop HPC Emulation on the Windows CE Platform SDK submenu. You can also start emulation by clicking EXPLOREM.EXE, a file located by default in Program Files\Windows CE Platform SDK\wce\emul\hpc\windows. FILESYS.EXE runs as a background task, so you will not see anything to indicate that it is running.

The following topics are explained in this section.

Starting Emulation

Closing Emulation

The Windows CE Command Bar

Building Applications for Emulation

Running Applications Under Emulation

Changing the Size of the Emulation Window

Troubleshooting Emulation


Starting Emulation

To Start Emulation

  1. Click Start, and point to Programs.
  2. Point to Windows CE Platform SDK.
  3. Click Desktop HPC Emulation.

The emulation window is used to observe the behavior of Windows CE applications under development without having to download executables or have a remote device connected to your desktop PC. The emulation window is a simulation of the desktop environment on the remote device.


Closing Emulation

To Close Emulation

  • Click the emulation environment Start button, then click Suspend.


The Windows CE Command Bar

The Windows CE Command Bar combines the functionality of the Microsoft® Windows® 95/NT menu bar and toolbar, as well as some title bar functionality.

Menus

The Windows CE Command Bar menu structure is shown in the table below.

File | Edit | View | Go | Favorites
Delete | Undo | Address Bar | Back | Add to Favorites
Rename | Cut | Large Icons | Forward | Organize Favorites
Properties | Copy | Small Icons | My Documents |
Close | Paste | Details | Home Page |
 | Paste Shortcut | Refresh | Search the Web |
 | Select All | Options | Windows CE Web |
 |  |  | History |

Tools

The Windows CE Command Bar tools are shown in the following illustration. The tool icons are identified below.

  • Go Back
  • Go Forward
  • Up One Level
  • Delete
  • Properties (select a desktop object and click this button)
  • View
  • Help
  • Exit


Building Applications for Emulation

To build an application for emulation, link your project to the following libraries:

  • Coredll.lib
  • Msvcrt.lib

The functions in these five libraries are declared in Windows.h. To add messaging functionality to your application, include Msgstore.h. To add e-mail functionality, include Addrstor.h.

To build an application for emulation

  1. From the Microsoft® Visual Studio™ IDE, on the File menu, click New.
  2. In the New dialog box, click the Projects tab, and select Win32 Application.
  3. In the Platforms check box , select Win32 (WCE x86 em).
  4. In the New dialog box, type a text string in the Project Name field and click OK.
  5. After you build and link the executable file, Visual Studio will display the Copying Executable Path And File Name dialog box. Enter the destination location for your executable file, and then click OK.

Note This dialog box displays only when you build and link a new executable file. When you rebuild an application, use the Remote Object Viewer to copy and move the executable file to a different folder in the simulated file system, or use the following procedure.

To move the executable file of a rebuilt application

  1. On the Project menu, click Settings.
  2. In the Project Settings dialog box, click the Debug tab.
  3. Clear the Remote Executable Path and File Name field and click OK. This will cause Visual Studio to display the Copying Executable Path And File Name dialog box during the next build. You can also move the executable file by changing the file path that appears in the Remote Executable Path and File Name field and clicking OK.

To link a library file to your application

  1. Load your project workspace in Visual Studio.
  2. On the Projects menu, click Settings.
  3. In the Project Settings dialog box, click the Link tab.
  4. If the library file is not linked to your project, type the library file name in the Object/library modules field and click OK.

To implicitly link a DLL to your application

  1. Load your project workspace in Visual Studio.
  2. On the Tools menu, click Options.
  3. In the Options dialog box, click the Directories tab.
  4. In the Show directories for drop-down box, choose the correct file type.
  5. Make sure the drive letters and paths to the directories containing the DLLs you want to link to your project are correctly listed in the Directories field.
  6. Click OK, then on the Project menu, click Settings.
  7. In the Project Settings dialog box, click the Link tab.
  8. Make sure the names of the DLLs you want to link to your project are correctly listed in the Object/library modules field.
  9. Click OK.


Running Applications Under Emulation

There are two ways to run an application under emulation:

To run an application under emulation

  1. From within the Visual Studio IDE, click either the Execute or Go button on the toolbar, or click Execute on the Build menu. This will start EXPLOREM.EXE and FILESYS.EXE to execute your application within the emulation window

    -or-

  2. From within the emulation environment, click the Start button, click Run, enter the path for your executable file, then click OK.

Note The default display area for the emulation window is the upper-left corner of your screen.

The emulation environment mimics the memory capacity of the Handheld PC and displays appropriate error messages when memory limits are exceeded. Be aware that some applications run faster within emulation than they will on the Handheld PC. This is partly due to message handling on desktop machines.

Even though Handheld PC message handling and the message queue are emulated, some subtle differences exist. Use emulation through the final stages of development, but always test applications on the remote device before you release the application.


Changing the Size of the Emulation Window

If you want to change the display size of the emulation environment window, you'll have to run the Windows NT registry editor (regedit.exe).

To change the size of the emulation window

  1. If you are running the emulation, close it by clicking the emulation environment Start button, then click Suspend.
  2. Click Start, and point to Run.
  3. In the Open field, type "Regedit" and click OK.
  4. In the Windows Registry editor, click HKEY_LOCAL_MACHINE.
  5. Click SOFTWARE.
  6. Click Microsoft.
  7. Click Windows CE Platform SDK.
  8. Click Emulation.
  9. Click H-PC.
  10. Click Screen Settings.
  11. Modify the SM_CXSCREEN and SMCYSCREEN values and close the registry editor.
  12. Start emulation.


Troubleshooting Emulation

When I build I get connection errors. What's wrong?

You may have the wrong environment selected. Check the default project workspace, and make sure it is set to one of the emulation options.

I rebuilt my .exe and the IDE never gave me the option of where to put my executable. What's wrong?

You may have to move your executable file to the correct directory.


Windows CE Tools

After you install the Microsoft® Windows® CE Toolkit for Visual C++® 5.0, you will be able to use several new tools. The new tools will appear on the Microsoft® Visual Studio™ Tools menu, and enhance development environment functionality by enabling you to access a remote device from a desktop computer and perform a variety of Windows CE-specific tasks.

The following Windows CE tools are provided for use on your desktop computer:

Windows CE Spy

Windows CE Registry Editor

Windows CE Zoom

Windows CE Process Viewer

Windows CE Heap Walker

Remote Object Viewer

Remote Connection Server

When running multiple instances of the Windows CE tools, note the following general rules:

  • You can run multiple instances of Windows CE Zoom.
  • You can only run a single instance of Windows CE Spy, Windows CE Registry Editor, Windows CE Process Viewer, Windows CE Heap Walker, Remote Object Viewer, and Remote Connection Server.


Establishing a Remote Connection

Start any of the Windows CE tools to automatically initiate the appropriate remote connection. If the remote connection initialization fails, run Repllog.exe from the remote device.

To establish a remote connection

  1. On the Visual Studio Tools menu, click [filename] where filename is the name of one of the Windows CE tools

    -or-

    at the Windows® NT command prompt, type "C:\Program Files\DevStudio\WCE\BIN\[filename]" where filename is the name and extension of any of the Windows CE tools.

    -or-

    on the Visual C++ 5.0 submenu, click [filename] where filename is the name of one of the Windows CE tools.

  2. Turn on your remote device.

Note To make sure you have a working remote connection, start Windows CE Services on your desktop computer, then turn on your remote device. Windows CE Services will try to establish a connection to the remote device; if it cannot establish a connection, run Repllog.exe from the remote device.

To Run Repllog.exe from your remote device

  1. Tap Start to display the Start menu, and then tap Run.
  2. In the Run dialog box, type "Repllog.exe" in the Open field.
  3. Tap OK.


Windows CE Spy

When you start the Windows CE Spy utility, the remote device downloads a Windows list to the desktop PC. The Windows list displays a list of windows that are open on the remote device. When you select a window and click Messages from the File menu, Windows CE Spy opens a secondary window, containing information about the messages in that window's message queue.

Use Windows CE Spy to:

  • Display a tree hierarchy that represents the relationships between system objects.
  • View messages that are being sent or posted to windows on the remote device.

The following topics are covered in this section:

Starting Windows CE Spy

Expanding or Collapsing the Windows CE Spy Tree


Starting Windows CE Spy

To start Windows CE Spy

  • On the Visual Studio Tools menu, click Windows CE Spy

    -or-

    at the Windows NT command prompt, type "C:\Program Files\DevStudio\WCE\BIN\Pspy.exe" and press Enter.

Use the Windows CE Spy toolbar to view messages for a selected window or to refresh the window list.

The Spy toolbar buttons are described in the following table.

Spy Toolbar Button | Description
Refresh window list | Refreshes the Windows CE Spy window list.
View messages | Displays messages for a selected window.

Note You can run only a single instance of Windows CE Spy; if you try to run multiple instances, the current instance will be displayed. Windows CE Spy is a read-only utility that will not alter the functionality of any program, but it may slow system performance.


Expanding or Collapsing the Windows CE Spy Tree

To expand or collapse the Windows CE Spy tree

  • From the tree view, click the plus symbol (+) to the left of the window icon to expand the tree one level, or click the minus symbol (–) to collapse the tree one level.


Windows CE Registry Editor

The Windows CE system registry resides in the object store on the remote device. Edit the system registry by running the Windows CE Registry Editor. When you run the Registry Editor (ceregedt.exe), a dialog box opens and displays three top-level registry headings:

  • My Computer
  • My Emulation
  • My HPC

To inspect and modify the desktop computer system registry, double-click the My Computer registry heading.

To inspect and modify the emulation system registry, double-click the My Emulation registry heading.

To inspect and modify the remote device system registry, double-click the My HPC registry heading.

Each registry heading consists of the following top-level registry keys:

HKEY_LOCAL_MACHINE

HKEY_LOCAL_MACHINE is the root key for configuration information.

HKEY_CLASSES_ROOT

HKEY_CLASSES_ROOT is the root key for associating a file with an application.

HKEY_CURRENT_USER

HKEY_CURRENT_USER is the root key for configuration information about the user currently logged on to the system.

The following topics are covered in this section:

Starting the Windows CE Registry Editor

Downloading Keys From the Remote Device

Exporting the Windows CE Registry to a Text File

Adding a Key

Adding a Value

Changing a Value

Deleting a Key or Value

Renaming a Key or Value


Starting the Windows CE Registry Editor

To start the Windows CE Registry Editor

  • On the Visual Studio Tools menu, click Windows CE Registry Editor

    -or-

    at the Windows NT command prompt, type "C:\Program Files\DevStudio\WCE\BIN\ceregedt.exe" and press Enter.

When you start the Windows CE Registry Editor, the Windows CE Desktop Emulation Environment window will appear in the upper-left corner of your monitor, and then the Windows CE Registry Editor window will appear.


Downloading Keys From the Remote Device

To have the Windows CE Registry Editor download the registry key from the remote device, double-click the My HPC registry heading, and then double-click any of the top-level registry keys.

When the remote registry key has finished downloading to your desktop computer, you can edit that registry key. When you edit the downloaded registry key, the user interface is using the Remote API to directly edit the registry of the remote device.


Exporting the Windows CE Registry to a Text File

To export the Windows CE registry to a text file

  1. On the Registry menu, click Export Registry File.
  2. In the Save in drop-down list box, select a file location.
  3. Enter a text string in the File name field.


Adding a Key

To add a key to the Windows CE registry

  1. Open the registry list and use your mouse cursor to find the location you want to use as an entry point for a new key.
  2. On the Edit menu, click New, and then click Key. The New Key dialog box will appear.
  3. Type a name for the new key and click OK.


Adding a Value

To add a value to the Windows CE registry

  1. Open the registry list and use your mouse cursor to find the location you want to use as an entry point for a new value.
  2. On the Edit menu, click New, and then click the type of value you want to add: String Value, Multi-string Value, Binary Value, or DWORD Value.
  3. Type a name for the new key and click OK.


Changing a Value

To change a Windows CE registry value

  1. Double-click the value you want to change to open the New Value dialog box.
  2. In the Value field, type the new value definition and click OK.


Deleting a Key or Value

To delete a key or value from the Windows CE registry

  • Click a key or value you want to delete, and then click Delete on the Edit menu. You do not need to open the key or value.


Renaming a Key or Value

To rename a key or value in the Windows CE registry

  1. Click a key or value you want to rename, and then click Rename on the Edit menu. You do not have to open the key or value.
  2. Type the new name, and then press Enter.


Windows CE Zoom

Use the Windows CE Zoom utility (cezoom.exe) to capture and enlarge an area of the remote device desktop.

The following topics are covered in this section:

Starting Windows CE Zoom

Capturing a Remote Screen Image

Changing the Size of a Captured Remote Screen Image

Refreshing the Zoom Window

Copying the Contents of the Zoom Window to the Clipboard


Starting Windows CE Zoom

To start Windows CE Zoom

  • On the Visual Studio Tools menu, click Windows CE Zoom

    -or-

    at the Windows NT command prompt, type "C:\Program Files\DevStudio\WCE\BIN\cezoom.exe" and press Enter.

The Windows CE Zoom window appears, with a dialog box that contains a progress bar. This dialog box displays "Initializing communication with device" and then "Connecting to device" as your desktop computer and the remote device establish a communications link. The desktop computer then downloads a bitmapped screen capture from the remote device.


Capturing a Remote Screen Image

To capture a remote screen image

  • On the Windows CE Zoom Edit menu, click Copy Window.

    -or-

    on the Edit menu, click Copy All.


Changing the Size of a Captured Remote Screen Image

To change the size of a captured remote screen image

  • Use the Zoom In button to increase the size of a captured remote screen image. Each successive click enlarges the image.

  • Use the Zoom Out button to decrease the size of a captured remote screen image. Each successive click diminishes the image.


Refreshing the Zoom Window

To refresh the Zoom window

  • On the View menu, click Refresh.


Copying the Contents of the Zoom Window to the Clipboard

To copy the contents of the Zoom window to the clipboard

  • On the Edit menu, click Copy All to copy the entire contents of the Zoom window to the clipboard,

    -or-

    click Copy Window to copy the visible contents of the Zoom window to the clipboard.


Windows CE Process Viewer

The Windows CE Process Viewer (cepview.exe) enables you to view detailed information about processes and threads running on the remote device. You can use the Windows CE Process Viewer to examine and modify many process and thread characteristics.

The following topics are covered in this section:

Starting the Windows CE Process Viewer

Refreshing the Windows CE Process Viewer


Starting the Windows CE Process Viewer

To start the Windows CE Process Viewer

  • On the Visual Studio Tools menu, click Windows CE Process Viewer

    -or-

    at the Windows NT command prompt, type "C:\Program Files\DevStudio\WCE\BIN\cepiew.exe" and press Enter.

The Windows CE Process Viewer window displays a list of running Processes, Thread IDs, and Modules. Click a process to display the attributes for the selected process.

  • The Process list displays information about Process IDs, Base Priorities, the number of Threads running in each process, the Base Address of each process, the Access Key for each process, plus a list of all the Windows that belong to each process.
  • The Thread ID list displays information about thread IDs, current process IDs, thread priorities, and access keys.
  • The Module list displays information about module IDs, process counts, global counts, base addresses, base sizes, module handles, and the full path to the module.

Use the Windows CE Process Viewer toolbar to refresh the display of running processes or to terminate a selected process.

The Process Viewer toolbar buttons are described in the following table.

Process Viewer Toolbar Button | Description
Refresh process information | Refreshes the Windows CE Process Viewer window.
Terminate Process | Terminates the selected process.
Display Program Information | Displays the Windows CE Process Viewer About box.


Refreshing the Windows CE Process Viewer

To refresh the Windows CE Process Viewer

  • On the Process Viewer Toolbar, click the Refresh Process Information button.

    -or-

    On the View menu, click Refresh.


Windows CE Heap Walker

The Windows CE Heap Walker (ceheapwk.exe) enables you to view detailed information about heap IDs and flags for processes that are running on the remote device. You can use the Windows CE Heap Walker to determine if an application is releasing all of the memory it is allocating. Windows CE Heap Walker is a useful tool to determine if an application has memory leaks.

The following topics are covered in this section:

Starting Windows CE Heap Walker

Saving Heap Walker Data in a Text File

Viewing the HeapList for a Selected Process

Viewing a Memory Dump for a ProcessID


Starting Windows CE Heap Walker

To start Windows CE Heap Walker

  • On the Visual Studio Tools menu, click Windows CE Heap Walker

    -or-

    at the Windows NT command prompt, type "C:\Program Files\DevStudio\WCE\BIN\ceheapwk.exe" and press Enter. The Windows CE Heap Walker Process List window appears.

The Windows CE Heap Walker Process List column headings are described in the following table.

Column heading | Description
Heap ID | A hex representation of a specific heap within the process space identified by the Process ID.
Process | A hex representation of a specific Process ID.
Process ID | A descriptive, user-readable text string.
Flag | The name of the flag associated with a specific heap. All processes start with at least one heap. HF32_DEFAULT refers to the default heap for the specified process.

Note Each process listed in the Process ID column can have more than one heap. This is why you will see multiple Heap ID listings for a single Process ID.

Each listing in the Heap ID column represents a specific heap in the process space. This is true, despite the fact that the same Heap ID may correspond to several different listings in the Process ID column.


Saving Heap Walker Data in a Text File

You can save the contents of the Memory Dump window, the Process list window, or the HeapList window in a text file.

To save the contents of a Windows CE Heap Walker window

  1. Select the window whose contents you want to save as a text file.
  2. On the File menu, click Save.


Viewing the HeapList for a Selected Process

To download and view the HeapList window for a selected process, double-click a Heap ID.

This dialog box displays "Initializing communication with device" and then "Transfering Heap entries from device" as your desktop computer starts the download procedure. The desktop computer then downloads a HeapList for the selected process.

The Windows CE Heap Walker HeapList column headings are described in the following table.

Column heading | Description
Address | The address of the memory object.
Block Size | The size of the memory block, in bytes.
Flags | Fixed means the object is not movable or discardable; Free means the object is discardable. These refer to a block within a heap.


Viewing a Memory Dump for a ProcessID

To download and view the Memory Dump window for a selected processID, double-click a memory address within the heap.

Note You can display all of the Heap Walker windows by clicking Cascade or Tile on the Windows menu.

The Windows CE Heap Walker Process ID column headings are described in the following table.

Column heading | Description
Address | The memory address of the heap.
Hex | A hex representation of the contents of the heap.
ASCII | An ASCII representation of the contents of the heap.


Remote Object Viewer

The Remote Object Viewer (Osviewer.exe) utility enables you to:

  • View the object store on the remote device.
  • Browse the emulation file system and object store.
  • Browse the remote device file system and object store.
  • Browse the root directory (containing Windows NT) of the desktop computer hard drive.
  • Delete, copy, and move files, folders, and databases.
  • Move files in and out of the emulation object store (Wceobstr.dat).

The following topics are covered in this section:

Starting the Remote Object Viewer

Viewing Object Stores


Starting the Remote Object Viewer

To start the Remote Object Viewer

  1. On the Tools menu, click Remote Object Viewer. The Remote Object Viewer will begin inspecting the remote device stores
  2. On the Please Wait dialog box, click Abort to display only the contents of the root directory on the hard drive of your desktop computer.

  3. If you do not click Abort, the Handheld PC Store Viewer dialog box will display the contents of the remote object store and the contents of the Handheld PC file store, in addition to the contents of the hard drive of your desktop computer.


Viewing Object Stores

To see the hierarchy of folders in a directory or a store

  1. Click a folder on the left side of the window to display the contents of the folder on the right side of the window.
  2. Click the plus sign (+) to expand the view and display more folders. Click the minus sign (-) to collapse the view.

The following options are available from the View menu.

Option | Description
Small Icons | Displays the small icon associated with the item.
Large Icons | Displays the large icon associated with the item.
List | Displays objects in list form.
Details | Displays name, size, type, last modified date and attribute information.
Refresh | Refreshes Remote Object Viewer.

Notes To resize the window, drag the splitter bar.

To display the contents of a folder, double-click the folder.

To view properties for a selected file, double-click the file. The Property View dialog box will appear.

To view the Record ID, Field Type, and Field Value for a selected property, double-click the property. The Record Edit dialog box will appear.


Remote Connection Server

The Remote Connection Server (Rsdkmon.exe) is a Visual C++ for Windows CE Version 1.0 tool that starts a connection with the remote device by running Dccman.exe, a program that starts the desktop PC Remote Access Service (RAS) connection. The Remote Connection Server functions as a communications placeholder. It acts as an empty remote client. This makes it easier to start the other remote tools.

The Remote Connection Server will not perform synchronization between the remote device and the desktop PC. If you need to perform synchronization, use the Version 1.0 H/PC Explorer. Use the Remote Connection Server instead of the H/PC Explorer when you want to establish a quick connection to the remote device.

Note The Remote Connection Server is a Version 1.0 tool that was part of Visual C++ for Windows CE. It is not part of the Windows CE Toolkit for Visual C++ 5.0.

The following topics are covered in this section:

Starting the Remote Connection Server

Starting Other Tools Using the Remote Connection Server

Disconnecting the Remote Connection Server

Troubleshooting


Starting the Remote Connection Server

To start the Remote Connection server

  • On the Visual Studio Tools menu, click Remote Connection Server

    -or-

    at the Windows NT command prompt, type "C:\Program Files\DevStudio\SharedIDE\bin\Rsdkmon.exe" and press Enter.

    The RSDKMon icon appears in the taskbar tray.


Starting Other Tools Using the Remote Connection Server

To start the other Windows CE tools from the Remote Connection Server

  1. Right-click the RSDKMon icon.
  2. From the RSDKMon menu, click a remote tool.


Disconnecting the Remote Connection Server

To terminate the remote connection

  • Double-click the RSDKMon icon.


Troubleshooting

If you cannot establish a connection between the desktop computer and the remote device, try manually running Repllog on the remote device.

To start Repllog

  1. On the remote device Start menu, tap Run.
  2. Type Repllog.exe in the text box and tap OK.


Wizards

The Microsoft® Windows® CE Toolkit for Visual C++® 5.0 provides two application creation wizards: WCE MFC AppWizard and WCE ATL COM AppWizard. You can use these wizards to quickly create Windows CE starter programs.

The WCE MFC AppWizard helps you create programs using the Microsoft Foundation Class library.

The WCE ATL COM AppWizard helps you create COM/ActiveX components using the Active Template Library.

The Windows CE Toolkit for Visual C++ 5.0 also provides a class creation wizard called the WCE MFC ClassWizard. You can use this wizard to define message handlers, override virtual functions, and add properties, methods, and events to automation objects.

In addition to these three wizards, you can use the Windows CE ATL Object Wizard to create ActiveX Controls for your Windows CE projects:

WCE MFC AppWizard

WCE MFC ClassWizard

WCE ATL COM AppWizard

Windows CE ATL Object Wizard


WCE MFC AppWizard

The WCE MFC Application Wizard generates a complete suite of source files and resource files based on classes from the MFC library. This wizard offers the easiest way to create a new application. By selecting options, you can customize the starter files that WCE MFC AppWizard generates. When you have completed the steps in the WCE AppWizard, the Windows CE Toolkit for Visual C++ 5.0 creates a functional starter application.

To start a project using the WCE MFC AppWizard

  1. On the Visual Studio File menu, click New.
  2. In the New dialog box, click the Projects tab.
  3. Select WCE MFC AppWizard.
  4. In the Platforms check box list, select the platforms you want to target.
  5. Enter a text string in the Project Name field, and click OK.
  6. On each of the four AppWizard screens, select the features you want and click Finish. On the third AppWizard screen, you must select "As a shared DLL." This is necessary, since when you use the WCE MFC AppWizard, you cannot statically link to MFC. You must use MFC as a shared DLL.
  7. In the New Product Information dialog box, review the specifications of your new skeleton project, and click OK.
  8. The new project is now available in your workspace to be viewed using the ClassView, ResourceView, and FileView tabs.
  9. To learn more about the files created by the AppWizard, select the FileView tab and double-click the ReadMe.txt file for the new project.

Note You can create a new MFC for Windows CE project that has a dependency on another project. To perform this function, make sure the workspace containing the other project is open when you choose New from the File menu, and specify the appropriate settings on the Project tab, with WCE MFC selected, before clicking OK.


WCE MFC ClassWizard

The WCE MFC ClassWizard works with programs that use the Microsoft Foundation Class Library (MFC). You can use the ClassWizard to edit project workspace classes, or to change or add functionality.

Use the ClassWizard from any MFC for Windows CE project. The ClassWizard is tailored to display only the appropriate message handlers, filters, and so on.

Note The Automation and ActiveX Events tabs do not appear on the WCE MFC ClassWizard.

To start the WCE MFC ClassWizard

  1. On the File menu, click Open Workspace.
  2. Find and double-click a workspace file

    -or-

  • use the WCE MFC AppWizard to create a new project.
  3. Click the ClassWizard button

    -or-

  4. on the View menu, click ClassWizard.

Tips Check that the build flags are set properly. (From the Project menu, click Settings. Then click the C/C++ tab.)

By default, all supported target platforms are selected. Scroll the Platforms checkbox list to be sure you have selected only the platforms you want to target.

Typically, you will not want to build a Windows CE project for Win32®. Therefore, you can clear the Win32 platform checkbox from the Platforms checkbox list. To test your program on the desktop PC, select the emulation environment that is identified by the following abbreviation: Win32 (WCE x86em). See the Windows CE Emulation section.


WCE ATL COM AppWizard

The WCE ATL COM AppWizard generates a starter application that helps you create COM/ActiveX components using the Active Template Library.

To start a project using the WCE ATL COM AppWizard

  1. On the Visual Studio File menu, click New.
  2. In the New dialog box, click the Projects tab.
  3. Select WCE ATL COM AppWizard.
  4. Select the platforms you want to target from the Platforms checkbox list.
  5. Enter a text string in the Project Name field, and click OK.


Windows CE ATL Object Wizard

You can use the Windows CE ATL Object Wizard to create ActiveX controls without having to build the controls for Win32. Windows CE ActiveX Controls are registered in the emulation registry. Therefore, emulation must be installed and running before you can create Windows CE ActiveX controls.

To create a new Windows CE ActiveX control

  1. On the Visual Studio Insert menu, click New ATL Object.
  2. In the ATL Object Wizard, select the object, control, or dialog box you want to create.
  3. Click Next.
  4. In the ATL Object Wizard Properties dialog box, edit the names, properties, and attributes of your new Windows CE ActiveX control.
  5. Click OK.

To add a registered Windows CE ActiveX Control to your project

  1. On the Visual Studio Project menu, point to Add To Project and click Components and Controls.
  2. In the Components and Controls Gallery dialog box, double-click the Registered WCE ActiveX Controls tab.
  3. Click the ActiveX Control you want to add to your project. The name of the control will appear in the File name field.
  4. Click Insert.


Windows CE SDK Environments

Windows® CE currently supports three specific target environments:

  • Windows CE emulation under Windows® NT on an x86 CPU
  • H/PC target platform with an SH CPU
  • H/PC target platform with a MIPS CPU

These environments are established when you install the Microsoft® Windows® CE Toolkit for Visual C++® 5.0, and each environment has a corresponding icon in the Visual C++ program group. Clicking on the icon opens a command line window and sets environment variables to appropriate values for the selected environment.


Environment Compiler Defines

Name | Usage | Definition
_WIN32_WCE | Compiler/Resource Compiler Defines | Use this define to conditionally compile code targeted for NT emulation or an H/PC.
STRICT | Compiler Defines | Denotes strict type checking by compiler.
_WIN32_CE_ EMULATION | Compiler/Resource Compiler Defines | Use these defines to conditionally compile code targeted for NT emulation.
_MIPS_ _SH3_ _X86_ | Compiler Defines | Target CPU defines required by winnt.h to set the proper version of the structure "Context". This structure holds CPU specific information.
WIN32 | Compiler Defines | Denotes Win32® application.


Environment Flags, Paths, and Compiler Names

Name | Usage | Definition
align:4094 | Linker Flag | This option specifies the alignment of each section within the linear address space of the program. The number argument is in bytes and must be a power of two. The default is 4K. The linker issues a warning if the alignment produces an invalid image.
Nodefaultlib | Linker Flag | Turns off automatic inclusion of standard libraries (e.g. libc.lib).
QMR4100 | Compiler Flag | Flag for R4100 cpu.
cl | I386 Compiler Define | Used by Makefiles to invoke I386 compiler command.
Clmips | MIPS Compiler Define | Used by Makefiles to invoke MIPS compiler command.
Shcl | SH3 Compiler Define | Used by Makefiles to invoke SH3 compiler command.
WCE | Path | Location of WCE directory on host machine.
WCE\bin | Path | Location of compilers and utilities used by SDK.
WCE\bin | Path | Location of MIPS DLLs and executables.
WCE\bin | Path | Location of x86 DLLs and executables.
WCE\bin | Path | Location of x86 emulation-specific DLLs.
WCE\bin | Path | Location of SH3-specific DLLs.
WCE\bin\ | Path | Location of MIPS-specific DLLs.
WCE\lib\x86em | Path | Location of x86 emulation-specific libraries.
WCE\lib\wcesh | Path | Location of SH3-specific libraries.
WCE\lib\wcemips | Path | Location of MIPS-specific libraries.


Environment Default Settings

Each H/PC target environment can be set from the command line when its corresponding cmd batch file is invoked.

Specific variables for each environment are defined in the following topics:

Emulation Environment

SH3 Environment

MIPS Environment


Emulation Environment

Environment variables for x86 emulation using NMAKE.

Variable | Usage | Settings
CDEFINES | Compiler Defines | _WIN32, STRICT, _WIN32_WCE, _WIN32_WCE_EMULATION, UNICODE, _X86_
RDEFINES | Resource Compiler Defines | _WIN32_WCE_EMULATION
LDEFINES | Linker Defines | nodefaultlib
CFLAGS | Compiler Flags |
CC | C Compiler | cl
PATH | Primary Path | %PATH%;%msdevdir%\wce\bin
LIB | Library Path | %msdevdir%\wce\lib\x86em; %lib%
INCLUDE | Include file path | %msdevdir%\wce\include


SH3 Environment

Default environment variables for the SH3 target environment.

Variable | Usage | Settings
CDEFINES | Compiler Defines | _WIN32, _WIN32_WCE, UNICODE, _SH3_
RDEFINES | Resource Compiler Defines | _WIN32_WCE
LDEFINES | Linker Defines | nodefaultlib, align:4096
CFLAGS | Compiler Flags |
CC | C Compiler | shcl
PATH | Primary Path | %path%; %msdevdir%;\wce\target\bin\wcesh
LIB | Library Path | %msdevdir%\wce\lib\wcesh
INCLUDE | Include file path | %msdevdir%\wce\include


MIPS Environment

Default environment variables for the MIPS target environment.

Variable | Usage | Settings
CDEFINES | Compiler Defines | _WIN32, _WIN32_WCE, UNICODE, _MIPS_
RDEFINES | Resource Compiler Defines | _WIN32_WCE
LDEFINES | Linker Defines | nodefaultlib, align:4096
CFLAGS | Compiler Flags | QMR4100
CC | C Compiler | clmips
PATH | Primary Path | %PATH%; %msdevdir%wce\bin; %msdevdir%\wce\target\bin\wcemips
LIB | Library Path | %msdevdir%\wce\lib\wcemips
INCLUDE | Include file path | %msdevdir%\wce\include


Example of a Windows CE Make File

!IF 0
Copyright (c) 1989-1996  Microsoft Corporation
Abstract:
    This file specifies the target component being built and the list of
    sources files needed to build that component.  Also specifies optional
    compiler switches and libraries that are unique for the component being
    built. Makefile for project "foo".
!ENDIF

!IF "$(DEBUG)"=="1"
LDEFINES=$(LDEFINES) -debug:full -debugtype:both  -pdb:none
CFLAGS=$(CFLAGS) -Z7 -Od
TYPE=debug
!ELSE
TYPE=retail
!ENDIF

PROJ=foo
OUTDIR=$(TYPE)_$(TARGETCPU)

OBJS= $(OUTDIR)\foo1.obj \
      $(OUTDIR)\foo2.obj \
      $(OUTDIR)\foo3.obj

GLOBAL_DEP= foo.h

CFLAGS= $(CFLAGS) -nologo -W3 -c
RFLAGSS= $(RFLAGS) -r
RC_FILE= foo.rc
RES_FILE=$(OUTDIR)\$(PROJ).res

I386EM_TARGETLIBS=user32.lib   \
                  commctrl.lib \
                  kernel32.lib \
                  gdi32.lib \
                  mscvrt.lib

MIPSEM_TARGETLIBS=user32.lib   \
                  commctrl.lib \
                  kernel32.lib \
                  gdi32.lib \
                  msvcrt.lib

SH3_TARGETLIBS=commctrl.lib \
               coredll.lib \
               libc.lib

R4100_TARGETLIBS=commctrl.lib \
                 coredll.lib \
                 libc.lib

!IF "$(TARGETCPU)"=="i386"
TARGETLIBS=$(I386EM_TARGETLIBS)
MACHINE_OPTION= $(TARGETCPU)
EXEENTRY = WinMainCRTStartup
!ENDIF

!IF "$(TARGETCPU)"=="MIPS"
TARGETLIBS=$(MIPSEM_TARGETLIBS)
MACHINE_OPTION= $(TARGETCPU)
EXEENTRY = WinMainCRTStartup
!ENDIF

!IF "$(TARGETCPU)"=="SH3"
TARGETLIBS=$(SH3_TARGETLIBS)
MACHINE_OPTION= $(TARGETCPU)
EXEENTRY = WinMain
!ENDIF

!IF "$(TARGETCPU)"=="R4100"
TARGETLIBS=$(R4100_TARGETLIBS)
MACHINE_OPTION= MIPS
EXEENTRY = WinMain
!ENDIF

$(OUTDIR)\$(PROJ).exe: $(OUTDIR) $(OBJS) $(RES_FILE)
     link $(LDEFINES) $(OBJS) $(TARGETLIBS) $(RES_FILE) \
     -out:$(OUTDIR)\$(PROJ).exe -entry:$(EXEENTRY) -machine:$(MACHINE_OPTION)

$(OBJS): $$(@B).c $(GLOBAL_DEP)
     $(CC) $(CFLAGS) $(CDEFINES)  $(@B).c -Fo$@

$(RES_FILE): $(RC_FILE) $(GLOBAL_DEP) $(OUTDIR)
   rc $(RFLAGS) $(RDEFINES)  /fo$(RES_FILE) $(RC_FILE)

"$(OUTDIR)" :
    if not exist "$(OUTDIR)" mkdir "$(OUTDIR)"

clean:
    del /q $(OUTDIR)
    nmake


C Runtime Library Functions

The Microsoft® Windows® CE Toolkit for Visual C++® 5.0 supports a subset of the C Runtime Library functions supported in Visual C++. The following table lists all supported functions.

For complete reference documentation for each function, see the Visual C++ documentation.

C Runtime Library Functions
_cabs
_chgsign
_clearfp
_controlfp
_copysign
_ecvt
_fcvt
_finite
_fpclass
_fpieee_flt
_fpreset
_gcvt
_hypot
_isnan
_itoa
_itow
_j0
_j1
_jn
_logb
_lrotl
_lrotr
_ltoa
_ltow
_matherr
_memccpy
_memicmp
_msize
_nextafter
_rotl
_rotr
_scalb
_snwprintf
swprintf
swscanf
_statusfp
_swab
_ultoa
_ultow
vswprintf
_wcsdup
_wcsicmp
_wcslwr
_wcsnicmp
_wcsnset
_wcsrev
_wcsset
_wcsupr
_wtoi
_wtol
_y0
_y1
_yn
abs
acos
asin
atan
atan2
atoi
atol
ceil
cos
cosh
difftime
div
exp
fabs
floor
fmod
free
frexp
iswalnum
iswalpha
iswascii
iswcntrl
iswctype
iswgraph
iswlower
iswprint
iswpunct
iswspace
iswupper
iswxdigit
labs
ldexp
ldiv
log
log10
longjmp
malloc
mbstowcs
memchr
memcmp
memcpy
memmove
memset
modf
pow
qsort
rand
realloc
sin
sinh
sqrt
srand
strcat
strchr
strcmp
strcpy
strcspn
strlen
strncat
strncmp
strncpy
strstr
strtok
tan
tanh
towlower
towupper
wcscat
wcschr
wcscmp
wcscpy
wcscspn
wcslen
wcsncat
wcsncmp
wcsncpy
wcspbrk
wcsrchr
wcsspn
wcsstr
wcstod
wcstok
wcstol
wcstombs
wcstoul
wsprintf (must support dbls)


Pocket Help Files for Windows CE

Microsoft® Windows® CE uses Pocket Help to display Help files for Windows® CE-based programs. Pocket Help files are authored in Hypertext Markup Language (HTML). The Help engine supports jumps, basic formatting, tables, and bitmaps. This chapter describes how to create Pocket Help files and what tools you will need.

Keep in mind that space on the device is extremely limited. You may want to restrict the online Help to reminders for common tasks and key commands, and place more detailed information in another medium. Windows CE compression reduces file size by 30 to 40 percent.

Topics covered in this section include:

Accessing Help

Navigation

Creating Help Files

Calling Pocket Help From Within an Application

Supported Images

Pocket Internet Explorer HTML Tag Reference


Accessing Help

Users can access Help in three ways:

  • The Help command on the Start menu.
  • The question-mark (?) button in a program or dialog box.
  • Using the shortcut keys alt+h.

When the user clicks Help on the Start menu, Pocket Help displays Help for the system including the desktop, My Handheld PC, the Start menu, and the taskbar.

In a program window or dialog box, users can display Help for the program or dialog box by clicking the question-mark button.

From any Help topic, users can access any other Help file on the system by clicking the Other Help button. Pocket Help searches for all contents files in the Windows folder and displays a list that users can choose from.


Navigation

The Pocket Help window has four navigation buttons: Contents, Back, Other Help and Expand/Collapse.

This button | Does this
Contents | Returns to the contents topic.
Back | Displays the previous topic.
Other Help | Displays a list of all Help files.
Expand/Collapse | Expands the Help window.

Scrollbars in Pocket Help enable users to scroll through a topic or list of topics.


Creating Help Files

When you create Help for a Windows CE you can choose to have all your help content in one file or you can choose to have separate content and topics files.

Creating Help using a Single File

Creating Help using Several Files


Creating Help using a Single File

Before you begin writing Help for one file, remember that:

  • All content and jumps are contained in one file (.htp).
  • Each topic is separated with a <!-- PegHelp --> separator between each section, and before the first section.
  • The .htp file must be in the Windows folder.

Creating the Help File

All of the Help topics for an application are contained in a single file instead of many smaller files.

Each contents topic contains a list of jumps to other topics. Each topic must start with the <html> tag, end with the </html> tag, and contain two parts: the head and the body.

The head section starts with the <head> tag and ends with the </head> tag. The <head> tag should contain a <meta> tag that references the name of the contents file associated with this file. Unless you are nesting a set of help files within another set, this should be blank.

Each named section is separated with <!-- PegHelp --> as a separator between each of the sections, and before the first section.

When users view the contents, the Contents button is disabled. The tag for the list of topics is <menu> </menu>.

Help File Sample

The following is a sample file that contains multiple help topics. These sections are separated with the <!-- PegHelp --> separator between the sections. It contains the table of contents as well as the information.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" Content="soltr.htp#solitaire_help">
<title>Solitaire Help</title>
</HEAD>
<BODY BGCOLOR=#FFFFFF TEXT=#000000>
<!-- PegHelp -->
<p>
<a name="solitaire_help"></a><b>Solitaire Help</b></p>
<p>
<a href="soltr.htp#playing_the_game">Playing the Game</a> </p>
<p>
<a href="soltr.htp#setting_solitaire_options">Setting Solitaire Options</a> </p>
<p>
<a href="soltr.htp#solitaire_scoring_systems">Solitaire Scoring Systems</a> </p>
<div align=right>
<a href="soltr.htp#playing_the_game"><img src="arrowr.2bp" border=0></a></div><br clear=all>
<!-- PegHelp -->
<a name="playing_the_game"></a><b>Playing the Game</b>
<ul>
<li>
To deal the cards, tap the <b>Deal</b> button.<br><br></li>
<li>
To display cards in the upper-left stack, tap the stack.</li>
<li>
To move a card to one of the row stacks, drag the card.</li>
<li>
In the row stacks, turn a card face up by tapping it.</li>
<li>
You win the game when all the cards are in the suit stacks.</li>
</ul>
<p>
<a href="soltr.htp#setting_solitaire_options">Setting Solitaire Options</a> </p>
<p>
<div align=right>
<a href="soltr.htp#solitaire_help"><img src="arrowl.2bp" border=0></a>&nbsp;
<a href="soltr.htp#setting_solitaire_options"><img src="arrowr.2bp" border=0></a>
</div><br clear=all>
<!-- PegHelp -->
<a name="setting_solitaire_options"></a><b>Setting Solitaire Options</b>
<ol>
<li>
Tap <b>Options</b>.</li>
<li>
(<b>Draw</b>) Specify whether you want to draw one card or three cards at a time.</li>
<li>
(<b>Scoring</b>) Select the type of scoring you want, if any.</li>
<li>
(<b>Card Back)</b> Select the deck style you want.</li>
<li>
Select the display options you want.</li>
</ol>
<p>
<a href="soltr.htp#playing_the_game">Playing the Game</a> </p>
<p>
<div align=right>
<a href="soltr.htp#playing_the_game"><img src="arrowl.2bp" border=0></a>
<!-- PegHelp -->
</BODY>
</HTML>


Creating Help using Several Files

If you decide to use two or more files, you will need to create a contents or .htc file (one for each application) that contains jumps to all the topics files and .htp files that contain the help topics.

Things to know before you begin writing help for two kinds of files:

  • Contents topic files have an .htc extension.
  • Each topic is a separate file with an .htp extension.
  • All .htc files must be in the Windows folder.

If .htp or .2bp files are in another folder, the full path must be specified in the <file> attribute and in the <title>, <a>, and <img src> tags. The examples in this document assume that all files are stored in the Windows folder.

Topics are authored in HTML. Pocket Help supports a subset of HTML tags. This section will cover a few of the standard tags that you will use in each file. For a complete list of supported tags please see Pocket Internet Explorer HTML Tag Reference.

The Contents .htc File

A contents topic has an .htc file name extension. When the user clicks the Help command on the Start menu, Pocket Help searches for all files with an .htc extension and displays these files in a list. Pocket Help displays the file names (without the extension) of the contents topic files.

The mainhelp.htp File

All of the help topics for an application are contained in a single file instead of many smaller files.

Each contents topic contains a list of jumps to other topics. Each topic must start with the <html> tag, end with the </html> tag, and contain two parts: the head and the body.

The head section starts with the <head> tag and ends with the </head> tag. The <head> tag should contain a <meta> tag that references the name of the contents file associated with this file. Unless you are nesting a set of help files within another set, this should be blank.

Each section is separated with <!-- PegHelp --> as a separator between each of the sections, and before the first section.

When users view the contents, the Contents button is disabled. The tag for the list of topics is <menu> </menu>.

Composing the Contents File

Each contents topics contains a list of jumps to other topics. Each topic must start with the <html> tag, end with the </html> tag, and contain two parts: the head and the body.

The head section starts with the <head> tag and ends with the </head> tag. The <head> tag should contain a <meta> tag that references the name of the contents file associated with this file. Unless you are nesting a set of help files within another set, this should be blank.

When users view the contents, the Contents button is disabled. The tag for the list of topics is <menu> </menu>.

Contents File Template

The following example provides sample HTML code for a contents file, with a screen shot showing how it looks on the H/PC.

<html>
<head>
<meta http-equiv=refer content="">
</head>
<body>
<h5>My Help Contents</h5>
<menu>
<li><a href="file:my_topic1.htp">Title for Topic 1</a>
<li><a href="file: my_topic2.htp">Title for Topic 2</a>
<li><a href="file:my_topic3.htp">Title for Topic 3</a>
<li><a href="file:my_topic4.htp">Title for Topic 4</a>
</menu>
</body>
</html>

Section Files (.htp)

These files contain the body text of your Pocket Help files. These are the files that are listed within your contents page.

Remember that since the H/PC has limited memory, Pocket Help is a companion to any desktop help files that you provide. Pocket Help should contain specific information necessary when using the device away from access to desktop help files.

Composing Help Files

Each topic must start with the <html> tag, end with the </html> tag, and contain two parts: the head and the body.

The head section starts with the <head> tag and ends with the </head> tag. This tag should include a <meta> tag that references the title of the .htp file associated with this topic. Use a naming convention that fits the needs of your project. If you have several components, you may want to use a two character abbreviation followed by a meaningful reference, for example, CD_new, where CD represents calendar and new represents the content of the topic.

Adding a Bitmap

To add a bitmap to a topic, use the anchor tag <img src> to specify the file name of a bitmap you want to include. Pocket Help files should use the .2bp extension. The following example displays an image.

<a href="soltr.htp#solitaire_help"><img src="arrowl.2bp" border=0></a>&nbsp;

Adding a Jump

To create a jump to another topic, use the anchor tag <a href> to specify the file name of the topic you want to jump to and the text that you want to be "hot."

For example:

<a href="soltr.htp#setting_solitaire_options">Setting Solitaire Options</a> </p>

In this example, Pocket Help would display Setting Solitaire Options.

Section File Template

The following example provides an HTML code sample for a topic file, with a screen shot showing how it looks on the H/PC:

<html>
<head>
<meta http-equiv=refer content="file:my_topic1.htc">
</head>
<body>
<H2>Second level heading</H2>
<p><b>This is for bold text</b>
<p>Here's where to put normal text.
</body>
</html>


Calling Pocket Help From Within an Application

You may want users to be able to access some topics directly from the program instead of from the contents. For example, you could create a topic that describes a dialog box, then have the application display that topic when the user taps the question-mark button in the dialog box.

To call Help from an application, use the CreateProcess function. For the second argument, pass a command line parameter, using the TEXT macro to convert the string to Unicode, that contains the file name of the contents or specific Help topic to display. All other arguments are NULL or FALSE. For example:

CreateProcess(TEXT("PegHelp.exe"), TEXT("my_topic3.htp"),NULL, NULL, FALSE, 0, NULL, NULL, NULL, NULL);

-or-

CreateProcess(TEXT("PegHelp.exe"), TEXT("My Help Contents.htc"),NULL, NULL, FALSE, 0, NULL, NULL, NULL, NULL);


Supported Images

Note that Windows CE Help supports only bitmaps as embedded images.

The following files are not supported:

  • .GIF files
  • .JPG files.


Pocket Internet Explorer HTML Tag Reference

Windows CE supports the following HTML tags:

URL formats | Version 1.0 | Version 1.1 | Version 2.0
HTTP | Yes | Yes | Yes
HTTPS | No | Yes | Yes
FTP | Yes | Yes | Yes
FILE | Yes | Yes | Yes

HTML tags | Version 1.0 | Version 1.1 | Version 2.0
A | Yes | Yes | Yes
ADDRESS | Yes | Yes | Yes
APPLET | No | No | Yes *
AREA | Yes | Yes | Yes
B | Yes | Yes | Yes
BASE | No | Yes | Yes
BASEFONT | Yes | Yes | Yes
BGSOUND | Yes | Yes | Yes
BIG | Yes | Yes | Yes
BLINK | No | No | No
BLOCKQUOTE | Yes | Yes | Yes
BODY | Yes | Yes | Yes
BR | Yes | Yes | Yes
CAPTION | Yes | Yes | Yes
CENTER | Yes | Yes | Yes
CITE | Yes | Yes | Yes
CODE | Yes | Yes | Yes
DD | Yes | Yes | Yes
DFN | Yes | Yes | Yes
DIR | Yes | Yes | Yes
DIV | Yes | Yes | Yes
DL | Yes | Yes | Yes
DT | Yes | Yes | Yes
EM | Yes | Yes | Yes
FONT | Yes | Yes | Yes
FORM | Yes | Yes | Yes
FRAME | No | No | Yes
FRAMESET | No | No | Yes
Hn | Yes | Yes | Yes
HEAD | Yes | Yes | Yes
HR | Yes | Yes | Yes
HTML | Yes | Yes | Yes
I | Yes | Yes | Yes
IMG | Yes | Yes | Yes
INPUT | Yes | Yes | Yes
ISINDEX | No | No | No
KBD | Yes | Yes | Yes
LI | Yes | Yes | Yes
LINK | No | No | No
MARQUEE | No | No | No
MENU | Yes | Yes | Yes
MAP | Yes | Yes | Yes
META | Yes | Yes | Yes
NEXTID | Yes | Yes | Yes
NOBR | Yes | Yes | Yes
OBJECT | No | No | No
OL | Yes | Yes | Yes
OPTION | Yes | Yes | Yes
P | Yes | Yes | Yes
PARAM | No | No | Yes
PLAINTEXT | Yes | Yes | Yes
PRE | Yes | Yes | Yes
S | Yes | Yes | Yes
SAMP | Yes | Yes | Yes
SELECT | Yes | Yes | Yes
SMALL | Yes | Yes | Yes
STRIKE | Yes | Yes | Yes
STRONG | Yes | Yes | Yes
SUB | Yes | Yes | Yes
SUP | Yes | Yes | Yes
TABLE | Yes | Yes | Yes
TD | Yes | Yes | Yes
TEXTAREA | Yes | Yes | Yes
TH | Yes | Yes | Yes
TITLE | Yes | Yes | Yes
TR | Yes | Yes | Yes
TT | Yes | Yes | Yes
U | Yes | Yes | Yes
UL | Yes | Yes | Yes
VAR | Yes | Yes | Yes
WBR | Yes | Yes | Yes
XMP | Yes | Yes | Yes

MIME formats | Version 1.0 | Version 1.1 | Version 2.0
text/plain | Yes | Yes | Yes
text/html | Yes | Yes | Yes
image/bmp | Yes | Yes | Yes
image/gif | Yes | Yes | Yes
image/peg | Yes | Yes | Yes
image/tiff | No | No | No
image/x-xbitmap | No | No | Yes
audio/wav | Yes | Yes | Yes
audio/basic | No | No | No
audio/aiff | No | No | No
video/avi | No | No | No
video/mpeg | No | No | No

Security | Version 1.0 | Version 1.1 | Version 2.0
SSL2 | No | Yes | Yes
SSL3 | No | Yes | Yes
PCT | No | Yes | Yes

****PCT is not enabled in France.


Microsoft Technical Support

Your Guide to Microsoft Technical Support

You can find late-breaking updates and technical information in the readme file that came with your product disks or compact disc.

If you still have a question, Microsoft offers technical support and services ranging from self-help tools to direct assistance with a Microsoft technical engineer.

Note The services and prices listed here are available in the United States and Canada only. Support services may vary outside the U.S. and Canada. For more information on support in other locations, contact your local Microsoft subsidiary.

Microsoft's support services are subject to Microsoft's then-current prices, terms, and conditions, which are subject to change without notice.

Choose the support option that's right for you:

  • Self Help Tools
  • Direct Assistance from a Microsoft Technical Support Engineer
  • Other Microsoft Services
  • Microsoft Technical Support Worldwide


Self-Help Tools

Support Online at http://support.microsoft.com/support

Rather help yourself to answers? Support Online makes it easy. Simply select your product and type in your question. Because the site's search engine uses a natural language query, you can even write your question in your own words. Then click "Find" and Support Online does all the rest, employing the latest Microsoft technologies to instantly search Microsoft Technical Support's vast collection of problem-solving tools and technical information like the Knowledge Base and Frequently Asked Questions. Next time you have a technical question, use Support Online and see how easy it is to get the answers you need.


Other Self-Help Tools

In addition to the Internet resources, Microsoft Technical Support provides the following additional technical information resources:

  • Microsoft TechNet

    If you are an information technology (IT) or Help desk professional responsible for administering your corporate network or supporting end users then you can stay on top of your organization's requirements with TechNet. TechNet is a comprehensive resource for evaluating, implementing, and supporting Microsoft business products. Every month, TechNet delivers two CDs packed with more than 150,000 pages of the critical information you need to smoothly deploy mission-critical systems and minimize downtime–all while building your technical expertise. To subscribe, see your local authorized retailer, or call (800) 344-2121, Monday through Friday, excluding holidays, 6:30 A.M to 5:30 P.M. Pacific time.

  • Microsoft Developer Network Library (MSDN)

    If you develop applications for the Internet or the Windows® operating system, or use Microsoft products for any other development purposes, you'll enhance your productivity with an MSDN subscription. MSDN is Microsoft's official source for technical programming information, SDKs, DDKs, Windows, BackOffice™, Microsoft Office, and Visual Tools for developers. For more information on MSDN subscription levels and benefits, visit MSDN online at: http://www.microsoft.com/msdn/. Or call (800) 759-5474, Monday through Friday, excluding holidays, 6:30 A.M. to 5:30 P.M. Pacific time.

  • Microsoft Download Service (MSDL)

    Provides direct modem access to Microsoft's electronic technical library, which contains sample programs, device drivers, patches, software updates, and programming aids. The service is available 24 hours a day, 365 days a year. In the U.S. dial (425) 936-6735. Connect information: 1200, 2400, 9600, or 14400 baud, no parity, 8 data bits, and 1 stop bit. In Canada, dial (905) 507-3022. Connect information: 1200 to 28800 baud, no parity, 8 data bits, and 1 stop bit.

  • Microsoft FastTips

    An automated toll-free telephone service for quick answers to common technical questions, as well as technical articles by telephone, fax, or mail. To access FastTips or to receive a catalog of the articles available, call one of the following numbers on a touch-tone telephone:

  • Desktop Applications

    (800) 936-4100lp1

  • Desktop Systems

    (800) 936-4200

  • Development Tools

    (800) 936-4300

  • Business Systems

    (800) 936-4400

You can use the following keys on your touch-tone telephone after you reach FastTips.

To do this: | Press this key:
Advance to the next message | *
Repeat the current message | 7
Return to the beginning of FastTips | #


Direct Assistance from a Microsoft Technical Support Engineer

Your options for direct assistance are:

  • Standard No-Charge Support
  • Pay-Per-Incident Support
  • Priority Annual Support
  • Priority Plus
  • Premier Support
  • Consult Line


Standard No-Charge Support

If you still need answers to your technical questions, Microsoft offers no-charge support for retail* versions of Microsoft® Windows CE Toolkit for Visual C++ 5.0 as follows:

Two (2) no-charge support incidents for current retail versions of this product.

To receive your Standard No-Charge Support, in the U.S. and Canada, please call (425) 635-5039, 6 A.M. to 6 P.M. Pacific time, Monday through Friday, excluding holidays. Note: Toll-charges may apply.

In the U.S. and Canada, you can also submit your support question via the Internet with Web Response. For more details, go to Support Online at http://support.microsoft.com/support.

Note If your Microsoft product was pre-installed or distributed with your personal computer, the personal computer manufacturer is responsible for providing your product support. For support, contact the manufacturer or source from which you obtained your Microsoft product.

When you contact us for support, you should be at your computer and have the appropriate product documentation at hand. Be prepared to give the following information:

  • The version of the Microsoft product you use.
  • The type of hardware you use.
  • The operating system you use.
  • The exact wording of any messages that appeared on your screen.
  • A description of what happened and what you were doing when the problem occurred.
  • A description of how you tried to solve the problem.


Pay-Per-Incident Support

If you require support after normal business hours, or if you have used your two Standard No-Charge support incidents, as described above, you can purchase Pay-Per-Incident Support Microsoft® Windows CE Toolkit for Visual C++ 5.0 as follows:

  • In the U.S. and Canada, for a fee of $95US per incident, please call (800) 936-5800, 24 hours a day, seven days a week, including holidays.
  • In the U.S. only, you can also call (900) 555-2300, 24 hours a day, seven days a week, including holidays.
  • In the U.S. and Canada, you can also submit your support question via the Internet with Web Response. For more details, go to Support Online at http://support.microsoft.com/support.

Note Support fees for the (800)# calls will be billed to your VISA, MasterCard, or American Express credit card. Support fees for the (900)# calls will appear on your telephone bill.


Priority Annual Support

If you anticipate a higher volume of support incidents, or need priority access to Microsoft Technical Support Engineers, you can purchase a Priority Annual Developer Account as follows:

  • In the U.S., for more information or to purchase an annual account at a cost of $895US per 10 incidents, please call (800) 936-3500, 24 hours a day, seven days a week, including holidays. To submit an incident against an existing account, call (800) 936-4800, 24 hours a day, seven days a week, including holidays.
  • In Canada, for more information, to purchase an annual account at a cost of $895CDN plus tax per 10 incidents, or to submit an incident against an existing account, please call (800) 668-7975, Monday through Friday, excluding holidays, 8:00 A.M. to 8:00 P.M. Eastern time.


Priority Plus

Microsoft Technical Support also offers special accounts for medium-sized businesses that require priority incident resolution, including business-critical support and access to targeted information to assist information-technology and Help desk professionals in support planning for smoother product deployment. For more information, in the U.S. and Canada, please call (800) 936-3500, 24 hours a day, seven days a week, including holidays.


Premier Support

Premier Support offers the highest level of mission-critical support for those large enterprise customers who require a direct, proactive service and support relationship with Microsoft. As a Premier customers receive proactive, personalized support services and fast, expert resolution of specific technical issues for all Microsoft products, anytime, day or night. Premier Support is designed to help you successfully develop, deploy, and manage critical business systems built around high-quality Microsoft solutions. This highest level of mission-critical support, combined with a close relationship with your own designated technical team, will help large enterprise businesses streamline the entire support cycle. For more information or to purchase Premier Support, call (800) 936-3200, Monday through Friday, excluding holidays, 5:00 A.M. to 5:00 P.M. Pacific time.


Consult Line

Take advantage of our Consult Line to receive hourly consulting for support questions that fall outside of the traditional technical support realm. These include designing or planning for deployment, software development, code review, and implementation planning. The Consult Line covers all Microsoft products, including those Microsoft products used for developing Internet and intranet solutions. For more information or to purchase hourly consulting services at $195US per hour (minimum one hour), please call (800) 936-5200, Monday through Friday, excluding holidays, 6:00 A.M. to 6:00 P.M. Pacific time.


Additional Assistance from Microsoft Support Partners

As Microsoft products are integrated into multi-vendor environments, our customers' support needs go beyond Microsoft products to include hardware, networking, and software products from other vendors. For these and other specialized support requirements, Microsoft offers a variety of programs that provide comprehensive worldwide service and support. In fact, you may already have an established relationship with an experienced Microsoft support provider. If not, check out these resources.


Microsoft Certified Solution Providers

Microsoft creates the technology, while Microsoft Certified Solution Providers (MCSPs) develop the actual solutions for customers all over the world. MCSPs are, in fact, Microsoft's virtual service and support team. From small organizations to companies of 1,000 or more employees, MCSPs use Microsoft products as the building blocks to offer such value-added services as integration, consulting, software customization, application development, and technical training and support. MCSPs have Microsoft Certified Professionals on staff and often specialize in an industry or a specific solution. Therefore, they are the most knowledgeable on those applications and can offer expert, comprehensive support. And in most cases, they can bring their expertise right on-site, offering you all the benefits of a local support presence. For more information or for a referral, call (800) 765-7768, Monday through Friday, excluding holidays, 6:30 A.M. to 5:30 P.M. Pacific time, or visit the http://www.microsoft.com/mcsp/ site.


Authorized Support Centers

Microsoft has teamed up with a select group of industry-leading support providers called Microsoft Authorized Support Centers (ASCs). These independent companies meet Microsoft's strict quality standards for support. They also have extensive Microsoft product knowledge, as well as expertise in supporting hardware, software, and networking products from other vendors. ASCs offer a wide range of one-stop-shopping services, from setting up a help desk to delivering mission-critical support for all phases of planning, implementing, and maintaining a client/server system. ASCs are, in essence, a virtual extension of the Microsoft Technical Support organization. They can bring to your company a whole new set of unique and invaluable capabilities to ensure a cohesive, high-performance business solution. For more information, contact your Microsoft account representative, or visit the http://www.microsoft.com/servad/asc/ site.


Other Microsoft Services

Includes information on customer service and text telephone numbers for the deaf.

  • Text telephone

    Microsoft text telephone (TTY/TDD) services are available for the deaf or hard-of-hearing. In the U.S., using a TTY/TDD modem, dial (425) 635-4948 between 6:00 A.M. and 6:00 P.M. Pacific time, Monday through Friday, excluding holidays. In Canada, using a TTY/TDD modem, dial (905) 568-9641 between 8:00 A.M. and 8:00 P.M. eastern time, Monday through Friday, excluding holidays.

  • Microsoft Customer Service

    For customer service issues on Microsoft products, upgrades, and services, contact the Microsoft Sales Information Center. In the U.S., call (800) 426-9400. In Canada, call (800) 563-9048. Note: Technical support is not available at these numbers.


Microsoft Technical Support Worldwide

If you are outside the U.S. and have a question about a Microsoft product, first:

  • Check the information in this Help file or product manual.
  • Check the readme files that come with your product disks. These files provide general information that became available shortly before the product was released.
  • Go to Support Online at http://support.microsoft.com/support.

If you cannot find a solution, you can receive information on how to obtain product support by contacting the Microsoft subsidiary office in your area.


Contacting a Microsoft Subsidiary Office

When you call your local Microsoft subsidiary, you should be at your computer and have the appropriate product documentation at hand. Be prepared to provide the following information:

  • The version of the Microsoft product you use.
  • The type of hardware you use, including network hardware, if applicable.
  • The operating system you use.
  • The exact wording of any messages that appeared on your screen.
  • A description of what happened and what you were doing when the problem occurred.
  • A description of how you tried to solve the problem.

Important Phone numbers for Microsoft Subsidiaries are subject to change. For the most recent listing, please see the phone number section of http://www.microsoft.com/support/. If there is no Microsoft subsidiary office in your country, please contact the establishment from which you obtained your Microsoft product.


Microsoft Worldwide Subsidiaries

  • Argentina

    Microsoft de Argentina S.A.
    Customer Service: (54) (1) 316-4600
    Fax: (54) (1) 316-4698
    Technical Support: (54) (1) 316-4664

  • Armenia

    See Russia

    ·Australia

    Microsoft Pty. Ltd.
    Fax: (61) (02)9805 1108
    Sales Information Centre: (61) (02) 9870-2100
    Internet://www.microsoft.com.au/
    Technical Support: (61) (02) 9870-2131

  • Austria

    Microsoft Ges.m.b.H.
    Phone: (+43) 1 610 64 -0
    Fax: (+43) 1 610 64 -200
    Information: 0660-6520
    Prices, updates, etc.: 0660-6520
    Standard Support:
    Installation and Handling: 01 50222-2255
    General information about Support Network in Central Europe:
    FAX: 01805-251191

  • Azerbaijan

    See Russia

  • Belgium

    Microsoft NV
    Phone: +32-2-730 39 11
    Fax: +32-2-726 96 09
    Microsoft Information Center: +32-2-481 52 52
    Bulletin Board: +32-2-726 85 45 (14400/1200/2400/9600 bd, 8N1, ANSI)
    Technical Support:
    +32-2-513 32 74 (Dutch speaking)
    +32-2-502 34 32 (English speaking)
    +32-2-513 22 68 (French speaking)

  • Belorussia

    See Russia

  • Bolivia

    See Argentina

  • Brazil

    Microsoft Informatica Ltda.
    Phone: (55) (11) 5514 –7100
    Fax: (55) (11) 5514 - 7106/5514-7107
    Technical Support:
    Phone: (55) (11) 5506-8087
    Fax: (55) (11) 5506-7621
    Automatic Fax: (55) (11) 5506-8506
    Technical Support Bulletin Board Service: (55) (11) 5506-1234
    Customer Support: (55) (11) 822-5764

  • Canada

    Microsoft Canada Inc.
    Head Office Phone: 1 (905) 568-0434
    Customer Information Centre: 1 (800) 563-9048
    Technical Support:
    Desktop Systems including Microsoft Windows 95: (905) 568-4494
    Microsoft Office and Office Components: (905) 568-2294
    Other Standard Technical Support: (905) 568-3503
    Priority Support Information: (800) 668-7975
    Text Telephone (TTY/TDD) (905) 568-9641
    Technical Support Bulletin Board Service: (905) 507-3022

  • Caribbean

    Microsoft Caribbean, Inc.
    Phone: (809) 273-3600
    Fax: (809) 273-3636
    Technical Support: (214) 714-9100

  • Central America

    See Latin America

  • Chile

    Microsoft Chile S.A.
    Phone: 56-2-330-6000
    Fax: 56-2-330-6190
    Customer Service: 56-2-800-213121
    Personal Operating System and Applications:
    Phone: 56-2-330-6222
    Fax: 56-2-341-1439

  • China

    Microsoft (China) Co. Ltd
    4/F Kai Yuen Commercial Building
    No.28 Zhichunli, Hai Dian District
    Beijing 100086, PRC
    Phone: 011-86-10-6261-7711
    Fax: 011-86-10-6253-6630

  • Colombia

    Microsoft Colombia
    Phone: (571) 618 2245
    Fax: (571) 618 2269
    Technical Support:
    Línea de Respuesta Microsoft
    Phone: (571) 5230022
    Fax: (571) 5231220
    Voice Mail: (571) 5034216

  • Croatia

    Microsoft Hrvatska d.o.o.
    Phone: (+385) (1) 304 555
    Fax: (+385) (1) 335 051
    Technical Support:
    (Please, contact the subsidiary.)

  • Czech Republic

    Microsoft s.r.o.
    Phone (+42) (2) 611 97 111
    Fax: (+42) (2) 611 97 100
    Technical Support:
    (+420) (2) 2150 3222

  • Denmark

    Microsoft Denmark
    Phone: (45) 44 89 01 00
    Fax: (45) 44 68 55 10
    Technical Support:
    Phone: (45) 44 89 01 11
    Microsoft Sales Support: (45) 44 89 01 90
    Microsoft FastTips: (45) 44 89 01 44
    (Document 303030 in FastTips contains detailed instructions)
    Microsoft MSDL (BBS): (45) 44 66 90 46

  • Dominican Republic

    See Central America

  • Dubai

    Microsoft Middle East
    Phone: (971) 4 513 888
    Fax: (971) 4 527 444
    Technical Support:
    Personal Operating Systems & Desktop Applications ONLY:
    Phone: (971) (4) 524 488
    Fax: (971)- 4 – 524 495
    email: mts@emirates.net.ae
    Priority Support Information: (971) (4) 555 752

    Customer Service Center:
    (Version upgrade / TechNet and MSDN subscription)
    Phone: (971) (4) 655 082
    Fax: (971) (4) 655 097

  • Ecuador

    Corporation Microsoft del Ecuador S.A.
    Phone: (593) 2 460-447, (593) (2) 460-451
    Customer Service: (593) (2) 460-453, (593) (2) 460-458
    Technical Support: (593) (2) 463-094

  • Egypt

    Microsoft Egypt
    Phone: +202-418-6101
    Fax: +202-4174766
    Technical Support:
    Personal Operating Systems and Desktop Applications ONLY:
    Phone: (202) 261 3991 / 6
    Fax: (971) 403 2718

  • England

    See United Kingdom

  • Estonia

    See Germany

    Technical Support:
    (+372) 650 49 99

  • Finland

    Microsoft OY
    Phone: +358-(0)9-525 501
    Fax: +358-(0)9-878 8770
    Technical Support:
    Phone: +358-(0)9-525 502 500
    Sales Support: +358-(0)9-525 5026
    Microsoft MSDL: +358-(0)9-878 77 99
    (Information in Swedish and English)
    Microsoft FastTips: +358-(0)9-525 502 550
    (Information in Swedish and English)

  • France

    Microsoft France
    Phone: (33) 01 69-86-46-46
    Fax: (33) 01 64-46-06-60
    Telex: MSPARIS 604322
    Technical Support Phone: (33) 01-69-86-10-20
    Technical Support Fax: (33) (01) 69-28-00-28

  • French Polynesia

    See France

  • Georgia

    See Russia

  • Germany

    Microsoft GmbH
    Phone: 089/3176-0
    Fax: 089/3176-1000
    Telex: (17) 89/83 28 MS GMBH D
    Information: 089/3176 1199
    Prices, updates, etc.: 08105-25-1199
    Internet: www.microsoft.com/germany
    Standard Support: Installation and Handling: 01805/67 22 55
    General information about Microsoft support in Central Europe:
    Fax: 1805-25-1191

  • Greece

    Microsoft Hellas, S.A.
    Phone: (30)(1) 6806-775 through (30)(1) 6806-779
    Fax: (30)(1) 6806-780
    Technical Support
    Phone: (30) (1) 9247-030
    Fax: (30) (1) 9215-363

  • Hong Kong

    Microsoft Hong Kong Limited
    Fax: (852)2560-2217
    Product support Faxback Service: (852)2535-9293
    Microsoft Club Hotline: (852)28044277
    Technical Support: (852) 2804-4222

  • Hungary

    Microsoft Hungary
    Phone: +36 (1) 327-2800
    Fax: +36 (1) 327-2899
    Technical Support: +36 (1) 267-4636 (2MSINFO)

  • Iceland

    See Denmark

  • Ireland

    See United Kingdom

  • India

    Microsoft India
    Phone: (011) (91) (80) 5092678, (011) (91) (11) 646 0767, 646 0813
    Fax: (011) (91) (80) 509-2601, (011) (91) (11) 647- 4714

  • Indonesia (SP)

    Microsoft Indonesia - Jakarta
    Technical Support
    Phone: 62 21 5721060
    Fax: 62 21 5732077

  • Israel

    Microsoft Israel Ltd.
    Phone: 972-3-613-0833
    Fax: 972-3-613-0834

  • Italy

    Microsoft SpA
    Phone: (39) (2) 7039-21
    Fax: (39) (2) 7039-2020
    Microsoft Rome Office: (39) (6) 5095-01 - Fax: (39) (6) 5095-0600
    Microsoft by Fax (Fax-on-demand service):
    (39) (2) 70-398-888
    Customer Service (New product info, product literature):
    (39) (2) 70-398-398
    Dealer Support (Customer Service for resellers only):
    (39) (2) 70-398-388
    Technical Support: (39) (2) 70-398-398
    Microsoft Consulting Service: (39) (2) 7039-21

  • Japan

    Microsoft Company Ltd.
    Technical Support (Standard Support): (81) (424) 41-8700
    (Technical Support options/ Support Contract)
    Phone: 0120-37-0196 (toll free domestic only)
    Channel Marketing Information Center:
    (Presales Product Support)
    Tokyo Phone: (81) (3) 5454-2300
    Osaka Phone: (81) (6) 245-6995
    Customer Service Phone :
    (Version upgrade/Registration)
    Phone: (81) (48) 226-5500
    Fax: (81) (48) 226-5511

  • Kazakhstan

    See Russia

  • Kirgizia

    See Russia

  • Korea

    Microsoft CH
    Phone: (82) (2) 531-4500
    Fax: (82) (2) 531-1724
    Customer Service: 080-022-7337 (toll free domestic only)
    Technical Support
    Office Technical Support: (82) (2) 508-0040
    Windows Technical Support: (82) (2) 563-0054
    Developer Technical Support: (82) (2) 566-0071
    Microsoft FastTips: (82) (2) 3453-7555
    Support Sales: (82) (2) 531-4544

  • Latin America

    Microsoft
    Latin American Headquarters (U.S.A.)
    Phone: (305) 489-4800
    Fax: (305) 491-1616
    Customer Service: (425) 936-8661
    Technical Support: (214) 714-9100
    http://www.microsoft.com/latam/soporte

  • Liechtenstein

    See Switzerland (German speaking)

  • Luxembourg

    Microsoft NV
    Phone: +32-2-730 39 11
    Microsoft Information Center: +32-2-481 52 52
    Bulletin Board: +32-2-726 85 45
    (1200/2400/9600/14400 bd, 8N1, ANSI)
    Technical Support:
    +32-2-513 32 74 (Dutch speaking)
    +32-2-502 34 32 (English speaking)
    +32-2-513 22 68 (French speaking)

  • Malaysia (SP)

    Microsoft (Malaysia) Sdn Bhd:
    Phone: (60-3) 793-9595
    Fax: (60-3) 791-6080

  • México

    Microsoft México, S.A. de C.V.
    (52) (5) 267-2110 Atencion a Distribuidores (Rese
    (52) (5) 265-3380 Atencion a Clientes
    (52) (5) 265-3399 Soporte Sistemas Operativos y Applicaciones de Escritorio
    (52) (5) 267-2190 Soporte de Sitemas Avanzados y Herramientas de Desarrollo

    Fast Tips: (52) (5) 237-4894

  • Morocco

    Microsoft Afrique Du Nord
    Phone: (212) 2 47 10 72
    Fax: (212) 2 47 10 86

  • Netherlands

    Microsoft BV
    Phone: 023-5689189
    Customer Service: 023-5677700
    Bulletin Board: 023-5634221
    (1200/2400/9600/14400bd, 8N1, ANSI)
    Technical Support:
    023-5677877 (Dutch speaking)
    023-5677853 (English speaking)

  • New Zealand

    Microsoft New Zealand Ltd
    Phone: 64 (9) 357-5800
    Fax: 64 (9) 358-3726
    Technical Support:
    Phone: 64 (9) 357-5575
    Fax: 64 (9) 307-0516 and 357-5577

  • Northern Ireland

    See United Kingdom

  • Norway

    Microsoft Norway AS
    Phone: +(47) 22 02 25 00
    Fax: +(47) 22 95 06 64
    Technical Support: +(47) 22 02 25 50
    Microsoft Sales Support: +(47) 22 02 25 80
    Microsoft MSDL: +(47) 22 18 22 09
    Microsoft FastTips: +(47) 22 02 25 70
    (Document 404040 in FastTips contains detailed instructions)

  • Papua New Guinea

    See Australia

  • Paraguay

    See Argentina

  • Peru

    See Latin America

    Philippines (SP)
    Microsoft Philippines
    Phone: 632 811 0062
    Technical Support:
    Phone : 632 892 2295/2495
    Fax: 632 813 2493

  • Poland

    Microsoft Sp. z o.o.
    Phone: +(48-22) 661-54-00
    Fax: +(48-22) 661-54-34
    Information Service: +(48-22) 865-99-33
    Technical Support:
    +(48-22) 865-99-66

  • Portugal

    Microsoft Portugal MSFT, Lda.
    Phone: (351) 1 4409200
    Fax: (351) 1 4412101
    Technical Support:
    Standard Support:
    (351) 1 4409280/1/2/3
    Fax : (351) 1 4411655

  • Republic of Ireland

    See United Kingdom

  • Romania

    Microsoft s.r.l.
    Phone: (+40) (1) 222 90 16
    Fax: (+40) (1) 222 90 12
    Technical Support:
    (+40) (1) 312 09 48

  • Russia

    Microsoft A/O
    Microsoft Information Center: (095)-913-99-88

    Scotland
    See United Kingdom

  • Saudi Arabia

    Microsoft Saudi Arabia
    Phone: +966-1-488-1165
    Fax: +966-1-488-1576
    Technical Support
    (Personal Operating System and
    Desktop Applications only):
    Phone: 800 124 0500
    (toll free within Saudi Arabia)
    Fax: 966-1-4740576

  • Singapore

    Microsoft Singapore Pte Ltd
    Phone: (65) 337-6088
    Fax: (65) 337-6788
    Customer Services:
    Phone: (65) 433-5488
    Fax: (65) 339-9958
    Product Support Services:
    Phone: (65) 337-9946
    Fax: (65) 337-6700

  • Slovenia/Slovenija

    Microsoft d.o.o.
    Phone: (+386) (61) 1800 8-00
    Fax: (+386) (61) 1800 822
    Technical Support:
    (+386) (61) 185 3449

  • Slovak Republic

    Microsoft Slovakia s.r.o.
    Phone (+421) (7) 37 63 02
    Fax: (+421) (7) 37 66 71
    Technical Support: (+421) (7) 531 20 83

  • South Africa

    Microsoft South Africa
    Phone: (27) 11 445 0000
    Fax: (27) 11 445 0046
    Technical Support:
    (Toll Free): 0 802 11 11 04
    (Toll): (27) 11 445 0000
    Fax: (+27) 11 445-0343

  • South East Africa and Indian Ocean Islands

    See South Africa

  • Spain

    Microsoft Iberica SRL
    Phone: (34) 1-807-9999
    Fax: (34) 1-803-8310
    Technical Support: (34) 1 -3754004
    Customer Service: (34) 1-3754004
    Fax Back telephone: (34) 1-3754004

  • Sweden

    Microsoft AB
    Phone: +46-(0)8-752 56 00
    Fax: +46-(0)8-750 51 58
    Technical Support: +46-(0)8- 752 09 29
    Sales Support: +46-(0)8- 752 56 30
    Microsoft MSDL: +46-(0)8-750 47 42
    Microsoft FastTips: +46-(0)8-752 29 00
    (Document 202020 in FastTips contains detailed instructions)

  • Switzerland

    Microsoft AG
    Phone: 01-839 61 11
    Fax: 01-831 08 69
    Prices, updates, etc.: 01/839 61 11
    Documentation:
    Phone: 155 59 00
    Fax: 064-224294, Microsoft Info-Service, Postfach, 8099 Zürich
    Standard Technical Support: Installation and Handling:
    0848 80 - 2255
    Technical support (French speaking): 022-738 96 88
    General information about Microsoft Support in Central Europe:
    FAX: 0049/2622/167006

  • Tadzhikistan

    See Russia

  • Taiwan Region

    Microsoft Taiwan Corp.
    Phone: (886) (2) 504-3122
    Fax: (886) (2) 504-3121
    Technical Support: (886) (2) 508-9501

  • Thailand

    Microsoft (Thailand) Limited
    Phone: (662) 266-3300
    Fax: (662) 266-3310
    Product Support:
    Phone: (662) 613-7208 through 11
    Fax: (662) 613-7198

  • Turkey

    Microsoft Turkey
    Phone: 90 (212) 258 59 98
    Fax: 90 (212) 258 59 54
    Support Hotline:
    Phone: 90 (212) 258 96 66
    Fax: 90 (212) 258 95 99
    Bulletin Board Service: 90 (212) 227 93 90

  • Turkmenistan

    See Russia

  • United Kingdom

    Microsoft Limited
    Fax: (0870) 60 20 100
    Phone: (0870) 60 10 100
    Microsoft KeyData:
    (Bulletin Board Service)
    (0870) 50 30 200 (up to 28.8Kbaud, n, 8, 1)
    Microsoft KeyFax:
    (Faxback Information Service)
    (0870) 50 30 100
    Technical Support:
    Desktop Applications, Home Products, Desktop Systems
    and hardware: 0870 50 10 100

    Developer Products: 0870 50 10 200

    Business Systems: 0870 50 10 300

    Customers phoning from Ireland should dial 706 5353 for technical support.

    Minicom Line 0870 50 30 400
    Pre-Sales Information: Microsoft Connection
    (0345) 00 2000

  • Uruguay

    Technical Support: (598) (2) 77-4934

  • Uzbekistan

    See Russia

  • Venezuela

    Corporation MS 90 de Venezuela S.A.
    Other information: (582)265-9922
    Fax: (582)265-0863 / (582)265-2611
    Technical Support: (582)993-6755

  • Wales

    See United Kingdom


Topic Not Found

No matching topic was found. Some possible reasons and remedies are as follows:

  • The file (.chm) that contains the destination topic is not in the expected location.

Remedy: Rerun the MSDN Library Setup.

  • The file (.chm) that contains the current topic or destination topic is out-of-date and the link is no longer valid.

Remedy: Install the latest version of the MSDN Library.

  • The MSDN Library CD is not in the CD-ROM drive.

Remedy: Insert the MSDN Library CD into the CD-ROM drive.