Question

RFCOMM: Windows Mobile 2003 - Virtual COM Port - ERROR_DEVICE_IN_USE

Asked by: tstwk

I'm developing an application (Pocket PC 2003 / Windows Mobile 2003) which should establish a RFCOMM Bluetooth connection to a bluetooth-server-device. ( A serial interface for an older non-bluetooth version of this device already exists. PPC is the T-Mobile MDA )

So i checked the scanty microsoft documentation and found out, that it is possible to create a virtual com port with
RegisterDevice(L"COM", index, L"btd.dll", (DWORD)&pp).

With WSALookupServiceBegin(...) and WSALookupServiceNext(...) it was possible to detect the BT_ADDR needed for the PORTEMUPortParams (see above -> pp ) device parameter.

But RegisterDevice always fails with SystemError:ERROR_DEVICE_IN_USE (The device is in use by an active process and cannot be disconnected.) - Then i checked the "HKLM\drivers\Active" Key in my PPC registry and found out, that there is no service using COM 4, 5 or 6. But this Ports also generate this error message.

Interestingly enough the "btd.dll" is not yet loaded. So i guess my PORTEMUPortParams structure isn't the error source.

The sample source code supplied with Windows CE Evaluation Edition seems to do exactly the same.

Maybe I could have forgotten to implement several important gimmicks. Or maybe there is another way to connect with a RFCOMM bluetooth device.

Thanks in advance.

Here is the source (without catching any errors :)

/*+++++++++++Startup WSA+++++++++++++++++*/
WORD wVersionRequested;
WSADATA wsaData;
wVersionRequested = MAKEWORD( 2, 2 );
WSAStartup( wVersionRequested, &wsaData );

/*+++++++++++++Search for my device++++++++++++++++*/
INT iResult = 0;
LPWSAQUERYSET pwsaResults;
DWORD dwSize = 0;
WSAQUERYSET wsaq;
HANDLE hLookup = 0;
memset (&wsaq, 0, sizeof(wsaq));
wsaq.dwSize = sizeof(wsaq);
wsaq.dwNameSpace = NS_BTH;
wsaq.lpcsaBuffer = NULL;

WSALookupServiceBegin(&wsaq, LUP_CONTAINERS, &hLookup);

union {
CHAR buf[5000];
SOCKADDR_BTH      __unused;
};
pwsaResults = (LPWSAQUERYSET) buf;
dwSize  = sizeof(buf);            
memset(pwsaResults,0,sizeof(WSAQUERYSET));
pwsaResults->dwSize      = sizeof(WSAQUERYSET);
pwsaResults->dwNameSpace = NS_BTH;
pwsaResults->lpBlob      = NULL;

WSALookupServiceNext (hLookup, LUP_RETURN_NAME | LUP_RETURN_ADDR, &dwSize, pwsaResults);
// Real device name is found ... pwsaResults->lpszServiceInstanceName;

/*+++++++++Now trying to register the virtual COM Port+++++++++++++++*/
PORTEMUPortParams pp;
memset (&pp, 0, sizeof(pp));
pp.channel = 0;
pp.flocal = false;
pp.device = reinterpret_cast<_SOCKADDR_BTH*>(pwsaResults->lpcsaBuffer->LocalAddr.lpSockaddr)->btAddr;
//the detected BT_ADDR
memcpy(&pp.uuidService, &CLSID_NULL, sizeof(GUID));
pp.uiportflags = RFCOMM_PORT_FLAGS_REMOTE_DCB;
int port = 4; //or anything else like 1..4,5 or 6..9 | Limit is 9 i think
HANDLE bth = RegisterDevice  (L"COM", port, L"btd.dll", (DWORD)&pp));

/*++++++++the result+++++++++++++++++++*/
//bth == 0
//GetLastError () == ERROR_DEVICE_IN_USE :(

This Question has been solved and asker verified All Experts Exchange premium technology solutions are available to subscription members.

Subscribe now for full access to Experts Exchange and get

