KnowledgeBase Archive

An Archive of Early Microsoft KnowledgeBase Articles

View on GitHub

Q242401: HOWTO: Use a Timer With A Visual Basic SnapIn Project

Article: Q242401
Product(s): Microsoft Visual Basic for Windows
Version(s): WINDOWS:1.1,1.2,6.0
Operating System(s): 
Keyword(s): kbMMC kbVBp600 kbGrpDSPlatform kbDSupport kbSnapIn
Last Modified: 11-JAN-2001

-------------------------------------------------------------------------------
The information in this article applies to:

- Microsoft Management Console, versions 1.1, 1.2 
- Microsoft Visual Basic Professional Edition for Windows, version 6.0 
- Microsoft Visual Basic Enterprise Edition for Windows, version 6.0 
-------------------------------------------------------------------------------

SUMMARY
=======

This article demonstrates how to use a Timer object in a SnapIn project
developed with the MMC Snap-in Designer For Visual Basic.

MORE INFORMATION
================

Steps To Reproduce Sample
-------------------------

1. Start Visual Basic and create a new SnapIn project from the New Project
  dialog box.

2. Open the SnapIn1 Designer and add a new URLView Result View to the Static
  Node. By default the new URLView is named URLView1.

3. View the properties of the URLView and set it's URL property to a valid
  website (http://example.microsoft.com) and click Ok.

4. View the SnapIn1 Designer properties, and set the Default Result View
  property to URLView1 and click Ok.

5. Open the SnapIn1 Designer code window and paste in the following code:

  Private Sub ResultViews_Deactivate(ByVal ResultView As SnapInLib.ResultView, Keep As Boolean)

      ' stop the timer object
      If (ResultView.Tag) Then
      
          Call KillTimer(0, ResultView.Tag)
          
      End If
      
  End Sub

  Private Sub ResultViews_Initialize(ByVal ResultView As SnapInLib.ResultView)
      
      ' start the timer object
      ResultView.Tag = SetTimer(0, 0, 1000, AddressOf TestTmrProc)
      
      ' if timer object failed, present a dialog to the user
      If (ResultView.Tag = 0) Then
      
          SnapIn.ConsoleMsgBox "Error Creating Timer Object", vbOKOnly + vbCritical, "Timer Object Error"
          
      End If
      
  End Sub

6. Add a new Module to the project. By default this new module is named Module1.

7. Open the Module1 code window and past in the following code:

  Option Explicit

  Public Declare Function SetTimer Lib "user32" (ByVal hwnd As Long, ByVal nIDEvent As Long, ByVal uElapse As Long, ByVal lpTimerFunc As Long) As Long
  Public Declare Function KillTimer Lib "user32" (ByVal hwnd As Long, ByVal nIDEvent As Long) As Long
  Public Declare Function Beep Lib "kernel32" (ByVal dwFreq As Long, ByVal dwDuration As Long) As Long

  Public Sub TestTmrProc(ByVal hwnd As Long, ByVal uMsg As Long, ByVal iEvent As Long, ByVal iTime As Long)

      ' enable error handling here.  this is important : any error which
      ' is not handled in the module may cause the Snapin to stop
      ' responding
      On Error Resume Next
      
      ' print current time information to debug window 
      Debug.Print Now
      
  End Sub

8. Press F5 to run the SnapIn project from within the IDE. When the debugging
  dialog box appears, select the Start Program option and type MMC into the
  text field and click ok.

9. When MMC loads, load the test SnapIn into the console.

10. Select the SnapIn1 ScopePaneItem.

11. Switch to the Visual Basic IDE, and examine the Immediate Window. The
  current time is printed once a second until another ScopeItem is selected or
  MMC is closed.

Additional query words: snapin designer mmc

======================================================================
Keywords          : kbMMC kbVBp600 kbGrpDSPlatform kbDSupport kbSnapIn 
Technology        : kbVBSearch kbAudDeveloper kbZNotKeyword6 kbZNotKeyword2 kbVB600Search kbVBA600 kbVB600 kbMMCSearch kbMMC110 kbMMC120
Version           : WINDOWS:1.1,1.2,6.0
Issue type        : kbhowto

=============================================================================

THE INFORMATION PROVIDED IN THE MICROSOFT KNOWLEDGE BASE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. MICROSOFT DISCLAIMS ALL WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING THE WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL MICROSOFT CORPORATION OR ITS SUPPLIERS BE LIABLE FOR ANY DAMAGES WHATSOEVER INCLUDING DIRECT, INDIRECT, INCIDENTAL, CONSEQUENTIAL, LOSS OF BUSINESS PROFITS OR SPECIAL DAMAGES, EVEN IF MICROSOFT CORPORATION OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES SO THE FOREGOING LIMITATION MAY NOT APPLY.

Copyright Microsoft Corporation 1986-2002.