home *** CD-ROM | disk | FTP | other *** search
/ Turbo Toolbox / Turbo_Toolbox.iso / dtx9202 / tpw / reedll / reedll2.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  1992-01-05  |  1.4 KB  |  62 lines

  1. LIBRARY ReeDLL;
  2. (* Achtung:                                                                *)
  3. (* Verwenden Sie diese Version der ReeDLL nur dann, wenn Sie sie explizit  *)
  4. (* d.h. über LoadLibrary in Ihrem Programm laden. Tun Sie das nicht, so    *)
  5. (* werden Sie aller Wahrscheinlichkeit nach einen Unbehebbaren Fehler in   *)
  6. (* Ihrem Anwendungsprogramm ernten.                                        *)
  7.  
  8. USES WinTypes, WinProcs;
  9.  
  10. VAR
  11.   Value: WORD;
  12.   SaveExit: Pointer;
  13.  
  14. FUNCTION GetValue: WORD; EXPORT;
  15. BEGIN
  16.   GetValue := Value;
  17. END;
  18.  
  19. PROCEDURE IncValue; EXPORT;
  20. BEGIN
  21.   INC(Value);
  22. END;
  23.  
  24. PROCEDURE SetValue (Val: WORD); EXPORT;
  25. BEGIN
  26.   Value := Val;
  27. END;
  28.  
  29. {$S-}
  30. PROCEDURE LibExit; FAR;
  31. BEGIN
  32.   IF (ExitCode = wep_System_Exit) THEN
  33.   BEGIN
  34.     (* Windows wird heruntergefahren *)
  35.     MessageBox (0, 'ReeDLL Mitteilung',
  36.                 'Windows wird verlassen', mb_Ok);
  37.   END;
  38.   IF (ExitCode = wep_Free_DLL) THEN
  39.   BEGIN
  40.     (* DLL wird ausgelagert *)
  41.     MessageBox (0, 'ReeDLL Mitteilung',
  42.                 'DLL wird wieder ausgelagert', mb_Ok);
  43.   END;
  44.   ExitProc := SaveExit;
  45. END;
  46.  
  47.  
  48. EXPORTS
  49.   GetValue  INDEX 1,
  50.   IncValue  INDEX 2,
  51.   SetValue  INDEX 3;
  52.  
  53. BEGIN
  54.   Value := 0;
  55.   MessageBeep(0);
  56.   MessageBox (GetActiveWindow, 'ReeDLL Mitteilung',
  57.               'DLL wird in den Speicher geladen', mb_Ok);
  58.   SaveExit := ExitProc;
  59.   ExitProc := @LibExit;
  60.  
  61. END.
  62.