INTERMEC Bluetooth™ Resource Kit V3.45



Bluetooth is a trademark owned by Bluetooth SIG, Inc., U.S.A.









Ver #



  1. Added support for the Intermec CN51 Windows Embedded Handheld Computer.
  2. IBT_GetConnectable and IBT_GetDiscoverable return ERROR_SUCCESS when finishing successfully. A return value of ERROR_SERVICE_NOT_ACTIVE indicates that the hardware is not inserted or that the Bluetooth stack is not present. When the Bluetooth stack is not present, both of these functions return -1 instead of ERROR_SERVICE_NOT_ACTIVE.


  1. Added support for the Intermec CV41 CE 6.0 computer.
  2. Added support for the Intermec CV61 Windows XP & Windows 7 computers.
  3. Added support for the Intermec CV41 WES computer.
  4. Added support for CK3R and CK3X Windows Mobile Computer.
  5. Added support for Ci70 Windows Mobile Computer.


  1. An error can occur when you try to install Intermec software (such as IDL Resource Kits) using an invalid version of agent.exe.  Agent.exe is part of Intermec's 3rd-party software update system called FLEXnet Connect – more commonly known as Intermec Update. Several Intermec Software components utilize FLEXnet Connect, such as SmartSystems, All IDL Resource Kits and Toolkits, DEX Toolkit and Verdex. This error may also occur if any 3rd party software utilizing version newer than v6 of FLEXnet Connect has been installed on your system.  .  If you encounter an error similar to: “"The file 'agent.exe.4747EFCD_A8CE_4016_80F6_BCAD9FE72' is not marked for installation." please contact Product Support or Developer Support.


  1. Added support for CS40 and 70 Series devices.


  1. Add support for CN50 Mobile Computer.


  1. Add support for Visual Studio 2008:
    1. Add a component for Compact Framework v3.5.
    2. Add Visual Studio 2008 solutions for Examples.
  2. Deprecate support for Visual Studio .NET 2003 and Compact Framework 1.0.
  3. Update example BDUSample:
    1. Add a user interface.
    2. Call function TestDevice so the user sees that the device is activated.
    3. Use the XML file installed by PSWDM0C.CAB.
  4. Fix Bluetooth Device Utility:
    1. Symptom: BondWithDevice and ITC_BondWithDevice fail if a Passkey is not set for a device when <Security enabled=”Y” strict=”N”/>. The User’s Guide indicates that the default Passkey dialog for the Bluetooth stack should display in this case.
    2. Symptom: The tab order is wrong in the utility program when using Picture Buttons. (CEDev00028193)
    3. Symptom: The Version tab is missing when viewing file properties for pswdm0cdll.dll. (CEDev00024709)
    4. Symptom: AddDevice allows duplicate device addresses if the addresses differ only by case. (CEDev00028680)


  1. Add support for Windows Mobile 6.
  2. Add support for Intermec platform SDK ITC_CE5.0.
  3. Bluetooth Device Utility: Update the program icon to replace the opposite arrows with gears because the Bluetooth SIG uses opposite arrows to designate file transfer, and the Bluetooth Device Utility is a setup utility, not a file transfer utility.


  1. Add support for Intermec Update, which provides automatic notification of updates for Intermec software. You can also manually check for updates via a shortcut added to the Windows Start menu.
  2. Add btcc.exe and SetPrinter.exe.
  3. Add examples Multiblue and Bluetooth Audio.
  4. Intermec Bluetooth API: Add IBT_GetPower, IBT_SetPrinter and IBT_UpdateName.
  5. Verify Windows Mobile 5.0 deliverables for Bluetooth Device Utility on 7x1, CK32, CN3 and CV30.
  6. Verify Windows CE 5.0 deliverables for Bluetooth Device Utility on CV30.
  7. Add device type Scanner to the default XML file in the Bluetooth Device Utility CV60 CAB file.
  8. Fix Bluetooth Device Utility API:
    1. Symptom: On the CK60 with CE 5.0, ITC_TestDevice for a scanner fails frequently.
    2. Symptom: If an application uses scanner group "BTScanners" and makes SF51 settings changes, and then the user runs the Bluetooth Device Utility, the settings changes incorrectly propagate to all scanners.
    3. Symptom: For a PB42, SendDeviceProperties (.NET) and ITC_SendDeviceProperties (C++) sometimes fail with error 0xc160030: SSAPI timeout.
    4. Symptom: For a PB42, SendDeviceProperties (.NET) and ITC_SendDeviceProperties (C++) fail to change properties Discoverable, Authentication, and Encryption.
    5. Symptom: If ReadDeviceProperties (.NET), SendDeviceProperties (.NET), ITC_ReadDeviceProperties (C++) or ITC_SendDeviceProperties (C++) is called for a PB42 that is not connectable, two temporary files are not removed from \Application Data\Volatile (or \Temp on some computers).
    6. Symptom: After calling SendDeviceProperties (.NET) or ITC_SendDeviceProperties (C++) for a PK80 with security enabled, IsBondWithDeviceNeeded (.NET) and ITC_IsBondWithDeviceNeeded (C++) return FALSE but should return TRUE because the PK80 clears its bonding information when it restarts after processing a configuration command.
    7. Symptom: When logging is enabled and set to level="trace" the log contains "ITC_InitializeDeviceUtility: IBT_On failed 0" or "BthSetMode failed 0". (CEDev00021302)
      Fix: Change "failed" to "returned".
    8. Symptom: Memory leak in TestDevice (.NET) and ITC_TestDevice (C++) if XML element Test is not empty.
  9. Fix Bluetooth Device Utility program:
    1. Symptom: On the Properties screen, if the Prev/Next button is tapped to get to the first/last item, the button gets disabled and the user cannot use the tab key to navigate to other controls.
    2. Symptom: On the Properties screen, if you select the “All devices” list item, tap Send and select “All changes”, any properties that were not set for “All devices” are incorrectly inherited from the preceding device in the list.
    3. Symptom: With V1.08, when using Picture Buttons and FullScreen mode, the buttons on the Device Selection, Add/Remove and Properties screens are mostly off the bottom of the screen. After returning from another screen, the buttons are not visible at all.


  1. Separate IDL into individual Resource Kit installs.


  1. Bluetooth Device Utility: Add support for landscape orientation in Windows Mobile 5.0.
  2. Fix Bluetooth Device Utility:
    1. Symptom: If literals are specified in the XML file for the Test button on the Device Selection screen, or the Send button on the Properties screen, the button reverts back to its default text after the button is pressed.
    2. Symptom: When FullScreen mode is enabled, Security is disabled, and a device is selected that has security enabled, the default Passcode dialog for the Bluetooth stack is displayed but is immediately covered up by the BDU screen.
    3. Symptom: When FullScreen mode is enabled and the SIP is displayed, if the user switches to another program using the A1 - A4 buttons then returns to the BDU, the SIP is not redisplayed.
    4. Symptom: If the user selects None for a DCE Scanner and presses Test, the program aborts.


  1. Bluetooth Device Utility: Add support for the WPort registry value used in the latest Intermec shared Bluetooth integrations in place of WPPort.
  2. User’s Guide: Add topic "Handling Suspend/Resume (Microsoft Bluetooth stack)" in Chapter 3: Writing Your Own Bluetooth Application, Suggestions for Developers.
  3. User’s Guide: Add link to white paper "Is Intermec’s Bluetooth Device Utility Right for Me?" to the Overview page of the Bluetooth Device Utility User's Guide.
  4. Fix Bluetooth Device Utility:
    1. Symptom: The VS2003 Toolbox component doesn’t automatically add a Reference to the project for the assembly. (CEDev00012863).
    2. Symptom: If a PB42 device name is changed outside of the BDU, the Properties screen does not display the new name in the “New name” field.


  1. Add example wp_sample_full, an XP version of the wireless printing sample.
  2. Bluetooth Device Utility new features:
    1. Add .NET assemblies for Visual Studio 2005.
    2. The .NET component now installs into the Visual Studio Toolbox.
    3. Add support for PB42.
  3. Fix Bluetooth Device Utility:
    1. Symptom: With newer IVA versions, performing a Test of an SF51 triggers a Passkey prompt every time the scanner is turned on. The first prompt is the BDU Bonding dialog, and subsequent prompts are the default dialog for the Bluetooth stack. The user should only be prompted once.
    2. Symptom: Memory leak can occur in ITC_CheckDevice, ITC_TestDevice, ITC_ReadDeviceProperties and ITC_SendDeviceProperties.


  1. Add Windows Mobile 5.0 deliverables for CK60 and CN30.
  2. Bluetooth Device Utility turns on the computer's Bluetooth radio if it is off so the user does not also need to use the Bluetooth control panel applet.
  3. Fix Bluetooth Device Utility: If XML element BtPort is set to a COM port or BSP port but the port name does not end with a colon (:), ITC_SetActiveDevice fails with error 2404 the second time it is called for that port.


  1. Replace Bluetooth_Device_Utility_Guide.chm and "Intermec Bluetooth Development Guide.chm" with Bluetooth_Resource_Kit.chm.
  2. Add CK31, CK60 and CN2A deliverables for Bluetooth Device Utility.
  3. Verify 700 deliverables for Bluetooth Device Utility on 700CXL.


  1. Replace "Bluetooth Device Utility.doc" with "Bluetooth_Device_Utility_Guide.chm".


  1. Expand product from Bluetooth Device Utility to Bluetooth Resource Kit, adding components from previous Wireless Printing SDK and Intermec Bluetooth SDK.
  2. Bluetooth Device Utility new features:
    1. Prefix C++ API names with ITC_.
    2. Add deliverables for .NET.
    3. Add support for Intermec computers CK30 and CV60/CE.
    4. Add support for Intermec scanner SF51. Refer to XML element BtPort in the documentation.
    5. Add support for multiple active devices. Refer to XML element BtPort in the documentation.
    6. Rename the Exit button to Back on all but the main screen.
    7. Suppress the opening of a dropdown list box if the list is empty. Otherwise, the user must tap a button twice - the first tap closes the dropdown list box and the second tap performs the button action.
    8. Add parameters to ITC_SetActiveDevice for device type and sub-type and remove API ITC_SetActiveDeviceByName.
  3. Fix Bluetooth Device Utility:
    1. Symptom: After performing Discovery for one device type, performing Discovery for another device type incorrectly displays the devices from the first Discovery.
    2. Symptom: If Discovery is unable to retrieve the device name for a PK80, but a second Discovery successfully retrieves the name, the device Configurable property is not updated so the device still is not displayed on the Properties screen.
    3. Symptom: RemoveDevice does not return an error when an invalid device type, sub-type or device name is specified.
    4. Symptom: After calling the DeviceUtility API, other APIs fail unless InitializeDeviceUtility is called again.
    5. Symptom: When there are no device types, SaveDeviceUtilityChanges does not retain the removable="N" attribute on Device XML elements.
    6. Symptom: On the Advanced screen, if the user inputs the address of a device that is already displayed on the Add/Remove screen, the device shows up twice on the Add/Remove screen.
    7. Symptom: After a Discovery error on the Add/Remove screen, the MessageBox is not cleared if the user selects Retry.
    8. Symptom: On the Send Changes and Discard Changes screens, the "All changes" radio button only updates the selected device.


  1. Bluetooth Device Utility new features:
    1. Add Intermec printers PB41 and PW40.
    2. On the Bonding screen, allow the Passkey field to be left blank because a Passkey is not required if security is disabled in the remote device.
  2. Fix Bluetooth Device Utility:
    1. Symptom: A newly discovered PK80 printer does not appear in the list on the Properties screen.
    2. Symptom: When the Properties button is tapped, if the properties in the XML file for the selected device do not match the actual device properties, the device name is not automatically selected in the dropdown list.
    3. Symptom: If a device's name is changed outside of this utility, and the device is then selected in the Properties screen, the device name is updated in the XML file but not in the dropdown list. Tapping Send or Undo reports "Error 87, The parameter is incorrect" because the device name in the dropdown list no longer exists in the XML file.
      Workaround: Exit the Properties screen and return.
      Fix: The new device name is placed in the "New name" field.
    4. Symptom: API SetDeviceProperty: If a "NewDeviceName" value matches the current device name in the XML file, the property is cleared. However, the actual device name may not match the device name in the XML file so the property should not be cleared.


  1. Initial prototype of Bluetooth Device Utility supporting Intermec computers 720, 730, 740, 750 and 760; and Intermec printers PB20, PB40 and PK80.