Instant Access to this Solution

  • Plus...
  • 30 Day FREE access, no risk, no obligation
  • Collaborate with the world's top tech experts
  • Unlimited access to our exclusive solution database
  • Never be left without tech help again

Subscribe Now

Asked On
2003-11-04 at 06:51:26ID20787399
Tags

bluetooth

,

windows

,

mobile

,

port

Topic

Bluetooth

Participating Experts
4
Points
500
Comments
11

Trusted by hundreds of thousands everyday for fast, accurate and reliable tech support.

  • "The time we save is the biggest benefit of Experts Exchange to Warner Bros. What could take multiple guys 2 hours or more each to find is accessed in around 15 minutes on Experts Exchange." Mike Kapnisakis, Warner Bros.
  • "Our team likes having a resource that is more secure than just using Google and most experts using this service really know their stuff. It's nice to look here first versus using Google." Dayna Sellner, Lockheed Martin
  • "Anytime that I've been stumped with a problem, 9 out of 10 times Experts Exchange has either the accepted solution or an open discussion of the potential solution to the problem." Kenny Red, eBay Inc.

See what Experts Exchange can do for you.

Got a question?

We've got the answer.

Experts Exchange has been collecting answers to technology questions since 1996…3 million and counting! If you have a question, chances are we already have your answer.

Screenshot of Experts Exchange Knowledgebase

Need individual assistance?

Our experts are ready to help.

If you can't find the exact answer you're looking for, ask our exclusive community of 50,000 experts. You’ll get a personalized answer from a trusted professional.

Screenshot of Experts Exchange Knowledgebase

Want to learn from the best?

Read articles from industry experts.

Thousands of free tech tips, tricks, how-to’s and tutorials are available in our peer reviewed articles section. See for yourself how smart our experts are, no login required.

Screenshot of an Article

Working on a long term project?

Store your work and research.

Save solutions to your questions, answers you’ve discovered through searching plus helpful articles in your personal knowledgebase for easy future access.

Screenshot of Experts Exchange Knowledgebase

Access the answers to your technology questions today.

Subscribe Now

30-day free trial. Register in 60 seconds.

What Makes Experts Exchange Unique?

Members of the expert community talk about why the experience at Experts Exchange is different than what you will find anywhere else.

Trusted by the world's most respected brands.

image of each brand's logo

Faithfully serving IT professionals since 1996.

Experts Exchange Logo

Try it out and discover for yourself.

Subscribe Now

30-day free trial. Register in 60 seconds.

Related Solutions

  1. Mobile Development
    Can some explaine the differnces between Pocket PC, Windows CE and Windows Mobile including versions? What tools I can use to develop applications on those platfoms? Which tools are compatible with what versions of OS? Thank you

Free Tech Articles

  1. WARNING: 5 Reasons why you should NEVER fix a computer for free.
    It is in our nature to love the puzzle. We are obsessed. The lot of us. We love puzzles. We love the challenge. We thrive on finding the answer. We hate disarray. It bothers us deep in our soul. W...
  2. SCCM OSD Basic troubleshooting
    SCCM 2007 OSD is a fantastic way to deploy operating systems, however, like most things SCCM issues can sometimes be difficult to resolve due to the sheer volume of logs to sift through and the dispe...
  3. Migrate Small Business Server 2003 to Exchange 2010 and Windows 2008 R2
    This guide is intended to provide step by step instructions on how to migrate from Small Business Server 2003 to Windows 2008 R2 with Exchange 2010. For this migration to work you will need the fo...
  4. Create a Win7 Gadget
    This article shows you how to create a simple "Gadget" -- a sort of mini-application supported by Windows 7 and Vista. Gadgets can be dropped anywhere on the desktop to provide instant information, ...
  5. Outlook continually prompting for username and password
    There have been a lot of questions recently regarding Outlook prompting for a username and password whilst using Exchange 2007. There are a few reasons why this would happen and I will try to cover t...
  6. Backup Exchange 2010 Information Store using Windows Backup
    There seems to be quite a lot of confusion around the ability to backup Exchange 2010 using the built in Windows Backup feature. This stems from the omission of this feature prior to Exchange 2007 s...

