x
This website is using cookies. We use cookies to ensure that we give you the best experience on our website. More info. That's Fine
HPC:Factor Logo 
 

Using HPC:Factor CAB Maker

CESD|200266

Applies To

  • HPC:Factor CAB Maker
  • Windows CE 2.0, H/PC 2.0 Palm-Sized PC 1.0
  • Windows CE 2.11, H/PC Pro, Palm-Size PC 1.1, 1.2
  • Windows CE 3.0, HPC2000, Pocket PC 2000, 20002, 2003, 2003 SE
  • Windows CE .net 4.0, 4.1, 4.2, Windows Mobile 5.0
  • Windows CE 5.0, Windows Mobile 6.0
  • Windows CE 6.0, 6.0 R2, 6.0 R3
  • Windows Embedded CE 7.0
  • Windows Embedded CE 2013

Overview

This article outlines how to use the HPC:Factor CAB Maker Web Tool.

View: HPC:Factor CAB Maker (beta)

More Info

The CAB Maker web tool is an online installer file generator for Windows CE 2.0+ devices. The tool can be used to package basic Windows CE applications, resource files, registry keys and shortcuts into an automated 'cabinet' installer / uninstaller package.

Who might find the CAB Maker useful?

CAB Maker may be of use in the following scenarios

  • You want to create an installer file that pre-sets your basic registry settings and applications as a method of faster recovery after a hard reset. A single CAB file can be made to configure many basic operating system and shell settings, install basic utilities (such as a registry editor) without undertaking manual effort
  • You wish to release a piece of software and wish to create a basic installer package for release
  • You with to re-package an existing application's installer to bypass an error/issue
  • You wish to create an installer package for an existing application that currently has no installer, to make it easier to use the program (please get in touch to the HPC:Factor SCL!!)

Does CAB Maker support Windows CE 1.0 / 1.01?

No. Windows CE 1.0x does not support CAB installers.

Who can use CAB Maker

CAB Maker is available to any subscriber level member of the HPC:Factor community. At the current time Bronze level members cannot remove HPC:Factor branding from the Developer identity shown in CAB Maker. All higher-level members can use CAB Maker without restrictions.

Are there any restrictions?

There are currently no limits on the number of times that a member can use the tool. the maximum permitted individual file size is currently 20MB.

CAB Maker can only create a CAB file for one CPU Architecture at a time. In order to create a second CAB file for a difference CPU (e.g. to switch from StrongARM to SH3) you will either need to delete existing files and re-upload the new versions or click on the "Delete files and start-over" button to clear the current project and create a new one. The single CPU model is intentional by design as CAB Maker is supposed to be a simple to use environment. Allowing the creation of multiple installers and architectures at once would make it considerable more complex and less approachable.

Do you keep my data?

No. Your file data will be deleted automatically from CAB Maker when you click the "Delete files and logout" button or will be scavenged from the HPC:Factor servers after 60 minutes if you fail to click on the log-off button.

How To

The following section outlines how to use CAB Maker.

The CAB Maker user interface is broadly grouped into 4 sections

  1. App info
  2. App files
  3. Registry settings
  4. Shortcuts

App Info

Screenshot of the App Info section of CAB Maker

Developer Name: This is the company who produces the app e.g. HPC Factor, Microsoft or Phatware.
Note: Bronze level subscribers cannot change the Developer Name value from the default "HPC Factor Cab Maker"

Application Name: The name of your program e.g. Pocket Internet Explorer, Pocket Word or Calligrapher 6.5. The Application Name is available to use elsewhere in CAB Maker using the %AppName% Macro.

Block Install On: Allows you to expressly forbid the CAB from being used on the selected Windows CE Platforms. The user will be presented with a compatibility warning if they attempt to run the CAB on an unsupported Plarform.

Architecture: First select the type of device you are creating a CAB for i.e. Handheld PC, Palm-Sized PC or Pocket PC. This will adjust the Maximum/Minimum version numbers accordingly.
Next, select the CPU architecture that your CAB file will target. If you are creating a settings CAB file, a CAB file for a .net Framework application or a CAB file for a CEF, Pocket Visual Basic or other runtime language application - and are not including CPU specific runtime files. Choose None/CEF as the architecture. Otherwise, select the correct CPU type from the list of options.
Finally, select the minimum version of Windows CE that the CAB file will run on and, optionally, a maximum version. In most cases however you can leave the maximum version set to "Any".

Base Install Path: This is the default path that your application will copy files to. In most cases it will be a sub-directory under 'Program Files' in the format developer\application. As you populate the Developer Name and Application Name, CAB Maker will suggest an appropriate default value for you. You can override and change this value as required. The Base Install Path is available elsewhere in CAB Maker using the %InstallDir% Macro.

Files

