home *** CD-ROM | disk | FTP | other *** search
/ Visual Basic 4 Power Pack / Visual_Basic4_Power_Pack.bin / vb4files / vbof / vbofevnt.cls < prev    next >
Encoding:
Text File  |  1996-11-20  |  6.1 KB  |  213 lines

  1. VERSION 1.0 CLASS
  2. BEGIN
  3.   MultiUse = 0   'False
  4. END
  5. Attribute VB_Name = "VBOFEventObject"
  6. Attribute VB_Creatable = True
  7. Attribute VB_Exposed = False
  8. Option Explicit
  9.  
  10. ' (c) Copyright 1995 Ken Fitzpatrick
  11. '     All Rights Reserved
  12. '     Cannot be distributed or sold without permission
  13. '
  14. ' VBObjectFrameworkEventObject is a supplemental
  15. '   Event Object for Microsoft Visual Basic 4.0.
  16. '   It is valid only in conjunction with the
  17. '   following Classes Modules:
  18. '       VBOFCollection
  19. '       VBOFObjectLink
  20. '       VBOFObjectManager
  21. '       VBOFEventManager
  22. '
  23. ' See Class Module "VBOFObjectManager" for
  24. '     documentation details
  25. '
  26. ' VBOFEventObject contains a registered Event
  27. '   and the registrant to receive the notification.
  28. '
  29. ' VBOFEventObject is a privately managed object
  30. '   within the VBOFEventManager solution.
  31.  
  32. Private pvtRegisterObject As Object
  33. Private pvtRegisterType As String
  34. Private pvtTriggerObject As Object
  35. Private pvtTriggerEvent As String
  36. Private pvtTriggerObjectType As String
  37. Private pvtTriggerCollection As VBOFCollection
  38.  
  39. Private pvtVBOFObjectManager As VBOFObjectManager
  40.  
  41. Public Function Describe() As String
  42. Attribute Describe.VB_Description = "Private"
  43.  
  44.     Dim tempString As String
  45.     
  46.     tempString = _
  47.         TypeName(Me) & ".Describe: " & _
  48.         "TypeName(RegisterObject)='" & TypeName(pvtRegisterObject) & _
  49.         "', RegisterType='" & pvtRegisterType & _
  50.         "', TypeName(TriggerObject)='" & pvtTriggerObjectType & _
  51.         "', TriggerEvent='" & pvtTriggerEvent
  52.  
  53.     Describe = tempString
  54. End Function
  55.  
  56. Public Property Get ObjectManager() As VBOFObjectManager
  57. Attribute ObjectManager.VB_Description = "Private"
  58.     Set ObjectManager = pvtVBOFObjectManager
  59. End Property
  60.  
  61.  
  62. Public Property Set ObjectManager(anObjectManager As VBOFObjectManager)
  63.     Set pvtVBOFObjectManager = anObjectManager
  64. End Property
  65.  
  66.  
  67. Public Property Get RegisterObject() As Variant
  68. Attribute RegisterObject.VB_Description = "Private"
  69.     Set RegisterObject = pvtRegisterObject
  70. End Property
  71.  
  72. Public Property Set RegisterObject(anObject As Variant)
  73.     Set pvtRegisterObject = anObject
  74. End Property
  75.  
  76.  
  77.  
  78. Public Property Get RegisterType() As String
  79. Attribute RegisterType.VB_Description = "Private"
  80.     RegisterType = pvtRegisterType
  81. End Property
  82.  
  83. Public Property Let RegisterType(aRegisterType As String)
  84.     pvtRegisterType = UCase$(RegisterType)
  85. End Property
  86.  
  87. Public Property Get TriggerObject() As Variant
  88. Attribute TriggerObject.VB_Description = "Private"
  89.     Set TriggerObject = pvtTriggerObject
  90. End Property
  91.  
  92. Public Property Set TriggerObject(aTriggerObject As Variant)
  93.     Set pvtTriggerObject = aTriggerObject
  94. End Property
  95.  
  96. Public Property Get TriggerEvent() As String
  97. Attribute TriggerEvent.VB_Description = "Private"
  98.     TriggerEvent = pvtTriggerEvent
  99. End Property
  100.  
  101. Public Property Let TriggerEvent(aTriggerEvent As String)
  102.     pvtTriggerEvent = aTriggerEvent
  103. End Property
  104.  
  105. Public Property Get TriggerObjectType() As String
  106. Attribute TriggerObjectType.VB_Description = "Private"
  107.     TriggerObjectType = pvtTriggerObjectType
  108. End Property
  109.  
  110. Public Property Let TriggerObjectType(aTriggerObjectType As String)
  111.     pvtTriggerObjectType = UCase$(aTriggerObjectType)
  112. End Property
  113.  
  114. Public Function IsRegisteredForEvent(Optional Object As Variant, Optional Event As Variant, Optional Collection As Variant, Optional IsCollectionEvent As Variant) As Boolean
  115. Attribute IsRegisteredForEvent.VB_Description = "Private"
  116. ' Returns True or False, depending on whether or not
  117. '   this EventObject pertains to the specified
  118. '   TriggerEvent
  119.  
  120.     Dim tempUCaseEvent As String
  121.  
  122.     On Local Error Resume Next
  123.  
  124.     tempUCaseEvent = UCase$(Event)
  125.  
  126. ' check for Collections notifying one another
  127.     If Not IsMissing(IsCollectionEvent) Then
  128.         If IsCollectionEvent Then
  129.             If TypeName(Me.RegisterObject) = "VBOFCollection" Then
  130.                 IsRegisteredForEvent = True
  131.                 Exit Function
  132.             End If
  133.         End If
  134.     End If
  135.     
  136. ' check for general-purpose registrations
  137. '   based on Event
  138.     If pvtTriggerEvent <> "" _
  139.     And pvtTriggerEvent <> "ALL" _
  140.     And pvtTriggerEvent <> "ANY" _
  141.     And UCase$(pvtTriggerEvent) <> tempUCaseEvent _
  142.     Then
  143.         IsRegisteredForEvent = False
  144.         Exit Function
  145.     End If
  146.     
  147. ' check for general-purpose registrations
  148. '   based on TypeName()
  149.     If pvtTriggerObjectType <> "" _
  150.     And pvtTriggerObjectType <> "ALL" _
  151.     And pvtTriggerObjectType <> "ANY" _
  152.     And UCase$(pvtTriggerObjectType) <> UCase$(TypeName(Object)) _
  153.     Then
  154.         IsRegisteredForEvent = False
  155.         Exit Function
  156.     End If
  157.     
  158. ' check for specific registrations
  159. '   based on Object
  160.     If Not pvtTriggerObject Is Nothing Then
  161.         If pvtTriggerObject.ObjectID <> Object.ObjectID _
  162.         Or TypeName(pvtTriggerObject) <> TypeName(Object) _
  163.         Then
  164.             IsRegisteredForEvent = False
  165.             Exit Function
  166.         End If
  167.     End If
  168.  
  169. #If NoDebugMode = False Then
  170.     If pvtVBOFObjectManager.DebugMode Then
  171.         pvtVBOFObjectManager.DisplayDebugMessage _
  172.             TypeName(Me) & " Event Notification to ObjectType=" & _
  173.             TypeName(Object) & _
  174.             ", ObjectID=" & _
  175.             Object.ObjectID
  176.     End If
  177. #End If
  178.  
  179.     IsRegisteredForEvent = True
  180. End Function
  181.  
  182. Public Property Get ObjectEventManager() As VBOFEventManager
  183. Attribute ObjectEventManager.VB_Description = "Private"
  184.     Set ObjectEventManager = _
  185.         pvtVBOFObjectManager.ObjectEventManager
  186. End Property
  187.  
  188.  
  189. Private Sub Class_Initialize()
  190. Attribute Class_Initialize.VB_Description = "Private"
  191.     pvtTriggerEvent = ""
  192.     pvtTriggerObjectType = ""
  193.     
  194.     Set pvtTriggerObject = _
  195.         Nothing
  196.     Set pvtTriggerCollection = _
  197.         Nothing
  198. End Sub
  199.  
  200.  
  201.  
  202. Public Property Get Collection() As VBOFCollection
  203. Attribute Collection.VB_Description = "Private"
  204.     Set Collection = _
  205.         pvtTriggerCollection
  206. End Property
  207.  
  208.  
  209. Public Property Set Collection(aCollection As VBOFCollection)
  210.     Set pvtTriggerCollection = _
  211.         aCollection
  212. End Property
  213.