Cloud Class Webinars

  1. Avoiding Bugs in Microsoft Access
    Alison Balter takes and in-depth look at avoiding bugs in Access. In this webinar you will learn about using the immediate window to debug your applications, invoking the debugger, using breakpoints to troubleshoot, stepping through code, setting the next statement to execute, ...
  2. Top 10 Best New Features in Visio 2010
    Scott Helmers gives live demonstrations of the top 10 new features in Visio 2010. This webinar will teach you how to create compelling diagrams by adding shapes to the page with a single click, linking the shapes in a diagram to data in Excel (or SQL Server, or SharePoint), ...
  3. IT Consultant Business Secrets Revealed
    Michael Munger, Experts Exchange tech pro and IT consultant, pulls back the curtain on his very successful businesses and answers question on every IT consultant and business owner should know about. He shares secrets on what he did to solve the 5 most common problems in IT, ...
  4. Disaster Recovery and Business Continuity
    Quest CTO, Mike Billon, gives an overview of the steps involved in building a dunamic disaster recovery plan. Through case studies and an examination of software/hardware tooles for monitoring and testing, you'll gain a better understandin of where you are, where you want ...
  5. Organize Your Visio Diagrams with Containers and Lists
    Scott Helmers uses cross functional flowcharts, wireframe diagrams, data graphic legends and seating charts to teach you: how to ustilize all three new structured diagram components in Visio 2010, the best practices for organizeing shapes in previous version of Visio, how to organize ...
  6. How to Us Objects, Properties, Events and Methods in Microsoft Access
    Alison Dalter gives an in-depbth look at objects, properties, events and methods in Microsoft Access. In this webinar you will learn about using the object browser, referring to objects, working with properties and methods, working with object variables, understanding the ...

Join the Community

Give a Little. Get a Lot.

Join the community of experts here and help other tech pros by answering question in your area of expertise. You can earn FREE access to all Experts Exchange's premium features and resources.

Join the Community

Answers

 

by: cindy_kPosted on 2003-11-04 at 10:57:10ID: 9680833

Here is some code I use to Register a com port to use with Bluetooth.
I noticed you Channel is 0, try setting it to 1.
You can discover the Channel by Querying for information on the RFCOMM Serial Service but doing full SDP is a pain.

You are correct the limit is 9 for com ports on a CE device.
The GetBA function I call is from a Sample from Microsoft Platform builder.
I included it so you can look at it.

If this function succeeds you should be able to open the Com Port and communicate over it.
This function will not check to see if the device you are connecting to exists, it just sets up the comm port.
When you go to open the Comm Port if the device is out of range, suspended, whatever the CreateFile call will fail.

Hope this helps,
Cynthia

