Javscript would provide a navigation menu here. HOME
CE DEVELOPED APPLICATIONS FOR INTERMEC IMCs
The Windows CE operating system (OS) uses a .cab <<"CABINET">> file to install an application on a Windows CE–based device. A .cab file is composed of multiple files that have been compressed into one file. Compressing multiple files into one file provides the following benefits:
All of the application's files are present.
You can prevent a partial installation.
You can install your application from several sources, such as a desktop computer or a Web site.
Use the CAB Wizard application (Cabwiz.exe) to generate a .cab file for your application.
Create an .inf file with Windows CE–specific modifications.
Optionally, create a Setup.dll file to provide custom control of the installation process.
Use the CAB Wizard to create the .cab file, using the .inf file, the Setup.dll file, and the device-specific application files as parameters.
An .inf file specifies information about an application for the CAB Wizard. The following table shows the sections of an .inf file.
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 |
SourceDiskNames |
Yes |
The name and path of the disk on which the application resides |
SourceDiskFiles |
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 |
No |
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 |
The [Version] section is required and specifies the creator of the file and other relevant information.
[Version]
Signature = "
signature_name
"
"$Windows NT$"
Provider = "
INF_creator
"
"Intermec Technologies Corporation"
CESignature = "$Windows CE$"
"$Windows CE$"
signature_name
Must be "$Windows NT$" or "$Windows 95$".
<<Intermec must be NT, since CE is not available on WIN95>>
INF_creator
Company name of the application. For example:
Provider = "Microsoft"
The following code example shows a typical [Version] section.
[Version]
Signature
= "$Windows NT$"
Provider
= "Microsoft"
CESignature
= "$Windows CE$"
The [CEStrings] section is required and specifies string substitutions for the application name and the default installation directory.
[CEStrings]
AppName =
app_name
as required (e.g. Rp32)
InstallDir =
default_install_dir
as required (e.g. \storage_card\%AppName%)
app_name
Name of the application. Other instances of %AppName% in the .inf file will be replaced with this string value.
default_install_dir
Default installation directory on the device. Other instances of %InstallDir% in the .inf file will be replaced with this string value.
The following code example shows a typical [CEStrings] section.
[CEStrings]
AppName="Game
Pack"
InstallDir=%CE1%\%AppName%
The [Strings] section is optional and defines one or more string keys. A string key represents a string of printable characters.
[Strings]
string_key
=
value
as required (none is o.k.)
[
string_key
=
value
]
value
String consisting of letters, digits, or other printable characters. Enclose value in double quotation marks "" ""if the corresponding string key is used in an item that requires double quotation marks.
The following code example shows a typical [Strings] section.
[Strings]
reg_path
= Software\Microsoft\My Test App
The [CEDevice] section is required and describes the platform for which your application is targeted. All keys in this section are optional. If a key is nonexistent, Windows CE does not perform any checking. Windows CE also does not perform any checking if a key has no data. The exception is UnsupportedPlatforms; if this key exists but there is no data, the previous value is not overridden.
[CEDevice]
[ProcessorType =[
processor_type
]]
i486 (or none is o.k.)
[UnsupportedPlatforms =
platform_family_name
[,
platform_family_name
]]
(none is o.k.)
[VersionMin = [
major_version.minor_version
]] ]]
(none is o.k.)
[VersionMax = [
major_version.minor_version
]]
(none is o.k.)
[BuildMin = [
build_number
]]
(none is o.k.)
[BuildMax = [
build_number
]]
à
(none is o.k.)
processor_type
Value that is returned by SYSTEMINFO.dwProcessorType. For example, the value for the SH3 CPU is 10003 and the MIPS CPU is 4000.
UnsupportedPlatforms
List of platform family names that are known to be unsupported. If the name specified in the [CEDevice.xxx] section is different from that in the [CEDevice] section, both platform_family_name values are unsupported for the microprocessor that is specified by xxx. That is, the list of specific unsupported platform family names is appended to the previous list of unsupported platform family names. Application Manager will not display the application for an unsupported platform. Also, a user will be warned during the setup process if the .cab file is copied to an unsupported device. For example:
[CEDevice]
UnsupportedPlatforms
=
pltfrm1
;
pltfrm1
is unsupported
[CEDevice.SH3]
UnsupportedPlatforms
= ;
pltfrm1
is still unsupported
VersionMin and VersionMax
Numeric value that is returned by OSVERSIONINFO.dwVersionMinor and OSVERSIONINFO.dwVersionMajor. The .cab file is valid for the currently connected device if the version of the currently connected device is less than or equal to VersionMax and also greater than or equal to VersionMin. For Windows CE Japanese-language devices, set VersionMin and VersionMax to 2.01.
Note The supported Windows CE OS versions include 1.0, 1.01, 2.0, 2.01, and 2.10. When you use these numbers, be sure to include all significant digits.
BuildMin and BuildMax
Numeric value returned by OSVERSIONINFO.dwBuildNumber. The .cab file is valid for the currently connected device if the version of the currently connected device is less than or equal to BuildMax and also greater than or equal to BuildMin.
The following code example shows three [CEDevice] sections: one that gives basic information for any CPU and two that are specific to the SH3 and the MIPS microprocessors.
[CEDevice]
; A "template" for all platforms
UnsupportedPlatforms
=
pltfrm1
; Does not
support
pltfrm1
; The
following specifies version 1.0 devices only.
VersionMin
= 1.0
VersionMax
= 1.0
[CEDevice.SH3]
; Inherits all [CEDevice] settings
; This
will create a .cab file specific to SH3 devices.
ProcessorType
= 10003 ; The SH3 .cab file is only valid
; for
the SH3 microprocessors.
UnsupportedPlatforms
= ;
pltfrm1
is still unsupported
; The
following overrides the version settings so that no version
; checking
is performed.
VersionMin
=
VersionMax
=
[CEDevice.MIPS]
; Inherits all [CEDevice] settings
; This
will create a .cab file specific to "MIPS" devices.
ProcessorType
= 4000 ; The MIPS .cab file is only valid
; for
the MIPS microprocessor.
UnsupportedPlatforms
=
pltfrm2
;
pltfrm1
and pltfrm2
are
; unsupported
for the "MIPs" .cab file.
Note To create the two CPU-specific .cab files for the setup .inf file in the previous example, you must run the CAB Wizard with the /cpu sh3 mips parameter.
The [DefaultInstall] section is required and describes the default installation of your application.
[DefaultInstall]
Copyfiles=
copyfile_list_section
[,
copyfile_list_section
]
maps to
files defined later in INF file (e.g
Files.App,Files.Font, Files.Bitmaps...)
.
AddReg=
add_registry_section
[
,add_registry_section
]
RegSettings.All
[CEShortcuts
=shortcut_list_section
[
,shortcut_list_section
]] ; new key
(as required)
[CESetupDLL=
setup_DLL
] ; new key
(as required)
[CESelfRegister=
self_reg_DLL_filename
[
,self_reg_DLL_filename
] ; new key
(as required)
<<Under DefaultInstall you will be listing items that are expanded
upon later in this description…>>
shortcut_list_section
String that identifies one more section that defines shortcuts to a
file, as defined in the [CEShortcuts] section.
setup_DLL
Optimal string that specifies a Setup.dll. It is written by the independent
software vendor (ISV) and contains customized functions for operations during
installation and removal of the application. The file must be specified in the
[SourceDisksFiles] section.
self_reg_DLL_filename
String that identifies
files that self-register by exporting the
DllRegisterServer
and
DllUnregisterServer
Component Object Model (COM)
functions. You must specify the files in the [SourceDiskFiles] section.
During installation,
if installation on the device fails to call the file's exported
DllRegisterServer
function, the file's exported
DllUnregisterServer
function will not be called
during removal.
The following code example shows a typical [DefaultInstall] section.
[DefaultInstall]
AddReg
= RegSettings.All
CEShortcuts
= Shortcuts.All
SourceDiskNames
The [SourceDiskNames] section is
required
and describes the name and path of the disk on which
your application resides.
[SourceDisksNames]
disk_ordinal
= ,
disk_label
,,
path
1=,"App files" ,,C:\Appsoft\RP32\...
[
disk_ordinal
= ,
disk_label
,,
path
]
2=,"Font files",,C:\RpTools\...
3=,"CE Tools" ,,C:\windows ce tools...
The following code example shows a typical [SourceDiskNames] section.
[SourceDisksNames] ; Required section
1 = ,"Common files",,C:\app\common ; Using an absolute path
[SourceDisksNames.SH3]
2 = ,"SH3 files",,sh3 ; Using a relative path
[SourceDisksNames.MIPS]
2 = ,"MIPS files",,mips ; Using a relative path
SourceDiskFiles
The [SourceDiskFiles] section is
required
and describes the name and path of the files in which
your application resides.
[SourceDisksFiles]
filename
=
disk_number
[,
subdir
]
rpm.exe = 1,c:\appsoft\...
[
filename
=
disk_number
[,
subdir
]]
wcestart.ini = 1
rpmce212.ini = 1
tahoma.ttf = 2
<<Note that [,subdir] is relative
to the location of the INF file
>>
The following code example shows a typical [SourceDiskFiles] section.
[SourceDisksFiles] ;
Required section
begin.wav = 1
end.wav = 1
sample.hlp = 1
[SourceDisksFiles.SH3]
sample.exe = 2 ;
Uses the SourceDisksNames.SH3
;
identification of 2.
[SourceDisksFiles.MIPS]
sample.exe = 2 ;
Uses the SourceDisksNames.MIPS
;
identification of 2.
DestinationDirs
The [DestinationDirs] section is
required
and describes the names and paths of the destination
directories for your application on the target device.
[DestinationDirs]
file_list_section = 0,
subdir
Files.App = 0, %InstallDir%
[file_list_section
= 0,
subdir]
Files.Fonts = 0, %InstallDir%\Fonts
[DefaultDestDir=0,
subdir
]
Note
Windows CE does not support directory identifiers.
subdir
String that identifies the destination directory. The following table
shows the string substitutions that are supported by Windows CE. These can be
used only for the beginning of the path. \
String |
Replacement value |
%CE1% |
\Program Files |
%CE2% |
\Windows |
%CE3% |
\Windows\Desktop |
%CE4% |
\Windows\Startup |
%CE5% |
\My Documents |
%CE6% |
\Program Files\Accessories |
%CE7% |
\Program Files\Communication |
%CE8% |
\Program Files\Games |
%CE9% |
\Program Files\Pocket Outlook |
%CE10% |
\Program Files\Office |
%CE11% |
\Windows\Programs |
%CE12% |
\Windows\Programs\Accessories |
%CE13% |
\Windows\Programs\Communications |
%CE14% |
\Windows\Programs\Games |
%CE15% |
\Windows\Fonts |
%CE16% |
\Windows\Recent |
%CE17% |
\Windows\Favorites |
%InstallDir% |
Contains the path to the target directory selected by the user during installation. It is declared in the "CEStrings" section |
%AppName% |
Contains the application name, defined in the "CEStrings" section |
The following code example shows a typical [DestinationDirs] section.
[DestinationDirs]
Files.Common = 0,%CE1%\My Subdir ;\Program Files\My Subdir
Files.Shared = 0,%CE2% ;\Windows
CopyFiles
The
[Copyfiles] section, under the [DefaultInstall] section, is
required
and describes
the default files to copy to the target device.
<<What they are saying
is that under DefaultInstall you listed some files (e.g. Files.App, Files.Fonts,
etc…)
that
must be defined elsewhere in the INF file. This section is identifying that
mapping, and that it may contain flags.>>
[
copyfile_list_section
]
[Files.App]
destination_filename
,[
source_filename
],[,
flags
]
rpm.exe,,,0
[
destination_filename
,[
source_filename
],[,
flags
]]
rpm.ini,rpmce212.ini,,0
The
source_filename
parameter is optional
if it is the same as
destination_filename
.
flags
Numeric value that specifies an action to be done while copying files.
The following table shows the values that are supported by Windows CE.
Flag |
Value |
Description |
COPYFLG_WARN_IF_SKIP |
0x00000001 |
Warn a user if an attempt is made to skip a file after an error has occurred. |
COPYFLG_NOSKIP |
0x00000002 |
Do not allow a user to skip copying a file. |
COPYFLG_NO_OVERWRITE |
0x00000010 |
Do not overwrite an existing file in the destination directory. |
COPYFLG_REPLACEONLY |
0x00000400 |
Copy the source file to the destination directory only if the file is already in the destination directory. |
CE_COPYFLG_NO_DATE_DIALOG |
0x20000000 |
Do not copy files if the target file is newer. |
CE_COPYFLG_NODATECHECK |
0x40000000 |
Ignore date while overwriting the target file. |
CE_COPYFLG_SHARED |
0x80000000 |
Create a reference when a shared DLL is counted. |
The following example is a typical [CopyFiles] section.
[DefaultInstall.SH3]
CopyFiles = Files.Common, Files.SH3
[DefaultInstall.MIPS]
CopyFiles = Files.Common, Files.MIPS
AddReg
The [AddReg] section,
under the [DefaultInstall] section, is
optional
and describes the keys and
values that the .cab file adds to the device registry.
<<What they are
saying is that under DefaultInstall you listed a reference to AddReg (AddReg=RegSettings.All).>>
This section defines the options for that setting.
[
add_registry_section
]
[RegSettings.All]
registry_root_string
,
subkey,
[
value_name
],
flags, value
[,
value
]
[
registry_root_string
,
subkey,
[
value_name
],
flags
,
value
[,
value
]]
HKLM,"SOFTWARE\Microsoft\Shell\AutoHide",,0x00010001,1
; Autohide the taskbar
HKLM,"SOFTWARE\Microsoft\Shell\OnTop",,0x00010001,0
; Shell is not on top
HKLM,"SOFTWARE\Microsoft\Clock",SHOW_CLOCK,0x00010001,0
; Clock is not on taskbar taskbar
registry_root_strings
String
that specifies the registry root location. The following table shows the values
that are supported by Windows CE.
Root string |
Description |
HKCR |
The same as HKEY_CLASSES_ROOT |
HKCU |
The same as HKEY_CURRENT_USER |
HKLM |
The same as HKEY_LOCAL_MACHINE |
value_name
Registry value name. If empty, the
"(default)"
registry value name is used.
flags
Numeric value that specifies information about the registry key. The
following table shows the values that are supported by Window CE.
Flag |
Value |
Description |
FLG_ADDREG_NOCLOBBER |
0x00000002 |
If the registry key exists, do not overwrite it. This flag can be used in combination with any of the other flags in this table. |
FLG_ADDREG_TYPE_SZ |
0x00000000 |
The REG_SZ registry data type. |
FLG_ADDREG_TYPE_MULTI_SZ |
0x00010000 |
The REG_MULTI_SZ registry data type. The value field that follows can be a list of strings separated by commas. |
FLG_ADDREG_TYPE_BINARY |
0x00000001 |
The REG_BINARY registry data type. The value field that follows must be a list of numeric values separated by commas, one byte per field, and must not use the 0x hexadecimal prefix. |
FLG_ADDREG_TYPE_DWORD |
0x00010001 |
The REG_DWORD data type. Only the non-compatible format in the Win32 Setup .inf documentation is supported. |
The following code example shows a typical [AddReg] section.
AddReg = RegSettings.All
[RegSettings.All]
HKLM,%reg_path%,,0x00000000,alpha ; <default> = "alpha"
HKLM,%reg_path%,test,0x00010001,3 ; Test = 3
HKLM,%reg_path%\new,another,0x00010001,6 ; New\another = 6
CEShortcuts
The
[CEShortcuts] section, a Windows CE–specific section under the [DefaultInstall]
section, is
optional
and describes the shortcuts that the installation application
creates on the device.
<<What
they are saying is that under DefaultInstall you listed a reference to
CEShortcuts
(or
commented it out)
(it
may have been to Shortcuts.All). This section defines the options for that setting.
>>
[
shortcut_list_section
]
[DestinationDirs]
Shortcuts.All
= 0,%CE3% ;
\Windows\Desktop
then
[Shortcuts.All]
Shortcut_name,type_flag,Executable
shortcut_filename
,
shortcut_type_flag
,
target_file/path
[,
standard_destination_path
]
[
shortcut_filename
,
shortcut_type_flag
,
target_file/path
[,
standard_destination_path
]]
shortcut_filename
String that identifies the shortcut name. It does not require the .lnk
extension.
shortcut_type_flag
Numeric value. Zero or empty represents a shortcut to a file; any nonzero
numeric value represents a shortcut to a folder.
target_file/path
String value that specifies
the destination location. For a file, use the target file name—for example,
MyApp.exe—that must be defined in a file copy list. For a path, use a file_list_section
name defined in the [DestinationDirs] section—for example,
DefaultDestDir
—or the
%
InstallDir
%
string.
standard_destination_path
Optional string value.
A standard
%CE
x
%
path or
%
InstallDir
%
. If no value is specified,
the shortcut_list_section name of the current section or the
DefaultDestDir
value from the [DestinationDirs]
section is used.
The following code example shows a typical [CEShortcuts] section.
CEShortcuts = Shortcuts.All
[Shortcuts.All]
Sample App,0,sample.exe ; Uses the path in DestinationDirs.
Sample App,0,sample.exe,%InstallDir% ; The path is explicitly specified.
Sample .inf Files
The following code example shows a typical .inf file:
[Version] ; Required section
Signature = "$Windows NT$"
Provider = "Intermec Technologies Corporation"
CESignature = "$Windows CE$"
;[CEDevice]
;ProcessorType =
[DefaultInstall] ; Required section CopyFiles = Files.App, Files.Fonts, Files.BitMaps, Files.Intl, Files.TelecomNcsCE, Files.Windows, Files.Import, Files.Export, Files.Work, Files.Database, Files.WinCE AddReg = RegSettings.All ;CEShortcuts = Shortcuts.All [SourceDisksNames] ; Required section 1 = ,"App files" ,,c:\appsoft\... 2 = ,"Font files" ,,c:\WinNT\Fonts 3 = ,"CE Tools" ,,c:\windows ce tools\wce212\6110ie\mfc\lib\x86 [SourceDisksFiles] ; Required section rpm.exe = 1,C:\Appsoft\program\wce212\WCEX86Rel6110 wcestart.ini = 1 rpmce212.ini = 1 intermec.bmp = 1 rpmlogo.bmp = 1 rpmname.bmp = 1 import.bmp = 1 export.bmp = 1 clock.bmp = 1 printer.bmp = 1 filecopy.bmp = 1 readme.txt = 1 lang_eng.bin = 1 rpmdata.dbd = 1,database\wce tahoma.ttf = 2 mfcce212.dll = 3 olece212.dll = 3 olece211.dll = 1,c:\windows ce tools\wce211\NMSD61102.11\mfc\lib\x86 rdm45wce.dll = 1,c:\rptools\rdm45wce\4_50\lib\wce212\wcex86rel picfmt.dll = 1,c:\rptools\picfmt\1_00\wce212\wcex86rel6110 fmtctrl.dll = 1,c:\rptools\fmtctrl\1_00\wce212\wcex86rel6110 ugrid.dll = 1,c:\rptools\ugrid\1_00\wce212\wcex86rel6110 simple.dll = 1,c:\rptools\pspbm0c\1_00\wce211\wcex86rel psink.dll = 1,c:\rptools\psink\1_00\wce211\WCEX86RelMinDependency pslpwce.dll = 1,c:\rptools\pslpm0c\1_00\wce211\WCEX86RelMinDependency npcpport.dll = 1,c:\rptools\cedk\212_03\installable drivers\printer\npcp ;dexcom.dll = 1,c:\rptools\psdxm0c\1_00\x86 ncsce.exe = 1,c:\rptools\ncsce\1_04 nrinet.dll = 1,c:\rptools\ncsce\1_04 [DestinationDirs] ; Required section ;Shortcuts.All = 0,%CE3% ; \Windows\Desktop Files.App = 0,%InstallDir% Files.DataBase = 0,%InstallDir%\DataBase Files.BitMaps = 0,%InstallDir%\Bitmaps Files.Fonts = 0,%InstallDir%\Fonts Files.Intl = 0,%InstallDir%\Intl Files.TelecomNcsCE = 0,%InstallDir%\Telecom\NcsCE Files.Windows = 0,%InstallDir%\Windows Files.Import = 0,%InstallDir%\Import Files.Export = 0,%InstallDir%\Export Files.Work = 0,%InstallDir%\Work Files.WinCE = 0,\storage_card\wince [CEStrings] ; Required section AppName = Rp32 InstallDir = \storage_card\%AppName%[Strings] ; Optional section
;[Shortcuts.All]
;Sample App,0,sample.exe ; Uses the path in DestinationDirs.
;Sample App,0,sample.exe,%InstallDir% ; The path is explicitly specified.
[Files.App] rpm.exe,,,0 rpm.ini,rpmce212.ini,,0 mfcce212.dll,,,0 olece212.dll,,,0 olece211.dll,,,0 rdm45wce.dll,,,0 picfmt.dll,,,0 fmtctrl.dll,,,0 ugrid.dll,,,0 simple.dll,,,0 psink.dll,,,0 pslpwce.dll,,,0 npcpport.dll,,,0 ;dexcom.dll,,,0 [Files.DataBase] rpmdata.dbd,,,0 [Files.Fonts] tahoma.ttf,,,0 [Files.BitMaps] intermec.bmp,,,0 rpmlogo.bmp,,,0 rpmname.bmp,,,0 import.bmp,,,0 export.bmp,,,0 clock.bmp,,,0 printer.bmp,,,0 filecopy.bmp,,,0 [Files.Intl] lang_eng.bin,,,0 [Files.TelecomNcsCE] ncsce.exe,,,0 nrinet.dll,,,0 [Files.Windows] readme.txt,,,0 [Files.Import] readme.txt,,,0 [Files.Export] readme.txt,,,0 [Files.Work] readme.txt,,,0 [Files.WinCE] wcestart.ini,,,0[RegSettings.All]
HKLM,"SOFTWARE\Microsoft\Shell\AutoHide",,0x00010001,1 ; Autohide the taskbar HKLM,"SOFTWARE\Microsoft\Shell\OnTop",,0x00010001,0 ; Shell is not on top HKLM,"SOFTWARE\Microsoft\Clock",SHOW_CLOCK,0x00010001,0 ; Clock is not on taskbar
The following code example shows an .inf file:
[Version]
; Required section
Signature = "$Windows NT$"
Provider = "Intermec Technologies Corporation"
CESignature = "$Windows CE$"
[DefaultInstall]
; Required section
CopyFiles = Files.App, Files.DLLFiles, Files.Text
AddReg = RegSettings.All
CEShortcuts = Shortcuts.All
[CEStrings
] ; Required section
AppName = 600HdCE
InstallDir = \storage_card\Demo\600HdCE
[Strings]
;Optional
[SourceDisksNames]
; Required section
1 = ,"App files" ,,c:\appsoft\600hdce\deliver
2 = ,"Font files" ,,c:\WinNT\Fonts
3 = ,"CE Tools" ,,c:\windows ce tools\wce212\602ie\mfc\lib\x86
4 = ,"App root" ,,c:\appsoft\600hdce
[SourceDisksFiles]
; Required section
600hdce.exe = 1
Features.txt = 1
LIT_DEU.dll = 1
LIT_ENU.dll = 1
LIT_ESP.dll = 1
LIT_EST.dll = 1
LIT_FRA.dll = 1
LIT_ITA.dll = 1
LIT_NOR.dll = 1
LIT_PTG.dll = 1
LIT_SVE.dll = 1
readme.txt = 1
iscan.dll = 1
mfcce212.dll = 1
olece212.dll = 1
psink.dll = 1
simple.dll = 1
[DestinationDirs]
; Required section
Shortcuts.All = 0,%CE3%
Files.App = 0,%InstallDir%
;Files.BitMaps = 0,%InstallDir%
;Files.DataBase = 0,%InstallDir%
Files.DLLFiles = 0,%InstallDir%
;Files.Fonts = 0,%InstallDir%\Fonts
;Files.WinCE = 0,\storage_card\wince
Files.Text = 0,%InstallDir%
[Files.App]
600hdce.exe,,,0
;600hdce.ini,,,0
;[Files.BitMaps]
;intermec.bmp
;[Files.Database]
;*.dbd,,,0
;*.asc,,,0
[Files.DLLFiles]
LIT_DEU.dll,,,0
LIT_ENU.dll,,,0
LIT_ESP.dll,,,0
LIT_EST.dll,,,0
LIT_FRA.dll,,,0
LIT_ITA.dll,,,0
LIT_NOR.dll,,,0
LIT_PTG.dll,,,0
LIT_SVE.dll,,,0
iscan.dll,,,0
mfcce212.dll,,,0
olece212.dll,,,0
psink.dll,,,0
simple.dll,,,0
;[Files.Fonts]
;tahoma.ttf,,,0
[Files.Text]
Features.txt,,,0
Readme.txt,,,0
[Shortcuts.All]
HW_Demo,0,600hdce.exe
[RegSettings.All]
;Optional
HKLM,"SOFTWARE\Microsoft\Shell\AutoHide",,0x00010001,1 ;
Autohide the taskbar
HKLM,"SOFTWARE\Microsoft\Shell\OnTop",,0x00010001,0 ; Shell
is not on top
HKLM,"SOFTWARE\Microsoft\Clock",SHOW_CLOCK,0x00010001,0 ;
Clock is not on taskbar
.inf example NOTES
NOTE 1:
There is some confusion in the application of file naming. Note in the reference:
olece211.dll = 1,c:\windows ce tools\wce211\NMSD61102.11\mfc\lib\x86
that olece211.dll
has no reference to the defined file "1" (
1 = ,"App files"
,,c:\appsoft\...).
When
the explicit path is included as the 2
nd
argument, it
is executed in place of the 1
st
argument.
However,
in the application:
rpmdata.dbd = 1,database\wce
confusion
arises. NOTE that the subdirectory path (database\wce) is
NOT
relative to the
1
st
argument. Again,
inclusion of a 2
nd
argument preempts
the 1
st
. Instead
, the subdirectory
path is RELATIVE TO THE LOCATION OF THE INF FILE
. In this case
the INF file resided in c:\appsoft\…, and the proper database subdirectory
file was fetched.
N
OTE
2: Notice that this file incorporates placement of a shortcut on the
desktop,
which requires only the 3 noted references.
Using Installation
Functions in Setup.dll
Setup.dll is an optional file that enables you to perform custom operations
during installation and removal of your application. The following table shows
the functions that are exported by Setup.dll.
Function |
Description |
Install_Init |
Called before installation begins. Use this function to check the application version when reinstalling an application and to determine if a dependent application is present. |
Install_Exit |
Called after installation is complete. Use this function to handle errors that occur during application installation. |
Uninstall_Init |
Called before the removal process begins. Use this function to close the application, if the application is running. |
Uninstall_Exit |
Called after the removal process is complete. Use this function to save database information to a file and delete the database and to tell the user where the user data files are stored and how to reinstall the application. |
Note
Use the [CESelfRegister] section in the .inf
file to point to Setup.dll.
Using CAB Wizard to
Create a .cab File
After you create the .inf file and the optional Setup.dll file, use
the CAB Wizard to create the .cab file. The command-line syntax for the CAB
Wizard is as follows:
A
batch file
,
located in <program> directory, with the following commands, works well:
inf_file
Setup .inf file path.
dest_directory
Destination directory for the .cab files. If no directory is specified,
the .cab files are created in the inf_file directory.
error_file
File name for a log file that contains all warnings and errors that
are encountered when the .cab files are compiled. If no file name is specified,
errors are displayed in message boxes. If a file name is used, the CAB Wizard
runs without the user interface (UI); this is useful for automated builds.
cpu_type
Creates a .cab file
for each microprocessor tag that you specify. A microprocessor tag is a label
that is used in the Win32 setup .inf file to differentiate between different
microprocessor types. The
/cpu
parameter, followed by multiple
cpu_type values, must be the last qualifier in the command line.
The following example creates .cab files for the SH3 and MIPS microprocessors,
assuming that the Win32 setup .inf file contains the SH3 and MIPS tags:
cabwiz.exe
"c:\myfile.inf" /err myfile.err /cpu sh3 mips
Note
The following Windows CE files
must be installed in the same directory on the desktop computer: Cabwiz.exe,
Makecab.exe, and Cabwiz.ddf. Cabwiz.exe must be called with its full path in
order to run correctly.
Troubleshooting the
CAB Wizard
To identify and avoid
problems that might occur when using the CAB Wizard, follow these guidelines:
Use
%%
for a percent sign
(%) character when using
this character in an .inf file string, as specified in the Win32 documentation.
This will not work under the [Strings] section.
Do not use .inf
or .cab files that were created for Windows CE to install applications on
Windows-based desktop platforms.
Ensure that the
Makecab.exe and Cabwiz.ddf files, included with Windows CE, are in the same
directory as Cabwiz.exe.
Use the full path
to call Cabwiz.exe.
Do not create a
.cab file with the Makecab.exe file that is included with Windows CE. You
must use Cabwiz.exe, which uses Makecab.exe to generate the .cab files for
Windows CE.
Do not set the
read-only attribute for .cab files.