(My first post)
I am developing an application for WinCE 3.0 for a Pocket PC 2000 device in C++ using MFC / WinAPI.
In my application I use a Bluetooth CF card to communicate with a wireless printer. The drivers installed assign a COM port to the printer so I may
read / write to it using WinAPI calls for Files such as:
CreateFile( ... );<br />
ReadFile( ... );<br />
WriteFle( ... );
The wireless printer conserves battery by automatically turning off after a period of inactivity, so at times I must check to see if it is there before the user tries to print something.
The problem is that if I want to know anything about the file I must first get a handle with the CreateFile( ... ) function, which lags about 10-15 seconds before it times out if the printer is off, so usually the user is already trying to print something by the time I get back from that function call. Or if I make the user wait until I get back, they will get frustrated after so much time.
I tried using
CFile::GetStatus( ... )<br />
but it doesn't seem to work for COM ports, eg. I can call:
HANDLE hPrinter = CreateFile( _T("COM4:"),...);
and I get the handle but if I do this:
BOOL bIsPortAvailable = CFile::GetStatus( _T("COM4:"), ...);
I get FALSE back;
Is there a way to specify the timeout for the CreateFile( ... ) function or another way to check if that COM port is available?