BOOL RegisterPort(void)
{
      PORTEMUPortParams pp;
      int nIndex;
      WCHAR sBA[13];
      int nChannel;
      WCHAR sChannel[4];

      GetWindowText(GetDlgItem(g_hDlg,TXT_CHANNEL),sChannel,3);
      swscanf(sChannel,L"%d",&nChannel);

      WCHAR sIdx[2];
      int idx;


      //*************************************************************************
      //*************************************************************************
      //*************************************************************************
      // This section demonstrates how to create a BT virtual COM port
      //  Begin

      memset (&pp, 0, sizeof(pp));                        // Clear the PORTEMUPortParams  structure.
//      pp.channel = 6;      //Printer                              // Set to either an explicit server
      pp.channel = nChannel;                              //  channel, or, for a server
                                                //  application that wants the
                                                //  server channel to be autobound,
                                                //  to RFCOMM_CHANNEL_MULTIPLE.
//      pp.channel = RFCOMM_CHANNEL_MULTIPLE;

      pp.flocal = FALSE;                                    //  Set to FALSE for a client port that
                                                //   is used to creating outgoing connections.

      GetBA(_T("0002C710F63E"), &pp.device);            // Using Static BTADDR

      nIndex = 7;      // This must be the same as the COM port number.

      // For devices that expose the stream interface, the drivers are
      // DLL files. Each driver is initialized by a call to the RegisterDevice
      // function. The Device Manager calls this function on behalf of the
      // driver. However, applications can load their own special-purpose stream
      // interface, in which case they also call this function to register the driver.

      h = RegisterDevice(_T("COM"), nIndex, _T("btd.dll"), (DWORD)&pp);


      if (h != NULL)
      {
            bRegister =  TRUE;
      }
      else
            bRegister =  FALSE;

      SetCursor(LoadCursor(NULL, NULL));                  // Clear the wait cursor
      
      return bRegister;
}
/******************************************************************************
      FUNCTION:      GetBA
      PROTOTYPE:  int GetBA (WCHAR *pp, BT_ADDR *pba)
      PURPOSE:      Form the BDADDR in a way the PORTEMUPortParams structure
                        understands.
******************************************************************************/
int GetBA (WCHAR *pp, BT_ADDR *pba)
{
      // Bump pointer through any leading spaces
      while (*pp == ' ')
            ++pp;

      for (int i = 0 ; i < 4 ; ++i, ++pp)
      {
            if (!iswxdigit (*pp))
                  return(FALSE);

            int c = *pp;
            if (c >= 'a')
                  c = c - 'a' + 0xa;
            else if (c >= 'A')
                  c = c - 'A' + 0xa;
            else c = c - '0';

            if ((c < 0) || (c > 16))
                  return(FALSE);

            *pba = *pba * 16 + c;
      }

      for (i = 0; i < 8 ; ++i, ++pp)
      {
            if (!iswxdigit (*pp))
                  return(FALSE);

            int c = *pp;
            if (c >= 'a')
                  c = c - 'a' + 0xa;
            else if (c >= 'A')
                  c = c - 'A' + 0xa;
            else c = c - '0';

            if ((c < 0) || (c > 16))
                  return(FALSE);

            *pba = *pba * 16 + c;
      }

      if ((*pp != ' ') && (*pp != '\0'))
            return(FALSE);
      else
            return(TRUE);
}

 

by: tstwkPosted on 2003-11-05 at 00:34:25ID: 9685144

Hello Cynthia,

thanks for the fast reply. Unfortunately it seems that there is no great deviation from my code, unless my BT_ADDR causes the problem. Nonetheless I tested yours, but the result was the same. I also took the sequence out of an additional thread.

>I noticed you Channel is 0, try setting it to 1.
I've already tried every channel with every port. :(

(snip...)
for(pp.channel = 0; pp.channel <= 8; ++pp.channel)
        for(int port = 1; port <= 9; ++port)
            if(bth = RegisterDevice  (L"COM", port, L"btd.dll", (DWORD)&pp))
               return bth;
return INVALID_HANDLE_VALUE;
(...snap)

>This function will not check to see if the device you are connecting to exists, it just sets up the comm port.
>When you go to open the Comm Port if the device is out of range, suspended, whatever the CreateFile call will fail.

So only CreateFile should be interested in BT_ADDR. The BT_ADDR I have detected through WSALookupServiceNext is 0x2c724d6f7. It resembles the BT_ADDR of your sample. The device has a PIN code, but this should have nothing to do with virtual com ports?!?

Is there a way, to find out more about the systems comm ports?
Is HKLM\drivers\Active the only hint, who could occupy the ports?
Is there anything I could have forgotten to initialize?
I am debugging over ASync - might this be a problem?

Regards,
Tom

 

by: cindy_kPosted on 2003-11-05 at 07:37:22ID: 9687490