The Files section is where you attach CPU and Non-CPU specific files for your application. A Windows CE CAB file can support up to 999 files. CAB Maker restricts each individual file to a maximum of 20MB.

To upload a file you can either click on the drop-zone to upload individual files, or, to upload multiple files at once you can drag and drop them into the drop zone.

Screenshot of CAB Maker file upload options

Note: Not all web browsers support drop-zone based file uploading. If the drop-zone turns yellow when you drag a file(s) over it, then your browser will most likely support drag/drop uploading. Please note that you cannot upload folders, only files. Windows CE CABs do not support folders or sub-folders.

Once you select a file or drag one or more files into the drop-zone, the progress indicator and log will show the upload process and notify you once the upload is completed. As each file uploads, it will appear in the files list to the right of the drop-zone where you can configure its properties.

Screenshot of CAB Maker File Options

Path Dropdown: The Path dropdown will default to the "{Base Install Path}\" option. This will copy the file to the directory entered in the Base Install Path in the App Info section i.e. '\Program Files\3COM\3C589x Ethernet Driver' in the example above. To specify a fully custom path, select either "{Base Install Path}\" or "\" and then type the remainder of the path in the 'Sub-Path... (optional)' box. All of the other values are operating system macro's and cannot have a sub-path appended to them.

Sub-Path... (optional): This allows you to specify a more exact Windows CE file system path in the format of "folder\sub-folder". For example in the example above, the file 3x589x_1.exe will be copied to '\Program Files\3COM\3C589x Ethernet Driver\Util'

Filename: This is the filename of the file that you uploaded. You cannot change the filename in CAB Maker. Please ensure that the file is correctly named before uploading.

Register DLL: The register DLL option will only appear if a DLL file is uploaded. Ticking the DLL will cause the installer to execute the self-registration export function of the DLL file. This is usually used to write configuration settings into the Windows CE registry. Not all DLL files support self-registration. Your installer will fail if the DLL does not support registration.

Copy Options: If you hover the mouse over the Copy Options button, a drop down will appear. The options in this list let you customise the file copy settings for each file individually. By default, CAB Maker sets files to alert the user if the installer cannot copy the file (usually because it is currnetly open in another application) and will not attempt to overwrite a newer file with an older one. You can set the installer to make it impossible to skip copying the file, tell the installer to never overwrite any existing file, to only overwrite it if it already exists and to ignore the file data on copy (i.e. always overwrite). The Reference Shared DLL option in theory allows you to run two versions of the same DLL simultaneously, however its usefulness of Windows CE is believed to be limited.

<Delete>: The red '-' button removes the file from the list and deletes it from the CAB Maker server.

File Copying

At the current time, options to override the file copy behaviour are not available in CAB Maker. By default all file copies are set to prompt the user for instructions (overwrite, skip or cancel install) if there is a conflict and to not attempt to copy the file if there is currently a newer version already present in the file system.

Registry

The registry section is the most complicated part of CAB Maker. This is where you can specify configuration and app-default settings for the program or wider system/user profile.

Click on the 'Add Registry Setting' button to add a new registry entry.

Screenshot of CAB Maker Registry Settings

Each registry setting is divided into 6 parts

Hive: This is the root element of the registry path. HKEY_LOCAL_MACHINE is used for system-level settings. HKEY_CURRENT_USER is used for user-level settings for the current logged-on user and HKEY_CLASSES_ROOT is used for DLL's and creating file extension registrations. HKEY_USERS is seldom (if ever) used on Windows CE and is as HKEY_CURRENT_USER but for logged-out users.

Path: The path is the "folder" structure to where the key should be stored e.g. SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer

Key Name: This is akin to a "file" found in the "folder" specified by the path. A Path can contain multiple (or no) keys. Generally speaking, registry keys do not contain spaces, however this is not always the case. If you wish to use the 'Default' value - often referenced in .REG files as the '@' value, simply leave the Key Name field blank.

Type: The data type being used. CAB Maker supports four data types:

REG_SZ: A single line string value.
Note: You do not need to surround a REG_SZ value in quotes

REG_MULTI_SZ: A multi-line string value.
Note: You can place each line in a new line in the text box. You can drag the corner of the text-box to make it larger if required

REG_BINARY: A hexadecimal representation of a binary file/value.
Note: The value must be entered in HEX pairs, with no 0x prefix. Each 8-bit (1 byte) value should be separated by a comma e.g. 07,A3,FF,99,01,00,CE

REG_DWORD: A 32-bit numeric value.
Note: DWORDs should be entered as decimal value and not in hexadecimal

Value: Your data, formatted in line with the requirements of the Type as listed above. For string values, you can use a macro substitution variable as follows

