home *** CD-ROM | disk | FTP | other *** search
/ Chip 1998 March / Chip_1998-03_cd.bin / zkuste / delphi / ruzkomp / INMEMDEL.ZIP / Win32except.pas < prev   
Encoding:
Pascal/Delphi Source File  |  1996-06-14  |  672 b   |  35 lines

  1. unit Win32Except;
  2.  
  3. interface
  4.  
  5. uses
  6.   SysUtils, Windows, DB;
  7.  
  8. type
  9.   EWin32Error = class(Exception);
  10.  
  11. procedure Win32Chk(Win32OK: Boolean);
  12.  
  13. implementation
  14.  
  15. const
  16.   ERRORSIZE = 300;  // Maximum error string size
  17.  
  18. var
  19.   Buffer: String;
  20.  
  21. procedure Win32Chk(Win32OK: Boolean);
  22. begin
  23.   if Win32OK = False then
  24.   begin
  25.     SetLength(Buffer, ERRORSIZE);
  26.     if FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM,  nil, GetLastError, 0, PChar(Buffer),
  27.               ERRORSIZE, nil) = 0 then
  28.       Buffer := 'Internal Error: Error creating Error String';
  29.     SetLength(Buffer, StrLen(PChar(Buffer)));
  30.     raise EWin32Error.Create(Buffer);
  31.   end;
  32. end;
  33.  
  34. end.
  35.