Isn't it easier to use the "printer" object within VB?
You can allegedly access and change printer properties through this object (not that I have tried!)
Private Const PASSTHROUGH = 19
Declare Function Escape Lib "gdi32" _
(ByVal hdc As Long, ByVal nEscape As Long, ByVal nCount As Long, _
ByVal lpInData As String, lpOutData As Any) As Long
Sub AltTray()
Dim retval As Long
Dim str_alt As String
str_alt = Chr(27) & "&l#H4"
retval = Escape(Printer.hdc, PASSTHROUGH, Len(str_alt), _
str_alt, 0&)
End Sub