home *** CD-ROM | disk | FTP | other *** search
/ Planet Source Code Jumbo …e CD Visual Basic 1 to 7 / 3_2004-2005.ISO / Data / Zips / VPS_-_Vari179129992004.psc / Modules / modCore.bas < prev    next >
BASIC Source File  |  2004-08-27  |  4KB  |  153 lines

  1. Attribute VB_Name = "modCore"
  2. Option Explicit
  3.  
  4. Public SystemInfo As New cSystemInfo
  5. Public strSeed As String
  6.  
  7. Public Type T_OBJECTS
  8.     objPLUGIN As Object
  9.     strFunction As String
  10.     strFriendlyName As String
  11.     strFilename As String
  12.     
  13. End Type
  14.  
  15. Public Type T_MEMORY
  16.     MemoryOffset As Long
  17.     MemoryLength As Long
  18.     Memoryname As String
  19. End Type
  20.  
  21. Public ObjectLibrary() As T_OBJECTS
  22.  
  23. Public Memory() As Byte
  24. Public MemoryLookup() As T_MEMORY
  25.  
  26. Public intPluginCount As Integer
  27. Public intMemoryCount As Integer
  28.  
  29. Public intErrors As Integer
  30.  
  31. Public Sub InitPlugins()
  32. On Error Resume Next
  33.  
  34.     Dim strtemp As String
  35.     Dim strTemp2 As String
  36.     Dim IntCount As Integer
  37.     
  38.     strtemp = Dir(App.Path & "\plugins\*.DLL")
  39.     
  40.     While strtemp <> ""
  41.         IntCount = IntCount + 1
  42.         strtemp = Dir
  43.     Wend
  44.     
  45.     strtemp = Dir(App.Path & "\plugins\*.DLL")
  46.     
  47.     If IntCount = 0 Then GoTo PluginComplete
  48.     
  49.     frmCore.Log "Plugin(s) DLL found: " & CStr(IntCount)
  50.     frmCore.Log "Proceeding to initialize plugins..."
  51.     frmCore.Log ""
  52.     
  53.     While strtemp <> ""
  54.         strTemp2 = App.Path & "\plugins\" & strtemp ' Prefix the path.
  55.         SetupNewPlugin strTemp2, LCase$("VPS." & Left(strtemp, InStr(1, strtemp, ".") - 1))
  56.         strtemp = Dir
  57.         DoEvents
  58.     Wend
  59.     
  60. PluginComplete:
  61.     
  62.     If intPluginCount <> 0 Then
  63.         
  64.         IntCount = CStr(UBound(ObjectLibrary))
  65.         If intPluginCount = 0 Then
  66.             frmCore.Log "Found plugins but none could be loaded..."
  67.             frmCore.Log "Exiting VPS..."
  68.             frmCore.Log ""
  69.         Else
  70.             frmCore.Log ""
  71.             frmCore.Log "Loaded " & IntCount & " plugin(s) with " & CStr(intErrors) & " errors while initializing them."
  72.         End If
  73.         
  74.     End If
  75.     
  76.     frmCore.Log ""
  77.     frmCore.Log "Plugin load complete."
  78.     DoEvents
  79.     
  80. End Sub
  81.  
  82. Public Sub SetupNewPlugin(strFilename As String, DLLNAME As String)
  83.     intErrors = 0
  84.     intPluginCount = intPluginCount + 1
  85.     ReDim Preserve ObjectLibrary(1 To intPluginCount)
  86.     
  87.     modDLL.Register strFilename
  88.     
  89.  
  90.     With ObjectLibrary(intPluginCount)
  91.         Set .objPLUGIN = CreateObject(DLLNAME)
  92.         .strFilename = strFilename
  93.         .strFriendlyName = CallByName(.objPLUGIN, "fstrGetName", VbMethod)
  94.         .strFunction = CallByName(.objPLUGIN, "fstrGetFunction", VbMethod)
  95.         'On Error Resume Next
  96.         CallByName .objPLUGIN, "RegisterParent", VbMethod, frmCore
  97.         'On Error GoTo ErrHandler
  98.     End With
  99.     
  100.     frmCore.Log " - Plugin found: " & DLLNAME & " (" & ObjectLibrary(intPluginCount).strFriendlyName & ")"
  101.     
  102.     Exit Sub
  103. ErrHandler:
  104.     intErrors = intErrors + 1
  105.     intPluginCount = intPluginCount - 1
  106.     DoEvents
  107. End Sub
  108.  
  109. Public Sub InitMemory(lngMemoryLength As Long)
  110.  
  111.     Dim lngTemp As Long
  112.     
  113.     frmCore.Log "Initializing memory stack... (" & Round(lngMemoryLength / 1024000, 0) & " MB)"
  114.     ReDim Memory(1 To lngMemoryLength)
  115.     
  116.     
  117.     frmCore.Log "M_Alloc: " & lngMemoryLength & " bytes allocated..."
  118. End Sub
  119.  
  120. Public Sub UnloadMemory()
  121.     ReDim Memory(0 To 0)
  122. End Sub
  123.  
  124. Public Sub UnloadPlugins()
  125.     On Error Resume Next
  126.     
  127.     Dim intcounter As Integer
  128.     Dim strtemp As String
  129.   
  130.     ReDim ObjectLibrary(0 To 0)
  131.     
  132. End Sub
  133.  
  134. Public Sub InitSeed()
  135.     strSeed = modMD5.CalculateMD5(CStr(Timer) & "--VPS--" & CStr(Timer) & "--SEEDER")
  136.     frmCore.Log "(" & strSeed & ")"
  137.     frmCore.Log ""
  138.     
  139. End Sub
  140.  
  141. Public Sub StartPluginInits()
  142.  
  143.     Dim IntCount As Integer
  144.     
  145.     For IntCount = 1 To intPluginCount
  146.         frmCore.Log " - Plugin_init : " & ObjectLibrary(IntCount).strFriendlyName
  147.         frmCore.Log ""
  148.         Call CallByName(ObjectLibrary(IntCount).objPLUGIN, ObjectLibrary(IntCount).strFunction, VbMethod)
  149.         frmCore.Log ""
  150.     Next IntCount
  151.  
  152. End Sub
  153.