Query Objects for Initialization State

Query Objects for Initialization State

In a large app, or even a small one, you can use Property Let and Property Get to make sure necessary variables and subsystems are initialized. This code is from a large ADSI-based program in production:

 Public Property Get ADSIInitialized() As Boolean	If dso Is Nothing Then		ADSIInitialized = False	Else		ADSIInitialized = True	End IfEnd PropertyPublic Property Let ADSIInitialized(aValue As Boolean)	If aValue = False Then ' Shut everything off		Set cont = Nothing		Set dso = Nothing	Else		' Make sure we aren't already initialized		If dso Is Nothing Then 		' Turn everything back on			Set dso = GetObject("WinNT:")			Set cont = dso.OpenDSObject("WinNT://" _				& Server, "", "", ADS_SECURE_AUTHENTICATION)		End If	End IfEnd Property

Now it’s trivial to verify this component has been initialized and initialize it if necessary:

 If Not ADSIInitialized Then ADSIInitialized = True


Share the Post: