This is a multi-part message in MIME format.

------extPart_000_0395_01C34540.7D0E2B90
Content-Type: text/plain;
	charsetso-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;
	charsetso-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>&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp;</DIV>
  <DIV><SPAN class=098260022-07072003><FONT face=Arial 
  size=2></FONT></SPAN>&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp;&nbsp; 
  Abort</FONT></SPAN></DIV>
  <DIV><SPAN class=098260022-07072003><FONT face=Arial size=2>&nbsp;&nbsp; 
  AboutBox</FONT></SPAN></DIV>
  <DIV><SPAN class=098260022-07072003><FONT face=Arial size=2>&nbsp;&nbsp; 
  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&nbsp; 
  BiPrnDrv<BR>&nbsp; GUID : {E5B71FF3-4946-4DCC-863E-F16B8F864A66}<BR>&nbsp; 
  PROGID : BIPRNDRV.BiPrnDrvCtrl.1<BR>&nbsp; DESCRIPTION : Black Ice Message 
  Capture Control</FONT></SPAN></DIV>
  <DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
  <DIV><SPAN class=098260022-07072003><FONT face=Arial size=2>Event FUNC VOID 
  EndDoc<BR>&nbsp; Dispatch ID : 3<BR>&nbsp; DESCRIPTION : <BR>&nbsp; arg1 - 
  BSTR GroupFileName []</FONT></SPAN></DIV>
  <DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
  <DIV><SPAN class=098260022-07072003><FONT face=Arial size=2>&nbsp; Event 
  Interface : 
  _DBiPrnDrvEvents<BR>-----------------------------</FONT></SPAN></DIV>
  <DIV><SPAN class=098260022-07072003><FONT face=Arial size=2>&nbsp;&nbsp; 
  InitCapture</FONT></SPAN></DIV>
  <DIV><SPAN class=098260022-07072003><FONT face=Arial size=2>&nbsp;&nbsp; 
  StarDoc</FONT></SPAN></DIV>
  <DIV><SPAN class=098260022-07072003><FONT face=Arial 
  size=2>&nbsp;&nbsp;&nbsp;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>&nbsp;&nbsp; 
  AboutBox</FONT></SPAN></DIV>
  <DIV><SPAN class=098260022-07072003><FONT face=Arial 
  size=2>&nbsp;&nbsp;&nbsp;GetIDsOfNames</FONT></SPAN></DIV>
  <DIV><SPAN class=098260022-07072003><FONT face=Arial size=2>&nbsp;&nbsp; 
  GetTypeInfo</FONT></SPAN></DIV>
  <DIV><SPAN class=098260022-07072003><FONT face=Arial size=2>&nbsp;&nbsp; 
  GetTypeInfoCount</FONT></SPAN></DIV>
  <DIV><SPAN class=098260022-07072003><FONT face=Arial size=2>&nbsp;&nbsp; 
  InitCapture</FONT></SPAN></DIV>
  <DIV><SPAN class=098260022-07072003><FONT face=Arial size=2>&nbsp;&nbsp; 
  Invoke</FONT></SPAN></DIV>
  <DIV><SPAN class=098260022-07072003><FONT face=Arial size=2>&nbsp;&nbsp; 
  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&nbsp; 
  _DBiPrnDrv<BR>&nbsp; GUID : {8FE2BEA5-0F7F-4758-B6A4-68F86C74AA2D}<BR>&nbsp; 
  PROGID : <BR>&nbsp; DESCRIPTION : Dispatch interface for BiPrnDrv 
  Control</FONT></SPAN></DIV>
  <DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV><SPAN 
