home *** CD-ROM | disk | FTP | other *** search
/ QBasic & Borland Pascal & C / Delphi5.iso / Basic / Visual Basic.60 / COMMON / TOOLS / VB / UNSUPPRT / SSAVER / DSSAVER.BAS next >
Encoding:
BASIC Source File  |  1997-01-16  |  10.9 KB  |  188 lines

  1. Attribute VB_Name = "dSSaver"
  2. Option Explicit
  3. '----------------------------------------------------------------------
  4. ' Application Specific Constants...
  5. '----------------------------------------------------------------------
  6. '''Public gSpriteCollection As Collection              ' collection of active sprites...
  7. Public gSSprite() As ssSprite                       ' Array of active sprites...
  8.  
  9. Public gSpriteCount As Long                         ' count of active sprites..
  10. Public gTracers As Boolean                          ' tracers option (sprite doesn't clean up trails)
  11. Public gRefreshRate As Long                         ' sprite animation frame movement rate
  12. Public gRefreshRND As Boolean                       ' random refresh rate option
  13. Public gSpriteSize As Long                          ' relative sprite size option
  14. Public gSizeRND As Boolean                          ' randomize sprite size
  15. Public gSpriteSpeed As Long                         ' active sprite velosity
  16. Public gSpeedRND As Boolean                         ' randomize sprite speed
  17. Public gSprite As ResBitmap                         ' bitmap resource loading bucket
  18.  
  19. Public Const gREGKEY_APPROOT = "SOFTWARE\VB 5 Samples\VB 5 Saver" ' ScreenSaver registry subkey
  20. Public Const gREGVAL_SPRITECOUNT = "SpriteCount"    ' Sprite count registry setting key
  21. Public Const DEF_SPRITECOUNT = 8                    ' default
  22. Public Const MIN_SPRITECOUNT = 1                    ' min possible value
  23. Public Const MAX_SPRITECOUNT = 30                   ' max possible value
  24.  
  25. Public Const gREGVAL_TRACERSON = "TracersOn"        ' Tracers on regkey
  26.  
  27. Public Const gREGVAL_REFRESHRATE = "RefreshRate"    ' Animation refresh rate registry setting key
  28. Public Const MIN_REFRESHRATE = 1                    ' 1 / 1000 sec
  29. Public Const MAX_REFRESHRATE = 100                  ' 1 / 10   sec
  30. Public Const gREGVAL_RATERANDOM = "RateRandom"      ' Random refresh rate registry setting key
  31.  
  32. Public Const gREGVAL_SPRITESIZE = "SpriteSize"      ' Sprite size registry setting key
  33. Public Const MIN_SPRITESIZE = 25                    ' 25% normal size
  34. Public Const MAX_SPRITESIZE = 150                   ' 150% normal size
  35. Public Const gREGVAL_SIZERANDOM = "SizeRandom"      ' Sprite size random registry setting key
  36.  
  37. Public Const gREGVAL_SPRITESPEED = "SpriteSpeed"    ' Sprite speed registry setting key
  38. Public Const MIN_SPRITESPEED = 1                    ' Move in 1 pixel increments
  39. Public Const MAX_SPRITESPEED = 50                   ' Move in 50 pixel increments
  40. Public Const gREGVAL_SPEEDRANDOM = "SpeedRandom"    ' Sprite speed random registry setting key
  41. Public Const sTRUE = "TRUE"                         ' Boolean TRUE registry value
  42. Public Const sFALSE = "FALSE"                       ' Boolean FALSE registry value
  43.  
  44. Public Const BASE_MASS = 100                        ' Relative base mass for sprite size
  45.  
  46. '----------------------------------------------------------------------
  47. 'Public API Declares...
  48. '----------------------------------------------------------------------
  49. Public Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hwnd As Long, ByVal MSG As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
  50. Public Declare Function DeleteObject Lib "gdi32" (ByVal hObject As Long) As Long
  51.  
  52. Public Declare Function GetDesktopWindow Lib "user32" () As Long
  53. Public Declare Function GetClientRect Lib "user32" (ByVal hwnd As Long, lpRect As RECT) As Long
  54. Public Declare Function GetWindowRect Lib "user32" (ByVal hwnd As Long, lpRect As RECT) As Long
  55. Public Declare Function GetObject Lib "gdi32" Alias "GetObjectA" (ByVal hObject As Long, ByVal nCount As Long, lpObject As Any) As Long
  56. Public Declare Function GetMapMode Lib "gdi32" (ByVal hdc As Long) As Long
  57.  
  58. Public Declare Function RegSetValueEx Lib "advapi32" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, ByVal lpData As String, ByVal cbData As Long) As Long
  59. Public Declare Function RegCreateKeyEx Lib "advapi32" Alias "RegCreateKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal Reserved As Long, ByVal lpClass As String, ByVal dwOptions As Long, ByVal samDesired As Long, ByRef lpSecurityAttributes As SECURITY_ATTRIBUTES, ByRef phkResult As Long, ByRef lpdwDisposition As Long) As Long
  60. Public Declare Function RegOpenKeyEx Lib "advapi32" Alias "RegOpenKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal ulOptions As Long, ByVal samDesired As Long, ByRef phkResult As Long) As Long
  61. Public Declare Function RegQueryValueEx Lib "advapi32" Alias "RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, ByRef lpType As Long, ByVal lpData As String, ByRef lpcbData As Long) As Long
  62. Public Declare Function RegCloseKey Lib "advapi32" (ByVal hKey As Long) As Long
  63.  
  64. Public Declare Function SelectObject Lib "gdi32" (ByVal hdc As Long, ByVal hObject As Long) As Long
  65. Public Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
  66. Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Long) As Long
  67. Public Declare Function SetMapMode Lib "gdi32" (ByVal hdc As Long, ByVal nMapMode As Long) As Long
  68. Public Declare Sub SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long)
  69. Public Declare Function SetParent Lib "user32" (ByVal hWndChild As Long, ByVal hWndNewParent As Long) As Long
  70. Public Declare Function SetBkColor Lib "gdi32" (ByVal hdc As Long, ByVal crColor As Long) As Long
  71. Public Declare Function ShellAbout Lib "shell32.dll" Alias "ShellAboutA" (ByVal hwnd As Long, ByVal szApp As String, ByVal szOtherStuff As String, ByVal hIcon As Long) As Long
  72. Public Declare Function ShowCursor Lib "user32" (ByVal fShow As Integer) As Integer
  73. Public Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
  74.  
  75. Public Declare Function StretchBlt Lib "gdi32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal nSrcWidth As Long, ByVal nSrcHeight As Long, ByVal dwRop As Long) As Long
  76. Public Declare Function BitBlt Lib "gdi32" (ByVal hDestDC As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal dwRop As Long) As Long
  77. Public Declare Function CreateBitmap Lib "gdi32" (ByVal nWidth As Long, ByVal nHeight As Long, ByVal nPlanes As Long, ByVal nBitCount As Long, lpBits As Any) As Long
  78. Public Declare Function CreateCompatibleBitmap Lib "gdi32" (ByVal hdc As Long, ByVal nWidth As Long, ByVal nHeight As Long) As Long
  79. Public Declare Function CreateBitmapIndirect Lib "gdi32" (lpBitmap As Any) As Long
  80. Public Declare Function CreateIC Lib "gdi32" Alias "CreateICA" (ByVal lpDriverName As String, ByVal lpDeviceName As String, ByVal lpOutput As String, ByVal lpInitData As String) As Long
  81. Public Declare Function CreateCompatibleDC Lib "gdi32" (ByVal hdc As Long) As Long
  82. Public Declare Function DeleteDC Lib "gdi32" (ByVal hdc As Long) As Long
  83. Public Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long
  84. Public Declare Function GetWindowDC Lib "user32" (ByVal hwnd As Long) As Long
  85. Public Declare Function ReleaseDC Lib "user32" (ByVal hwnd As Long, ByVal hdc As Long) As Long
  86.  
  87. Public Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
  88.  
  89. '----------------------------------------------------------------------
  90. 'Public Constants...
  91. '----------------------------------------------------------------------
  92. Public Const WS_CHILD = &H40000000
  93. Public Const GWL_HWNDPARENT = (-8)
  94. Public Const GWL_STYLE = (-16)
  95.  
  96. Public Const HWND_TOPMOST = -1&
  97. Public Const HWND_TOP = 0&
  98. Public Const HWND_BOTTOM = 1&
  99.  
  100. Public Const SWP_NOSIZE = &H1&
  101. Public Const SWP_NOMOVE = &H2
  102. Public Const SWP_NOZORDER = &H4
  103. Public Const SWP_NOREDRAW = &H8
  104. Public Const SWP_NOACTIVATE = &H10
  105. Public Const SWP_FRAMECHANGED = &H20
  106. Public Const SWP_SHOWWINDOW = &H40
  107. Public Const SWP_HIDEWINDOW = &H80
  108. Public Const SWP_NOCOPYBITS = &H100
  109. Public Const SWP_NOOWNERZORDER = &H200
  110. Public Const SWP_DRAWFRAME = SWP_FRAMECHANGED
  111. Public Const SWP_NOREPOSITION = SWP_NOOWNERZORDER
  112.  
  113. ' Windows messages...
  114. Public Const WM_PAINT = &HF&
  115. Public Const WM_ACTIVATEAPP = &H1C&
  116. Public Const SW_SHOWNOACTIVATE = 4&
  117.  
  118. ' Get Windows Long Constants
  119. Public Const GWL_USERDATA = (-21&)
  120. Public Const GWL_WNDPROC = (-4&)
  121.  
  122. ' ScreenSaver Running Modes
  123. Public Const RM_NORMAL = 1
  124. Public Const RM_CONFIGURE = 2
  125. Public Const RM_PREVIEW = 4
  126.  
  127. ' Reg Create Type Values...
  128. Public Const REG_OPTION_RESERVED = 0           ' Parameter is reserved
  129. Public Const REG_OPTION_NON_VOLATILE = 0       ' Key is preserved when system is rebooted
  130. Public Const REG_OPTION_VOLATILE = 1           ' Key is not preserved when system is rebooted
  131. Public Const REG_OPTION_CREATE_LINK = 2        ' Created key is a symbolic link
  132. Public Const REG_OPTION_BACKUP_RESTORE = 4     ' open for backup or restore
  133.  
  134. ' Reg Key Security Options...
  135. Public Const READ_CONTROL = &H20000
  136. Public Const KEY_QUERY_VALUE = &H1
  137. Public Const KEY_SET_VALUE = &H2
  138. Public Const KEY_CREATE_SUB_KEY = &H4
  139. Public Const KEY_ENUMERATE_SUB_KEYS = &H8
  140. Public Const KEY_NOTIFY = &H10
  141. Public Const KEY_CREATE_LINK = &H20
  142. Public Const KEY_ALL_ACCESS = KEY_QUERY_VALUE + KEY_SET_VALUE + _
  143.                        KEY_CREATE_SUB_KEY + KEY_ENUMERATE_SUB_KEYS + _
  144.                        KEY_NOTIFY + KEY_CREATE_LINK + READ_CONTROL
  145.                      
  146. ' Reg Key ROOT Types...
  147. Public Const HKEY_CLASSES_ROOT = &H80000000
  148. Public Const HKEY_CURRENT_USER = &H80000001
  149. Public Const HKEY_LOCAL_MACHINE = &H80000002
  150. Public Const HKEY_USERS = &H80000003
  151. Public Const HKEY_PERFORMANCE_DATA = &H80000004
  152.  
  153. Public Const ERROR_SUCCESS = 0                  ' Return Value...
  154. Public Const REG_SZ = 1                         ' Unicode nul terminated string
  155. Public Const REG_DWORD = 4                      ' 32-bit number
  156.  
  157. '----------------------------------------------------------------------
  158. 'Public Type Defs...
  159. '----------------------------------------------------------------------
  160. Public Type POINTAPI
  161.     x As Long
  162.     y As Long
  163. End Type
  164. Public Type RECT
  165.     Left As Long
  166.     Top As Long
  167.     Right As Long
  168.     Bottom As Long
  169. End Type
  170. Public Type BITMAP
  171.     bmType As Long
  172.     bmWidth As Long
  173.     bmHeight As Long
  174.     bmWidthBytes As Long
  175.     bmPlanes As Integer
  176.     bmBitsPixel As Integer
  177.     bmBits As Long
  178. End Type
  179. Public Type SECURITY_ATTRIBUTES
  180.     nLength As Long
  181.     lpSecurityDescriptor As Long
  182.     bInheritHandle As Boolean
  183. End Type
  184. Public Type ResBitmap
  185.     ResID As Long
  186.     Sprite As StdPicture
  187. End Type
  188.