VERSION 1.0 CLASS BEGIN MultiUse = -1 'True Persistable = 0 'NotPersistable DataBindingBehavior = 0 'vbNone DataSourceBehavior = 0 'vbNone MTSTransactionMode = 0 'NotAnMTSObject END Attribute VB_Name = "ThreadLaunch" Attribute VB_GlobalNameSpace = False Attribute VB_Creatable = False Attribute VB_PredeclaredId = False Attribute VB_Exposed = True '*************************************************************** ' (c) Copyright 2000 Matthew J. Curland ' ' This file is from the CD-ROM accompanying the book: ' Advanced Visual Basic 6: Power Techniques for Everyday Programs ' Author: Matthew Curland ' Published by: Addison-Wesley, July 2000 ' ISBN: 0-201-70712-8 ' http://www.PowerVB.com ' ' You are entitled to license free distribution of any application ' that uses this file if you own a copy of the book, or if you ' have obtained the file from a source approved by the author. You ' may redistribute this file only with express written permission ' of the author. ' ' This file depends on: ' References: ' VBoostTypes6.olb (VBoost Object Types (6.0)) ' ThreadAPI.olb (VBoost: API declares used for threading) ' Files: ' ThreadControl.cls ' ThreadData.bas ' ThreadProc.bas ' Minimal VBoost conditionals: ' None ' Conditional Compilation Values: ' None ' ' This file is discussed in Chapter 13. '*************************************************************** Option Explicit 'Just an interface definition Public Function Go(InputData As Variant, OutputData As Variant, ThreadSignalPtr As Long) As Long End Function 'The rest of this is a comment #If False Then 'A worker thread should include the following code. 'The Instancing for a worker should be set to 5 - MultiUse Implements ThreadLaunch Private m_Notify As Long Public Function Go(InputData As Variant, OutputData As Variant, ThreadSignalPtr As Long) As Long ThreadSignalPtr = VarPtr(m_Notify) 'TODO: Process InputData while 'regularly calling HaveBeenNotified to 'see if the thread should terminate. If HaveBeenNotified Then 'Clean up and return End If End Function Private Function HaveBeenNotified() As Boolean HaveBeenNotified = m_Notify End Function #End If