ShellPrintDoc




Private Declare Function ShellExecute Lib "shell32.dll" _
Alias "ShellExecuteA" (ByVal hwnd As Long, _
ByVal lpszOp As String, ByVal lpszFile As String, _
ByVal lpszParams As String, _
ByVal lpszDir As String, _
ByVal FsShowCmd As Long) As Long

Private Const SE_ERR_FNF = 2&
Private Const SE_ERR_PNF = 3&
Private Const SE_ERR_ACCESSDENIED = 5&
Private Const SE_ERR_OOM = 8&
Private Const SE_ERR_DLLNOTFOUND = 32&
Private Const SE_ERR_SHARE = 26&
Private Const SE_ERR_ASSOCINCOMPLETE = 27&
Private Const SE_ERR_DDETIMEOUT = 28&
Private Const SE_ERR_DDEFAIL = 29&
Private Const SE_ERR_DDEBUSY = 30&
Private Const SE_ERR_NOASSOC = 31&
Private Const ERROR_BAD_FORMAT = 11&

Public Function ShellPrint(jFormHwnd As Long, _
FilePath As String) As String
Dim Answer As Integer
Dim Msg As String
Answer = ShellExecute(jFormHwnd, "Print", _
FilePath, vbNullString, vbNullString, vbNormalFocus)
If Answer <= 32 Then
'questo e' un errore

Select Case Answer
Case SE_ERR_FNF
Msg = "File Non Trovato"
Case SE_ERR_PNF
Msg = "Path Non Trovata"
Case SE_ERR_ACCESSDENIED
Msg = "Accesso negato alla risorsa"
Case SE_ERR_OOM
Msg = "Out of memory"
Case SE_ERR_DLLNOTFOUND
Msg = "DLL Non Trovata"
Case SE_ERR_SHARE
Msg = "Violazione della condivisione"
Case SE_ERR_ASSOCINCOMPLETE
Msg = "Associazione File non valida o Incompleta"
Case SE_ERR_DDETIMEOUT
Msg = "DDE Time out"
Case SE_ERR_DDEFAIL
Msg = "DDE transazione fallita"
Case SE_ERR_DDEBUSY
Msg = "DDE occupato"
Case SE_ERR_NOASSOC
Msg = "Nessuna associazione per l'estensione del file"
Case ERROR_BAD_FORMAT
Msg = "File EXE non valido o Errore immagine"
Case Else
Msg = "Mi arrendo Errore sconosciuto"
End Select
End If
ShellPrint = Msg
End Function

Private Sub Command1_Click()
Dim x As String
x = ShellPrint(Me.hwnd, "C:\File")
If x <> vbNullString Then
MsgBox x
End If
End Sub











( shellprintdoc.html )- by Paolo Puglisi - Modifica del 17/12/2023