Intermec Technologies SMC46 User Manual

Scanner Support
6
The 700 Series Color Mobile Computer is available with imaging or laser scanning technologies, including the following:
APS Linear Imager: (standard for 730 Computers)
— includes the EV10 Scan Engine
2D Imager: (not supported on 730 Computers)
— includes the IT4000 Scan Engine
1D Laser Scanner: (not supported on 730 Computers) — includes the SE900, SE900HS, SE900-S6, and SE900HS-S6 scan engine s
PDF417 Laser S canner: (not supported on
730 Computers)
A 700 Color Imager Demo application demonstrates the more common features of the 700 Color Computer imager. See the Imager Demo V1.0 User’s Guide on the Intermec Developer’s Library CD for information.
Note: “700 Color” pertains to 740, 741, 750, 751, 760, and 761 Com­puters unless otherwise noted.
Reads 1D symbologies and PDF417 bar codes. Linear imag­ing u sing Vista Scanning tec hnology reads low-contrast bar codes, laminated bar codes, and bar codes displayed on CRT or TRT displays. This imaging us es harmless LEDs for illu­mination and does not require any warning labels. Vista Scan­ning is more reliable than lasers as it is a c ompletely solid state with no moving parts or oscillating mirrors.
This decodes several stacked 1D and 2D symbologies, includ­ing PDF417, Data Matrix, and MaxiCode without “paint­ing.” It can also read 1D codes from any orientation, for ex­ample the scan be am does not need to align perpendicular to the symbol to read it. Photography is a secondary application; the lens in the device favors bar code reading. Photos are 640x480, 256 gray-scale.
Traditional laser scanner that decodes 1D bar codes.
Higher speed laser scanner that can read PDF417 labels by “painting” the label.
199700 Series Color Mobile Computer User’s Manual
Scanner SupportChapter 6
Scanner Control and Data Transfer
Note: To use the methods described below, enable Data Collection func­tionality on the 700 Computer using the bootloader configuration menu.
The Data Server and associated software provide several ways to manipu­late scanner control and data transfer between the scanner subsystem and user applications:
S Automatic Data Collection COM Interfaces:
These COM interfaces allow user applications to receiv e bar code data, and configure and control the bar code reader engine.
S ITCAxBarCodeReaderControl functions:
These ActiveX controls allow user applications to collect bar code data from the scanner, to configure the scanner, and to configure audio and visual notification when data arrives.
S ITCAxReaderCommand functions:
Use these ActiveX controls to modify and retrieve configuration infor­mation using the reader interface commands.
S Scanning EasySet bar code labels:
You can use the EasySetRbar code creation software from Intermec Technologies Corporation to print configuration labels. Scan the labels to change the scanner configuration and data transfer settings.
Use the Intermec EasySet software to print configuration labels you can scan to change your configuration settings. For more information, see the EasySet online help. EasySet is available from the Intermec Data Capture web site.
For more information, see the SDK User’s Manual provided with your
Windows CE/PocketPC SDK.
200 700 Series Color Mobile Computer User’s Manual
Data Collection Configuration
For Units with PSM Builds Older than 3.00
Scanner settings for the 700 Color Computer can be configured via the
Data Collection control panel applet. From the 700 Color Computer, tap Start > Settings >theSystem tab > Data Collection.SeeAppendix A,
Configurable Settings” for more information about the following parame­ters. Note that these are in alphabetical order.
S Codabar (page 298)
S Code 11 (page 312)
S Code 128 (page 301)
S Code 128 Options (page 302)
S Code 128 FNC1 Character (page 303)
S Code 39 (page 296)
S Code 93 (page 300)
6 Scanner SupportChapter
S Code 93 Length (page 300)
S Data Matrix (page 314)
S Interleaved 2 of 5 (page 309)
S Matrix 2 of 5 (page 310)
S MaxiCode (page 315)
S MSI (page 305)
S PDF417 (page 306)
S Macro PDF (page 306)
S Micro PDF417 (page 308)
S Plessey (page 304)
S QR Code (page 313)
S Standard 2 of 5 (page 297)
S Telepen (page 311)
S UPC/EAN (page 299)
For Units With PSM Build 3.00 or Newer
You can configure scanner settings for the 700 Color Computer via the Intermec Settings control panel applet. From the 700 Color Computer, tap Start > Settings >theSystem tab>theIntermec Settings icon. See the Intermec Computer Command Reference Manual (P/N: 073529) for infor­mation about the settings you can configure with this applet. This online manual is available from the Intermec web site at www.intermec.com.
201700 Series Color Mobile Computer User’s Manual
Scanner SupportChapter 6
Internal Scanners
The Intermec Internal Scanner feature allows Automatic Data Collection (ADC) by accepting data from the COM 1 port and wedging it into the keyboard interface. You can enable or disable this feature from the Today screen on the 700 Color Computer.
For Unit s With PSM Build 3.00 or Newer
Do the following before you configure your internal scanner from the In­termec Settings control panel applet. Information about the settings you can configure with this applet is described in the Intermec Computer Com- mand Reference Manual. The online manual is available from the Intermec web site at www. intermec.com.
1 From the 700 Color Computer, tap Start > Settings >theSystem tab >
the Intermec Settings icon.
2 Tap the Scanners, Symbologies option, then tap (+) to expand Internal
Scanner. This sample screen is for the IT4000 scan engine.
202 700 Series Color Mobile Computer User’s Manual
6 Scanner SupportChapter
Scanner and Imager Settings
Depending on what is selected as the scanner model, image settings, de­code security, scanner settings, and virtual wedge are configured from the Intermec Settings applet. See the the Intermec Computer Command Refer- ence Manual, available from the Intermec web site at www.intermec.com, for more information about each enabled option.
Internal Scanner Supported Symbologies
See the following table for a guideline and Appendix B, “Bar Code Symbol­ogies” for more information on each supported symbology:
Symbologies EV10 IT4000 SE900 SE900HS SE900-S6 SE900HS-S6
Code39 XX X X X X
UPC/EAN X X X X X X
Code 128 XX X X X X
Interleaved 2 of 5 X X X X X X
Code 93 XX X X X X
Codabar X X X X X X
Code 2 of 5 XX X X X X
MSI X X X X X X
Plessey XX X X X X
Code 11 X X X X X X
Matrix 2 of 5 XX X X X X
Telepen X X X X X X
PDF417 XX X X X X
Micro PDF417 X X X X X X
MaxiCode X
Data Matrix X
QR Code X
RSS 14 X X X X Available in f/w
Sxxp304
RSS Limited XX X XAvailableinf/w
Sxxp304
RSS Expanded X X X X Available in f/w
Sxxp304
Codablock A XX X X X X
Codablock F X X X X X X
UCC Composite X
Available in f/w
Sxxp304
Available in f/w
Sxxp304
Available in f/w
Sxxp304
203700 Series Color Mobile Computer User’s Manual
Scanner SupportChapter 6
Tethered Scanners
The Intermec Tethered Scanner feature allows Automatic Data Collection (ADC) by accepting data from the COM 1 port and wedging it into the keyboard interface. You can enable or disable this feature from the Today screen on the 700 Color Computer.
The following information is divided between units with PSM Builds old­er than 3.00 (next paragraph) or units with PSM Builds 3.00 or newer (starting on page 209).
For Units With PSM Builds Older than 3.00
Enabling and Disabling
On the 700 Color Computer, tap Start > Today. Tap the bar code scan­nericonintheSystemTray(circled below). Initially, the bar code scanner icon indicates that this feature is disabled (shown to the left).
S Select Comm Port Wedge to send any data, coming into the 700 Color
Computer through the COM1 port from an external input device, as keyboard data to an application on the desktop.
For example, if you have Pocket Word running on your 700 Color Computer desktop, information scanned with a scanner connected to the COM1 port appears in the Word document. If another data collec­tion application is running and is active on the 700 Color Computer, the scanned information appears in that application.
Note: When Comm Port Wedge is selected, regardless of the data sent by the external input device, you cannot control the device or the data format using any of the Intermec scanner control or data transfer APIs from the SDK or the internal Data Collection software. The external inputdeviceisgovernedbywhatsoftwareithasonboardtotellithow to scan, take pictures, or send the data elsewhere.
204 700 Series Color Mobile Computer User’s Manual
6 Scanner SupportChapter
S Select 1551/1553 to enable the Sabre 1551E or 1553 Tethered Scanner
to scan, then send data as keyboard data. The 1551/1553 Tethered Scanner has software onboard that translates scanned data into charac­ters, so the r unning/active application does not need to know how to do that. All the scanner control and data transfer APIs will work with the 1551/1553 Tethered Scanner, so you can control the device.
S Select Disable All to disable this feature and use the COM1 port for
another application, such as ActiveSync. An error message will result if this option were not selected, but this action was attempted. Similarly, if ActiveSync is using the COM1 port, and you select Comm Port Wedge or 1551/1553, an error message will result. See “Error Message”for more information.
Error Message
If the COM1 port is used by another application, such as ActiveSync, nei­ther the Comm Port Wedge nor the 1551/1553 Tethered Scanner can be enabled. As a result, the following message may appear. Note that this mes- sage is for the Comm Port Wedge. You must disable that application to free uptheCOM1portbeforeyoucanenableeitherthewedgeorthescanner.
Changing Comm Settings
Tap Change Comm Settings to configure the settings for the COM1 port. Current settings are restored after a warm-boot is performed, but are lost after a cold-boot is performed. When these settings are not changed, the OK button is disabled (grayed out). When changes are made, tap OK after it is enabled to accept these changes.
S Baud Rate: 1200, 2400, 4800, 9600, 19200, 38400, 57600,
115200
S Data Bits:7or8
S Parity: None, Odd, Even, Mark, Space
S Stop Bits:1or2
S Flow Control: None or Hardware
205700 Series Color Mobile Computer User’s Manual
Scanner SupportChapter 6
Tethered Scanner
Default settings for the Tethered Scanner are shown in this illustration:
Sabre 1551E or 1553 Tethered Scanner
The default communication configuration for the Sabre 1551E or 1553 Tethered Scanner is shown in the following illustration. Scan the EasySet Reset Factory Defaults label to set the Sabre 1551E or 1553 tethered scan­ner communications settings to this configuration. The COM1 port con­figuration settings must also match those of the scanner to scan labels.
Welch Allyn 1470 Imager Settings
You can set the Welch Allyn 1470 Imager to this configuration by scan­ning the Factory Default Settings label.
206 700 Series Color Mobile Computer User’s Manual
6 Scanner SupportChapter
Scanner Cabling
A null modem cable is required for the Welch Allyn 1470 Imager to com­municate with the 700 Color Computer when using the 700 Color Serial Cable (P/N: 226-999-001).
Sabre 1551E / 1553 Cables connect directly to the Model 700 COM Port.
Limitations and Capabilities
The Tethered Scanner has the following limitations:
S No auto detection of a scanner’s physical connection to COM1 port.
User needs to ensure the communication settings of COM1 port matched the settings of the device.
S The Pocket PC Pocket Office applications misbehave when control
characters such as carriage return are wedged. This is a known Pocket PC problem, which is being worked with Microsoft and f or which a work around is being developed.
S Communications port is COM1 and cannot be changed.
S A complete bar code label is detected when the time between bytes (the
inter-byte gap) exceeds 100 ms. This allows that data could be concate­nated if two labels were received while the Comm Port Wedge or the 1551/1553 Tethered Scanner was not performing a read. That is, it could be wedging data just read or the read thread could be preempted. Also, the labels could appear concatenated if the scanner itself were to buffer the labels before transmitting them.
When enabled, the “Comm Port Wedge” menu option has this limitation:
S ThereisnobarcodeAPItogetbarcodedatafromthebarcodescan-
ner. The Comm Port Wedge transmits the data through the keyboard interface only.
When enabled, the “1551/1553” menu option has these capabilities:
S Grid Data Editing is available.
S The source of the symbology configurations is only available via the
Easy Set command labels. You can only configure the Virtual Wedge configurations via the Data Collection control panel applet Virtual Wedge page. See Appendix A, “Configurable Settings,” for information.
S May transmit the data through the keyboard interface (via the Virtual
Wedge).
207700 Series Color Mobile Computer User’s Manual
Scanner SupportChapter 6
S The bar code APIs, defined in the IADC interface, are available to get
barcodedatafromthebarcodescanner.Thefollowingexampleshows how to programmatically collects bar code data:
#include “IADC.h” // Linked with ITCUUID.LIB #include “ITCAdcMgmt.h” // Linked with ITCAdcDevMgmt.lib
IADC* pIADC; HRESULT hrStatus = S_OK;
// Create a ADC COM interface to collect bar code data from the 1551E/1553 // when the 1551/1553 menu option is enabled.
hrStatus = ITCDeviceOpen(TEXT(“ExtScanner”), // Name of the ADC device.
IID_IADC, // COM interface to return ITC_DHDEVFLAG_READAHEAD, // Device’s Flags (LPVOID *) &pIADC); // the returned interface
if( SUCCEEDED(hrStatus) )
{
BYTE byteBuffer[MAX_LABEL_SIZE]; DWORD dwLength = 0;
HRESULT hr = pIDC->Read(
byteBuffer, // Buffer to put the ADC data. MAX_LABEL_SIZE, // Size of pDataBuffer in bytes. &dwLength, // Number bytes returned. NULL, // Time stamp of the received data. NULL. INFINITE // Number of milliseconds to wait.
);
}
when done using this COM interface, delete it:
ITCDeviceClose( (IUnknown **) pIADC);
208 700 Series Color Mobile Computer User’s Manual
For Unit s With PSM Build 3.00 or Newer
Configuring the Tethered Scanner
Do the following before you configure your tethered scanner from the In­termec Settings control panel applet. Information about the settings you can configure with this applet is described in the Intermec Computer Com- mand Reference Manual. The online manual is available from the Intermec web site at www. intermec.com.
1 Connect your tethered scanner to the tethered scanner port.
2 From the 700 Color Computer, tap Start > Settings >theSystem tab >
the Intermec Settings icon.
6 Scanner SupportChapter
3 Tap the Scanners, Symbologies option, then tap (+) to expand Dock
Tethered Scanner.
209700 Series Color Mobile Computer User’s Manual
Scanner SupportChapter 6
4 Tap Scanner model for a drop-down list, then select the applicable
scanner, such as “1551E” or “1553” in this sample screen.
5 Make sure a scanner is connected to your 700 Computer properly.
Then, tap to check Enable scanner port,thentapFile > Save Settings from the bottom of the screen. These changes take several moments to reset.
210 700 Series Color Mobile Computer User’s Manual
6 Scanner SupportChapter
1551E or 1553 Selected for Scanner Model
When “1551E” or “1553” is selected from the Scanner model option (see step 4 above), and the port state is already enabled (see step 5),theprocess
will take several moments to reset. When 1551E or 1553 is successfully connected during this step, the unit will emit some beeps. Here, the termi­nal is initializing the scanner at 9600 for the baud rate, 7 data bits, even parity, and 2 stop bits and synchronizing the terminal’s configuration with the attached scanner.
With “1551E” or “1553” selected, Symbologies, Symbology Options, Hardware Trigger, and Scanner Port settings are configured from the In­termec Settings applet. See the the Intermec Computer Command Reference Manual, available from the Intermec web site at www.intermec.com, for more information about each enabled option.
ASCII Selected for Scanner Model
To send data coming into the 700 Color Computer through the COM1 port from an external input device, as keyboard data to an application on the desktop, do the following:
1 Select “ASCII” from the Scanner model option.
2 Tap to check Enable scanner port.
3 Tap File > Save Settings from the bottom of the screen.
With “ASCII” selected, Symbology Options, Hardware Trigger, and Scan­ner Port settings are configured from the Intermec Settings applet. See the the Intermec Computer Command Reference Manual,availablefromtheIn­termec web site at www.intermec.com, for more information about each enabled option.
211700 Series Color Mobile Computer User’s Manual
Scanner SupportChapter 6
Note: When selecting either the 1551E or the 1553 Scanner or enabling the scanner port for these scanners, the 700 Computer tries to communi­cate with the attached scanner. If the scanner is not powered, if the cable is not connected properly, the wrong cable is used, or if the scanner firmware is older than 2.0, and the “Failed to save one or more settings” message appears, then this step failed.
This process can take time as the terminal is going through a group of RS-232 settings to communicate with the scanner. After successful com­municated with the scanner (about eight beeps are generated), it initializes the scanner with the 700 Computer’s current settings. This process might generate a series of beeps pending on the firmware version installed in the scanner. These beeps are suppressed in f irmware versions 2.08 or greater.
Troubleshootingthe 1551E/1553 Tethered Scanner
Do the following to troubleshoot your 1551/1553 Tethered Scanner: 1 Ensure the correct cable is used for the scanner on the tethered scanner
port. Note the 700 Computer cannot supply power to the scanner.
2 Perform a quick test to determine whether the connection is good.
Temporary select the scanner model as “ASCII,” then enable the scan­ner port state. Go to a command prompt or a notepad and scan a data label. If a label is wedged into the command prompt or notepad, then the connection is good.
3 If step 2 passes, reset the scanner configurations to their defaults (scan
the Reset Factory Defaults label on the next page) to prevent miscom­munication, then reenable the scanner port state.
4 If step 2 fails, then the firmware installed in the tethered scanner may be
older than version 2.0. Upgrade your scanner firmware.
Reset Factory Defaults
Scan the EasySet software bar code label “Reset Factory Default” to restore all of your scanner’s configurations to their factory defaults. When this command label is scanned, reinitialize the tethered scanner (such as disable the scanner port state, then enable it) on the 700 Computer. Otherwise, the online configuration and scanning on the 700 Computer are not func­tional. In general, scan this label only to initially reset the scanner.
Do not scan EasySet command labels to change the following settings:
S Symbologies code mark S Code 128, EAN29 Identifier S Preamble and Postamble S Enable/Disable symbologies S Symbology ID transmit option
In some cases, scanning EasySet Command labels cause the current setting on the user interface to be out of sync with the scanner settings. However, in some cases, scanning these labels does corrupt scanned data.
The “Open COMx error: 0x00000037” message appears if the COM port cannot open due to another application using the port. Disable that ap­plication to free up the COM1 port before you can enable the scanner. “x” istheCOMportnumber,suchas1,2,or3.
212 700 Series Color Mobile Computer User’s Manual
6 Scanner SupportChapter
Tethered Scanner Supported Symbologies
The user interface may allow configuration of PDF417, Micro PDF417, RSS, and Codablock bar code symbologies. However, these symbologies are dependant on what scanner models and firmware versions are in use. See the following table for a guideline and Appendix B, “Bar Code Symbol- ogies” for more information on each supported symbology:
You can use a generic ASCII scanner with the 700 Color Computer. Pending on the scanner, linear symbologies such as Code39, should de­code correctly. However, 2D symbologies such as PDF417 may not de­code correctly.
Symbologies 1551E 1553
Code39 XX
UPC/EAN X X
Code 128 XX
Interleaved 2 of 5 X X
Code 93 XX
Codabar X X
Code 2 of 5 XX
MSI X X
Plessey XX
Code 11 X X
Matrix 2 of 5 XX
Telepen X X
PDF417 Available in 1551 0808 PDF
Micro PDF417 Available in 1551 0808 PD F, Sxxp217_ or later
MaxiCode
Data Matrix
QR Code
RSS 14 F/w version 2.15 or later F/w version 2.15 or later
RSS Limited F/w version 2.15 or later F/w version 2.15 or later
RSS Expanded F/w version 2.15 or later F/w version 2.15 or later
Codablock A Available in 1551 0808 PDF
Codablock F Available in 1551 0808 PDF
UCC Composite
213700 Series Color Mobile Computer User’s Manual
Scanner SupportChapter 6
214 700 Series Color Mobile Computer User’s Manual
Programming
7
The following programming information pertains to the 700 Series Color Mobile Computer:
S Creating CAB Files (page 216)
S Customization and Lockdown (page 233)
S FTP Server (page 234)
S Kernel I/O Control Functions (page 242)
S Network Selection APIs (page 258)
S Notifications (page 281)
S Reboot Functions (page 283)
S Remapping the Keypad (page 284)
Note: “700 Color” pertains to 740, 741, 750, 751, 760, and 761 Com­puters unless otherwise noted.
215700 Series Color Mobile Computer User’s Manual
ProgrammingChapter 7
Creating CAB Files
The Windows CE operating system uses a .CAB file to install an applica­tion on a Windows CE-based device. A .CAB file is composed of multiple files that are compressed into one file. Compressing multiple files into one file provides the following benefits:
S All application files are present.
S A partial installation is prevented.
S The application can be installed from several sources, such as a desktop
computer or a Web site.
Use the CAB Wizard application (CABWIZ.EXE) to generate a .CAB file foryourapplication.
Creating Device-Specific CAB Files
Do the following to create a device-specific .CAB file for an application, in the order provided:
1 Create an .INF file with Windows CE-specific modifications (page
2 Optional Create a SETUP.DLL file to provide custom control of the
3 UsetheCABWizardtocreatethe.CABfile,usingthe.INFfile,the
Creating an .INF File
An .INF file specifies information about an application for the CAB Wi­zard. Below are the sections of an .INF file:
[Version]
This specifies the creator of the file, version, and other relevant informa­tion.
Required? Yes
S Signature:“signature_name
S Provider:“INF_creator
216).
installation process (page 228).
optional SETUP.DLL file, and the device-specific application files as parameters (page 231).
“$Windows NT$”
The company name of the application, such as “Microsoft.”
S CESignature
“$Windows CE$”
Example
[Version]
Signature = “$Windows NT$” Provider = “Intermec” CESignature = “$Windows CE$”
216 700 Series Color Mobile Computer User’s Manual
[CEStrings]
This specifies string substitutions f or the application name and the default installation directory.
Required? Yes
S AppName: app_name
S InstallDir: default_install_dir
Example
[CEStrings]
AppName=“Game Pack” InstallDir=%CE1%\%AppName%
[Strings]
This section is optional and defines one or more string keys. A string key represents a string of printable characters.
ProgrammingChapter 7
Name of the application. Other instances of %AppName% in the .INF file are replaced with this string value, such as RP32.
Default installation directory on the device. Other instances of %Install­Dir% in the .INF file are replaced with this string value. Example: \SDMMC_Disk\%AppName%
Required? No
S string_key: value
Example
[Strings]
reg_path = Software\Intermec\My Test App
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. No string_keys is okay.
217700 Series Color Mobile Computer User’s Manual
ProgrammingChapter 7
[CEDevice]
Describes the platform for the targeted application. All keys in this section are optional. If a key is nonexistent or has no data, Windows CE does not perform any checking with the exception being UnsupportedPlatforms.If the UnsupportedPlatforms key exists but no data, the previous value is not overridden.
Required? Yes
S ProcessorType : processor_type
S UnsupportedPlatforms: platform_family_name
The value that is returned by SYSTEMINFO.dwProcessorType.For example, the value for the ARM CPU is 2577
This lists known unsupported platform family names. 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 specified by xxx. That is, the list of unsupported platform family names is appended to the previous list of unsupported 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.
Example
[CEDevice]
UnsupportedPlatforms = pltfrm1 ; pltfrm1 is unsupported
[CEDevice.SH3]
UnsupportedPlatforms = ; pltfrm1 is still unsupported
S VersionMin: minor_version
Numeric value returned by OSVERSIONINFO.dwVersionMinor. The .CAB file is valid for the currently connected device if the version of this device is greater than or equal to VersionMin.
S VersionMax: major_version
Numeric value returned by OSVERSIONINFO.dwVersionMajor. The .CAB file is valid for the currently connected device if the version of this device is less than or equal to VersionMax.
S BuildMin: build_number
Numeric value returned by OSVERSIONINFO.dwBuildNumber. The .CAB file is valid for the currently connected device if the version of this device is greater than or equal to BuildMin.
S BuildMax: build_number
Numeric value returned by OSVERSIONINFO.dwBuildNumber. The .CAB file is valid for the currently connected device if the version of this device is less than or equal to BuildMax.
218 700 Series Color Mobile Computer User’s Manual
ProgrammingChapter 7
Example
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.ARM] ; Inherits all [CEDevice] settings ; This will create a .CAB file specific to ARM devices. ProcessorType = 2577 ; ARM .cab file is valid for ARM 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 ; MIPS .CAB file is valid for MIPS microprocessor. UnsupportedPlatforms =pltfrm2 ; pltfrm1, pltfrm2 unsupported for MIPs .CAB file.
Note:TocreatethetwoCPU-specific.CABfilesfortheSETUP.INFfile in the previous example, run the CAB Wizard with the “/cpu arm mips” parameter.
219700 Series Color Mobile Computer User’s Manual
ProgrammingChapter 7
[DefaultInstall]
This describes the default installation of your application. Note that under this section, you will list items expanded upon later in this description.
Required? Yes
S Copyfiles: copyfile_list_section
S AddReg: add_registry_section
S CEShortcuts: shortcut_list_section
S CESetupDLL: setup_DLL
Maps to files defined later in the .INF file, such as Files.App, Files.Font, and Files.Bitmaps.
Example: RegSettings.All
String that identifies one more section that defines shortcuts to a file, as defined in the [CEShortcuts] section.
Optimal string that specifies a SETUP.DLL file. It is written by the In­dependent 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.
S CESelfRegister: self_reg_DLL_filename
Example
[DefaultInstall]
AddReg = RegSettings.All CEShortcuts = Shortcuts.All
[SourceDiskNames]
This section describes the name and path of the disk on which your ap­plication resides.
Required? Yes
S disk_ordinal: disk_label,,path
S CESignature: “$Windows CE$”
String that identifies files that self-register by exporting the DllRegister­Server and DllUnregisterServer Component Object Model (COM)
functions. Specify these 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.
1=,“App files” , C:\Appsoft\RP32\... 2=,“Font files”,,C:\RpTools\... 3=,“CE Tools” ,,C:\windows ce tools...
Example
[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
220 700 Series Color Mobile Computer User’s Manual
ProgrammingChapter 7
[SourceDiskFiles]
This describes the name and path of the files in which your application resides.
Required? Yes
S filename: disk_number[,subdir]
RPM.EXE = 1,c:\appsoft\... WCESTART.INI = 1 RPMCE212.INI = 1 TAHOMA.TTF = 2
Note: [,subdir] is relative to the location of the INF file.
Example
[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.
221700 Series Color Mobile Computer User’s Manual
ProgrammingChapter 7
[DestinationDirs]
This describes the names and paths of the destination directories for the application on the target device. Note Windows CE does not support directo-
ry identifiers.
Required? Yes
S file_list_section: 0,subdir
String that identifies the destination directory. The following list shows the string substitutions supported by Windows CE. Use these only for the beginning of the path. \ %CE1% \Program Files %CE2% \Windows %CE3% \My Documents %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\Start Menu\Programs %CE12% \Windows\Start Menu\Programs\Accessories %CE13% \Windows\Start Menu\Programs\Communications %CE14% \Windows\Start Menu\Programs\Games %CE15% \Windows\Fonts %CE16% \Windows\Recent %CE17% \Windows\Start Menu %InstallDir% Contains the path to the target directory selected during installation. It is declared in the [CEStrings] section %AppName% Contains the application name defined in the [CEStrings] section.
Example
[DestinationDirs]
Files.Common = 0,%CE1%\My Subdir ; \Program Files\My Subdir Files.Shared = 0,%CE2% ; \Windows
222 700 Series Color Mobile Computer User’s Manual
ProgrammingChapter 7
[CopyFiles]
This section, under the [DefaultInstall] section, describes the default files to copy to the target device. Within the [DefaultInstall] section, files were listed that must be defined elsewhere in the INF file. This section identi­fies that mapping and may contain flags.
Required? Yes
S copyfile_list_section: destination_filename,[source_filename]
The source_filename parameter is optional if it is the same as destina- tion_filename.
S copyfile_list_section: flags
Thenumericvaluethatspecifiesanactiontobedonewhilecopyingfi­les. The following table shows values supported by Windows CE.
Flag Value Description
COPYFLG_WARN_IF_SKIP 0x00000001 Warn user if skipping a file is attempted after error.
COPYFLG_NOSKIP 0x00000002 Do not allow a user to skip copying a file.
COPYFLG_NO_OVERWRITE 0x00000010 Do not overwrite files in 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.
Example
[DefaultInstall.SH3]
CopyFiles = Files.Common, Files.SH3
[DefaultInstall.MIPS]
CopyFiles = Files.Common, Files.MIPS
223700 Series Color Mobile Computer User’s Manual
ProgrammingChapter 7
[AddReg]
This section, under the [DefaultInstall] section, is optional and describes the keys and values that the .CAB file adds to the device registry. Within the [DefaultInstall] section, a reference may have been made to this section, such as “AddReg=RegSettings.All”. This section defines the options for that setting.
Required? No
S add_registry_section: registry_root_string
S add_registry_section: value_name
S add_registry_section: flags
String that specifies the registry root location. The following list shows thevaluessupportedbyWindowsCE.
S HKCR Same as HKEY_CLASSES_ROOT
S HKCU Same as HKEY_CURRENT_USER
S HKLM Same as HKEY_LOCAL_MACHINE
Registryvaluename.Ifempty,the“default”registryvaluenameisused.
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 th e registry key exists, do not overwrite it. Can be used
with any of the other flags in this table.
FLG_ADDREG_TYPE_SZ 0x00000000 REG_SZ registry data type.
FLG_ADDREG_TYPE_MULTI_SZ 0x00010000 REG_MULTI_SZ registry data type. Value field that follows
can be a list of strings separated by commas.
FLG_ADDREG_TYPE_BINARY 0x00000001 REG_BINARY registry data type. 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 REG_DWORD data type. The noncompatible format in the
Win32 Setup .INF documentation is supported.
Example
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
224 700 Series Color Mobile Computer User’s Manual
[CEShortCuts]
This section, a Windows CE-specific section under the [DefaultInstall] section, is optional and describes the shortcuts that the installation applica­tion creates on the device. Within the [DefaultInstall] section, a reference may have been made to this section, such as “ShortCuts.All”. This section defines the options for that setting.
Required? No
S shortcut_list_section: shortcut_filename
S shortcut_list_section: shortcut_type_flag
S shortcut_list_section: target_file_path
ProgrammingChapter 7
String that identifies the shortcut name. It does not require the .LNK extension.
Numeric value. Zero or empty represents a shortcut to a file; any non­zero numeric value represents a shortcut to a folder.
String value that specifies the destination location. Use the target file name for a file, such as MyApp.exe, that must be defined in a file copy list. For a path, use a file_list_section name defined in the [Destination- Dirs] section, such as DefaultDestDir,orthe%InstallDir% string.
S shortcut_list_section: standard_destination_path
Optional string value. A standard %CEx% path or %InstallDir%.Ifno value is specified, the shortcut_list_section name of the current section or the DefaultDestDir value from the [DestinationDirs] section is used.
Example
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 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\wce400\700ie\mfc\lib\x86
[SourceDisksFiles] ; Required section rpm.exe = 1,C:\Appsoft\program\wce400\WCEX86Rel700 wcestart.ini = 1
225700 Series Color Mobile Computer User’s Manual
ProgrammingChapter 7
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\wce1 tahoma.ttf = 2 mfcce212.dll = 3 olece212.dll = 3 olece211.dll = 1,c:\windows ce tools\wce400\NMSD61102.11\mfc\lib\x86 rdm45wce.dll = 1,c:\rptools\rdm45wce\4_50\lib\wce400\wcex86rel picfmt.dll = 1,c:\rptools\picfmt\1_00\wce400\wcex86rel6110 fmtctrl.dll = 1,c:\rptools\fmtctrl\1_00\wce400\wcex86rel6110 ugrid.dll = 1,c:\rptools\ugrid\1_00\wce400\wcex86rel6110 simple.dll = 1,c:\rptools\pspbm0c\1_00\wce400\wcex86rel psink.dll = 1,c:\rptools\psink\1_00\wce400\WCEX86RelMinDependency pslpwce.dll =1,c:\rptools\pslpm0c\1_00\wce400\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
226 700 Series Color Mobile Computer User’s Manual
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
ProgrammingChapter 7
[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
227700 Series Color Mobile Computer User’s Manual
ProgrammingChapter 7
Using Installation Functions in SETUP.DLL
SETUP.DLL is an optional file that enables you to perform custom opera­tions during installation and removal of your application. The following list shows the functions that are exported by SETUP.DLL.
Install_Init Called be fore installation begins. Use this function to check the application version when reinstal-
ling 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 applica-
tion installation.
Uninstall_Init Called before the removal process begins. Use this function to close the application, if the applica-
tion 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 rein ­stall the application.
Note;Use[DefaultInstall] > CESelfRegister (page 220) in the .INF file to point to SETUP.DLL.
After the CAB File Extraction
Cab files that need to cause a warm reset after cab extraction will need to create the __RESETMEPLEASE__.TXT file in the “\Windows” directory. The preferred method to create this file is within the DllMain portion of theSETUP.DLLfile.Itlookslikethis:
#include <windows.h> #include <Tlhelp32.h> #include <winioctl.h> #include <ce_setup.h> // in the public SDK dir
#define IOCTL_TERMINAL_RESET CTL_CODE (FILE_DEVICE_UNKNOWN,FILE_ANY_ACCESS, 2050, METHOD_NEITHER)
BOOL APIENTRY DllMain( HANDLE h, DWORD reason, LPVOID lpReserved ) {
return TRUE;
} // DllMain
//************************************************************************ // $DOCBEGIN$ // BOOL IsProcessRunning( TCHAR * pname ); // // Description: Get process table snapshot, look for pname running. // // Arguments: pname - pointer to name of program to look for. // for example, app.exe. // // Returns: TRUE - process is running. // FALSE - process is not running. // $DOCEND$ //************************************************************************ BOOL IsProcessRunning( TCHAR * pname ) {
HANDLE hProcList;
228 700 Series Color Mobile Computer User’s Manual
Loading...
+ 200 hidden pages