VERSION 1.0 CLASS
BEGIN
  MultiUse = -1  'True
  Persistable = 0  'NotPersistable
  DataBindingBehavior = 0  'vbNone
  DataSourceBehavior  = 0  'vbNone
  MTSTransactionMode  = 0  'NotAnMTSObject
END
Attribute VB_Name = "PrintSpooler"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = True
Attribute VB_PredeclaredId = False
Attribute VB_Exposed = False
Option Explicit
'Klasa PrintSpooler
Private legalInstance As Boolean    'wartość true tylko dla jednej instancji
'-----
Private Sub Class_Initialize()
  If spool_counter = 0 Then       'Utwórz i przechowaj jedyną instancję
    legalInstance = True          'Ustaw flagę
    Set glbSpooler = Me           'Przechowaj instancję
    spool_counter = spool_counter + 1   'Zwiększ licznik
  Else
    legalInstance = False
    Err.Description = "Illegal spooler instance"
    Err.Raise vbObjectError + 1   'generacja błędu
  End If
End Sub
'-----
Public Function GetSpooler() As PrintSpooler
  Set GetSpooler = glbSpooler     'Zwróć jedyną instancję
End Function
'-----
Public Sub Printit(str As String)
  If legalInstance Then
    MsgBox str
  End If
End Sub
'-----
Private Sub Class_Terminate()
  'terminate legal class
  If legalInstance Then
    Set glbSpooler = Nothing
    spool_counter = 0
  End If
End Sub
