You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
188 lines
11 KiB
188 lines
11 KiB
Attribute VB_Name = "dSSaver"
|
|
Option Explicit
|
|
'----------------------------------------------------------------------
|
|
' Application Specific Constants...
|
|
'----------------------------------------------------------------------
|
|
'''Public gSpriteCollection As Collection ' collection of active sprites...
|
|
Public gSSprite() As ssSprite ' Array of active sprites...
|
|
|
|
Public gSpriteCount As Long ' count of active sprites..
|
|
Public gTracers As Boolean ' tracers option (sprite doesn't clean up trails)
|
|
Public gRefreshRate As Long ' sprite animation frame movement rate
|
|
Public gRefreshRND As Boolean ' random refresh rate option
|
|
Public gSpriteSize As Long ' relative sprite size option
|
|
Public gSizeRND As Boolean ' randomize sprite size
|
|
Public gSpriteSpeed As Long ' active sprite velosity
|
|
Public gSpeedRND As Boolean ' randomize sprite speed
|
|
Public gSprite As ResBitmap ' bitmap resource loading bucket
|
|
|
|
Public Const gREGKEY_APPROOT = "SOFTWARE\VB 5 Samples\VB 5 Saver" ' ScreenSaver registry subkey
|
|
Public Const gREGVAL_SPRITECOUNT = "SpriteCount" ' Sprite count registry setting key
|
|
Public Const DEF_SPRITECOUNT = 8 ' default
|
|
Public Const MIN_SPRITECOUNT = 1 ' min possible value
|
|
Public Const MAX_SPRITECOUNT = 30 ' max possible value
|
|
|
|
Public Const gREGVAL_TRACERSON = "TracersOn" ' Tracers on regkey
|
|
|
|
Public Const gREGVAL_REFRESHRATE = "RefreshRate" ' Animation refresh rate registry setting key
|
|
Public Const MIN_REFRESHRATE = 1 ' 1 / 1000 sec
|
|
Public Const MAX_REFRESHRATE = 100 ' 1 / 10 sec
|
|
Public Const gREGVAL_RATERANDOM = "RateRandom" ' Random refresh rate registry setting key
|
|
|
|
Public Const gREGVAL_SPRITESIZE = "SpriteSize" ' Sprite size registry setting key
|
|
Public Const MIN_SPRITESIZE = 25 ' 25% normal size
|
|
Public Const MAX_SPRITESIZE = 150 ' 150% normal size
|
|
Public Const gREGVAL_SIZERANDOM = "SizeRandom" ' Sprite size random registry setting key
|
|
|
|
Public Const gREGVAL_SPRITESPEED = "SpriteSpeed" ' Sprite speed registry setting key
|
|
Public Const MIN_SPRITESPEED = 1 ' Move in 1 pixel increments
|
|
Public Const MAX_SPRITESPEED = 50 ' Move in 50 pixel increments
|
|
Public Const gREGVAL_SPEEDRANDOM = "SpeedRandom" ' Sprite speed random registry setting key
|
|
Public Const sTRUE = "TRUE" ' Boolean TRUE registry value
|
|
Public Const sFALSE = "FALSE" ' Boolean FALSE registry value
|
|
|
|
Public Const BASE_MASS = 100 ' Relative base mass for sprite size
|
|
|
|
'----------------------------------------------------------------------
|
|
'Public API Declares...
|
|
'----------------------------------------------------------------------
|
|
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
|
|
Public Declare Function DeleteObject Lib "gdi32" (ByVal hObject As Long) As Long
|
|
|
|
Public Declare Function GetDesktopWindow Lib "user32" () As Long
|
|
Public Declare Function GetClientRect Lib "user32" (ByVal hwnd As Long, lpRect As RECT) As Long
|
|
Public Declare Function GetWindowRect Lib "user32" (ByVal hwnd As Long, lpRect As RECT) As Long
|
|
Public Declare Function GetObject Lib "gdi32" Alias "GetObjectA" (ByVal hObject As Long, ByVal nCount As Long, lpObject As Any) As Long
|
|
Public Declare Function GetMapMode Lib "gdi32" (ByVal hdc As Long) As Long
|
|
|
|
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
|
|
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
|
|
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
|
|
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
|
|
Public Declare Function RegCloseKey Lib "advapi32" (ByVal hKey As Long) As Long
|
|
|
|
Public Declare Function SelectObject Lib "gdi32" (ByVal hdc As Long, ByVal hObject As Long) As Long
|
|
Public Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
|
|
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
|
|
Public Declare Function SetMapMode Lib "gdi32" (ByVal hdc As Long, ByVal nMapMode As Long) As Long
|
|
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)
|
|
Public Declare Function SetParent Lib "user32" (ByVal hWndChild As Long, ByVal hWndNewParent As Long) As Long
|
|
Public Declare Function SetBkColor Lib "gdi32" (ByVal hdc As Long, ByVal crColor As Long) As Long
|
|
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
|
|
Public Declare Function ShowCursor Lib "user32" (ByVal fShow As Integer) As Integer
|
|
Public Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
|
|
|
|
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
|
|
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
|
|
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
|
|
Public Declare Function CreateCompatibleBitmap Lib "gdi32" (ByVal hdc As Long, ByVal nWidth As Long, ByVal nHeight As Long) As Long
|
|
Public Declare Function CreateBitmapIndirect Lib "gdi32" (lpBitmap As Any) As Long
|
|
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
|
|
Public Declare Function CreateCompatibleDC Lib "gdi32" (ByVal hdc As Long) As Long
|
|
Public Declare Function DeleteDC Lib "gdi32" (ByVal hdc As Long) As Long
|
|
Public Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long
|
|
Public Declare Function GetWindowDC Lib "user32" (ByVal hwnd As Long) As Long
|
|
Public Declare Function ReleaseDC Lib "user32" (ByVal hwnd As Long, ByVal hdc As Long) As Long
|
|
|
|
Public Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
|
|
|
|
'----------------------------------------------------------------------
|
|
'Public Constants...
|
|
'----------------------------------------------------------------------
|
|
Public Const WS_CHILD = &H40000000
|
|
Public Const GWL_HWNDPARENT = (-8)
|
|
Public Const GWL_STYLE = (-16)
|
|
|
|
Public Const HWND_TOPMOST = -1&
|
|
Public Const HWND_TOP = 0&
|
|
Public Const HWND_BOTTOM = 1&
|
|
|
|
Public Const SWP_NOSIZE = &H1&
|
|
Public Const SWP_NOMOVE = &H2
|
|
Public Const SWP_NOZORDER = &H4
|
|
Public Const SWP_NOREDRAW = &H8
|
|
Public Const SWP_NOACTIVATE = &H10
|
|
Public Const SWP_FRAMECHANGED = &H20
|
|
Public Const SWP_SHOWWINDOW = &H40
|
|
Public Const SWP_HIDEWINDOW = &H80
|
|
Public Const SWP_NOCOPYBITS = &H100
|
|
Public Const SWP_NOOWNERZORDER = &H200
|
|
Public Const SWP_DRAWFRAME = SWP_FRAMECHANGED
|
|
Public Const SWP_NOREPOSITION = SWP_NOOWNERZORDER
|
|
|
|
' Windows messages...
|
|
Public Const WM_PAINT = &HF&
|
|
Public Const WM_ACTIVATEAPP = &H1C&
|
|
Public Const SW_SHOWNOACTIVATE = 4&
|
|
|
|
' Get Windows Long Constants
|
|
Public Const GWL_USERDATA = (-21&)
|
|
Public Const GWL_WNDPROC = (-4&)
|
|
|
|
' ScreenSaver Running Modes
|
|
Public Const RM_NORMAL = 1
|
|
Public Const RM_CONFIGURE = 2
|
|
Public Const RM_PREVIEW = 4
|
|
|
|
' Reg Create Type Values...
|
|
Public Const REG_OPTION_RESERVED = 0 ' Parameter is reserved
|
|
Public Const REG_OPTION_NON_VOLATILE = 0 ' Key is preserved when system is rebooted
|
|
Public Const REG_OPTION_VOLATILE = 1 ' Key is not preserved when system is rebooted
|
|
Public Const REG_OPTION_CREATE_LINK = 2 ' Created key is a symbolic link
|
|
Public Const REG_OPTION_BACKUP_RESTORE = 4 ' open for backup or restore
|
|
|
|
' Reg Key Security Options...
|
|
Public Const READ_CONTROL = &H20000
|
|
Public Const KEY_QUERY_VALUE = &H1
|
|
Public Const KEY_SET_VALUE = &H2
|
|
Public Const KEY_CREATE_SUB_KEY = &H4
|
|
Public Const KEY_ENUMERATE_SUB_KEYS = &H8
|
|
Public Const KEY_NOTIFY = &H10
|
|
Public Const KEY_CREATE_LINK = &H20
|
|
Public Const KEY_ALL_ACCESS = KEY_QUERY_VALUE + KEY_SET_VALUE + _
|
|
KEY_CREATE_SUB_KEY + KEY_ENUMERATE_SUB_KEYS + _
|
|
KEY_NOTIFY + KEY_CREATE_LINK + READ_CONTROL
|
|
|
|
' Reg Key ROOT Types...
|
|
Public Const HKEY_CLASSES_ROOT = &H80000000
|
|
Public Const HKEY_CURRENT_USER = &H80000001
|
|
Public Const HKEY_LOCAL_MACHINE = &H80000002
|
|
Public Const HKEY_USERS = &H80000003
|
|
Public Const HKEY_PERFORMANCE_DATA = &H80000004
|
|
|
|
Public Const ERROR_SUCCESS = 0 ' Return Value...
|
|
Public Const REG_SZ = 1 ' Unicode nul terminated string
|
|
Public Const REG_DWORD = 4 ' 32-bit number
|
|
|
|
'----------------------------------------------------------------------
|
|
'Public Type Defs...
|
|
'----------------------------------------------------------------------
|
|
Public Type POINTAPI
|
|
x As Long
|
|
y As Long
|
|
End Type
|
|
Public Type RECT
|
|
Left As Long
|
|
Top As Long
|
|
Right As Long
|
|
Bottom As Long
|
|
End Type
|
|
Public Type BITMAP
|
|
bmType As Long
|
|
bmWidth As Long
|
|
bmHeight As Long
|
|
bmWidthBytes As Long
|
|
bmPlanes As Integer
|
|
bmBitsPixel As Integer
|
|
bmBits As Long
|
|
End Type
|
|
Public Type SECURITY_ATTRIBUTES
|
|
nLength As Long
|
|
lpSecurityDescriptor As Long
|
|
bInheritHandle As Boolean
|
|
End Type
|
|
Public Type ResBitmap
|
|
ResID As Long
|
|
Sprite As StdPicture
|
|
End Type
|