On CV41 CE 6.0 with Intermec Content & CV61 with Intermec Content, IBT.dll is missing IBT_UpdateName and IBT_SetPrinter. IBT_UpdateName will be added in a follow up release. IBT_SetPrinter will not be included since this function is used to configure the Virtual COM Port for communicating with printers. CV61 Windows XP and Windows 7 do not enable virtual COM Ports.


On Windows Mobile 6.1 devices, after inputting a passcode at the Bluetooth Passcode prompt displayed by the Microsoft Bluetooth stack, an error message appears even though the connection succeeds - "Cannot connect: Your device did not connect with <device name>. The connection failed or the passcode is incorrect." You can just tap OK and continue.

Workaround: Use the Intermec Bluetooth Device Utility APIs in this Resource Kit to handle bonding so the Microsoft Bluetooth stack Passcode prompt is not triggered.



Bluetooth Device Utility: For printers that are configured using SmartSystems, SendDeviceProperties (.NET) and ITC_SendDeviceProperties (C++) fail if the computer has printer configlet v2.00. (CEDev29447).

Workaround: Go to Start > Settings > System tab > Intermec Settings > Printers > Printer, and change properties one at a time.



Function IBT_On can hang if executed on a 761B Mobile Computer that does not have Bluetooth hardware. This causes the Bluetooth Device Utility to hang at startup. To check if your 761B has Bluetooth hardware, you can go to Start > Settings > Connections > Bluetooth - if Bluetooth is not available you will see a message "This unit does not have Bluetooth hardware enabled." You can also check the CN string found on the label of the computer and in Intermec Settings (SmartSystems Information\Identity\Hardware Version). The CN string has the format 761B????????N??? - N indicates no Bluetooth.



Use the appropriate SetActiveDevice function before attempting to Read or Send Device Properties to SmartSystems configurable devices. See the Bluetooth User’s Guide for more information.

Runtime\wce420\Pocket PC 2003\ARMV4\ibt.dll is deprecated and is only provided for backward compatibility. Ibt.dll is now included in the 700 Series OS/PSM package.


The .NET Compact Framework assembly for Visual Studio .NET 2003 is deprecated and is only provided for backward compatibility. It may be removed in a future release.