Important: |
---|
This is retired content. This content is outdated and is no longer being maintained. It is provided as a courtesy for individuals who are still using these technologies. This content may contain URLs that were valid when originally published, but now link to sites or pages that no longer exist. |
Microsoft Corporation
June 2000
Summary:Application Installation (AppInstall) is used to install a Windows CE-based application onto a Windows CE-based device. This paper discusses AppInstall and is specifically targeted to creating a setup program that supports multiple devices. (11 printed pages)
Overview
The Application Installation (AppInstall) mechanism of Microsoft
Windows CE 3.0 is used to install Windows CE–based applications on
a Windows CE–based device. AppInstall supports multiple
installation methods, such as desktop to device, Web to device,
storage card to device, and device to device. AppInstall has three components:
The Application Installation documentation is part of the
Windows CE SDK Programmer's Guide. This documentation includes
samples of the input file to CabWiz (the CabWiz .inf file) and the
input file to CeAppMgr (the CeAppMgr .ini file). The CabWiz .inf file is a modified version of the Microsoft
Win32 application programming interface .inf file format. For more
information on the Win32 .inf file format, see the Win32 Platform
SDK. This paper assumes knowledge of the Windows CE CabWiz .inf file
format and describes how to create a setup program that supports
multiple devices. The CabWiz .inf file is the setup script file that specifies the
files to copy and the registry settings to make. The following
table shows the sections of an .inf file. CabWiz uses the application developer's .inf file and the
application binaries to create one or more .cab files. If the application is device-independent—for example, a set of
help files—then a single .cab file that is device-independent can
be created. If the application contains device-specific files—for
example, .exe or .dll files—then multiple .cab files can be created
with a single CabWiz .inf setup file. Each .cab file supports a
specific device. The method to create multiple platform-specific
.cab files from a single CabWiz .inf file is to use platform labels
and the CEDevice key in the CabWiz .inf file. The platform labels tell CabWiz how many .cab files to generate,
where to get the CPU-specific binary files, and the platform
information to incorporate into the .cab file. The Application
Manager uses this information to determine the appropriate .cab
file to install on the end user's device. Platform labels are unique labels that are appended to specific
sections in the CabWiz .inf file; for example, HPC_SH3, PPC_MIPS,
PPC3_CEF, or HPCPRO_ARM. The CEDevice section differentiates the
platforms, which allows for device-specific information; the
processor types; the device types; Handheld PC, Palm-size PC, or
Pocket PC support; and the Windows CE version support. These
platform labels also need to be specified in the command-line
parameters when invoking CabWiz. The following code example from a CabWiz .inf file supports
multiple platforms. This example only displays the CEDevice and
SourceDisksNames sections. In the CEDevice section, the preceding example creates the
following .cab files:
In the SourceDisksNames and SourceDisksFiles sections, the
source directory for device-independent common files (such as
readme or help files) is in the \common directory and is referenced
with a file identifier of 1. The source directories for the
device-specific files—the .exe and .dll files—are located in the
various platform-specific directories (for example, \hpc\sh3) and
are referenced with a directory identifier of 2. CabWiz must be invoked with the appropriate platform labels, for
example, Cabwiz.exe "<INF_path>\MyApp.INF" /cpu HPC_SH3
PPC_MIPS HPCPRO_ARM PPC3_CEF. CabWiz creates four device-specific .cab files:
With a single CabWiz .inf file, the application developer can
create multiple device-specific .cab files. These .cab files can be
directly downloaded to the device. For example, an end user can use
Pocket Internet Explorer on a Windows CE-based device to download
the appropriate .cab file and run the file on the device to install
the application. To support a desktop installation, the application developer can
use the Application Manager to automatically download the
appropriate .cab file to the end user's device. The application
developer can write a single desktop setup program that registers
the application with AppManager by specifying all the .cab files in
the CeAppMgr .ini file. The following code example shows the CeAppMgr .ini file
MyApp.ini: Invoking CeAppMgr with the .ini file registers the application
and its associated .cab files. The end user can download the
application on the next connection using the following code. The Pocket PC, running Windows CE 3.0, is now available. In
addition, backward compatibility is provided for two types of
Palm-size PCs: the black-and-white version running Windows CE
version 2.1 and the color version running Windows CE version 2.11.
All three of these devices use "Palm PC" in the code as the device
type name. For the Pocket PC, you can install applications from:
You can install applications from all of these sources because
all of the setup information for the application is part of the
.cab file. The installation program on the device installs from a
Windows CE-based .cab file, regardless of how that .cab file was
transmitted to the device. The Pocket PC contains an AutoRun feature that allows you to run
an executable upon the insertion and removal of a Compact Flash
card. You can use AutoRun to install one or more Windows CE-based
.cab files when the user inserts a Compact Flash card in the
device. Because the AutoRun executable is copied to the Windows
directory on the device, AutoRun needs to do the following:
The Windows Platform SDK for Pocket PC provides a sample AutoRun
executable. For the Palm-size PCs, the application developer needs to write
two CabWiz .inf files with different application names and create
two CeAppMgr .ini files, which will appear as separate applications
in the CeAppMgr user interface. However, a single desktop setup
program can be used to install the two sets of applications. The following code, MyApp_BW.inf, is for the black-and-white
Palm-size PC: The following code, MyApp_CLR.inf, is for the color Palm-size
PC: CabWiz needs to be invoked with the appropriate platform labels,
for example: This creates two .cab files:
Invoking CabWiz with the appropriate platform labels for the
other .inf file (Cabwiz.exe "<INF_path>\MyApp_CLR.INF" /cpu
PPC_CLR_SH3 PPC_CLR_MIPS) creates two .cab files:
Each set of files requires its own CeAppMgr .ini file, as
follows: The application developer can then write a single desktop setup
program to register both the black-and-white and color versions
with a single CeAppMgr call, as shown here: The following processors are currently available in Windows CE
devices: The following platform names and Windows CE version numbers are
currently used in Windows CE–based devices.
Supporting Multiple Devices
Supporting Different Windows CE
Versions for Pocket PCs
Supported Processors and
Devices
Overview
Supporting Multiple Devices
Section
Required
Describes
Version
Yes
The application's creator and version.
CEStrings
Yes
String substitutions for application and directory
names.
Strings
No
String definitions for one or more strings.
CEDevice
Yes
The device platform for which the application is
targeted.
DefaultInstall
Yes
The default installation of the application.
SourceDisksNames
Yes
The name and path of the disk on which the
application resides.
SourceDisksFiles
Yes
The name and path of the files in which the
application resides.
DestinationDirs
Yes
The names and paths of the destination directories
for the application on the target device.
CopyFiles
Yes
Default files to copy to the target device.
AddReg
Yes
Keys and values that the .cab file will add to the
registry on the device.
CEShortCuts
No
Shortcuts that the installation application creates
on the device.
; Required "CEDevice[.label]" section ; Specifies
the various types of CAB files that will be generated ; ; Pocket PC
using CEF files [CEDevice.PPC3_CEF] ; a processor type of zero
means this CAB can install on all ; processor types - this is
required when using CEF ProcessorType = 0 ; CEF is only supported
on Pocket PC devices. To identify a Pocket PC device, the
UnsupportedPlatforms ; list must not include "Palm PC", and the
min/max CE-OS version information must be provided
UnsupportedPlatforms = "HPC","Jupiter" VersionMin = 3.0 ; CE-OS
version for Pocket PC is 3.0 VersionMax = 100.0 ; support future
devices - set an arbitrary high value [CEDevice.HPC_SH3] ; H/PC on
SH3 ProcessorType = 10003 ; SH3 cpu numeric value
UnsupportedPlatforms = "Palm PC","Jupiter" ; exclude PsPC and H/PC
Pro devices [CEDevice.HPC_MIPS] ; H/PC on MIPS ProcessorType = 4000
; MIPS cpu numeric value UnsupportedPlatforms = "Palm PC","Jupiter"
[CEDevice.HPCPro_ARM] ; H/PC Pro on ARM ProcessorType = 2577 ;
StrongARM cpu numeric value UnsupportedPlatforms = "Palm PC","HPC"
[CEDevice.HPCPro_SH3] ; H/PC Pro on SH3 ProcessorType = 10003
UnsupportedPlatforms = "Palm PC","HPC" [CEDevice.HPCPro_MIPS] ;
H/PC Pro on MIPS ProcessorType = 4000 UnsupportedPlatforms = "Palm
PC","HPC" [CEDevice.PPC_SH3] ; Palm-size PC on SH3 ProcessorType =
10003 UnsupportedPlatforms = "HPC","Jupiter" [CEDevice.PPC_MIPS] ;
Palm-size PC on MIPS ProcessorType = 4000 UnsupportedPlatforms ="HPC","Jupiter" ; ; Required "SourceDisksNames[.label]" section ;
Specifies the source directories of the binary files ; ; Format: =
,,, ; will be used to specify the source files belonging to this
directory ; is unused ; is the relative or absolute directory of
the source files ; [SourceDisksNames] ; CPU-independent files 1 =
,"Common files",,Platform ; files are in .\Platform directory
[SourceDisksNames.PPC3_CEF] ; PocketPC using CEF 2 = ,"CEF
files",,Cpu\CE_3.0\CEF ; CEF-compiled files 3 = ,"PPC3
files",,Platform\PPC3 ; Pocket PC -specific files
[SourceDisksNames.HPC_SH3] ; H/PC on SH3 2 = ,"SH3
files",,Cpu\CE_2.0\SH3 ; SH3-specific files are in .\Cpu\SH3 3 =
,"H/PC files",,Platform\HPC ; H/PC-specific files are in
.\Platform\HPC [SourceDisksNames.HPC_MIPS] ; H/PC on MIPS 2 =
,"MIPS files",,Cpu\CE_2.0\MIPS 3 = ,"H/PC files",,Platform\HPC
[SourceDisksNames.HPCPro_ARM] ; H/PC Pro on ARM 2 = ,"ARM
files",,Cpu\CE_2.1\ARM 3 = ,"H/PC Pro files",,Platform\HPCPro
[SourceDisksNames.HPCPro_SH3] ; H/PC Pro on SH3 2 = ,"SH3
files",,Cpu\CE_2.1\SH3 3 = ,"H/PC Pro files",,Platform\HPCPro
[SourceDisksNames.HPCPro_MIPS] ; H/PC Pro on MIPS 2 = ,"MIPS
files",,Cpu\CE_2.1\MIPS 3 = ,"H/PC Pro files",,Platform\HPCPro
[SourceDisksNames.PPC_SH3] ; Palm-size PC on SH3 2 = ,"SH3
files",,Cpu\CE_2.1\SH3 3 = ,"PsPC files",,Platform\PPC
[SourceDisksNames.PPC_MIPS] ; Palm-size PC on MIPS 2 = ,"MIPS
files",,Cpu\CE_2.1\MIPS 3 = ,"PsPC files",,Platform\PPC
[CEAppManager] Version = 1.0 ; this is the
CeAppMgr .ini version, not the app version Component =
MyApplication [MyApplication] Description = Sample Windows CE
application ; Required list of installed CAB files, relative to the
current CEAppMgr INI file. ; Note that there are no extra spaces
separating the CAB files. ; CabFiles =
MyApp.PPC3_CEF.cab,MyApp.HPC_SH3.cab,MyApp.HPC_MIPS.cab,MyApp.HPCPro_ARM.cab,
MyApp.HPCPro_SH3.cab,MyApp.HPCPro_MIPS.cab,MyApp.PPC_SH3.cab,MyApp.PPC_MIPS.cab
<path>\CEAppMgr.exe
"<INI_path>\MyApp.INI"
Supporting Different Windows
CE Versions for Pocket PCs
Note The installation program on
the device dynamically deletes the .cab file during installation.
To prevent the installation program from deleting the .cab file,
make the .cab file read-only.
[CEStrings] AppName = "My Sample App (b&w)" ;
other values omitted... ; ; Black-and-white Palm-size PC on the 2.1
version of Windows CE ; [CEDevice.PPC_BW_SH3] ; targeted to
Palm-size PC black-and-white devices with the ; SH3 processor
ProcessorType = 10003 UnsupportedPlatforms = HPC,Jupiter VersionMin
= 2.1 ; Windows CE version for black-and-white Palm-size PC is 2.1
VersionMax = 2.1 [CEDevice.PPC_BW_MIPS] ; targeted to
black-and-white Palm-size PC devices with ; the MIPS processor
ProcessorType = 4000 UnsupportedPlatforms = HPC,Jupiter VersionMin
= 2.1 ; Windows CE version for black-and-white Palm-size PC is 2.1
VersionMax = 2.1
[CEStrings] AppName = "My Sample App (color)" ;
other values omitted... ; ; Color Palm-size PC on the 2.11 version
of the Windows CE ; [CEDevice.PPC_CLR_SH3] ; targeted to Palm-size
PC color devices with the SH3 processor ProcessorType = 10003
UnsupportedPlatforms = HPC,Jupiter VersionMin = 2.11 ; Windows CE
OS version for Palm-size PC color devices is 2.11 VersionMax = 2.11
[CEDevice.PPC_CLR_MIPS] ; targeted to Palm-size PC color devices
with the MIPS processor ProcessorType = 4000 UnsupportedPlatforms =
HPC,Jupiter VersionMin = 2.11 ; Windows CE OS version for Palm-size
PC color devices is 2.11 VersionMax = 2.11
Cabwiz.exe "\MyApp_BW.INF" /cpu PPC_BW_SH3
PPC_BW_MIPS.
MyApp_BW.ini: [CEAppManager] Version = 1.0
Component = MyApplication [MyApplication] Description = Sample
Windows CE application (black and white) CabFiles =
MyApp_BW.PPC_BW_SH3.cab,MyApp_BW.PPC_BW_MIPS.cab MyApp_CLR.ini:
[CEAppManager] Version = 1.0 Component = MyApplication
[MyApplication] Description = Sample Windows CE application (color)
CabFiles =
MyApp_CLR.PPC_CLR_SH3.cab,MyApp_CLR.PPC_CLR_MIPS.cab
\CEAppMgr.exe "\MyApp_BW.ini"
"\MyApp_CLR.ini"
Supported Processors and
Devices
Processor Name
Processor Type Value
ARM720
1824
CEF
0
Hitachi SH3
10003
Hitachi SH4
10005
MIPS R4XXX
4000
StrongARM SA11XX
2577
Note The MIPS R3900 binaries are
binary-compatible with all MIPS R3XXX and R4XXX processors. Use the
R3900 binaries to ensure that files will run on all MIPS
processors.
Note
The StrongARM SA1100 binaries are
binary-compatible with the ARM720 processor. Use the SA1100
binaries to ensure that files will run on both processors
.
Note Only the Pocket PC supports CEF
(Common Executable Format) binaries.
Device Name
Device Platform Name
Windows CE version number
H/PC 1.0
Unsupported. Use v1 PPCLoad
H/PC 2.0
HPC
2.0
H/PC 3.0
HPC
Pro 2.11
Palm-size PC 1.0—Black & White
Palm PC
2.1
Palm-size PC 2.0—Color
Palm PC
2.11
Pocket PC
Palm PC
3.0