You're right about the Channel. It shouldn't be an issue when Registering. Sorry about that.
When your registering the COM port, you don't even need the device in the area, since it doesn't try to reach out until you go to open the com port.

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Bluetooth\Transports\BuiltIn\2] <- The bluetooth hardware com port is in this registry setting.
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Bluetooth\HCI] <- And this one.

ActiveSync shouldn't effect registering the Virtual Com Port.

This code lists the Active Devices in the system.. Microsoft has a new function to use also called RequestDeviceNotifications.  Its more complicated to use,
so I used this one. It accuractly returned the devices in used on my system.

#include <devload.h>

int WINAPI WinMain(      HINSTANCE hInstance,
                              HINSTANCE hPrevInstance,
                              LPTSTR    lpCmdLine,
                              int       nCmdShow)
{
       // TODO: Place code here.


      WCHAR szDevList[800];
      DWORD dwBuffer = 800;
      DWORD Return;

      //This function returns a list of the active device file names currently present in the file system.
      //Calling RequestDeviceNotifications with DEVCLASS_STREAM_GUID supersedes this function.

                Return = EnumDevices((WCHAR*)&szDevList, &dwBuffer);
                //The String returned has q List of null-terminated strings. The list terminates with two consecutive null characters, one terminating the last entry in the
                // list and an additional null, for example, "COM1:\0COM2:\0PGR1:\0\0".


      switch(Return)
      {
      case ERROR_SUCCESS: // The function returned successfully.
      {
            WCHAR szReformat[1500];
            DWORD Start = 0;

                                //Parse the Returned list so I can see it in a MessageBox.
            for(DWORD x = 0; x < dwBuffer; x++)
            {
                  if(szDevList[x] == '\0')
                  {
                        if(Start == 0)
                        {
                              wsprintf(szReformat,L"%s:",szDevList);
                              Start = x+1;
                        }
                        else if(Start == x)
                        {
                              Start = x+1;
                        }
                        else
                        {
                        wsprintf(szReformat,L"%s%s:",szReformat,szDevList+Start);
                        Start = x+1;
                        }
                  }
            }

            MessageBox(NULL,szReformat,L"COM Data",MB_OK);
      }
      break;
      case ERROR_INSUFFICIENT_BUFFER: // The lpszDevList buffer was not big enough to hold any entries; lpBufLen will contain the required size.
            MessageBox(NULL,L"Insufficient Buffer",L"COM Data",MB_OK);
      break;
      case ERROR_INVALID_PARAMETER: // The lpBufLen parameter was NULL.
            MessageBox(NULL,L"Invalid Parameters", L"COM Data",MB_OK);
      break;
      case ERROR_MORE_DATA: // The lpszDevList buffer was not big enough to hold the complete list of active devices; lpBufLen will contain the required size.
            MessageBox(NULL,L"ERROR MORE DATA",L"Com Data",MB_OK);
      break;
      case ERROR_NO_MORE_DEVICES:
            MessageBox(NULL,L"No More Devices",L"Com Data",MB_OK);
      break;
      }

      return 0;
}





 

by: tstwkPosted on 2003-11-06 at 00:20:26ID: 9692644

The serial devices return are COM 1,2,3,6,8 and 9. So there are "free" Ports.
BUT.... the key [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Bluetooth\Transports\BuiltIn\2] you mentioned above is absend!

Only [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Bluetooth\Transports\BuiltIn\1] with bthusb.dll and [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Bluetooth\Transports\BuiltIn\3] with bthcsr.dll (concerning COM6).

I think this is a pretty obvious error. But unfortunately I found out nothing about this registry key. Would you be so kind to give me further informations or a list of sources about my absend [...\BuildIn\2] registry key, so i have the chance to find out more about it. Just to reproduce the problem. Is it the btd.dll mentioned in [...BuiltIn\2]?
Am I right that the hardware manufacturer is responsible for the development (DLLs and registry-settings) of its Win CE Platform?

If I have a blade of grass to hang on, I'll close this question with a clear conscience : )

 

by: cindy_kPosted on 2003-11-06 at 10:21:57ID: 9695700

