home *** CD-ROM | disk | FTP | other *** search
/ Chip Hitware 10 / Chip_Hitware_Vol_10.iso / chiphit / multmedi / 95licht / install.dll / 1001 / 1 / LGDAPI.PAS < prev    next >
Pascal/Delphi Source File  |  1997-02-02  |  8KB  |  217 lines

  1. unit LGDAPI;
  2.  
  3. interface
  4.  
  5. uses WinTypes;
  6.  
  7. const
  8.   cMagic = $2d48542b;
  9.  
  10.   SCR_LEAVESBLANK      = 1;
  11.   SCR_MUSTHAVENONBLANK = 2;
  12.   SCR_CONFIGDIALOG     = 4;
  13.   SCR_HELPAVAILABLE    = 8;
  14.   SCR_ERASEPALETTE     = 16;
  15.  
  16.   ID_HELPKEY      = $5000; { LGD send ID_HELPKEY thru ID_HELPKEY+9 for Fxx keys}
  17.   ID_HELPKEY_F1   = $5000;
  18.   ID_HELPKEY_F2   = $5001;
  19.   ID_HELPKEY_F3   = $5002;
  20.   ID_HELPKEY_F4   = $5003;
  21.   ID_HELPKEY_F5   = $5004;
  22.   ID_HELPKEY_F6   = $5005;
  23.   ID_HELPKEY_F7   = $5006;
  24.   ID_HELPKEY_F8   = $5007;
  25.   ID_HELPKEY_F9   = $5008;
  26.   ID_HELPKEY_F10  = $5009;
  27.   ID_HELPKEY_F11  = $500a;
  28.   ID_HELPKEY_F12  = $500b;
  29.  
  30. { --------------------------------------- }
  31. { definitionen fⁿr allgemeine farbpalette }
  32. const cColorCircle = 30;
  33.  
  34. const ColorValues: array [0..5]of byte =
  35.    (0, 65, 110, 155, 205, 255);    { farbabstufungen }
  36. {             133  180  230     }
  37. {    40  90       168           }
  38.  
  39.                    { farbabstufungen bei grundfarben }
  40.       ColorValuesBase: array [0..8] of byte =
  41.    (0, 65, 110, 133, 155, 180, 205, 230, 255);
  42.  
  43.                    { graustufen }
  44.       ColorValuesGrey: array [0..11] of byte =
  45.    (0, 40, 65, 90, 110, 133, 155, 168, 180, 205, 230, 255);
  46.  
  47.       ColorIndexesColorScales :array[0..55] of byte =
  48.     (11, 12, 235, 13, 236, 14, 237, 15,  { blau }
  49.      16, 22, 229, 28, 230, 34, 231, 40,  { grⁿn }
  50.      17, 24, 241, 31, 242, 38, 243, 45,  { cyan }
  51.      46, 82, 226,118, 227,154, 228,190,  { rot }
  52.      47, 84, 238,121, 239,158, 240,195,  { magenta }
  53.      52, 94, 232,136, 233,178, 234,220,  { gelb }
  54.      10, 53,  96,244, 139,245, 182,225 );{ wei▀ }
  55.  
  56. (*      ColorIndexesGreyScales: array [0..11]of byte =
  57.      (0, 237, 43, 238, 86, 234,129, 239, 235,172, 236,215);*)
  58.  
  59.       ColorIndexesGreyScales: array [0..7]of byte =
  60.      (10, 53, 96, 244, 139, 245, 182, 225);
  61.  
  62. {  1         6       36
  63.    2        12       72
  64.    3        18      108
  65.    4        24      144
  66.    5        30      180
  67. }
  68. type
  69.      TColorPalette = record
  70.     palVersion: Word;
  71.     palNumEntries: Word;
  72.     palPalEntry: array[0..255] of TPaletteEntry;
  73.      end;
  74.  
  75.      TColorCircle = array [0..cColorCircle - 1] of Byte;
  76. (*
  77.      PInterface = ^TInterface;
  78.      TInterface = record
  79.     lSize:  LongInt;
  80.     lLevel: LongInt;
  81.     lMagic: LongInt;
  82.     lCaller: LongInt; { 1: LGD, 2: Randomizer }
  83. {        hwndParent: hWnd;}
  84.     cp: TColorPalette;
  85.     hpal: HPalette;
  86.     lUser1, lUser2: LongInt;
  87.     cColors: integer;
  88.     ColorCircle: TColorCircle;
  89.      end;
  90. *)
  91. { definitionen fⁿr allgemeine farbpalette }
  92. { --------------------------------------- }
  93.  
  94. type
  95.   PString = ^String;
  96.  
  97.   { information about screen saver }
  98.   TLgdInfoStruct = record
  99.     cBytes: LongInt;
  100.     lMagic: LongInt;  { magic bytes }
  101.     afSaverFlags: LongInt; { combination of SCR_??? flags }
  102.     pstrModule: PSTRING; { name of module file }
  103.     strTitle: array[1..32] of char;  { short title for list boxes }
  104.     strInfo: array [1..256] of char;   { description }
  105.     strHelpFile: array[1..256] of char; { name of HELP file }
  106.     strHelpKey:  array[1..32] of char; { keyword for HELP file }
  107.     PSaverData: Pointer;
  108.   end;
  109.   PLgdInfoStruct = ^TLgdInfoStruct;
  110.  
  111.   { information exchanged when saver is started -
  112.     global information for all savers }
  113.   TLgdSaverStruct = record
  114.     cBytes: LongInt;
  115.     { in: fields filled by LGD }
  116.     fPaletteAvailable: bool; { cleared if you set fPaletteRequested }
  117.     hpalGlobal: HPalette;    { used for global palette }
  118.     cColors: integer;
  119.     ColorCircle: TColorCircle;
  120.     cp: TColorPalette;
  121.     iBPP: integer;           { display mode: bits per pixel }
  122.                  { use fPaletteAvailable only with iBPP = 8 }
  123.     { out: fields filled by module }
  124.     hpalModule: HPalette;
  125.     { note: if fPaletteAvailable is TRUE, store your
  126.       color palette handle in hpalModule and set
  127.       fPaletteAvailable to FALSE (in ScrInit).
  128.       Be sure to reverse this in ScrDone!
  129.       Restore hpalModule with hpalGlobal!
  130.       If iBPP > 8, use your palette without registering it here!}
  131.   end;
  132.   PLgdSaverStruct = ^TLgdSaverStruct;
  133.  
  134.   { information specific to screen saver module }
  135.   TLgdModuleStruct = record
  136.     cBytes: LongInt;
  137.     { in: fields filled by LGD }
  138.     pss: PLgdSaverStruct;
  139.     hwndSaver: HWND;
  140.     hrgnArea:  HRGN;  { drawing region - not yet implemented }
  141.     cxScreen, cyScreen: LongInt; { window size }
  142.     sCallerName: string; { caller name - used for INI settings }
  143.     sSaverName: string;  { saver name  - used for INI settings }
  144.     lLastTime: LongInt;  { used internally for run delay }
  145.     { out: fields filled by screen saver }
  146.     fPaletteRequested: bool; { set this flag only if fPaletteAvailable is TRUE }
  147.                 { reset it again in fpScrDone! }
  148.     hpalSaver: HPalette;     { saver specific color palette - set fPaletteRequested }
  149.     fSupportsIdleFunction: bool; { set true if ScrIdle shall be called }
  150.     lTimerDelay: LongInt;        { requested interval for ScrTimer; 0 = no timer;
  151.                    changes allowed in ScrInit and ScrTimer only! }
  152.     lCallDelay: LongInt;         { requested interval for ScrIdle; 0 = maximum }
  153.     fNoTimeout: bool;            { set true if screen save shall not timeout }
  154.     fTerminateRequest: bool;     { set by SCRNSAVE.PAS to terminate saver }
  155.     fTerminateInhibit: bool;     { set by saver to inhibit termination }
  156.     fHasChildWindows: bool;      { prevent WM_ERASEBKGND and SetPalette etc. }
  157.     PSaverData: Pointer;
  158.   end;
  159.   PLgdModuleStruct = ^TLgdModuleStruct;
  160.  
  161.   fpScrInfo = Function (var lisInfo: TLgdInfoStruct): bool; stdcall;
  162.        { index 11; requests information about screen saver }
  163.  
  164.   fpScrAbout = Function (hwndParent: HWND): bool; stdcall;
  165.        { index 12; display information about screen saver }
  166.  
  167.        { these functions are called to execute the screen saver }
  168.   fpScrInit = Function (pmdModuleData: Pointer {PModuleData}): bool; stdcall;
  169.        { index 13; init screen saver - should save pointer to structure }
  170.   fpScrDone = Procedure (pmdModuleData: Pointer {PModuleData}); stdcall;
  171.        { index 14 }
  172.  
  173.   fpScrIdle = Procedure (pmdModuleData: Pointer {PModuleData}); stdcall; { called at maximum rate if requested by saver }
  174.        { index 15 }
  175.   fpScrTimer = Procedure (pmdModuleData: Pointer {PModuleData}); stdcall;{ called by timer with selected interval }
  176.        { index 16 }
  177.  
  178.   fpScrConfig = Function (pmdModuleData: Pointer; hwndParent: HWND): integer; stdcall;
  179.        { index 17; display configuration dialog }
  180.  
  181.   (* for internal use by LGD only - subject to change! *)
  182.   TModuleHandle = record
  183.     hmod: HModule;
  184.     ScrInfo: fpScrInfo;
  185.     { index 11; requests information about screen saver }
  186.     ScrAbout: fpScrAbout;
  187.     { index 12; display information about screen saver }
  188.  
  189.     { these functions are called to execute the screen saver }
  190.     ScrInit: fpScrInit;
  191.     { index 13; init screen saver - should save pointer to structure }
  192.     ScrDone: fpScrDone;
  193.     { index 14 }
  194.     ScrIdle: fpScrIdle; { called at maximum rate if requested by saver }
  195.     { index 15 }
  196.     ScrTimer: fpScrTimer;{ called by timer with selected interval }
  197.     { index 16 }
  198.     ScrConfig: fpScrConfig;
  199.     { index 17; display configuration dialog }
  200.   end;
  201.   PModuleHandle = ^TModuleHandle;
  202.   (* for internal use only! *)
  203.  
  204.   TModuleData = record
  205.     pmh: PModuleHandle;    { allocated while module is loaded - internal use only }
  206.     pis: PLgdInfoStruct;   { always present }
  207.     pms: PLgdModuleStruct; { allocated while module is running }
  208.     strModule: string;     { path to module }
  209.   end;
  210.   PModuleData = ^TModuleData;
  211.  
  212.  
  213.  
  214. implementation
  215.  
  216. end.
  217.