home *** CD-ROM | disk | FTP | other *** search
/ Planet Source Code Jumbo …e CD Visual Basic 1 to 7 / 3_2004-2005.ISO / Data / Zips / Just_anoth171646352004.psc / Strings / cPerformanceTimer.cls next >
Text File  |  2004-02-28  |  1KB  |  52 lines

  1. VERSION 1.0 CLASS
  2. BEGIN
  3.   MultiUse = -1  'True
  4.   Persistable = 0  'NotPersistable
  5.   DataBindingBehavior = 0  'vbNone
  6.   DataSourceBehavior  = 0  'vbNone
  7.   MTSTransactionMode  = 0  'NotAnMTSObject
  8. END
  9. Attribute VB_Name = "cPerformanceTimer"
  10. Attribute VB_GlobalNameSpace = False
  11. Attribute VB_Creatable = True
  12. Attribute VB_PredeclaredId = False
  13. Attribute VB_Exposed = False
  14. Option Explicit
  15.  
  16. 'Private Type LARGE_INTEGER
  17. '    LowPart As Long
  18. '    HighPart As Long
  19. 'End Type
  20.  
  21. Private Declare Function QueryPerformanceCounter Lib "kernel32" (OutCounter As Currency) As Long
  22. Private Declare Function QueryPerformanceFrequency Lib "kernel32" (OutFrequency As Currency) As Long
  23.  
  24. Private mcFrequency As Currency
  25.  
  26. Private mcStarted   As Currency
  27. Private mcStopped   As Currency
  28.  
  29. Private Sub Class_Initialize()
  30.     QueryPerformanceFrequency mcFrequency
  31. End Sub
  32.  
  33. Public Function TimerStart() As Boolean
  34.     TimerStart = QueryPerformanceCounter(mcStarted) <> 0
  35.     mcStopped = 0
  36. End Function
  37.  
  38. Public Function TimerElapsed() As Double
  39.     If mcStopped = 0 Then
  40.         Dim lcTemp As Currency
  41.         QueryPerformanceCounter lcTemp
  42.         lcTemp = lcTemp
  43.         TimerElapsed = (lcTemp - mcStarted) / mcFrequency
  44.     Else
  45.         TimerElapsed = (mcStopped - mcStarted) / mcFrequency
  46.     End If
  47. End Function
  48.  
  49. Public Sub TimerStop()
  50.     QueryPerformanceCounter mcStopped
  51. End Sub
  52.