用VB6创建MTS组件
用VB6创建MTS组件,用VB6创建MTS组件
'**********************************************************************************************
' MTS VB6 COM Component Template - by Michael Gonzalez
'**********************************************************************************************
'(1) You must create a reference to the Microsoft Transaction Server Type Library (mtxas.dll).
' If using Windows 2000, choose the COM+ Services Library (comsvcs.dll) instead.
'(2) Set your ClassModule's MTSTransactionMode property to 2 - RequiresTransaction
' Note: ONLY use 2 - Requires Transaction if you plan on using the component with an MSDTC-
' compliant Resource Manager such as MSMQ or SQL Server - OTHERWISE, use
' 1 - No Transactions
'(3) Make sure your project's Unattended Execution property is checked
'(4) Make sure your project's Component Version Compatibility is set to Binary Compatibility
'**********************************************************************************************
' ObjectControl implements the interface that is used by MTS when the object is
' activated and/or deactivated - this happens when you call one of the components's methods
' The ObjectControl implementation makes use of three procedures:
' 1) ObjectControl_Activate
' 2) ObjectControl_CanBePooled
' 3) ObjectControl_Deactivate
'**********************************************************************************************
Implements ObjectControl
Dim objOC As ObjectContext
Public Sub Something()
'This is a user-defined procedure/method
'The ObjectContext Object is returned by GetObjectContext
On Error GoTo Abort
'*******************************************************
' Perform whatever you want in this area
' Visual Basic 6 stuff goes here
' The Something() procedure/method is just
' an example - you may use properties and other
' methods/procedures as well!
'*******************************************************
Finished:
objOC.SetComplete
Exit Sub
Abort:
objOC.SetAbort
Err.Raise Err.Number, Err.Source, Err.Description
Exit Sub
End Sub
Private Sub ObjectControl_Activate()
'MTS invokes this procedure/method when the component/object is instantiated
Set objOC = GetObjectContext()
Exit Sub
End Sub
Private Function ObjectControl_CanBePooled() As Boolean
'This enables MTS object pooling (not currently supported my MTS 2.0)
ObjectControl_CanBePooled = True
End Function
Private Sub ObjectControl_Deactivate()
'MTS invokes this procedure/method right before the component/object is released
Set objOC = Nothing
Exit Sub
End Sub