Newsgroup: it.comp.lang.visual-basic
Titolo: problema con api

Ciao a tutti!
Ho un problema con il richiamo delle API di Win.
In sostanza ho una forma con un bottone con cui vorrei poter far stampare,ma
con l'opzione di scelta della stampante.Ho fatto la show printer (grazie al
common dialog)e quindi mi viene proposta la finestra di scelta della
stampante.E fin qui tutto ok.....
Ma poi bisognerebbe passare i valori di default della stampante ,in modo che
quella scelta dall'utente venga dichiarata come stampante di
default,richiamando appunto le API.
Ho visto che esiste la funzione GET PRINTER,a cui passo dei valori e
dovrebbero essere lette le caratteristiche della stampante scelta.Ho
dichiarato una type di livello2 (scelto qs. livello perche' vengono proposte
i 3 valori che mi servono,il nome della stampante,i driver e la porta della
stampante),quindi una variabile di tipo della mia type.
Nonostante abbia dichiarato correttamente tutto e passato i giusti valori
alla funzione....non funziona!! Ho fatto dei test con delle semplici msgbox
ma ho visto che i valori passati sono equivalenti a 0. Ciò significa che non
succede nulla...:(
Allego il codice:
'DICHIARAZIONI
'--------------------
'API di Win per stampa
'Livello 2
Private Type PRINTER_INFO_2
        pServerName As Long
        pPrinterName As Long
        pShareName As Long
        pPortName As Long
        pDriverName As Long
        pComment As Long
        pLocation As Long
        pDevMode As Long    ' Pointer to DEVMODE
        pSepFile As Long
        pPrintProcessor As Long
        pDatatype As Long
        pParameters As Long
        pSecurityDescriptor As Long ' Pointer to SECURITY_DESCRIPTOR
        Attributes As Long
        Priority As Long
        DefaultPriority As Long
        StartTime As Long
        UntilTime As Long
        Status As Long
        cJobs As Long
        AveragePPM As Long
End Type
Dim PrInfo2 As PRINTER_INFO_2
'funzione a cui passo l'hdc,quindi poi definisce la stampante scelta
Private Declare Function GetPrinter Lib "winspool.drv" Alias "GetPrinterA"
(ByVal hPrinter As Long, ByVal Level As Long, pPrinter As PRINTER_INFO_2,
ByVal cbBuf As Long, pcbNeeded As Long) As Long
'------------------------------------------
'PROCEDURA
Private Sub cmdStampaTutte_Click()
    Dim rsDiete As Recordset
    Dim lTmpNeeded As Long
    Screen.MousePointer = vbHourglass
    Set rsDiete =  frmGestDiete.dcDiete.Recordset.Clone
    rsDiete.MoveFirst
    cdStampa.ShowPrinter
    GetPrinter cdStampa.hdc, 2, PrInfo2, 84, lTmpNeeded
    Report.Destination = crptToPrinter
    'While Not rsDiete.EOF
     '   SetupReport rsDiete![Codice Dieta]
    '    Report.PrintReport
     '   If Report.LastErrorNumber Then _
      '      MsgBox Report.LastErrorString, vbCritical Or vbOKOnly, "Errore
di CrystalReport in fase di stampa"
       ' rsDiete.MoveNext
    'Wend
    Set rsDiete = Nothing
    Screen.MousePointer = vbDefault
End Sub
Ringrazio tutti coloro che mi possono dare uan mano.....è un argomento un pò
ostico questo!!!
Spero di essere stata chiara...
grazie
Beba



 wrote in message
8i7h5v$7sq$1...@news.flashnet.it...


 wrote in message 8i7ilm$nr3$1...@nslave1.tin.it...


 wrote in message
8i7sqh$bhk$1...@news.flashnet.it...


sono
Sei uno che non ha preso confidenza con l'uso dei NG! :-(
IMPARA A QUOTARE IL TESTO CORRETTAMENTE!
Remove CUTME from E-Mail address to reply!
Visit Hardware Tips: 
http://www.hardwaretips.com

Beba
IMPARA A QUOTARE IL TESTO CORRETTAMENTE!
Non puoi postare un messaggio con centinaia e centinaia di righe
quotate senza motivo!
Va SEMPRE quotato lo stretto necessario alla comprensione della
risposta!
Ciao


Tanti Auguri !
Ma fai tanta fatica a cancellare il testo quotato che non serve???