>>Am I right that the hardware manufacturer is responsible for the development (DLLs and registry-settings) of its Win CE Platform?
Partially.  It depends of whether the Radio is embedded into the device or not. If its embedded than the Device manufacturer would be the one responsible for drivers and registry settings. If you are adding a bluetooth compact flash card, then the card manufacturer would be responsible.

Can I ask what Bluetooth card you are using?
For example, I know that Socket offers an SDK to go with their card but they don't use the Microsoft Stack for their card.

I am currently working on a device that my company is building, we have our own internal Bluetooth chipset and we are using the Microsoft Stack. I got those registry settings from that device.

I have a CE device here with a Socket BT compact flash card in it.  I just looked at it's registry settings and they are different.
Because it's in the Compact Flash slot it doesn't have a Serial port assigned to it, like my other device does.
It has this setting but doesn't have a 2 or 3.
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Bluetooth\Transports\BuiltIn\1]

I can register a port with the Socket card, but I am having trouble opening the com port. Of course I can create the connection with the Socket SDK with no problem.
They use the Draker Stack.

I just looked into the IPAQ's I have with Bluetooth in them and they use the WidComm stack. You have to get the SDK to use that stack from them. Looks like they are charging for it.  www.widcomm.com
I can't register a com port on my IPAQ for bluetooth either.  I'm guessing they do this so you are forced to buy their SDK.

Hope this helps some.
Cynthia


 

by: tstwkPosted on 2003-11-07 at 05:45:43ID: 9701029

Bluetooth is integrated in the T-Mobile MDA II ... http://msmobiles.com/article.php/54.html (most of the articles I found were german) It seems to have features like the IPaqs. Addionately it has a fantastic camera feature (and is a cell-phone : ). The IPaq (Bluetooth-PPC) might be an alternative for us, but if the problem persists it wouldn't make much sense.

Is it possible to use the wsa sockets on the IPqaw without using the WidComm stack? The thing I don't understand is - Windows Mobile 2003 has a stack for Virtual COM Ports and the manufacturer doesn't implement it, so that no generic software can use it?!?

I have already contacted the manufacturer, but still no answer. Maybe the MDA II has third party bluetooth stuff, too. If telekom answers, I'll know.

Do you have any further ideas?

The device you are working on might be an alternative, too... Currently we are selling yakumo deltas with leica disto pro 4 lasermeasurement devices. But the cable is disturbing while working with the laser device... http://www.mobilaufmass.com/Mobilaufmass/Das_Mobilaufmass_im_Einsatz/Steuerung.htm (unfortunately the site is german)

Thanks for your endurance.

Thomas

 

by: cindy_kPosted on 2003-11-07 at 12:41:02ID: 9703896

Unfortunately I don't know the widcomm stack so I don't know if you can get around buying their SDK.

The device with the embedded bluetooth that I am using comes from Symbol Technologies, Inc. but is currently not for sale. I am doing some evaluation development work on it.

However, Symbol sells this device:
 http://www.symbol.com/products/mobile_computers/mobile_ppt8800_ppc2003.html
It has a Socket Bluetooth radio in it and I know Symbol will supply the SDK to their customers, so they will be able to write their own code to use the radio.

It's no problem.  I understand such frustration with new product. Documentation? What documentation!?!
Trust me, you don't want to write an Service Discovery App using the Microsoft Stack. It was difficult, because the documentation provided with the APIs was extremely lacking and wrong.

Good Luck!!
Cynthia

 

by: cerebralpcPosted on 2004-03-01 at 21:00:57ID: 10492484

Hi tstwk,
You wrote..

"Is it possible to use the wsa sockets on the IPaq without using the WidComm stack? The thing I don't understand is - Windows Mobile 2003 has a stack for Virtual COM Ports and the manufacturer doesn't implement it, so that no generic software can use it?!? "


