eDecode[in]Identifies the decoding for Interleaved 2 of 5
symbology.
eCheck[in]Identifies the check digit.
eLengthId[in]Use
ITC_BARCODE_LENGTH_NO_CHANGE to
indicate no change for bar code length. Use
ITC_BARCODE_LENGTH for any length and
minimum length, and set rgbLengthBuff[0] to a
valid length value. Use
ITC_BARCODE_FIXED_LENGTH to compose
1 or 2 or 3 fixed lengths, and set 3 bytes:
rgbLengthBuff[0], rgbLengthBuff[1],
rgbLengthBuff[2] with valid values.
rgbLengthBuff[in,size_is(dwNumBytes)]
Contains bar code lengths when eLengthId =
Use ITC_BARCODE_LENGTH or
Use ITC_BARCODE_FIXED_LENGTH.
dwNumBytes[in] Number of bytes in rbgLengthBuff[]. For S9C, this
value is 1 when eLengthId =
ITC_BARCODE_LENGTH or 3 when eLengthId
= ITC_BARCODE_FIXED_LENGTH.
eDecode[in]Identifies the decoding for Matrix 2 of 5 symbology.
dwLength[in] Identifies the bar code length.
Return Values
HRESULT that indicates success or failure.
Remarks
None.
See Also
None.
Matrix 2 of 5 Default Settings
ParameterDefaultValid Range
DecodingNot ActiveITC_MATRIX2OF5_DECODING
Bar Code LengthMinimum Length = 60x00`0xFEITC_BC_LENGTH_NO_CHANGE
Matrix 2 of 5 Enumerations
typedef enum tagMatrix2of5Decoding
{
ITC_MATRIX2OF5_NOTACTIVE = 0, // Default
ITC_MATRIX2OF5_ACTIVE = 1,
ITC_MATRIX2OF5_NO_CHANGE = 255
} ITC_MATRIX2OF5_DECODING;
#define ITC_BC_LENGTH_NO_CHANGE 255. This definition can be used when the bar
code length does not require any change.
eDecode[in]Identifies the decoding for MSI symbology.
eCheck[in] Identifies the check digit.
dwLength[in] Identifies the bar code length.
Return Values
HRESULT that indicates success or failure.
Remarks
None.
See Also
None.
MSI Default Settings
ParameterDefaultValid Range
DecodingNot ActiveITC_MSI_DECODING
Check DigitMOD 10 checked and transmittedITC_MSI_CHECK_DIGIT
Bar Code LengthMinimum Length = 60x00`0xFEITC_BC_LENGTH_NO_CHANGE
187700 Series Color Mobile Computer User’s Manual
Scanner SupportChapter—6
MSI Enumerations
typedef enum tagMsiDecoding
{
ITC_MSI_NOTACTIVE = 0, // Default
ITC_MSI_ACTIVE = 1,
ITC_MSI_NO_CHANGE = 255
} ITC_MSI_DECODING;
typedef enum tagMsiCheckDigit
{
ITC_MSI_CHECK_MOD10_XMIT, // Default
ITC_MSI_CHECK_MOD10_NOTXMIT,
ITC_MSI_CHECK_DOUBLEMOD10_XMIT,
ITC_MSI_CHECK_DOUBLEMOD10_NOTXMIT,
ITC_MSI_CHECK_NO_CHANGE = 255
} ITC_MSI_CHECK_DIGIT;
#define ITC_BC_LENGTH_NO_CHANGE 255. This definition can be used when the bar
code length does not require any change.
IS9CConfig::GetPDF417
This function retrieves the current PDF417 settings.
eDecode[in]Identifies the decoding for Plessey symbology.
eCheck[in]Identifies the check digit.
dwLength[in] Identifies the bar code length.
Return Values
HRESULT that indicates success or failure.
Remarks
None.
See Also
None.
192700 Series Color Mobile Computer User’s Manual
6Scanner Support—Chapter
Plessey Default Settings
ParameterDefaultValid Range
DecodingNot ActiveITC_PLESSEY_DECODING
Check DigitNot TransmittedITC_PLESSEY_CHECK_DIGIT
Bar Code LengthAny Bar Code Length0x00`0xFEITC_BC_LENGTH_NO_CHANGE
Plessey Enumerations
typedef enum tagPlesseyDecoding
{
ITC_PLESSEY_NOTACTIVE = 0,// Default
ITC_PLESSEY_ACTIVE = 1,
ITC_PLESSEY_NO_CHANGE = 255
} ITC_PLESSEY_DECODING;
typedef enum tagPlesseyCheckDigit
{
ITC_PLESSEY_CHECK_NOTXMIT = 0,// Default
ITC_PLESSEY_CHECK_XMIT = 1,
ITC_PLESSEY_CHECK_NO_CHANGE = 255
} ITC_PLESSEY_CHECK_DIGIT;
#define ITC_BC_LENGTH_NO_CHANGE 255. This definition can be used when the bar
code length does not require any change.
193700 Series Color Mobile Computer User’s Manual
Scanner SupportChapter—6
IS9CConfig::GetStandard2of5
This function retrieves the current Standard 2 of 5 settings.
eDecode[in]Identifies the decoding for Standard 2 of 5
symbology.
eFormat[in] Identifies the format.
eCheck[in] Identifies the Modulo 10 check digit.
eLengthId[in] Use
ITC_BARCODE_LENGTH_NO_CHANGE to
indicate no change for bar code length. Use
ITC_BARCODE_LENGTH for any length and
minimum length, and set rgbLengthBuff[0] to a
valid length value. Use
ITC_BARCODE_FIXED_LENGTH to compose
1 or 2 or 3 fixed lengths, and set 3 bytes:
rgbLengthBuff[0], rgbLengthBuff[1],
rgbLengthBuff[2] with valid values.
rgbLengthBuff[in,size_is(dwNumBytes)]
An array of bytes containing bar code lengths when
eLengthId = ITC_BARCODE_LENGTH or
ITC_BARCODE_FIXED_LENGTH.
dwNumBytes[in] Number of bytes in rbgLengthBuff[]. For S9C, this
value is 1 when eLengthId =
ITC_BARCODE_LENGTH or 3 when eLengthId
= ITC_BARCODE_FIXED_LENGTH.
This interface is derived from the IS9CConfig interface and provides additional methods that can be used to set and retrieve the 700 Series Computer’ s bar code configuration. All supported symbologies are initialized to
their defaults when the S9C firmware is loaded.
GET/SET functions use enumerations as their parameters. In most enumerations, there is an enumerator xx_NO_CHANGE (such as
ITC_CODE39_NO_CHANGE), where xx refers to a particular enumeration. This enumerator can be used during a call to a SET to indicate
that no change is to be made to that particular parameter. This prevents
the called function from having to format the same S9C command and
send it down to the scanner.
To specify a bar code length of “any length,” use a value of “0” for the bar
code length argument.
IS9CConfig2 functions are the following. IS9CCONFIG.H is the header
file and ITCUUID.LIB contains the IID_IADC Interface GUID value
used to obtain the interface.
S IS9CConfig2::GetCode11 (page 205)
S IS9CConfig2::SetCode11 (page 205)
S IS9CConfig2::GetCustomSymIds (page 207)
S IS9CConfig2::SetCustomSymIds (page 208)
S IS9CConfig2::GetGlobalAmble (page 211)
S IS9CConfig2::SetGlobalAmble (page 212)
S IS9CConfig2::GetPDF417Ext (page 213)
S IS9CConfig2::SetPDF417Ext (page 213)
S IS9CConfig2::GetSymIdXmit (page 214)
S IS9CConfig2::SetSymIdXmit (page 214)
204700 Series Color Mobile Computer User’s Manual
6Scanner Support—Chapter
IS9CConfig2::GetCode11
This function retrieves the current settings for Code 11.
This function retrieves all the custom symbology identifiers defined for the
currently supported symbologies. This is not supported when using an imag-
pStructSymIdPair[out]Pointer to ITC_CUST_SYM_ID_PAIR
location to receive the current defined
symbology identifiers for the supported
symbologies. The caller must preallocate
this buffer with dwMaxNumElement
elements.
dwMaxNumElement[in]Maximum number of elements allocated
for the pStructSymIdPair buffer which
should always be equal to the last defined
enumeration constant + 1 of the
enumeration ITC_CUSTOM_ID. In this
case, it is
ITC_CUSTOMID_LAST_ELEMENT.
pdwNumElement[out]Pointer to DWORD location to receive
the actual number of elements returned in
the pStructSymIdPair buffer, which should
be the same as dwMaxNumElement.
Return Values
HRESULT that indicates success or failure.
Remarks
None.
See Also
S Custom Identifier Assignments (page 209)
S Custom Identifier Example (page 210)
S Custom Identifier Default Settings (page 210)
207700 Series Color Mobile Computer User’s Manual
Scanner SupportChapter—6
IS9CConfig2::SetCustomSymIds
This function updates the symbology identifiers (any ASCII values) for the
currently supported symbologies. This is not supported when using an imag-
pStructSymIdPair[in]Pointer to ITC_CUST_SYM_ID_PAIR
location, containing the new symbology
identifiers for any supported symbologies to
update.
dwNumElement[in]Identifies the number of symbology identifiers
to update in the pStructSymIdPair buffer.
Return Values
HRESULT that indicates success or failure.
Remarks
None.
See Also
None.
208700 Series Color Mobile Computer User’s Manual
6Scanner Support—Chapter
Custom Identifier Assignments
Each custom identifier is a one byte ASCII value within the range from
0x00 to 0xff. The enumerations in the ITC_CUSTOM_ID enumerator
can be used as symbology identifications in the GetCustomSymIds() and
SetCustomSymIds() functions.
typedef enum tagCustomId
{
ITC_CUSTOMID_CODABAR = 0Identifies the Codabar symbology
ITC_CUSTOMID_CODE39Identifies the Code 39 symbology
ITC_CUSTOMID_CODE93Identifies the Code 93 symbology
ITC_CUSTOMID_CODE128_EAN_128Identifies the Code 128 symbology
ITC_CUSTOMID_EAN8Identifies the EAN-8 symbology
ITC_CUSTOMID_EAN13Identifies the EAN-13 symbology
ITC_CUSTOMID_I2OF5Identifies the Interleaved 2 of 5 symbology
ITC_CUSTOMID_MATRIX2OF5Identifies the Matrix 2 of 5 symbology
ITC_CUSTOMID_MSIIdentifies the MSI symbology
ITC_CUSTOMID_PDF417Identifies the PDF 417 symbology
ITC_CUSTOMID_PLESSEYIdentifies the Plessey symbology
ITC_CUSTOMID_CODE2OF5Identifies the Standard 2 of 5 symbology
ITC_CUSTOMID_TELEPENIdentifies the Telepen symbology
ITC_CUSTOMID_UPCAIdentifies the UPC-A symbology
ITC_CUSTOMID_UPCEIdentifies the UPC-E symbology
ITC_CUSTOMID_CODE11Identifies the Code 11 symbology
ITC_CUSTOMID_LAST_ELEMENTIdentifies the last element. Use to preallocate
the buffer on GetCustomSymIds
}ITC_CUSTOM_ID;
typedef struct tagCustSymbIdPair
{
ITC_CUSTOM_ID eSymbology;Identifies the symbology of interest
BYTE byteId;
ASCII value (1 byte within the range0x00 – 0xf)
}ITC_CUST_SYM_ID_PAIR;
209700 Series Color Mobile Computer User’s Manual
Scanner SupportChapter—6
Custom Identifier Default Settings
SymbologyDefaultValid Range
CodabarD0x00-0xFF
Code 11*0x00-0xFF
Code 39*0x00-0xFF
Code 93D0x00-0xFF
Code128/EAN 128D0x00-0xFF
EAN-80xFF0x00-0xFF
EAN-13F0x00-0xFF
Interleaved 2 of 5I0x00-0xFF
Matrix 2 of 5D0x00-0xFF
MSID0x00-0xFF
PDF 417*0x00-0xFF
PlesseyD0x00-0xFF
Standard 2 of 5D0x00-0xFF
Tel e p e n*0x00-0xFF
UPC-AA0x00-0xFF
UPC-EE0x00-0xFF
Custom Identifier Example
The following code segment is an example of updating the UPC-E and
UPC-A symbology identifiers with new values, and then retrieving the
currently defined symbology identifiers for all the supported symbologies:
eSymIdXmit[in] Identifies the symbology identifier transmission
option to update.
Return Values
HRESULT that indicates success or failure.
Remarks
None.
See Also
None.
214700 Series Color Mobile Computer User’s Manual
6Scanner Support—Chapter
Symbology ID Transmission Option
The symbology identifier (or code mark) concept provides a standardized
way for a device receiving data from a bar code reader to differentiate between the symbologies.
The following symbology ID transmission option specifies whether or not
the symbology ID should be transmitted as part of the scanned bar code
label to all the connected data collection applications. Options for transmission are: do not transmit, transmit the standard AIM identifiers, or
transmit the one byte custom defined identifiers. AIM and custom identifiers cannot be selected to be transmitted at the same time; only the last
selected option will be active.
typedef enum tagSymbologyIdXmit
{
ITC_ID_XMIT_DISABLE = 0Symbology identifier will not be transmitted as part of the
label. This is the default setting.
ITC_ID_XMIT_CUSTOM = 1Activate custom symbology identifier transmission for all
symbologies. Example of the transmitted label:
[preamble] [Custom ID] <data> [postamble]
ITC_ID_XMIT_AIM = 2Activate AIM symbology identifier transmission for all
symbologies. Example of the transmitted label:
[preamble] [AIM symbology ID] <data> [postamble]
}ITC_SYMBOLOGY_ID_XMIT;
215700 Series Color Mobile Computer User’s Manual
Scanner SupportChapter—6
IS9CConfig3 Functions
The IS9CConfig3 interface provides generic methods for retrieving and
setting configuration using ISCP commands.
ISCP Commands
An ISCP Command is composed of three or more bytes formatted as
<SG><FID><parameters> where:
S SGSetup group.
S FIDFunction ID.
S parameters One or more configuration value bytes depending on the
configuration.
ISCP commands include the following:
Imager Settings
This dictates the start and end column positions for the image dimension.
rgbCommandBuff[in, size_is]Contains ISCP commands in
array of bytes.
dwCommandBuffSize [in]Number of bytes in
rgbCommandBuff.
rgbReplyBuff[in, out, size_is]Results of request in array of
bytes.
dwReplyBuffMaxSize[in]Maximum size of rgbReplyBuff.
pdwReplyBuffSize[in, out]Number of bytes placed in
rgbReplyBuff.
Return Values
None.
Remarks
None.
See Also
None.
218700 Series Color Mobile Computer User’s Manual
6Scanner Support—Chapter
AIM Symbology ID Defaults
Refer to the official AIM documentation on symbology identifiers for full
information on the different processing options supported.
SymbologyID Character Modifier Characters
CodabarF0Standard Codabar symbol. No special processing.
1ABC Codabar (American Blood commission)
concatenate/message append performed.
2Reader has validated the check character.
4Reader has stripped the check character before transmission.
Code 11H0Single modulo 11 check character validated and transmitted.
1Two modulo 11 check characters validated and transmitted.
3Check characters validated but not transmitted.
Code 39A0No check character validation nor full ASCII processing. All data
transmitted as decoded.
1Modulo 43 check character validated and transmitted.
3Modulo 43 check character validated but not transmitted.
4Full ASCII character conversion performed. No check character
validation.
5Full ASCII character conversion performed. Modulo 43 check
character validated and transmitted.
7Full ASCII character conversion performed. Modulo 43 check
character validated but not transmitted.
Code 93G0No options specified. Always transmit 0.
Code128C0Standard data packet. No FNC1 in first or second symbol
character position after start character.
1EAN/UCC-128 data packet. FNC1 in first symbol character
position after start character.
2FNC1 in second symbol character position after start character.
4Concatenation according to International Society for Blood
Transfusion specifications was performed. Concatenated data
follows.
Interleaved 2 of 5I0No check character validation.
1Modulo 10 symbol check character validated and transmitted
3Modulo 10 symbol check character validated but not transmitted.
Matrix 2 of 5X0`F
For symbologies or symbology options not listed, a code character
with the value 0-F may be assigned by the decoder manufacturer
to identify those symbologies and options implemented in the
reader.
MSIM0Modulo 10 symbol check character validated and transmitted.
1Modulo 10 symbol check character validated but not transmitted.
L0Reader set to conform with protocol defined in 1994 PDF 417
specifications.
1Reader set to follow protocol of ENV 12925 for Extended
Channel Interpretation (all data characters 92 doubled).
2Reader set to follow protocol of ENV 12925 for Basic Channel
Interpretation (data characters 92 are not doubled).
3Code 128 emulation: implied FNC1 in first position.
4Code 128 emulation: implied FNC1 after initial letter or pair of
digits.
5Code 128 emulation: no implied FNC1.
PlesseyP0No options specified. Always transmit 0.
Standard 2 of 5
(2-bar start/stop)
R0No check character validation.
1Modulo 7 check character validated and transmitted.
3Modulo 7 check character validated but not transmitted.
Standard 2 of 5
S0No options specified. Always transmit 0.
(3-bar start/stop)
Tel e p e nB0FullASCIImode
1Double density numeric only mode
2Double density numeric followed by full ASCII
4Full ASCII followed by double density numeric
UPC/EANEConsider UPC/EAN symbols with supplements as two separate sym-
bols. The first symbol is the main data packet, and the second symbol
is the 2 or 5 digit supplement. Transmit these two symbols separately,
each with its own symbology identifier. Provision is made for the option of transmitting both symbols as a single data packet.
0Standard data packet in full EAN format (13 digits for EAN-13,
UPC-A, and UPC-E; does not include add-on data).
1Two digit add-on data only.
2Five digit add-on data only.
3Combined data packet comprising 13 digits from EAN-13,
UPC-A, or UPC-E symbol and 2 or 5 digits from add-on symbol.
4EAN-8datapacket
IMPORTANT
: The “symbology_id” character letter
be uppercase for the above definitions.
must
220700 Series Color Mobile Computer User’s Manual
IImage Inter face
6Scanner Support—Chapter
The IImage interface gives the application the capability to acquire images.
The image acquired can be either a raw image as captured by the digital
camera or it can be normalized. A normalized image is presented the same
as if the picture were taken at right angles to the image and at the same
distance. The normalized image is commonly used for signature capture
applications.
S dwStructSizeSize, in bytes, of this struct. This is for version
control.
S biWidthThe width of each row in pixels.
S biHeightThe number of rows in the image data.
S biBitCountThe number of bits per pixel.
S eFormatIdentifies the image format.
S biActualImageSizeTotal bytes of image data returned.
S biMaxImageBytesMaximum bytes that can be stored in
rgbImageData[].
S rgbImageDataBuffer containing the actual data, for example a
640x480 uses a 307200-byte buffer. The array s ize
of this buffer is arbitrary so do not use this
structure directly to reserve memory. The actual
dimension of the buffer is identified by
biMaxImageBytes.
222700 Series Color Mobile Computer User’s Manual
6Scanner Support—Chapter
Return Values
HRESULT identifying success or error. On error, the following codes will
be returned:
S S_OK
Image successfully returned.
S ITC_RESULT_ERR_BADREGION_E
The specified region is not in the image.
S ITC_RESULT_NO_BC_DECODED_E
A bar code has not yet been decoded or the last bar code decoded was
not a signature capture symbology.
S ITC_IMGBUFF_TOO_SMALL_E
pImgBuffer is too small to contain the signature captured image.
S ITC_INV_PARAMETER_E
One of the parameters is invalid.
S S_DEVICE_NOT_OPENED_E
The device had not been opened.
Remarks
ReadSigCapBuffer() will return the image from the last decoded label with
dimensions identified by the calling parameter. This signature capture
region must include the signature capture bar code. The supported bar
codes for signature capture are: PDF 417, Code 128, and Code 39. The
caller specifies the width, height, and center of the image to be retrieved.
This image is independent of any rotation of the bar code relative to the
imager. Thus, if the bar code is decoded with the code itself upside down
to the imager, the retrieved image will still be right side up. However, if
the specified image is outside the field of view a result code of
ITC_RESULT_ERR_BADREGION_E will be returned.
This function uses the dimensions of the last decoded bar code as its coordinate system. Thus, all the parameters describing the image size and position are in units called “Intelligent Bar Code Units.” An Intelligent Bar
Code Unit is equivalent to the narrow element width of the bar code.
The dimensions of the resulting image can be calculated with this formula:
pSigCapSpec[in] Pointer to the structure that identifies the signature
pszFileName[in] Name of the file in which to copy the image.
Return Values
HRESULT identifying success or error. On error, the following codes will
be returned:
S S_OK
capture region. See ReadSigCapFile (page 221) for
a description of this structure.
Image successfully returned.
S ITC_RESULT_ERR_BADREGION_E
The specified region is not in the image.
S ITC_RESULT_NO_BC_DECODED_E
A bar code has not yet been decoded or the last bar code decoded was
not a signature capture symbology.
S ITC_FILE_OPEN_E
The file could not be opened.
S ITC_INV_PARAMETER_E
One of the parameters is invalid.
S S_DEVICE_NOT_OPENED_E
The device had not been opened.
Remarks
ReadSigCapFile() will write the image from the last decoded label with dimensions identified by the calling parameter. If the file already exists, its
contents will be overwritten.
This signature capture region must include the signature capture bar code.
The supported bar codes for signature capture are: PDF 417, Code 128,
and Code 39. The caller specifies the width, height, and center of the
image to be retrieved. This image is independent of any rotation of the bar
code relative to the imager. Thus, if the bar code is decoded with the code
itself upside down to the imager, the retrieved image will still be right side
up. However, if the specified image is outside the field of view a result
code of ITC_RESULT_ERR_BADREGION_E will be returned.
This function uses the dimensions of the last decoded bar code as its coordinate system. Thus, all the parameters describing the image size and position are in units called “Intelligent Bar Code Units”. An Intelligent Bar
Code Unit is equivalent to the narrow element width of the bar code.
224700 Series Color Mobile Computer User’s Manual
6Scanner Support—Chapter
The dimensions of the resulting image can be calculated with this formula:
eFormat[in]Format of the image buffer returned as follows.
Currently, only ITC_FILE_RAW is supported.
ITC_FILE_KIM =0,// Returns data a KIM file
ITC_FILE_TIFF_BIN =1,// TIFF Binary file
ITC_FILE_TIFF_BIN_GROUP4 =2,// TIFF Binary Group 4 compressed
ITC_FILE_TIFF_GRAY_SCALE =3,// TIFF Gray Scale
ITC_FILE_RAW =4,// Raw image
ITC_FILE_JPEG =5,// JPEG image
nDepth[in]Number of bits per pixel. Currently, only eight
(gray-scale) are supported.
pImgBuffer[in/out] Pointer to the buffer containing the image.
dwTimeout[in]Milliseconds to wait for the image to be returned.
Return Values
HRESULT identifying success or error. On error, these will be returned:
S S_OKImage successfully returned.
S ITC_IMGBUFF_TOO_SMALL_E pImgBuffer is too small to contain
the signature captured image.
S ITC_TIMEOUT_ETimeout.
S ITC_INV_PARAMETER_EOne of the parameters is invalid.
S S_DEVICE_NOT_OPENED_EThe device had not been opened.
Remarks
The image is returned in pImgBuffer in the caller specified format.
See Also
None.
225700 Series Color Mobile Computer User’s Manual
Scanner SupportChapter—6
IImage::CancelReadImage
Syntax
HRESULT IImage::CancelReadImage( );
Parameters
None.
Return Values
Status code indicating success or failure as follows:
S S_OKImager closed.
S S_DEVICE_NOT_OPENED_EThe device had not been opened.
Remarks
This function causes a pending image read of IImage::ReadImage() to return immediately with an error status. The purpose of this function is to
allow the application to release a thread blocked on the ReadImage() call.
IImage::Start
See Also
None.
Syntax
HRESULT IImage::Start( );
Parameters
None.
Return Values
Status code indicating success or failure as follows:
S S_OKImager started.
S S_DEVICE_NOT_OPENED_EThe device had not been opened.
Remarks
This function starts the image continuously capturing images.
See Also
None.
226700 Series Color Mobile Computer User’s Manual
IImage::Stop
6Scanner Support—Chapter
Syntax
HRESULT IImage::Stop( );
Parameters
None.
Return Values
Status code indicating success or failure as follows:
S S_OKImager started.
S S_IMG_NOT_PRESENT_EUnit does not contain an imager.
S S_DEVICE_NOT_OPENED_EDevice had not been opened.
Remarks
This function stops the image continuously capturing images.
See Also
None.
IImage::Open
Syntax
HRESULT IImage::Open( BOOL fSigCapEnable );
Parameters
fSigCapEnable[in]When TRUE, signature capture is enabled. When
FALSE, it is disabled. Bar code labels are decoded
and images (via IImage::ReadImage) the same.
Return Values
Status code indicating success or failure as follows:
S S_OKImager opened.
S S_IMG_NOT_PRESENT_EUnit does not contain an imager.
S S_DEVICE_CONTENTION_EDevice has already been opened.
Remarks
This function exclusively allocates the imager device so that the other IImage methods can be safely called.
See Also
None.
227700 Series Color Mobile Computer User’s Manual
Scanner SupportChapter—6
IImage::Close
Syntax
HRESULT IImage::Close( );
Parameters
None.
Return Values
Status code indicating success or failure as follows:
S S_OKImager closed.
S S_DEVICE_NOT_OPENED_EThe device had not been opened.
Remarks
This function releases the imager device so that other applications can
open it. An IImage::Release() will also close the imager device.
See Also
None.
228700 Series Color Mobile Computer User’s Manual
Data Collection Configuration
Scanner settings for the 700 Series Computer can be configured via the
Data Collection control panel applet. From the 700 Series Computer, tap
Start → Settings → the System tab → the Data Collection icon. See Ap-
pendix A,“Control Panel Applets” for more information about the following
parameters. Note that these are in alphabetical order.
S Codabar (page 292)
S Code 11 (page 306)
S Code 128 (page 295)
S Code 128 Options (page 296)
S Code 128 FNC1 Character (page 297)
S Code 39 (page 290)
S Code 93 (page 294)
S Code 93 Length (page 294)
6Scanner Support—Chapter
S Data Matrix (page 308)
S Interleaved 2 of 5 (page 303)
S Matrix 2 of 5 (page 304)
S MSI (page 299)
S PDF 417 (page 300)
S Macro PDF (page 300)
S Micro PDF 417 (page 302)
S Plessey (page 298)
S QR Code (page 307)
S Standard 2 of 5 (page 291)
S Telepen (page 305)
S UPC/EAN (page 293)
229700 Series Color Mobile Computer User’s Manual
Scanner SupportChapter—6
Tethered Scanner
The Intermec Tethered Scanner feature accepts data from the COM1 port
wedges it to the keyboard interface, and allows some ADC. This feature
can be enabled or disabled from the Today Screen on the 700 Series Computer.
Enabling and Disabling
On the 700 Series Computer, tap Start → Today. Tap the bar code scan-
ner icon in the System Tray (circled in the following illustration). Initially,
the bar code scanner icon indicates that this feature is disabled (shown tothe left).
S Select Comm Port Wedge to send any data, coming into the 700 Series
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 Series
Computer desktop, information scanned with a scanner connected to
the COM1 port will appear in the Word document. If another data
collection application is running and is active on the 700 Series Computer, the scanned information will appear 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 input device is
governed by what software it has onboard to tell it how to scan, take pictures, or send the data elsewhere.
230700 Series Color Mobile Computer User’s Manual
6Scanner Support—Chapter
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 characters, so the running/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”onpage
232 for more information.
Changing Comm Settings
Tap Change Comm Settings to configure the settings for the COM1 port.
Current settings are restored after a warm-boot, but are lost after a coldboot. When these settings have not been 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,
S Data Bits:7or8
S Parity:None, Odd, Even, Mark, Space
S Stop Bits:1or2
S Flow Control: None or Hardware
Tethered Scanner
The default settings for the Tethered Scanner are shown in the following
illustration:
115200
231700 Series Color Mobile Computer User’s Manual
Scanner SupportChapter—6
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 scanner communications settings to this configuration. The COM1 port configuration settings must also match those of the scanner to scan labels.
Error Message
Scanner Cabling
Welch Allyn 1470 Imager Settings
The Welch Allyn 1470 Imager can be set to this configuration by scanning
the Factory Default Settings label.
If the COM1 port is used by another application, such as ActiveSync, neither 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
up the COM1 port before you can enable either the wedge or the scanner.
A null modem cable is required for the Welch Allyn 1470 Imager to communicate with the 700 Series Computer when using the 700 Series Serial
Cable (P/N: 226-999-001).
The Sabre 1551E / 1553 Cable connects directly to the Model 700 Comm
Port.
232700 Series Color Mobile Computer User’s Manual
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 for 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 concatenated 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.
6Scanner Support—Chapter
When enabled, the Comm Port Wedge menu option has the following
limitation:
S There is no bar code API to get bar code data from the bar code scan-
ner. The Comm Port Wedge transmits the data through the keyboard
interface only.
When enabled, the 1551/1553 menu option has the following capabilities:
S Grid Data Editing is available.
S The source of the symbology configurations is only available via the
Easy Set command labels. Only the Virtual Wedge configurations can be
configured via the Data Collection Control Panel Applet Virtual Wedge
page. See Appendix A, “Control Panel Applets,” for more information.
S May transmit the data through the keyboard interface (via the Virtual
Wedge).
233700 Series Color Mobile Computer User’s Manual
Scanner SupportChapter—6
S The bar code APIs, defined in the IADC interface, are available to get
bar code data from the bar code scanner. The following example shows
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
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);
234700 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 236)
S FTP Server (page 251)
S Full Screen (page 262)
S Kernel I/O control functions (page 264)
S Reboot Functions (page 280)
S Remapping the Keypad (page 281)
235700 Series Color Mobile Computer User’s Manual
ProgrammingChapter—7
Creating CAB Files
The Windows CE operating system uses a .CAB file to install an application 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
for your application.
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 236).
2 Optional Create a SETUP.DLL file to provide custom control of the
3 Use the CAB Wizard to create the .CAB file, using the .INF file, the
Creating an .INF File
An .INF file specifies information about an application for the CAB Wizard. Below are the sections of an .INF file:
[Version]
This specifies the creator of the file, version, and other relevant information.
Required? Ye s
S Signature:“signature_name”
S Provider:“INF_creator”
installation process (page 248).
optional SETUP.DLL file, and the device-specific application files as
parameters (page 249).
Must be “$Windows NT$” as Windows CE is not available on Windows 95.
The company name of the application, such as “Microsoft.”
This specifies string substitutions for the application name and the default
installation directory.
Required? Ye s
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.
Programming—Chapter 7
Name of the application. Other instances of %AppName% in the .INF
file will be replaced with this string value, such as RP32.
Default installation directory on the device. Other instances of %InstallDir% in the .INF file will be replaced with this string value. Example:
\storage_card\%AppName%
Required? No
S string_key:value
EXAMPLE:
[Strings]
reg_path = Software\Microsoft\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.
237700 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? Ye s
S ProcessorType :processor_type
S UnsupportedPlatforms: platform_family_name
The value that is returned by SYSTEMINFO.dwProcessorType. For
example, the value for the SH3 CPU is 10003 and the MIPS CPU is
4000.
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.ForWindowsCEJapanese language devices, set this to 2.01
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. For Windows CE Japanese
language devices, set this to 2.01
Note: Supported Windows CE operating system versions include 1.0,
1.01, 2.0, 2.01, and 2.10. When using these numbers, be sure to include
all significant digits.
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.
238700 Series Color Mobile Computer User’s Manual
Programming—Chapter 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.SH3]; Inherits all [CEDevice] settings
; This will create a .CAB file specific to SH3 devices.
ProcessorType = 10003; SH3 .cab file is valid for 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; MIPS .CAB file is valid for MIPS microprocessor.
UnsupportedPlatforms =pltfrm2; pltfrm1, pltfrm2 unsupported for MIPs .CAB file.
Note: To create the two CPU-specific .CAB files for the SETUP.INF file
in the previous example, run the CAB Wizard with the “/cpu sh3 mips”
parameter.
239700 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? Ye s
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 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.
This section describes the name and path of the disk on which your application resides.
Required? Ye s
S disk_ordinal:disk_label,,path
S CESignature:“$Windows CE$”
String that identifies files that self-register by exporting the DllRegisterServer 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.
[SourceDisksFiles.SH3]
sample.exe = 2; Uses the SourceDisksNames.SH3 identification of 2.
[SourceDisksFiles.MIPS]
sample.exe = 2; Uses the SourceDisksNames.MIPS identification of 2.
241700 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 directory
identifiers.
Required? Ye s
S file_list_section:0,subdir
String that identifies the destination directory. The following list shows
the string substitutions supported by Windows CE. These can be used
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.
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 identifies that mapping and may contain flags.
Required? Ye s
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
The numeric value that specifies an action to be done while copying files. The following table shows values supported by Windows CE.
FlagValueDescription
COPYFLG_WARN_IF_SKIP0x00000001 Warn user if skipping a file is attempted after error.
COPYFLG_NOSKIP0x00000002 Do not allow a user to skip copying a file.
COPYFLG_NO_OVERWRITE0x00000010 Do not overwrite files in destination directory.
COPYFLG_REPLACEONLY0x00000400 Copy the source file to the destination directory only if the
file is already in the destination directory.
CE_COPYFLG_NO_DATE_DIALOG0x20000000 Do not copy files if the target file is newer.
CE_COPYFLG_NODATECHECK0x40000000 Ignore date while overwriting the target file.
CE_COPYFLG_SHARED0x80000000 Create a reference when a shared DLL is counted.
Example
[DefaultInstall.SH3]
CopyFiles = Files.Common, Files.SH3
[DefaultInstall.MIPS]
CopyFiles = Files.Common, Files.MIPS
243700 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
the values supported by Windows CE.
S HKCRSame as HKEY_CLASSES_ROOT
S HKCUSame as HKEY_CURRENT_USER
S HKLMSame as HKEY_LOCAL_MACHINE
Registry value name. If empty, the “default” registry value name is used.
Numeric value that specifies information about the registry key. The
following table shows the values that are supported by Window CE.
FlagValueDescription
FLG_ADDREG_NOCLOBBER0x00000002 If the registry key exists, do not overwrite it. Can be used
with any of the other flags in this table.
FLG_ADDREG_TYPE_SZ0x00000000 REG_SZ registry data type.
FLG_ADDREG_TYPE_MULTI_SZ0x00010000 REG_MULTI_SZ registry data type. Value field that follows
can be a list of strings separated by commas.
FLG_ADDREG_TYPE_BINARY0x00000001 REG_BINARY registr y 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_DWORD0x00010001 REG_DWORD data type. The noncompatible format in the
This section, a Windows CE-specific section under the [DefaultInstall]
section, is optional and describes the shortcuts that the installation application 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
Programming—Chapter 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 nonzero 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.
[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.
[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
247700 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 operations during installation and removal of your application. The following
list shows the functions that are exported by SETUP.DLL.
S 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.
S Install_Exit
Called after installation is complete. Use this function to handle errors
that occur during application installation.
S Uninstall_Init
Called before the removal process begins. Use this function to close the
application, if the application is running.
S 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[DefaultInstall] → CESelfRegister (page 240) 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
the SETUP.DLL file. It looks like this:
The system software looks for the following directory structure and files on
the installed media card whether it be an SD card or CF card or embedded
flash file system. No other folders need exist.
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:
cd\“Windows CE Tools”\WCE211\”MS HPC Pro”\support\appinst\bin
cabwiz.exe c:\appsoft\<program>\<inf_file_name>
cd \appsoft\<program>
S “inf_file”
The SETUP.INF file path.
S dest_directory
The destination directory for the .CAB files. If no directory is specified,
the .CAB files are created in the “inf_file” directory.
S error_file
The 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.
S cpu_type
Creates a .CAB file for each specified microprocessor tag. A microprocessor tag is a label 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.
Example
This example creates .CAB files for the SH3 and MIPS microprocessors,
assuming that the Win32 SETUP.INF file contains the SH3 and MIPS
tags:
Note: CABWIZ.EXE, MAKECAB.EXE, and CABWIZ.DDF (Windows
CE files available on the Windows CE Toolkit) must be installed in the
same directory on the desktop computer. Call CABWIZ.EXE using its full
path for the CAB Wizard application to run correctly.
249700 Series Color Mobile Computer User’s Manual
ProgrammingChapter—7
Troubleshooting the CAB Wizard
To identify and avoid problems that might occur when using the CAB
Wizard, follow these guidelines:
S Use %% for a percent sign (%) character when using this character in
an .INF file string, as specified in Win32 documentation. This will not
work under the [Strings] section.
S Do not use .INF or .CAB files created for Windows CE to install ap-
plications on Windows-based desktop platforms.
S Ensure the MAKECAB.EXE and CABWIZ.DDF files, included with
Windows CE, are in the same directory as CABWIZ.EXE.
S Use the full path to call CABWIZ.EXE.
S Do not create a .CAB file with the MAKECAB.EXE file included with
Windows CE. You must use CABWIZ.EXE, which uses MAKECAB.EXE to generate the .CAB files for Windows CE.
S Do not set the read-only attribute for .CAB files.
250700 Series Color Mobile Computer User’s Manual
FTP Server
Programming—Chapter 7
FTP support is provided through the FTP Server application
FTPDCE.EXE (MS Windows CE Versions) which is provided as part the
base system.
FTPDCE is the Internet File Transfer Protocol (FTP) server process. The
server can be invoked from an application or command line. Besides servicing FTP client requests the FTP Server also send a “network announcement” to notify prospective clients of server availability.
Synopsis
ftpdce [ options ]
Options
S -Aaddr
Sets the single target address to which to send the network announcement. Default is broadcast.
S -Bbyte
Sets the FTP data b lock size. Smaller sizes may be useful over slower
links. Default is 65536.
S -Cname
Sets the device name. Used by Intermec management software.
S -Fvalue
Disables the default Intermec account. A value of “0” disables the account. Default is “1”.
Note: Disabling the default account without providing a working access
control list on the server will result in a device that will not accept any
FTP connections.
S -Hsec
Sets the interval between network announcements in seconds.A value of
“0” turns the network announcement off. Default is 30 seconds.
S -Iip
Sets the preferred 6920 Communications Server (optional).
S -Llog
Sets the state of logging. Default is 0 (disabled).
S -Nsec
Specifies the number of seconds to wait before starting FTP server services.
S -Pport
Sets the UDP port on which the network announcement will be sent.
Default port is 52401.
S -Qport
Sets the port on which the FTP Server will listen for connections.
Default port is 21.
251700 Series Color Mobile Computer User’s Manual
ProgrammingChapter—7
S -Rdir
Sets the FTP mount point to this directory. Default is the rootdirectory
of the drive from which the FTP Server program was executed.
S -Tscript
Sets the script name for the 6920 Communications Server to process.
S -Uurl
Sets the default URL for this device.
S -Z“ p arms”
Sets extended parameters to be included in the network announcement.
Configurable Parameters Via the Registry Editor
The following parameters receive default values during the installation of
the Intermec FTP Server components. A few of the parameters are visible
in the registry by default, but most must be created in order to modify the
default behavior of the FTP server.
BlockSize
Setting this parameter forces the Intermec FTP Server to transmit and receive Ethernet packets using the specified data block size. By default, the
FTP server transmits and receives data using a 64K data block size. Adjusting this value may be useful in certain wireless TCP/IP installations.
Key
HKLM\Software\Intermec\IFTP
Value Type
REG_DWORD - data block size, in bytes.
Valid Range
0x100-0x10000 (256-65536 decimal).
Default
65536
252700 Series Color Mobile Computer User’s Manual
Programming—Chapter 7
DeviceName
This parameter forces the Intermec FTP Server to include the specified
device name in the Intermec Device Network Announcement (IDNA).
Adjusting this value may be useful in assigning a symbolic name to this
device for asset tracking.
Key
HKLM\Software\Intermec\IFTP
Value Type
REG_SZ
Valid Range
None.
Default
None.
DeviceURL
This parameter forces the Intermec FTP Server to transmit the specified
URL in the IDNA. This can be used by Intermec management software
for asset management.
Key
HKLM\Software\Intermec\IFTP
Value Type
REG_SZ
Valid Range
None.
Default
None.
253700 Series Color Mobile Computer User’s Manual
ProgrammingChapter—7
IDNATarget
This parameter forces the Intermec FTP Server to transmit the IDNA to a
specific destination instead of a general UDP broadcast. This parameter is
useful on networks that do not allow UDP broadcasts to be routed between subnets. The use of this parameter will restrict the reception of the
IDNA to the target destination only.
Key
HKLM\Software\Intermec\IFTP
Value Type
REG_SZ
Valid Range
None.
Default
None.
ManifestName
This parameter forces the Intermec FTP Server to transmit the specified
manifest name in the IDNA. This parameter is used by the Intermec 6920
Communications Server for communication transactions. See the 6920
Communications Server documentation for proper use of this parameter.
Key
HKLM\Software\Intermec\IFTP
Value Type
REG_SZ
Valid Range
None.
Default
iftp.ini
254700 Series Color Mobile Computer User’s Manual
Programming—Chapter 7
PauseAtStartup
This parameter forces the Intermec FTP Server to sleep for the specified
number of seconds before making the FTP service available on the device.
Key
HKLM\Software\Intermec\IFTP
Value Type
REG_DWORD - stored in seconds.
Valid Range
None.
Default
0
Root
This parameter forces the Intermec FTP Server to set the root of the FTP
mount point to the specified value. Note that this must map to an existing
directory or you will not be able to log into the FTP Server.
Key
HKLM\Software\Intermec\IFTP
Value Type
REG_SZ
Valid Range
None.
Default
\
255700 Series Color Mobile Computer User’s Manual
ProgrammingChapter—7
Transferring Files Over TCP/IP Networks
The File Transfer Protocol (FTP) server transfers files over TCP/IP networks. The FTPDCE.EXE program is a version that does not display a
window, but can run in the background.
FTPDCE is the Internet File Transfer Protocol (FTP) server process. The
server can be invoked from an application or command line. Besides servicing FTP client requests, the FTP Server also sends a “network announcement” to notify prospective clients of server availability.
Remarks
The FTP Server currently supports the following FTP requests:
S CDUP
Changes to the parent directory of the current working directory.
S CWD
Changes working directory.
S DELE
Deletes a file.
S HELP
Gives help information.
S LIST (This FTP request is the same as the ls -lgA command).
Gives list files in a directory.
S MKD
Makes a directory.
S MODE (Always Uses Binary).
Specifies data transfer mode.
S NLST
Gives a name list of files in directory (this FTP request is the same as
the ls command).
S NOOP
Does nothing.
S PASS
Specifies a password.
S PWD
Prints the current working directory.
S QUIT
Terminates session.
S RETR
Retrieves a file.
S RMD
Removes a directory.
S RNFR
Specifies rename-from file name.
256700 Series Color Mobile Computer User’s Manual
S RNTO
Specifies rename-to file name.
S STOR
Stores a file.
S SYST
Shows the operating system type of server system.
S TYPE (Binary transfers only.)
Specifies the data transfer type with the Type parameter.
S USER
Specifies user name.
S XCUP (Not Normally Used)
Changes the parent directory of the current working directory.
S XCWD (Not Normally Used)
Changes the current directory.
S XMKD (Not Normally Used)
Creates a directory.
Programming—Chapter 7
S XPWD (Not Normally Used)
Prints the current working directory.
S XRMD (Not Normally Used)
Removes a directory.
S SITE
The following nonstandard or operating system (OS)-specific commands are supported by the SITE request. For Microsoft FTP clients,
you can send site commands by preceding the command with “quote”
such as “quote site status.”
S ATTRIB
Gets or sets the attributes of a given file. (SITE ATTRIB)
Usage:QUOTE SITE ATTRIB [+R | -R][+A | -A ][+S | -S]
[+H | -H][[path] filename]
+Sets an attribute.
`Clears an attribute.
RRead-only file attribute.
AArchive file attribute.
SSystem file attribute.
HHidden file attribute.
To retrieve the attributes of a file, only specify the file. The server response will be: 200-AD SHRCEIX filename
If the flag exists in its position shown above, it is set. Also, in addition
to the values defined above, there is also defined:
CCompressed file attribute.
EEncrypted file attribute.
IINROM file attribute.
XXIP file attribute (execute in ROM, not shadowed in RAM).
257700 Series Color Mobile Computer User’s Manual
ProgrammingChapter—7
S BOOT
Reboots the server OS. This will cause the system on which the server is executing to reboot. The FTP Server will shut down cleanly before reboot. All client connections will be terminated. Cold boot is
default except for the PocketPC build in which the default is warm
boot.
(SITE BOOT)
Usage:QUOTE SITE BOOT [ WA RM | COLD]
S COPY
Copies a file from one location to another. (SITE COPY)
Usage:QUOTE SITE COPY [source][destination]
Example
QUOTE SITE COPY ‘\Storage Card\one.dat’ ‘\Storage
Card\two.dat’
S EXIT
Exits the FTP Server. This command will shut down the FTP Server
thus terminating all client connections. (SITE EXIT)
Usage:QUOTE SITE EXIT
S HELP
Gives site command help information. (SITE HELP)
Usage:QUOTE SITE HELP [command]
S KILL
Terminates a running program. (SITE KILL)
Usage:QUOTE SITE KILL [program | pid]
S LOG
Opens or closes the program log. (SITE LOG)
Usage:QUOTE SITE LOG [open [filename]| close]
S PLIST
Lists the running processes (not supported on all platforms).
(SITE PLIST)
Usage:QUOTE SITE PLIST
S RUN
Starts a program running. If the program to run has spaces in path or
filename, wrapping the name with single quotes is required.
Usage:QUOTE SITE RUN [program]
Example
QUOTE SITE RUN ‘\Storage Card\app.exe’
258700 Series Color Mobile Computer User’s Manual
Programming—Chapter 7
S STATUS
Returns the current settings of the FTP Server. MAC, serial number,
model, IP address, network announcement information as well as OS
memory usage are returned. (SITE STATUS)
Usage:QUOTE SITE STATUS
S TIMEOUT
Toggles idle timeout between 120 to 1200 seconds (2 to 20 minutes).
If this timer expires with no activity between the client and the server,
the client connection will be disconnected. If the optional seconds
argument is supplied, the server will set the connection timeout to
the number of seconds specified. Default is 120 seconds or 2 minutes.
(SITE TIMEOUT)
Usage:QUOTE SITE TIMEOUT [seconds]
The remaining FTP requests specified in RFC 959 are recognized, but not
implemented.
The banner returned in the parenthetical portion of its greeting shows the
version number of the FTP Server as well as the MAC address, serial number and OS of the machine hosting the server.
The FTP Server supports browsing from the latest Netscape and Microsoft
web browsers. Drag-and-drop capability is available using this environment.
The FTPDCMDS subdirectory contains commands that can be used from
the web browser.
S Click EXITME.BIN to execute a SITE EXIT command.
S Click REBOOTME.BIN to execute SITE BOOT command.
S Use the GET command on these files to have the FTP Server execute
these commands.
S Security:
A customer configurable access control list may be installed on the
700 Series Computer. This list will allow customers to restrict access
via the FTP Server to the users they wish. This is in addition to the
default Intermec account which can be disabled using the -F0 option
at runtime.
The access control list is named FTPDCE.TXT and is placed in the
same directory on the 700 Series Computer as the FTPDCE.EXE
server. The FTP Server will encrypt this file to keep the information
safe from unauthorized users. This file is encrypted when the FTP
Server is started so a file that is placed onto the 700 Series Computer
after the FTP Server starts will require a restart of the FTP Server to
take effect.
Note: The user accounts and passwords are case sensitive.
Once the access control list is encrypted on the 700 Series Computer, the
FTP Server will hide this file from users. Once an access control list has
been installed on the 700 Series Computer, a new one will not be accepted
by the FTP Server until the previous one is removed.
Encrypted access control lists are not portable between 700 Series Computers.
Stopping the FTP Server from Your Application
To allow application programmers the ability to programmatically shut
down the FTP Server, the FTP Server periodically tests to see if a named
event is signaled. The name for this event is “ITC_IFTP_STOP” (no
quotes).
For examples on how to use this event, consult the Microsoft Developer
Network Library at http://www.msdn.com. The MSDN Library is an essential resource for developers using Microsoft tools, products, and technologies. It contains a bounty of technical programming information, including sample code, documentation, technical articles, and reference guides.
Autostart FTP
This automatically starts the FTP Server (FTPDCE.EXE) when the 700
Series Computer is powered on. This is provided with the NDISTRAY
program, which displays the popup menu that currently allows you to load
and unload the network drivers. Tap the antenna icon in the System Tray
of the Today screen (a sample antenna icon is circled below) to get this pop-
up menu.
260700 Series Color Mobile Computer User’s Manual
Programming—Chapter 7
The default is to start the FTP Server at boot time, unless the following
registry entry is defined and set to “0” which disables AutoFTP. “1” enables
the AutoFTP. The entry can be set from the NDISTRAY pop-up menu by
selecting either AutoFTP On or AutoFTP Off.
These new entries are located below the selections to load the network
drivers. If the StartupIFTP registry key is not defined, the FTP Server is
loaded by default, to provide “out-of-the-box” capability for customers
who want to begin loading files to the 700 Series Computer without any
prior configuration.
Note: If a network driver is unloaded using the NDISTRAY popup menu,
and the FTP Server is running, the FTP Server is stopped.
On a resume, if AutoFTP is enabled and the FTP Server is running, it is
stopped and restarted. NDISTRAY uses a helper application named RESETIFTP to implement the restart on resume feature. To do an AutoFTP
Installation Check:
1 Ensure the FTP Server is running “out-of-the-box” the first time.
2 Ta p Start → Today to access the Today screen, then tap the antenna
icon in the System Tray to bring up the NDISTRAY pop-up menu.
Select AutoFTP Off to disable AutoFTP. Do a warm boot and confirm
the FTP Server is not running.
3 Ta p Start → Today to access the Today screen, then tap the antenna
icon in the System Tray to bring up the NDISTRAY pop-up menu.
Select AutoFTP On to enable AutoFTP, reboot and confirm it is
running.
4 Unload the network driver when the FTP Server is running and confirm
that it is not running any more.
5 Load the FTP Server, establish a connection, then suspend and resume.
The server should still be running, but the FTP connection to the client
should be dropped.
261700 Series Color Mobile Computer User’s Manual
ProgrammingChapter—7
Full Screen
Pocket PC is a hardware specification created by Microsoft Corporation.
Devices that wish to carry the Pocket PC logo must meet the minimum
hardware requirements set in the Pocket PC specification. Manufacturers
are free to add extra hardware functionality.
Pocket PC 2002 devices also use a specialized version of the CE operating
system. This OS is built from Windows CE 3.0 but contains customizations, most notably the lack of a desktop and the addition of the Today
Screen.
To carry the Pocket PC logo, all devices must be tested at an Independent
Test Laboratory. The ITL testing is done based on Microsoft requirements.
The test lab then reports the findings back to Microsoft Corporation and
Intermec Technologies. If the 700 Series Computer passed all tests, Intermec is allowed to ship the device with the Pocket PC logo. Each time the
operating system is modified, Intermec must resubmit to ITL testing.
This means we cannot change the operating system much and still be a
Pocket PC device. For example, if we remove Word from the Start menu,
the device would fail ITL testing and we would not be able to ship devices
with the P ocket PC logo.
Although many customers want a Pocket PC device, some customers
would prefer that their users not have access to all of the Pocket PC features. Intermec cannot customize the operating system in any way but a custom application can:
S Delete items from the Start menu, and Programs folder. These items are
just shortcuts in the file system so the application is not really being
deleted. Cold booting the device will bring these items back so the application will need to be run on every cold boot.
S Use the RegFlushKey() API to save a copy of the registry to a storage
device. See the Recovery CD Help for more information on how to do
this. Saving a copy of the registry will allow most system settings to be
restored in a cold boot situation.
S Use the SHFullScreen() API in conjunction with other APIs to make the
application take up the entire display and prevent the start menu from
being available.
S Remap keys and disable keys on the keypad.
S Create a custom SIP.
S Make changes to the registry to configure the device.
262700 Series Color Mobile Computer User’s Manual
Programming—Chapter 7
Should you want your 700 Series Computer to display a full screen, keep
in mind that your computer is Pocket-PC certified by Microsoft Corporation. Check out resources on programming for the Pocket PC, using the
following links. These instructions give full instructions on how to display
full screen.
S Instructions on how to create a full screen application for eVC++ ap-
This describes the KernelIoControl() functions available to application
programmers. Most C++ applications will need to prototype the function
as the following to avoid link and compile errors.
lpOutBufMust point to a buffer large enough to hold the return
data of the function. If SPI_GETPLATFORMTYPE is
specified in lpInBuf, then the “PocketPC\0” Unicode
string is returned. If SPI_GETOEMINFO is specified in
lpInBuf, then the “Intermec 700\0” Unicode string is
returned.
nOutBufSizeThe size of lpOutBuf in bytes. Must be large enough to
hold the string returned.
lpBytesReturnedThe actual number of bytes returned by the function for
the data requested.
Return Values
Returns TRUE if function succeeds. Returns FALSE if the function fails.
GetLastError() may be used to get the extended error value.
lpInBufPoints to this structure. See “ID Field Values”below.
struct PARMS {
BYTE id;
BYTE ClassId;
};
nInBufSizeMust be set to the size of the PARMS structure.
lpOutBufMust point to a buffer large enough to hold the return
Programming—Chapter 7
data of the function. If this field is set to NULL and
nOutBufSize is set to zero when the function is called the
function will return the number bytes required by the
buffer.
nOutBufSizeThe size of lpOutBuf in bytes.
lpBytesReturnedThe number of bytes returned by the function for the
data requested.
Return Values
Returns TRUE if function succeeds. Returns FALSE if the function fails.
GetLastError() may be used to get the error value. Either
ERROR_INVALID_PARAMETER or
ERROR_INSUFFICIENT_BUFFER may be returned when this function
is used to get the error.
ID Field Values
The id field of the PARMS structure may be one of the following values:
S ITC_NVPARM_ETHERNET_ID
This IOCTL returns the Ethernet 802.11 MAC Address. Six bytes are
returned in the buffer pointed to by the lpOutBuffer parameter.
S ITC_NVPARM_SERIAL_NUM
This IOCTL returns the serial number of the device in BCD format.
Six bytes are returned in the buffer pointed to by the lpOutBuffer parameter.
S ITC_NVPARM_MANF_DATE
This IOCTL returns the device date of manufacture in the
BCD YYYY/MM/DD format. Four bytes are returned in the buffer
pointed to by the lpOutBuffer parameter.
265700 Series Color Mobile Computer User’s Manual
ProgrammingChapter—7
S ITC_NVPARM_SERVICE_DATE
This IOCTL returns the device’ s date of last service in BCD YYYY/
MM/DD format. Four bytes are returned in the buffer pointed to by
the lpOutBuffer parameter.
S ITC_NVPARM_DISPLAY_TYPE
This IOCTL returns the device’ s display type. One byte is returned in
the buffer pointed to by the lpOutBuffer parameter.
S ITC_NVPARM_EDG_IP
This IOCTL returns the device Ethernet debug IP address. Four bytes
are returned in the buffer pointed to by the lpOutBuffer parameter.
S ITC_NVPARM_EDBG_SUBNET
This IOCTL returns the device Ethernet debug subnet mask. Four bytes are returned in the buffer pointed to by the lpOutBuffer parameter.
S ITC_NVPARM_ECN
This IOCTL returns ECNs applied to the device in a bit array format.
Four bytes are returned in the buffer pointed to by the lpOutBuffer parameter.
S ITC_NVPARM_CONTRAST
This IOCTL returns the device default contrast setting. Two bytes are
returned in the buffer pointed to by the lpOutBuffer parameter.
S ITC_NVPARM_MCODE
This IOCTL returns the manufacturing configuration code for the device. Sixteen bytes are returned in the buffer pointed to by the lpOut-Buffer parameter.
S ITC_NVPARM_VERSION_NUMBER
This IOCTL returns the firmware version for various system components. These values for the ClassId field of the PARMS structure are allowed when ITC_NVPARM_VERSION_NUMBER is used in the id
field:
S VN_CLASS_KBD
Returns a five-byte string, including null terminator, that contains an
ASCII value which represents the keyboard microprocessor version in
the system. The format of the string is x.xx with a terminating null
character.
S VN_CLASS_ASIC
Returns a five-byte string, including null terminator, that contains an
ASCII value which represents the version of the FPGA firmware in
the system. The format of the string is x.xx with a terminating null
character.
S VN_CLASS_BOOTSTRAP
Returns a five-byte string, including null terminator, that contains an
ASCII value which represents the version of the Bootstrap Loader
firmware in the system. The format of the string is x.xx with a terminating null character.
266700 Series Color Mobile Computer User’s Manual
Programming—Chapter 7
S ITC_NVPARM_INTERMEC_SOFTWARE_CONTENT
This IOCTL reads the manufacturing flag bits from the non-volatile
data store that dictates certain software parameters. A BOOLEAN
DWORD is returned in the buffer pointed to by lpOutBuffer that indicates if Intermec Content is enabled in the XIP regions. TRUE indicates
that it is enabled. FALSE indicates that it is not enabled.
S ITC_NVPARM_ANTENNA_DIVERSITY
This IOCTL reads the state of the antenna diversity flag. A BOOLEAN
DWORD is returned in the buffer pointed to by lpOutBuffer that indicates if there is a diversity antenna installed. TRUE indicates that it is
installed. FALSE indicates that it is not installed.
S ITC_NVPARM_WAN_RI
This IOCTL reads the state of the WAN ring indicator flag. A BOOLEAN DWORD is returned in the buffer pointed to by lpOutBuffer that
indicates the polarity of the WAN RI signal. TRUE indicates active
high. FALSE indicates active low.
S ITC_NVPARM_RTC_RESTORE
This IOCTL reads the state of the real-time clock restore flag. A
BOOLEAN DWORD is returned in the buffer pointed to by lpOutBuf-fer. TRUE indicates that the RTC will be restored upon a cold boot.
FALSE indicates that the RTC will not be restored.
S ITC_NVPARM_INTERMEC_DATACOLLECTION_SW
This IOCTL reads the state of the data collection software enabled flag.
A BOOLEAN DWORD is returned in the buffer pointer to by lpOut-Buffer that indicates the data collection software is to be installed at boot
time. FALSE indicates the data collection software should not be
installed.
S ITC_NVPARM_INTERMEC_DATACOLLECTION_HW
This IOCTL reads the data collection hardware flags. A BYTE is returned in the buffer pointer to by lpOutBuffer that indicates the type of
data collection hardware installed. The maximum possible value returned is ITC_DEVID_SCANHW_MAX.
S ITC_DEVID_SCANHW_NONE
No scanner hardware is installed.
S ITC_DEVID_OEM2D_IMAGER
OEM 2D imager is installed.
S ITC_DEVID_INTERMEC2D_IMAGER
Intermec 2D imager is installed.
S ITC_DEVID_SE900_LASER
SE900 laser is installed.
S ITC_DEVID_SE900HS_LASER
SE900HS laser is installed.
The high bit indicates whether the S6 scanning engine is installed. The
bit mask for this is ITC_DEVID_S6ENGINE_MASK. A non-zero value indicates that the S6 scanning engine is installed.
267700 Series Color Mobile Computer User’s Manual
ProgrammingChapter—7
S ITC_NVPARM_WAN_INSTALLED
This IOCTL reads the state of the WAN radio installed flag. A BOOLEAN DWORD is returned in the buffer pointed to by lpOutBuffer.
TRUE indicates that the WAN radio is installed. FALSE indicates that
no WAN radio is installed.
S ITC_NVPARM_WAN_FREQUENCY
This IOCTL reads the state of the WAN radio frequency flag. A
BOOLEAN DWORD is returned in the buffer pointed to by lpOutBuf-fer. TRUE indicates that the WAN radio frequency is United States.
FALSE indicates that the WAN radio frequency is European.
S ITC_NVPARM_WAN_RADIOTYPE
This IOCTL reads the WAN radio ID installed by manufacturing. A
BYTE is returned in the buffer pointer to by lpOutBuffer which indicates the type of WAN radio hardware installed. The maximum possible
value returned is ITC_DEVID_WANRADIO_MAX. The current definitions are:
S ITC_DEVID_WANRADIO_NONE
No WAN radio installed.
S ITC_DEVID_WANRADIO_SIERRA_SB555
CDMA Sierra Wireless radio.
S ITC_DEVID_WANRADIO_XIRCOM_GEM3503
GSM/GPRS Intel (Xircom) radio.
S ITC_DEVID_WANRADIO_SIEMENS_MC45
GSM/GPRS Siemens radio.
S ITC_NVPARM_80211_INSTALLED
This IOCTL reads the state of the 802.11b radio installed flag. A
BOOLEAN DWORD is returned in the buffer pointed to by lpOutBuf-fer. TRUE indicates that the 802.11b radio is installed. FALSE indicates
that no 802.11b radio is installed.
S ITC_NVPARM_80211_RADIOTYPE
This IOCTL reads the 802.11b radio ID installed by manufacturing. A
BYTE is returned in the buffer pointer to by lpOutBuffer that indicates
the type of 802.11b radio hardware installed. The maximum possible
value returned is ITC_DEVID_80211RADIO_MAX. The current definitions are:
S ITC_DEVID_80211RADIO_NONE
No 802.11b radio installed.
S ITC_DEVID_80211RADIO_INTEL_2011B
Intel 2011B radio installed.
S ITC_NVPARM_BLUETOOTH_INSTALLED
This IOCTL reads the state of the Bluetooth radio installed flag. A
BOOLEAN DWORD is returned in the buffer pointed to by lpOutBuf-fer. TRUE indicates that the Bluetooth radio is installed. FALSE indicates that no Bluetooth radio is installed.
268700 Series Color Mobile Computer User’s Manual
Programming—Chapter 7
S ITC_NVPARM_SERIAL2_INSTALLED
This IOCTL reads the state of the serial 2 (COM2) device installed
flag. A BOOLEAN DWORD is returned in the buffer pointed to by
lpOutBuffer. TRUE indicates that the serial 2 device is installed. FALSE
indicates that no serial 2 device is installed.
S ITC_NVPARM_VIBRATE_INSTALLED
This IOCTL reads the state of the vibrate device installed flag. A
BOOLEAN DWORD is returned in the buffer pointed to by lpOutBuf-fer. TRUE indicates that the vibrate device is installed. FALSE indicates
that no vibrate device is installed.
S ITC_NVPARM_LAN9000_INSTALLED
This IOCTL reads the state of the Ethernet device installed flag. A
BOOLEAN DWORD is returned in the buffer pointed to by lpOutBuf-fer. TRUE indicates that the Ethernet device is installed. FALSE indicates that no Ethernet device is installed.
S ITC_NVPARM_SIM_PROTECT_HW_INSTALLED
This IOCTL reads the state of the SIM card protection hardware
installed flag. A BOOLEAN DWORD is returned in the buffer pointed
to by lpOutBuffer. TRUE indicates that the SIM card protection hard-
ware is installed. FALSE indicates that no SIM card protection hardware
is installed.
S ITC_NVPARM_SIM_PROTECT_SW_INSTALLED
This IOCTL reads the state of the SIM card protection software
installed flag. A BOOLEAN DWORD is returned in the buffer pointed
to by lpOutBuffer. TRUE indicates that the SIM card protection soft-
ware is installed. FALSE indicates that no SIM card protection s oftware
is installed.
lpInBufA single byte that may be one of the id values.
nInBufSizeMust be set to the size of the lpInBuf in bytes.
lpOutBufMust point to a buffer large enough to hold the data to
nOutBufSizeThe size of lpOutBuf in bytes.
See “ID Field Values”below.
be written to the non-volatile data store.
lpBytesReturnedThe number of bytes returned by the function.
Return Values
Returns TRUE if function succeeds. Returns FALSE if the function fails.
GetLastError() may be used to get the error value. Either
ERROR_INVALID_PARAMETER or
ERROR_INSUFFICIENT_BUFFER may be returned when this function
is used to get the error.
ID Field Values
The id field of lpInBuf may be one of the following values:
S ITC_REGISTRY_LOCATION
This IOCTL sets the default location for where to write the registry
when RegFlushKey() is called by an application. The registry may be
saved to Flash, a CompactFlash storage card or a SecureDigital storage
card. lpOutBuf must point to a buffer that contains a byte value of “1”
for the CompactFlash card or “2” for the SecureDigital card to specify
the location.
S ITC_REGISTRY_SAVE_ENABLE
This function enables or disables the save registry to non-volatile media
feature of the RegFlushKey() function. lpOutBuf must be set to zero
(FALSE) if the feature is to be disabled or one (TRUE) if the feature is
to be enabled.
S ITC_ DOCK_SWITCH
This IOCTL sets a position of the dock switch. The dock switch may
be set to either “modem” or “serial” positions. lpOutBuf must point to a
buffer that contains a byte value of either DOCK_MODEM or
DOCK_SERIAL as defined in OEMIOCTL.H; the value specifies the
position the switch is to be set.
270700 Series Color Mobile Computer User’s Manual
Programming—Chapter 7
S ITC_ WAKEUP_MASK
This IOCTL sets a bit mask that represents the mask for the five programmable wakeup keys. The I/O key is not a programmable wakeup
key. By default it is always the system resume key and all other keys are
set to disable key wakeup. A zero in a bit position masks the wakeup for
that key. A one in a bit position enables wakeup for that key. lpOutBuf
must point to a buffer that contains a byte value of a wakeup mask consisting of the OR’ ed constants as defined in OEMIOCTL.H. Only the
following keys are programmable as wakeup events.
This IOCTL sets the threshold for the keyboard ambient sensor. This
can be a value from 0 (always off ) to 255 (always on). lpOutBuf must
point to a buffer that contains a byte value of the desired setting.
S ITC_AMBIENT_FRONTLIGHT
This IOCTL sets the threshold for the frontlight ambient sensor. This
can be a value from 0 (always off ) to 255. lpOutBuf must point to a
buffer that contains a byte value of the desired setting.
271700 Series Color Mobile Computer User’s Manual
ProgrammingChapter—7
IOCTL_HAL_GET_DEVICEID
This IOCTL returns the device ID. There are two types of device IDs supported, which are differentiated based on the size of the output buffer. The
UUID is returned if the buffer size is set to sizeof(UNIQUE_DEVICEID),
otherwise the oldstyle device ID is returned.
lpInBufShould point to a CPUIdInfo structure defined in
OEMIOCTL.H.
lpInBufSizeShould be sizeof(CPUIdInfo).
lpOutBufShould be NULL.
nOutBufSizeShould be set to 0.
lpBytesReturnedReturns sizeof(PROCESSOR_INFO);
Return Values
Returns TRUE if function succeeds. Returns FALSE if the function fails.
GetLastError() may be used to get the extended error value.
Reboot Func tions
There are several methods, via Kernel I/O Control functions, that an application program can use to force the 700 Series Computer to reboot.
IOCTL_HAL_REBOOT
IOCTL_HAL_REBOOT performs a warm -boot. See page 278.
IOCTL_HAL_COLDBOOT
Invoking the KernelIOControl function with
IOCTL_HAL_COLDBOOT forces a cold reboot. This resets the 700
Series Computer and reloads Windows CE as if a power-up had been
performed. The contents of the Windows CE RAM-based object store are
discarded. See page 275.
IOCTL_HAL_WARMBOOT
This function is supported on the 700 Series Computers. It performs a
warm boot of the system, preserving the object store. See page 275.
280700 Series Color Mobile Computer User’s Manual
Loading...
+ hidden pages
You need points to download manuals.
1 point = 1 manual.
You can buy points or you can get point for every manual you upload.