home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 2 / Apprentice-Release2.iso / Source Code / Peter Lewis / PNL Libraries / MyEmergencyNotifier.p < prev    next >
Encoding:
Text File  |  1994-08-04  |  1.0 KB  |  55 lines  |  [TEXT/PJMM]

  1. unit MyEmergencyNotifier;
  2.  
  3. interface
  4.  
  5.     uses
  6.         Types;
  7.  
  8.     procedure EmergencyNotify (s: str255);
  9.  
  10. implementation
  11.  
  12.     uses
  13.         Notification,Memory;
  14.  
  15.     const
  16.         T_NMInstall = $A05E;
  17.         T_Unimplemented = $A89F;
  18.  
  19.     type
  20.         NMRecPtrPtr = ^NMRecPtr;
  21.  
  22. {$S Util}
  23.     procedure EmergencyNotify (s: str255);
  24.         var
  25.             oe: OSErr;
  26.             note: NMRecPtr;
  27.     begin
  28.         if NGetTrapAddress(T_NMInstall, OSTrap) = NGetTrapAddress(T_Unimplemented, ToolTrap) then begin
  29.             SysBeep(1);   { Best we can do I guess.  Could put up the dialog box maybe?...}
  30.         end
  31.         else begin
  32.             note := NMRecPtr(NewPtrSys(sizeof(NMRec)));
  33.             if note = nil then begin
  34.                 SysBeep(1);   { Can't do much else if there isnt even room for this! }
  35.             end
  36.             else begin
  37.                 with note^ do begin
  38.                     qType := nmType;
  39.                     nmMark := 0;
  40.                     nmStr := StringPtr(NewPtrSys(length(s) + 1));
  41.                     BlockMove(@s,ptr(nmStr),length(s)+1);
  42.                      nmIcon := nil;
  43.                     nmSound := nil;
  44.                     nmResp := nil;
  45.                 end;
  46.                 oe := NMInstall(note);
  47.                 if oe <> noErr then begin
  48.                     SysBeep(1);
  49.                 end;
  50.             end;
  51.         end;
  52.     end;
  53.  
  54.  
  55. end.