class=098260022-07072003>
  <DIV><FONT face=Arial size=2></FONT><FONT face=Arial size=2></FONT><BR><FONT 
  face=Arial size=2>&nbsp; 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>&nbsp;&nbsp; 
  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>&nbsp;&nbsp; 
  Abort</FONT></SPAN></DIV>
  <DIV><SPAN class=098260022-07072003><FONT face=Arial size=2>&nbsp;&nbsp; 
  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&nbsp; 
  _DBiPrnDrvEvents<BR>&nbsp; GUID : 
  {68E14ECB-14D9-4C9D-9470-C05348FED4CC}<BR>&nbsp; PROGID : <BR>&nbsp; 
  DESCRIPTION : Event interface for BiPrnDrv Control</FONT></SPAN></DIV>
  <DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
  <DIV><SPAN class=098260022-07072003><FONT face=Arial size=2>FUNC VOID 
  EndDoc<BR>&nbsp; Dispatch ID : 3<BR>&nbsp; DESCRIPTION : <BR>&nbsp; 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>&nbsp;&nbsp; 
  EndPage</FONT></SPAN></DIV><SPAN class=098260022-07072003>
  <DIV><SPAN class=098260022-07072003><FONT face=Arial 
  size=2>&nbsp;&nbsp;&nbsp;GetIDsOfNames</FONT></SPAN></DIV>
  <DIV><SPAN class=098260022-07072003><FONT face=Arial size=2>&nbsp;&nbsp; 
  GetTypeInfo</FONT></SPAN></DIV>
  <DIV><SPAN class=098260022-07072003><FONT face=Arial size=2>&nbsp;&nbsp; 
  GetTypeInfoCount</FONT></SPAN></DIV>
  <DIV><FONT face=Arial size=2>&nbsp;&nbsp; Invoke</FONT></DIV>
  <DIV><SPAN class=098260022-07072003><FONT face=Arial size=2>&nbsp;&nbsp; 
  StartDoc</FONT></SPAN></DIV>
  <DIV><SPAN class=098260022-07072003><FONT face=Arial size=2>&nbsp;&nbsp; 
  StartPage</FONT></SPAN></DIV>
  <DIV><SPAN class=098260022-07072003><FONT face=Arial 
  size=2></FONT></SPAN>&nbsp;</DIV>
  <DIV><SPAN class=098260022-07072003><FONT face=Arial 
  size=2></FONT></SPAN>&nbsp;</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.&nbsp; 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>&nbsp;</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>&nbsp;</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>&nbsp;</DIV>
  <DIV><SPAN class=098260022-07072003><FONT face=Arial size=2>while 
  true<BR>&nbsp; WIN32OLE_EVENT.message_loop <BR>end<BR></FONT></SPAN></DIV>
  <DIV><SPAN class=098260022-07072003><FONT face=Arial 
  size=2></FONT></SPAN>&nbsp;</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>&nbsp;</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>&nbsp;&nbsp; 
  BorderStyle&nbsp;&nbsp;&nbsp;&nbsp; =&nbsp;&nbsp; 3&nbsp; 'Fixed 
  Dialog<BR>&nbsp;&nbsp; Caption&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  =&nbsp;&nbsp; "Message capture sample"<BR>&nbsp;&nbsp; 
  ClientHeight&nbsp;&nbsp;&nbsp; =&nbsp;&nbsp; 3195<BR>&nbsp;&nbsp; 
  ClientLeft&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =&nbsp;&nbsp; 45<BR>&nbsp;&nbsp; 
  ClientTop&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =&nbsp;&nbsp; 
  330<BR>&nbsp;&nbsp; ClientWidth&nbsp;&nbsp;&nbsp;&nbsp; =&nbsp;&nbsp; 
  4680<BR>&nbsp;&nbsp; 
  Icon&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  =&nbsp;&nbsp; "BiCapture.frx":0000<BR>&nbsp;&nbsp; 
  LinkTopic&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =&nbsp;&nbsp; 
  "Form1"<BR>&nbsp;&nbsp; MaxButton&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3D&nbsp;&nbsp; 0&nbsp;&nbsp; 'False<BR>&nbsp;&nbsp; 
  MinButton&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =&nbsp;&nbsp; 0&nbsp;&nbsp; 
  'False<BR>&nbsp;&nbsp; ScaleHeight&nbsp;&nbsp;&nbsp;&nbsp; =&nbsp;&nbsp; 
  3195<BR>&nbsp;&nbsp; ScaleWidth&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =&nbsp;&nbsp; 
  4680<BR>&nbsp;&nbsp; ShowInTaskbar&nbsp;&nbsp; =&nbsp;&nbsp; 0&nbsp;&nbsp; 
  'False<BR>&nbsp;&nbsp; StartUpPosition =&nbsp;&nbsp; 3&nbsp; 'Windows 
  Default<BR>&nbsp;&nbsp; Begin VB.CommandButton Exit 
  <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  Cancel&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =&nbsp;&nbsp; 
  -1&nbsp; 'True<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  Caption&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =&nbsp;&nbsp; 
  "E&amp;xit"<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  Height&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =&nbsp;&nbsp; 
  375<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  Left&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  =&nbsp;&nbsp; 1320<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  TabIndex&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =&nbsp;&nbsp; 
  5<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  Top&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  =&nbsp;&nbsp; 2640<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  Width&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  =&nbsp;&nbsp; 1815<BR>&nbsp;&nbsp; End<BR>&nbsp;&nbsp; Begin VB.ListBox List1 
  <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  Height&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =&nbsp;&nbsp; 
  1425<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  ItemData&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =&nbsp;&nbsp; 
  "BiCapture.frx":030A<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  Left&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  =&nbsp;&nbsp; 120<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  List&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  =&nbsp;&nbsp; "BiCapture.frx":030C<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  TabIndex&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =&nbsp;&nbsp; 
  4<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  Top&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  =&nbsp;&nbsp; 960<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  Width&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  =&nbsp;&nbsp; 4455<BR>&nbsp;&nbsp; End<BR>&nbsp;&nbsp; Begin 
  MSComDlg.CommonDialog CommonDialog1 <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  Left&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  =&nbsp;&nbsp; 120<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  Top&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  =&nbsp;&nbsp; 2640<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  _ExtentX&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =&nbsp;&nbsp; 
  847<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  _ExtentY&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =&nbsp;&nbsp; 
  847<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  _Version&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =&nbsp;&nbsp; 
  393216<BR>&nbsp;&nbsp; End<BR>&nbsp;&nbsp; Begin VB.Frame Frame1 
  <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  Caption&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =&nbsp;&nbsp; "Current 
  Printer"<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  Height&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =&nbsp;&nbsp; 
  735<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  Left&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  =&nbsp;&nbsp; 120<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  TabIndex&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =&nbsp;&nbsp; 
  1<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  Top&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  =&nbsp;&nbsp; 120<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  Width&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  =&nbsp;&nbsp; 4455<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Begin VB.CommandButton 
  ChangePrinter <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  Caption&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =&nbsp;&nbsp; "Change 
  Printer"<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  Height&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =&nbsp;&nbsp; 
  375<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  Left&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  =&nbsp;&nbsp; 3000<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  TabIndex&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =&nbsp;&nbsp; 
  2<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  Top&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  =&nbsp;&nbsp; 240<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  Width&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  =&nbsp;&nbsp; 1215<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  End<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Begin VB.Label CurrentPrinter 
  <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  Height&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =&nbsp;&nbsp; 
  255<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  Left&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  =&nbsp;&nbsp; 240<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  TabIndex&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =&nbsp;&nbsp; 
  3<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  Top&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  =&nbsp;&nbsp; 360<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  Width&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  =&nbsp;&nbsp; 2535<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; End<BR>&nbsp;&nbsp; 
  End<BR>&nbsp;&nbsp; Begin BIPRNDRVLib.BiPrnDrv BiPrnDrv1 
  <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  Height&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =&nbsp;&nbsp; 
  615<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  Left&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  =&nbsp;&nbsp; 3960<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  TabIndex&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =&nbsp;&nbsp; 
  0<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  Top&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  =&nbsp;&nbsp; 2520<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  Width&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  =&nbsp;&nbsp; 615<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  _Version&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =&nbsp;&nbsp; 
  65536<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  _ExtentX&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =&nbsp;&nbsp; 
  1085<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  _ExtentY&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =&nbsp;&nbsp; 
  1085<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; _StockProps&nbsp;&nbsp;&nbsp;&nbsp; 
  =&nbsp;&nbsp; 0<BR>&nbsp;&nbsp; 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>&nbsp;</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: " &amp; 
  GroupFileName<BR>List1.TopIndex = List1.ListCount - 1<BR>End 
  Sub</FONT></SPAN></DIV>
  <DIV>&nbsp;</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:" &amp; 
  ImageFileName<BR>List1.TopIndex = List1.ListCount - 1<BR>End 
  Sub</FONT></SPAN></DIV>
  <DIV>&nbsp;</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: " &amp; 
  GroupFileName<BR>List1.TopIndex = List1.ListCount - 1<BR>End 
  Sub</FONT></SPAN></DIV>
  <DIV>&nbsp;</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: " &amp; 
  Str(PageNumber)<BR>List1.TopIndex = List1.ListCount - 1<BR>End 
  Sub</FONT></SPAN></DIV>
  <DIV>&nbsp;</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 " &amp; 
  BiPrnDrv1.PrinterName &amp; " printer."<BR>End Sub</FONT></SPAN></DIV>
  <DIV>&nbsp;</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>&nbsp;</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 " &amp; BiPrnDrv1.PrinterName &amp; " printer."<BR>End ub</FONT></SPAN></DIV>
  <DIV>&nbsp;</DIV>
  <DIV><SPAN class=098260022-07072003><FONT face=Arial 
size=2>&nbsp;</DIV></BLOCKQUOTE></FONT></SPAN></SPAN></BODY></HTML>

------extPart_000_0395_01C34540.7D0E2B90--