...Get / set global offline State?

Author: haiseb
Homepage: http://mypage.ayna.com/haiseb

Category: Internet / LAN

{
  Users can choose to work offline by selecting Work Offline on the
  File menu in Internet Explorer 4.0 and later. When Work Offline is selected,
  the system enters a global offline state independent of any current network
  connection, and content is read exclusively from the cache.
}

uses wininet;

// Get offline state
// Alhaiseb Misurata Libya

function IsGlobalOffline: Boolean;
var
  
State, Size: DWORD;
begin
  
Result := False;
  State  := 0;
  Size   := SizeOf(DWORD);
  if InternetQueryOption(nil, INTERNET_OPTION_CONNECTED_STATE, @State, Size) then
    if 
(State and INTERNET_STATE_DISCONNECTED_BY_USER) <> 0 then
      
Result := True;
end;


//Set offline state

procedure SetGlobalOffline(fGoOffline: Boolean);
var
  
ci: INTERNET_CONNECTED_INFO;
begin
  if 
fGoOffline then
  begin
    
ci.dwConnectedState := INTERNET_STATE_DISCONNECTED_BY_USER;
    ci.dwFlags          := ISO_FORCE_DISCONNECTED;
  end
  else
    
ci.dwConnectedState := INTERNET_STATE_CONNECTED;
  InternetSetOption(nil, INTERNET_OPTION_CONNECTED_STATE, @ci, SizeOf(ci));
end;

 

printed from
www.swissdelphicenter.ch
developers knowledge base