%InstallDir% [directory application installed into]
%AppName% [name of application]
%CE1% \Program Files
%CE2% \Windows
%CE4% \Windows\StartUp
%CE5% \My Documents
%CE8% \Program Files\Games
%CE11% \Windows\Start Menu\Programs
%CE14% \Windows\Start Menu\Programs\Games
%CE15% \Windows\Fonts
%CE17% \Windows\Start Menu

Overwrite: Specify whether or not to overwrite an existing key if one already exists. By default all settings will be overwritten.

<Delete>: The red '-' button removes the registry entry from the list.

Screenshot of example registry settings in CAB Maker

Shortcuts

Shortcuts allow you to place system shortcuts on (usually) the start menu or desktop.

Screenshot of the CAB Maker shortcuts section

Shortcut Name: The friendly name / label of the shortcut as it appears to the user

Location: Select a pre-defined path macro or choose "\" to enter your own custom path via the 'Sub-Path... (optional)' box

Sub-Path... (optional): Enter a custom sub path in the format of "folder\sub-folder"

Filename: This cannot be edited. It is the resultant file that the shortcut will point to. CAB Maker will organise the path to the file for you.

Creating a CAB file

Once you have populated all of the configuration values necessary for your program. Simply click on the "Make CAB" button to build your CAB file. The process may take several minutes depending on how large your application is. Please do not attempt to click on the "Make CAB" button multiple times as it will not create your CAB file any faster.

While your CAB file is being generated you will see an activity spinner

CAB Maker activity spinner

If your CAB is created successfully, the activity spinner will be replaced with a link to download your CAB file

Screenshot of CAB Maker's Make CAB and Download CAB buttons

If an error occurs during the build, you will receive a pop-up with details of the error.

Screenshot of a CAB Maker error popup

In most circumstances an error requiring valid data means that you have got a blank text box that require a value. In the example above, the Developer Name has been left blank.

Creating a second CAB for a new Architecture

Once you have created your first CAB file. The easiest and fastest way to create the same CAB for a different architecture is to:

  1. Change the architecture value in the 'App Info' section.
  2. Delete the CPU-dependent files from the files list
  3. Upload the files for the new architecture and restore their path data
  4. Rebuild the CAB

Note: CAB Maker does not check that the architecture of the .exe or .dll file you are uploading matches that of the architecture value specified in the 'App Info' section.

Troubleshooting

Error More Info
Error: Section [SourceDisksFiles] is required Windows CE CAB files not not allow the creation of a "registry only" CAB file. You must add at least one file to the installer. A suggestion to fix this might be to add a text file to the Windows Desktop and delete it after installation.
Error: Section [Version] key "Provider" requires valid data You have failed to enter a value in the 'Developer Name' field
Error: Section [CEStrings] key "AppName" requires valid data You must enter a value in the 'Name of your Application' field

Tips

Import/Export
CAB Maker does not currently have an import/export function. The server will expire your session after 20 minutes, resulting in the loss of any information stored on the interface and the deletion of your files. It is strongly recommended that you record your settings in a local text file so that they can be easily copied back to CAB Maker when you need to rebuild your installer file.

Escaping and Escape Characters
It is not necessary for you to INF escape string values. For example when entering a % sign, CAB Maker will automatically escape the % character into %% inside the resulting CAB. Similarly you do not need to escape quotation marks (") with "" as CAB Maker will process the substitutions for you. These substitutions are perfectly normal and are required in order to generate a Windows CE installer file.

Copying Files to Root (\)
The Microsoft CAB installer format does not allow the copying of individual files to the Root of the File system (Windows CE Path "\"). In order to copy files to the file system root, set the Base Install Path in CAB Maker to \ and clear the base install directory value. Any individual file that you need to copy to the Root must be set to "{Base Install Path}\" while for all remaining files, you must specify the ultimate, full path to their resulting folder or use another macro.

Building for x86
It has been observed that there are inconsistent patterns for CPU identification by x86 Windows CE devices. Some devices as well as the H/PC Pro Device Emulator will operate with 486 CAB's, however 486 CAB's have been observed not to work on Windows CE 5.0 devices, while they do work on Windows CE 6.0 hardware. Similarly, it has been seen that some devices will accept 686 "Intel Pentium II (P6)" while others will not. It is believed that this is due to errors in coding the supported CAB specification into the ROM by the OEM. One approach to resolve this is to build 386, 486, 586 and 686 CAB's. This is recommended if you are using an ActiveSync installer. If you are not using a host installer then an alternate work around would be to build the CAB as CEF (Common Executable Format) and be sure to mark in the filename that it is x86 as this will allow it to work regardless of whether the device has been set to access 386, 486, 586 or 686 CAB's.

Help & Feedback

If you require help or wish to offer feedback on HPC:Factor CAB Maker. Please visit the following thread on the HPC:Factor Handheld PC Community Forums.

View: CAB Maker Support Thread