mirror of
				https://gitlab.com/freepascal.org/fpc/source.git
				synced 2025-11-03 23:54:33 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			63 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			ObjectPascal
		
	
	
	
	
	
			
		
		
	
	
			63 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			ObjectPascal
		
	
	
	
	
	
program GetCountryInfo;
 | 
						|
 | 
						|
{$IFNDEF OS2}
 | 
						|
 Sorry, this code is for OS/2 only...
 | 
						|
{$ENDIF}
 | 
						|
 | 
						|
uses
 | 
						|
{$IFDEF FPC}
 | 
						|
 DosCalls;
 | 
						|
{$ELSE}
 | 
						|
 Os2Def,
 | 
						|
 {$IFDEF VIRTUALPASCAL}
 | 
						|
 Os2Base;
 | 
						|
 {$ELSE}
 | 
						|
  {$IFDEF SPEED}
 | 
						|
 BseDos;
 | 
						|
  {$ELSE}
 | 
						|
 DosProcs, DosTypes;
 | 
						|
  {$ENDIF}
 | 
						|
 {$ENDIF}
 | 
						|
{$ENDIF}
 | 
						|
 | 
						|
type
 | 
						|
 cardinal = longint;
 | 
						|
 | 
						|
{$IFDEF FPC}
 | 
						|
const
 | 
						|
 NO_ERROR = 0;
 | 
						|
{$ENDIF}
 | 
						|
 | 
						|
var
 | 
						|
{$IFDEF VER70} (* patched Borland Pascal *)
 | 
						|
 Country: TCountryCode;
 | 
						|
 CtryInfo: TCountryInfo;
 | 
						|
 Size: longint;
 | 
						|
{$ELSE}
 | 
						|
 Country: COUNTRYCODE;  (* Country code info (0 = current country) *)
 | 
						|
 CtryInfo: COUNTRYINFO; (* Buffer for country-specific information *)
 | 
						|
 Size: cardinal;        (* Real size of returned data              *)
 | 
						|
{$ENDIF}
 | 
						|
 W: word;
 | 
						|
 | 
						|
begin
 | 
						|
 WriteLn;
 | 
						|
 Size := 0;
 | 
						|
 FillChar (Country, SizeOf (Country), 0);
 | 
						|
 FillChar (CtryInfo, SizeOf (CtryInfo), 0);
 | 
						|
 W :=
 | 
						|
{$IFDEF VER70}
 | 
						|
      DosGetCtryInfo
 | 
						|
{$ELSE}
 | 
						|
      DosQueryCtryInfo
 | 
						|
{$ENDIF}
 | 
						|
                       (SizeOf (CtryInfo), Country, CtryInfo, Size);
 | 
						|
 if (W <> NO_ERROR) then
 | 
						|
 begin
 | 
						|
  WriteLn ('DosQueryCtryInfo error: return code = ', W);
 | 
						|
  Halt (1);
 | 
						|
 end;
 | 
						|
 WriteLn ('Code of the country is ', CtryInfo.Country,
 | 
						|
                                  ', current codepage is ', CtryInfo.CodePage);
 | 
						|
end.
 |