codice:
Public Function AggiungiDriverXP()
    Dim bBuffer(1000) As Byte
    For i = 0 To UBound(bBuffer, 1)
        bBuffer(i) = 0
    Next i
    Dim DrvInfo As DRIVER_INFO_3
    With DrvInfo
        .cVersion = 1024
        .pDriverPath = "C:\gs\Driver\WinXP\PSCRIPT5.DLL"
        .pConfigFile = "C:\gs\Driver\WinXP\PS5UI.DLL"
        .pHelpFile = "C:\gs\Driver\WinXP\PSCRIPT.HLP"
        .pDataFile = "C:\gs\Driver\WinXP\HPCLJ5V2.PPD"
        .pDependentFiles = "C:\gs\Driver\WinXP\PSCRIPT.NTF"
        .pEnvironment = "Windows NT x86"
        .pName = "HP Color LaserJet 5/5M PS"
    End With
    x = AddPrinterDriver(vbNullChar, 3, DrvInfo)
    If x = 0 Then
        Select Case Err.LastDllError
        Case ERROR_INVALID_PRINTER_NAME
            MsgBox "Nome stampante non valido"
        Case 2
            MsgBox "Impossibile trovare il file"
        Case Else
            MsgBox Err.LastDllError
        End Select
    End If
    
End Function
ho modificato la riga x=AddPrinterDriver con
codice:
x = AddPrinterDriverEx(vbNullChar, 3, DrvInfo,1)
e di conseguenza anche la definizione della funzione:
codice:
Public Declare Function AddPrinterDriverEx Lib "winspool.drv" Alias "AddPrinterDriverExA" (ByVal pName As String, ByVal Level As Long, pDriverInfo As Any, pFlags As Long) As Long
Così facendo x mi restituisce 1 ma non installa i driver.

esiste qualcuno in grado di aiutarmi?