[Lazarus] RAS -API for Win32 (and WinCE)
Sven Barth
pascaldragon at googlemail.com
Thu Aug 11 21:47:34 CEST 2011
On 11.08.2011 14:13, Sven Barth wrote:
> 3. Regarding GPRS. I might have a solution for that, but currently I
> don't have access to the code; you'd need to wait till this evening,
> then I can check whether that could help you.
Ok, I have found the code. Strangely though I only use it in the older
version of my application, but the newer one connects as well... strange.
=== source fragments begin ===
uses
ConnMgr;
var
ConInfo: TConnMgrConnectionInfo;
ConStatus: DWord;
begin
FillChar(ConInfo, SizeOf(TConnMgrConnectionInfo), 0);
ConInfo.cbSize := SizeOf(TConnMgrConnectionInfo);
ConInfo.dwParams := CONNMGR_PARAM_GUIDDESTNET;
ConInfo.dwPriority := CONNMGR_PRIORITY_USERINTERACTIVE;
ConInfo.bExclusive := False;
ConInfo.guidDestNet := IID_DestNetInternet;
if ConnMgrEstablishConnection(@ConInfo, @fConHandle) <> S_OK then
raise Exception.Create('Error creating connection; check your
settings');
while True do begin
Application.ProcessMessages;
Sleep(50);
ConnMgrConnectionStatus(fConHandle, @ConStatus);
case ConStatus of
CONNMGR_STATUS_CONNECTED: begin
SetStatus('Connection established');
Break;
end;
CONNMGR_STATUS_WAITINGFORPHONE: begin
SetStatus('Call blocks connection');
end;
CONNMGR_STATUS_NOPATHTODESTINATION: begin
SetStatus('No suitable connection found');
raise Exception.Create('Could not find suitable connection');
end;
CONNMGR_STATUS_WAITINGFORPATH: begin
SetStatus('Cannot establish connection. (Bad signal?)');
end;
CONNMGR_STATUS_CONNECTIONFAILED: begin
SetStatus('Connection failed');
raise Exception.Create('Couldn''t establish connection. Try
again later');
end;
CONNMGR_STATUS_CONNECTIONCANCELED: begin
SetStatus('Connection canceled');
raise Exception.Create('The connection was canceled');
end;
end;
end;
end;
=== source fragment end ===
"SetStatus" was used to set the content of a status label and the text's
are rough translations from my German ones.
Even if this shouldn't work as is it might give you the necessary
pointers for MSDN. And this code will work on Windows CE/Mobile only (at
least as far as I'm aware of).
Regards,
Sven
More information about the Lazarus
mailing list