This is a multi-part message in MIME format. ------ extPart_000_0395_01C34540.7D0E2B90 Content-Type: text/plain; charset so-8859-1" Content-Transfer-Encoding: 7bit Just to let you'all know that the reason the events weren't working was because of some application specific interaction with the printer object. WIN32OLE worked great! Thanks for a great extension! Steve Tuckner -----Original Message----- From: Steve Tuckner [mailto:STUCKNER / MULTITECH.COM] Sent: Monday, July 07, 2003 5:16 PM To: ruby-talk ML Subject: [WIN32OLE]: Using Events Hello all, I am trying to use Win32OLE to control a windows printer driver that will be used to capture the printer output from applications to create TIFF files. Below is my long winded explanation of what I am trying to do. Any ideas at all would be welcome. Thanks, Steve Tuckner Using the nifty Simple OLE browser from the WIN32OLE web page, I was able to learn that this driver has three "interfaces" to play with. They are: BiPrnDrv Abort AboutBox EndDoc --------------------------- (what EndDoc output looks like) Class BiPrnDrv GUID : {E5B71FF3-4946-4DCC-863E-F16B8F864A66} PROGID : BIPRNDRV.BiPrnDrvCtrl.1 DESCRIPTION : Black Ice Message Capture Control Event FUNC VOID EndDoc Dispatch ID : 3 DESCRIPTION : arg1 - BSTR GroupFileName [] Event Interface : _DBiPrnDrvEvents ----------------------------- InitCapture StarDoc StartPage _DBiPrnDrv AboutBox GetIDsOfNames GetTypeInfo GetTypeInfoCount InitCapture Invoke PrinterName ----------------------------- (What PrinterName entry looks like) Dispatch _DBiPrnDrv GUID : {8FE2BEA5-0F7F-4758-B6A4-68F86C74AA2D} PROGID : DESCRIPTION : Dispatch interface for BiPrnDrv Control DISPATCH BSTR PrinterName ----------------------------- UseCopyData _DBiPrnDrvEvents Abort EndDoc ----------------------------- (What EndDoc looks like) Dispatch _DBiPrnDrvEvents GUID : {68E14ECB-14D9-4C9D-9470-C05348FED4CC} PROGID : DESCRIPTION : Event interface for BiPrnDrv Control FUNC VOID EndDoc Dispatch ID : 3 DESCRIPTION : arg1 - BSTR GroupFileName [] ----------------------------- EndPage GetIDsOfNames GetTypeInfo GetTypeInfoCount Invoke StartDoc StartPage Below is my code to try and get the printing events to be noticed by me. They have very little doc (the vendor I got it from on the interface, but do have sample code in VB and Delphi. Even so I have not be able to get it to work. I can get the AboutBox to come up so that much works. Below is my Ruby code and below that is the example VB code. I don't know much about OLE but I have done some scripting of Outlook. I am completely new to OLE events. Any ideas at all would be welcome on where I should go from here (aside from talking to the vendor I acquired this driver from who has probably never heard of Ruby before). I also tried setting the printer name but that seemed to have no effect. I don't understand the difference between the first two interfaces or how it was even possible to set the PrinterName against the first interface when it is part of the second. ----------------------------------------------------------------------- (My ruby code) require "win32ole" printer IN32OLE.new("BIPRNDRV.BiPrnDrvCtrl.1") ev IN32OLE_EVENT.new(printer, "_DBiPrnDrvEvents") ev.on_event {|*args| print "default handler\n"} ev.on_event("StartDoc") { print "in start doc\n"} ev.on_event("StartPage") {|page_num| print "printing page #{page_num}\n"} ev.on_event("EndDoc") { print "in end doc\n"} ev.on_event("EndPage") { print "in end page\n"} while true WIN32OLE_EVENT.message_loop end ----------------------------------------------------------------------- (VB sample code) VERSION 5.00 Object {6ADA10EC-D372-4FE7-863C-BA84E3B89F76}#1.0#0"; "BIPRNDRV.OCX" Object {F9043C88-F6F2-101A-A3C9-08002B2F49FB}#1.2#0"; "COMDLG32.OCX" Begin VB.Form Form1 BorderStyle 3 'Fixed Dialog Caption "Message capture sample" ClientHeight 3195 ClientLeft 45 ClientTop 330 ClientWidth 4680 Icon "BiCapture.frx":0000 LinkTopic "Form1" MaxButton 0 'False MinButton 0 'False ScaleHeight 3195 ScaleWidth 4680 ShowInTaskbar 0 'False StartUpPosition 3 'Windows Default Begin VB.CommandButton Exit Cancel -1 'True Caption "E&xit" Height 375 Left 1320 TabIndex 5 Top 2640 Width 1815 End Begin VB.ListBox List1 Height 1425 ItemData "BiCapture.frx":030A Left 120 List "BiCapture.frx":030C TabIndex 4 Top 960 Width 4455 End Begin MSComDlg.CommonDialog CommonDialog1 Left 120 Top 2640 _ExtentX 847 _ExtentY 847 _Version 393216 End Begin VB.Frame Frame1 Caption "Current Printer" Height 735 Left 120 TabIndex 1 Top 120 Width 4455 Begin VB.CommandButton ChangePrinter Caption "Change Printer" Height 375 Left 3000 TabIndex 2 Top 240 Width 1215 End Begin VB.Label CurrentPrinter Height 255 Left 240 TabIndex 3 Top 360 Width 2535 End End Begin BIPRNDRVLib.BiPrnDrv BiPrnDrv1 Height 615 Left 3960 TabIndex 0 Top 2520 Width 615 _Version 65536 _ExtentX 1085 _ExtentY 1085 _StockProps 0 End End Attribute VB_Name Form1" Attribute VB_GlobalNameSpace alse Attribute VB_Creatable alse Attribute VB_PredeclaredId rue Attribute VB_Exposed alse Private Sub BiPrnDrv1_EndDoc(ByVal GroupFileName As String) List1.AddItem "EndDoc message was received." List1.AddItem "The Group File is: " & GroupFileName List1.TopIndex ist1.ListCount - 1 End Sub Private Sub BiPrnDrv1_EndPage(ByVal ImageFileName As String) List1.AddItem "EndPage message was received." List1.AddItem "The Image File is:" & ImageFileName List1.TopIndex ist1.ListCount - 1 End Sub Private Sub BiPrnDrv1_StarDoc(ByVal GroupFileName As String) List1.AddItem "StartDoc message was received." List1.AddItem "The Group File is: " & GroupFileName List1.TopIndex ist1.ListCount - 1 End Sub Private Sub BiPrnDrv1_StartPage(ByVal PageNumber As Long) List1.AddItem "StartPage message was received." List1.AddItem "The current page number is: " & Str(PageNumber) List1.TopIndex ist1.ListCount - 1 End Sub Private Sub ChangePrinter_Click() CommonDialog1.ShowPrinter BiPrnDrv1.PrinterName rinter.DeviceName CurrentPrinter.Caption rinter.DeviceName List1.AddItem "Please print with the " & BiPrnDrv1.PrinterName & " printer." End Sub Private Sub Exit_Click() Unload Form1 End Sub Private Sub Form_Load() BiPrnDrv1.PrinterName Black Ice Color" CurrentPrinter.Caption Black Ice Color" List1.AddItem "Please print with the " & BiPrnDrv1.PrinterName & " printer." End Sub ------ extPart_000_0395_01C34540.7D0E2B90 Content-Type: text/html; charset so-8859-1" Content-Transfer-Encoding: quoted-printable <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML><HEAD> <META content="MSHTML 6.00.2600.0" name=GENERATOR></HEAD> <BODY> <DIV><SPAN class=423500116-08072003><FONT face=Arial color=#0000ff size=2>Just to let you'all know that the reason the events weren't working was because of some application specific interaction with the printer object. WIN32OLE worked great! Thanks for a great extension!</FONT></SPAN></DIV> <DIV><SPAN class=423500116-08072003><FONT face=Arial color=#0000ff size=2></FONT></SPAN> </DIV> <DIV><SPAN class=423500116-08072003><FONT face=Arial color=#0000ff size=2>Steve Tuckner</FONT></SPAN></DIV> <BLOCKQUOTE dir=ltr style="PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #0000ff 2px solid; MARGIN-RIGHT: 0px"> <DIV class=OutlookMessageHeader dir=ltr align=left><FONT face=Tahoma size=2>-----Original Message-----<BR><B>From:</B> Steve Tuckner [mailto:STUCKNER / MULTITECH.COM]<BR><B>Sent:</B> Monday, July 07, 2003 5:16 PM<BR><B>To:</B> ruby-talk ML<BR><B>Subject:</B> [WIN32OLE]: Using Events<BR><BR></FONT></DIV> <DIV><SPAN class=098260022-07072003><FONT face=Arial size=2>Hello all,</FONT></SPAN></DIV> <DIV><SPAN class=098260022-07072003><FONT face=Arial size=2></FONT></SPAN> </DIV> <DIV><SPAN class=098260022-07072003><FONT face=Arial size=2>I am trying to use Win32OLE to control a windows printer driver that will be used to capture the printer output from applications to create TIFF files. Below is my long winded explanation of what I am trying to do. Any ideas at all would be welcome.</FONT></SPAN></DIV> <DIV><SPAN class=098260022-07072003><FONT face=Arial size=2></FONT></SPAN> </DIV> <DIV><SPAN class=098260022-07072003><FONT face=Arial size=2>Thanks,</FONT></SPAN></DIV> <DIV><SPAN class=098260022-07072003><FONT face=Arial size=2></FONT></SPAN> </DIV> <DIV><SPAN class=098260022-07072003><FONT face=Arial size=2>Steve Tuckner</FONT></SPAN></DIV> <DIV><SPAN class=098260022-07072003><FONT face=Arial size=2></FONT></SPAN> </DIV> <DIV><SPAN class=098260022-07072003><FONT face=Arial size=2></FONT></SPAN> </DIV> <DIV><SPAN class=098260022-07072003><FONT face=Arial size=2>Using the nifty Simple OLE browser from the WIN32OLE web page, I was able to learn that this driver has three "interfaces" to play with.</FONT></SPAN></DIV> <DIV><SPAN class=098260022-07072003><FONT face=Arial size=2></FONT></SPAN> </DIV> <DIV><SPAN class=098260022-07072003><FONT face=Arial size=2>They are:</FONT></SPAN></DIV> <DIV><SPAN class=098260022-07072003><FONT face=Arial size=2></FONT></SPAN> </DIV> <DIV><SPAN class=098260022-07072003><FONT face=Arial size=2>BiPrnDrv</FONT></SPAN></DIV> <DIV><SPAN class=098260022-07072003><FONT face=Arial size=2> Abort</FONT></SPAN></DIV> <DIV><SPAN class=098260022-07072003><FONT face=Arial size=2> AboutBox</FONT></SPAN></DIV> <DIV><SPAN class=098260022-07072003><FONT face=Arial size=2> EndDoc</FONT></SPAN></DIV> <DIV><SPAN class=098260022-07072003><FONT face=Arial size=2>--------------------------- (what EndDoc output looks like)</FONT></SPAN></DIV> <DIV><SPAN class=098260022-07072003><FONT face=Arial size=2>Class BiPrnDrv<BR> GUID : {E5B71FF3-4946-4DCC-863E-F16B8F864A66}<BR> PROGID : BIPRNDRV.BiPrnDrvCtrl.1<BR> DESCRIPTION : Black Ice Message Capture Control</FONT></SPAN></DIV> <DIV><FONT face=Arial size=2></FONT> </DIV> <DIV><SPAN class=098260022-07072003><FONT face=Arial size=2>Event FUNC VOID EndDoc<BR> Dispatch ID : 3<BR> DESCRIPTION : <BR> arg1 - BSTR GroupFileName []</FONT></SPAN></DIV> <DIV><FONT face=Arial size=2></FONT> </DIV> <DIV><SPAN class=098260022-07072003><FONT face=Arial size=2> Event Interface : _DBiPrnDrvEvents<BR>-----------------------------</FONT></SPAN></DIV> <DIV><SPAN class=098260022-07072003><FONT face=Arial size=2> InitCapture</FONT></SPAN></DIV> <DIV><SPAN class=098260022-07072003><FONT face=Arial size=2> StarDoc</FONT></SPAN></DIV> <DIV><SPAN class=098260022-07072003><FONT face=Arial size=2> StartPage</FONT></SPAN></DIV> <DIV><SPAN class=098260022-07072003><FONT face=Arial size=2>_DBiPrnDrv</FONT></SPAN></DIV> <DIV><SPAN class=098260022-07072003><FONT face=Arial size=2> AboutBox</FONT></SPAN></DIV> <DIV><SPAN class=098260022-07072003><FONT face=Arial size=2> GetIDsOfNames</FONT></SPAN></DIV> <DIV><SPAN class=098260022-07072003><FONT face=Arial size=2> GetTypeInfo</FONT></SPAN></DIV> <DIV><SPAN class=098260022-07072003><FONT face=Arial size=2> GetTypeInfoCount</FONT></SPAN></DIV> <DIV><SPAN class=098260022-07072003><FONT face=Arial size=2> InitCapture</FONT></SPAN></DIV> <DIV><SPAN class=098260022-07072003><FONT face=Arial size=2> Invoke</FONT></SPAN></DIV> <DIV><SPAN class=098260022-07072003><FONT face=Arial size=2> PrinterName</FONT></SPAN></DIV> <DIV><SPAN class=098260022-07072003><FONT face=Arial size=2>----------------------------- (What PrinterName entry looks like)</FONT></SPAN></DIV> <DIV><SPAN class=098260022-07072003><FONT face=Arial size=2>Dispatch _DBiPrnDrv<BR> GUID : {8FE2BEA5-0F7F-4758-B6A4-68F86C74AA2D}<BR> PROGID : <BR> DESCRIPTION : Dispatch interface for BiPrnDrv Control</FONT></SPAN></DIV> <DIV><FONT face=Arial size=2></FONT> </DIV><SPAN class=098260022-07072003> <DIV><FONT face=Arial size=2></FONT><FONT face=Arial size=2></FONT><BR><FONT face=Arial size=2> DISPATCH BSTR PrinterName</FONT></DIV> <DIV></SPAN><SPAN class=098260022-07072003><FONT face=Arial size=2>-----------------------------</FONT></SPAN></DIV> <DIV><SPAN class=098260022-07072003><FONT face=Arial size=2> UseCopyData</FONT></SPAN></DIV> <DIV><SPAN class=098260022-07072003><FONT face=Arial size=2>_DBiPrnDrvEvents</FONT></SPAN></DIV> <DIV><SPAN class=098260022-07072003><FONT face=Arial size=2> Abort</FONT></SPAN></DIV> <DIV><SPAN class=098260022-07072003><FONT face=Arial size=2> EndDoc</FONT></SPAN></DIV> <DIV><SPAN class=098260022-07072003><FONT face=Arial size=2>----------------------------- (What EndDoc looks like)</FONT></SPAN></DIV> <DIV><SPAN class=098260022-07072003><FONT face=Arial size=2>Dispatch _DBiPrnDrvEvents<BR> GUID : {68E14ECB-14D9-4C9D-9470-C05348FED4CC}<BR> PROGID : <BR> DESCRIPTION : Event interface for BiPrnDrv Control</FONT></SPAN></DIV> <DIV><FONT face=Arial size=2></FONT> </DIV> <DIV><SPAN class=098260022-07072003><FONT face=Arial size=2>FUNC VOID EndDoc<BR> Dispatch ID : 3<BR> DESCRIPTION : <BR> arg1 - BSTR GroupFileName []<BR></FONT></SPAN><SPAN class=098260022-07072003><FONT face=Arial size=2>-----------------------------</FONT></SPAN></DIV> <DIV><SPAN class=098260022-07072003><FONT face=Arial size=2> EndPage</FONT></SPAN></DIV><SPAN class=098260022-07072003> <DIV><SPAN class=098260022-07072003><FONT face=Arial size=2> GetIDsOfNames</FONT></SPAN></DIV> <DIV><SPAN class=098260022-07072003><FONT face=Arial size=2> GetTypeInfo</FONT></SPAN></DIV> <DIV><SPAN class=098260022-07072003><FONT face=Arial size=2> GetTypeInfoCount</FONT></SPAN></DIV> <DIV><FONT face=Arial size=2> Invoke</FONT></DIV> <DIV><SPAN class=098260022-07072003><FONT face=Arial size=2> StartDoc</FONT></SPAN></DIV> <DIV><SPAN class=098260022-07072003><FONT face=Arial size=2> StartPage</FONT></SPAN></DIV> <DIV><SPAN class=098260022-07072003><FONT face=Arial size=2></FONT></SPAN> </DIV> <DIV><SPAN class=098260022-07072003><FONT face=Arial size=2></FONT></SPAN> </DIV> <DIV><SPAN class=098260022-07072003><FONT face=Arial size=2>Below is my code to try and get the printing events to be noticed by me. They have very little doc (the vendor I got it from on the interface, but do have sample code in VB and Delphi. Even so I have not be able to get it to work. I can get the AboutBox to come up so that much works. Below is my Ruby code and below that is the example VB code. I don't know much about OLE but I have done some scripting of Outlook. I am completely new to OLE events. Any ideas at all would be welcome on where I should go from here (aside from talking to the vendor I acquired this driver from who has probably never heard of Ruby before). I also tried setting the printer name but that seemed to have no effect. I don't understand the difference between the first two interfaces or how it was even possible to set the PrinterName against the first interface when it is part of the second.</FONT></SPAN></DIV> <DIV><SPAN class=098260022-07072003><FONT face=Arial size=2></FONT></SPAN> </DIV> <DIV><SPAN class=098260022-07072003> <DIV><SPAN class=098260022-07072003><FONT face=Arial size=2>----------------------------------------------------------------------- (My ruby code)</FONT></SPAN></DIV></SPAN></DIV> <DIV><SPAN class=098260022-07072003><FONT face=Arial size=2>require "win32ole"</FONT></SPAN></DIV> <DIV><FONT face=Arial size=2></FONT> </DIV> <DIV><SPAN class=098260022-07072003><FONT face=Arial size=2>printer = WIN32OLE.new("BIPRNDRV.BiPrnDrvCtrl.1")<BR></FONT></SPAN></DIV> <DIV><SPAN class=098260022-07072003><FONT face=Arial size=2>ev = WIN32OLE_EVENT.new(printer, "_DBiPrnDrvEvents")<BR>ev.on_event {|*args| print "default handler\n"}<BR>ev.on_event("StartDoc") { print "in start doc\n"}<BR>ev.on_event("StartPage") {|page_num| print "printing page #{page_num}\n"}<BR>ev.on_event("EndDoc") { print "in end doc\n"}<BR>ev.on_event("EndPage") { print "in end page\n"}</FONT></SPAN></DIV> <DIV><FONT face=Arial size=2></FONT> </DIV> <DIV><SPAN class=098260022-07072003><FONT face=Arial size=2>while true<BR> WIN32OLE_EVENT.message_loop <BR>end<BR></FONT></SPAN></DIV> <DIV><SPAN class=098260022-07072003><FONT face=Arial size=2></FONT></SPAN> </DIV> <DIV><SPAN class=098260022-07072003><FONT face=Arial size=2>----------------------------------------------------------------------- (VB sample code)</FONT></SPAN></DIV> <DIV><SPAN class=098260022-07072003><FONT face=Arial size=2></FONT></SPAN> </DIV> <DIV><SPAN class=098260022-07072003><FONT face=Arial size=2>VERSION 5.00<BR>Object = "{6ADA10EC-D372-4FE7-863C-BA84E3B89F76}#1.0#0"; "BIPRNDRV.OCX"<BR>Object = "{F9043C88-F6F2-101A-A3C9-08002B2F49FB}#1.2#0"; "COMDLG32.OCX"<BR>Begin VB.Form Form1 <BR> BorderStyle = 3 'Fixed Dialog<BR> Caption = "Message capture sample"<BR> ClientHeight = 3195<BR> ClientLeft = 45<BR> ClientTop = 330<BR> ClientWidth = 4680<BR> Icon = "BiCapture.frx":0000<BR> LinkTopic = "Form1"<BR> MaxButton 3D 0 'False<BR> MinButton = 0 'False<BR> ScaleHeight = 3195<BR> ScaleWidth = 4680<BR> ShowInTaskbar = 0 'False<BR> StartUpPosition = 3 'Windows Default<BR> Begin VB.CommandButton Exit <BR> Cancel = -1 'True<BR> Caption = "E&xit"<BR> Height = 375<BR> Left = 1320<BR> TabIndex = 5<BR> Top = 2640<BR> Width = 1815<BR> End<BR> Begin VB.ListBox List1 <BR> Height = 1425<BR> ItemData = "BiCapture.frx":030A<BR> Left = 120<BR> List = "BiCapture.frx":030C<BR> TabIndex = 4<BR> Top = 960<BR> Width = 4455<BR> End<BR> Begin MSComDlg.CommonDialog CommonDialog1 <BR> Left = 120<BR> Top = 2640<BR> _ExtentX = 847<BR> _ExtentY = 847<BR> _Version = 393216<BR> End<BR> Begin VB.Frame Frame1 <BR> Caption = "Current Printer"<BR> Height = 735<BR> Left = 120<BR> TabIndex = 1<BR> Top = 120<BR> Width = 4455<BR> Begin VB.CommandButton ChangePrinter <BR> Caption = "Change Printer"<BR> Height = 375<BR> Left = 3000<BR> TabIndex = 2<BR> Top = 240<BR> Width = 1215<BR> End<BR> Begin VB.Label CurrentPrinter <BR> Height = 255<BR> Left = 240<BR> TabIndex = 3<BR> Top = 360<BR> Width = 2535<BR> End<BR> End<BR> Begin BIPRNDRVLib.BiPrnDrv BiPrnDrv1 <BR> Height = 615<BR> Left = 3960<BR> TabIndex = 0<BR> Top = 2520<BR> Width = 615<BR> _Version = 65536<BR> _ExtentX = 1085<BR> _ExtentY = 1085<BR> _StockProps = 0<BR> End<BR>End<BR>Attribute VB_Name = Form1"<BR>Attribute VB_GlobalNameSpace = False<BR>Attribute VB_Creatable = False<BR>Attribute VB_PredeclaredId = True<BR>Attribute VB_Exposed = False</FONT></SPAN></DIV> <DIV><FONT face=Arial size=2></FONT> </DIV> <DIV><SPAN class=098260022-07072003><FONT face=Arial size=2>Private Sub BiPrnDrv1_EndDoc(ByVal GroupFileName As String)<BR>List1.AddItem "EndDoc message was received."<BR>List1.AddItem "The Group File is: " & GroupFileName<BR>List1.TopIndex = List1.ListCount - 1<BR>End Sub</FONT></SPAN></DIV> <DIV> </DIV> <DIV><SPAN class=098260022-07072003><FONT face=Arial size=2>Private Sub BiPrnDrv1_EndPage(ByVal ImageFileName As String)<BR>List1.AddItem "EndPage message was received."<BR>List1.AddItem "The Image File is:" & ImageFileName<BR>List1.TopIndex = List1.ListCount - 1<BR>End Sub</FONT></SPAN></DIV> <DIV> </DIV> <DIV><SPAN class=098260022-07072003><FONT face=Arial size=2>Private Sub BiPrnDrv1_StarDoc(ByVal GroupFileName As String)<BR>List1.AddItem "StartDoc message was received."<BR>List1.AddItem "The Group File is: " & GroupFileName<BR>List1.TopIndex = List1.ListCount - 1<BR>End Sub</FONT></SPAN></DIV> <DIV> </DIV> <DIV><SPAN class=098260022-07072003><FONT face=Arial size=2>Private Sub BiPrnDrv1_StartPage(ByVal PageNumber As Long)<BR>List1.AddItem "StartPage message was received."<BR>List1.AddItem "The current page number is: " & Str(PageNumber)<BR>List1.TopIndex = List1.ListCount - 1<BR>End Sub</FONT></SPAN></DIV> <DIV> </DIV> <DIV><SPAN class=098260022-07072003><FONT face=Arial size=2>Private Sub ChangePrinter_Click()<BR>CommonDialog1.ShowPrinter<BR>BiPrnDrv1.PrinterName = Printer.DeviceName<BR>CurrentPrinter.Caption = Printer.DeviceName<BR>List1.AddItem "Please print with the " & BiPrnDrv1.PrinterName & " printer."<BR>End Sub</FONT></SPAN></DIV> <DIV> </DIV> <DIV><SPAN class=098260022-07072003><FONT face=Arial size=2>Private Sub Exit_Click()<BR>Unload Form1<BR>End Sub</FONT></SPAN></DIV> <DIV><FONT face=Arial size=2></FONT> </DIV> <DIV><SPAN class=098260022-07072003><FONT face=Arial size=2>Private Sub Form_Load()<BR>BiPrnDrv1.PrinterName = "Black Ice Color"<BR>CurrentPrinter.Caption = "Black Ice Color"<BR>List1.AddItem "Please print with the " & BiPrnDrv1.PrinterName & " printer."<BR>End ub</FONT></SPAN></DIV> <DIV> </DIV> <DIV><SPAN class=098260022-07072003><FONT face=Arial size=2> </DIV></BLOCKQUOTE></FONT></SPAN></SPAN></BODY></HTML> ------ extPart_000_0395_01C34540.7D0E2B90--