Do you ever resolve this issue?
I'm currently programming an application for an IPaq 2210 and although I've managed to get 1 device connected and transfering data to the IPaq I actaully need to connect 2 Bluetooth devices.  Therefore I really need to create VIRTUAL ports however as you suggest VIRTUAL ports don't come with this stack - sigh.

Another issue wsa that I had to set the IPaq as the master device - although the connection would appear to be made if the IPaq was the slave no data would actually be sent.

I've emailed the maker widcomm.com but never got satisfactory replys.

 

by: Synth2Posted on 2004-06-03 at 01:52:38ID: 11220254

cindy_k

Your application needs both Bluetooth devices to be paired or it's not necessary because you implement an SDP query? maybe it's implemented by default?
I have a Dell Axim X3 and i want to make a connection between it and a Pc.
Dell Axim X3 Bluetooth hardware manufacturer is Widcomm.Won't I be able to create VIRTUAL COM from my Pocket PC if i don't get the Widcomm SDK?

 

by: tstwkPosted on 2004-06-03 at 02:22:15ID: 11220417

We found out, that the RFCOMM stuff simply doesn't work on the MDA II. It's a himalaya device, all of these devices are showing the same peculiarity.
They send us 3 different version of their PPC, but without any progress within the implementation of RFCOMM. There's also a logical error in the user interface: You can "find and connect" the device to the pocket pc in Windows Mobile 2003 and you can set bluetooth com-ports (COM4 output, COM5 input), but there is no setting to combine the com-port with the device?!?

Because of this, you can never connect these Pocket PCs to a RFOMM device (GPS etc.). *g*

Dell Axim X3 question: Now we are using the WIDCOMM stack (only MFC-support I think) for RFCOMM, which has its errors, but with some workarounds you can wangle it. In my opinion the WIDCOMM Support is miserable.
I'm relatively sure, that without buying the WIDCOMM stack you won't be able to connect the devices. But maybe it's possible... There are many extra features for searching devices etc. int the stack, so that the users do not need to establish the connection in the widcomm settings.
Because of some errors the newer WIDCOMM PPCs have revised SDK-DLLs in their ROM, maybe you could use them (BtCoreIf.dll BtSdkCE30.dll)?!? Normally you must install them yourself. It is hard enough with the mfc classes. But it's not, that you pay for nothing...

 

by: myopicPosted on 2004-06-13 at 02:57:17ID: 11299287

Having similar trouble on WinCE 4.2.  I haven't written my own app, just used the sample ones that came with it.  I may be able to shed some light on a little of what was said before.

The registry settings under
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Bluetooth\Transports\BuiltIn\]
Are for bluetooth transports.  The transport is the way the Host (WinCE) talks to the bluetooth device.  Eg. Serial/USB/PCMCIA etc.  They are at a lower level then what is trying to be done here.

I've heard that it's possible to get this working but I can't find any resources on the net anywhere.

20120131-EE-VQP-002

3 Ways to Join

30-Day Free Trial

The Experts

98% positive feedback on 31,087 answers since March 2000. angeliii is a Microsoft Most Valuable Professional for his work with MS SQL Server & Develoment.

He has also proven his knowledge of Visual Basic Programming, PHP Scripting and Oracle Databases.

The Experts

97% positive feedback on 10,752 answers since July 2000. lrmoore has more than 18 years experience in the networking industry.

The six-time Mircosoft MVPs specialties include firewalls, virtual private networking, and network management.

Testimonials

"...and excellent source for support... Kind of like having your very own IT dept." Electriciansnet

Testimonials

"I was apprehensive at signing up at first. However... it has already made my life as an IT administrator much easier." JaCrews

Testimonials

"WOW! You guys have great, active, and knowledgeable people on here." moore50

Business Clients

Business Clients

In the Press

"If you’ve got a question... Experts Exchange can supply an answer.”

In the Press

"...an invaluable aid for both IT professionals and those who require tech support."

In the Press

"where IT professionals provide quick answers on just about any topic"

Business Account Plans

Loading Advertisement...