Newsgroup: it.comp.appl.access
Titolo: CopyFileEx non si può mettere in pausa più di una volta?

Che posso fare per mettere in pausa pi� volte CopyFileEx
Solo una volta funziona il pausa e il play.
?
Daniele 

"OneEDP" <OneEDP@antispam> ha scritto nel messaggio 
news:4a44efd6$0$1109$4faf...@reader4.news.tin.it...

La logica dell'AdressOf deve essere digerita da me.
Sicuramente � questo il problema per cui la form che invoca CopyFileEx non 
riesce pi� a comunicare con CopyProgressRoutine...
Non so come risolvere il problema.
Grazie a voi
Daniele 

 Daniele
Non credo c'entri nulla la Form di chiamata in questo caso... non è un
SubClassing ma un CallBack...!
Tu indichi alla Funzione di Copy dove effettuare una deviazione per
trasferire i dati aggiornati...
Come ti dicevo per capire se quello che volevi fare è fattibile, ma
ritengo di no..., dovresti analizzare lo stack delle chiamate.... cosa
peraltro MOLTO difficile...!
Secondo me potresti usare un'altra API....
SHFileOperation
http://allapi.mentalis.org/apilist/SHFileOperation.shtml
Questa è la struttura dati che come vedi è associabile ad un hWnd
quindi indicizzabile nello Stack...
Private Type SHFILEOPSTRUCT
    hWnd As Long
    wFunc As Long
    pFrom As String
    pTo As String
    fFlags As Integer
    fAborted As Boolean
    hNameMaps As Long
    sProgress As String
End Type
Altrimenti se hai WIN VISTA:
CopyFileTransacted
http://msdn.microsoft.com/en-us/library/aa363853(VS.85).aspx
oppure:
CopyProgressRoutine
http://msdn.microsoft.com/en-us/library/aa363854(VS.85).aspx
Buon divertimento... ;-)
@Alex

 Daniele
Non credo c'entri nulla la Form di chiamata in questo caso... non � un
SubClassing ma un CallBack...!
Tu indichi alla Funzione di Copy dove effettuare una deviazione per
trasferire i dati aggiornati...
Come ti dicevo per capire se quello che volevi fare � fattibile, ma
ritengo di no..., dovresti analizzare lo stack delle chiamate.... cosa
peraltro MOLTO difficile...!
Secondo me potresti usare un'altra API....
SHFileOperation
http://allapi.mentalis.org/apilist/SHFileOperation.shtml
Questa � la struttura dati che come vedi � associabile ad un hWnd
quindi indicizzabile nello Stack...
Private Type SHFILEOPSTRUCT
    hWnd As Long
    wFunc As Long
    pFrom As String
    pTo As String
    fFlags As Integer
    fAborted As Boolean
    hNameMaps As Long
    sProgress As String
End Type
Altrimenti se hai WIN VISTA:
CopyFileTransacted
http://msdn.microsoft.com/en-us/library/aa363853(VS.85).aspx
oppure:
CopyProgressRoutine
http://msdn.microsoft.com/en-us/library/aa363854(VS.85).aspx
Buon divertimento... ;-)
@Alex
Grazie per la segnalazione.
Temo di non essermi spiegato.
All'interno all'interno della funzione CallBack CopyProgressRoutine viene 
assegnata una delle seguenti costanti:
Public Const PROGRESS_CANCEL = 1             'Annulla la copia e cancella la 
destinazione
Public Const PROGRESS_CONTINUE = 0           'Continua con la copia
Public Const PROGRESS_QUIET = 3              'Continua la copia senza 
invocare la progress routine
Public Const PROGRESS_STOP = 2               'Interrompi la copia che potr� 
essere successivamente ripresa
con la istruzione: CopyProgressRoutine = 
Forms(meStrNomeFinestra).CopyProgressRoutineReturnValue
dove CopyProgressRoutineReturnValue � un controllo di una finestra che viene 
assegnato  a runtime su eventi click dell'utente.
In modalit� debug passo passo tutto funziona pefettamente e riesco a mettere 
in pausa e riprendere la copia molte volte senza problemi.
Senza debug invece risco a mettere in pausa e riavviare la copia una sola 
volta, dopodich� l'interfaccia utente rimane freezed finch� non viene 
completata la copia.
Cosa devo fare per ingannare access?
Grazie 

"OneEDP" <OneEDP@antispam> ha scritto nel messaggio 
news:4a486cba$0$47548$4faf...@reader1.news.tin.it...

Cose strane dal mondo.
Ho fatto questa prova e pare vada bene.
Visto che alla fine si tratta di problemi all'interfacci in visualizzazione.
Subito dopo il comando di assegnazione stop e continue ho aggiunto il 
comando Me.Repaint (si tratta di una popup) e funziona molto bene.
Per sicurezza gli inserisco una sleep 50 seguita da doevents.
Che ne pensi di queste stranezze.
Sono io lo "strano" o � tutto normale?
Grazie
Ciao
Daniele

 Daniele
Devo dire che non avevo proprio capito nulla... almeno leggendo, e
capendo, quello che dici ora...!!
Si, che sia normale non saprei dire, ma è capitato anche a me che
l'aggiornamento delle Label non venisse effettuato... quindi metto
sempre un Repaint ora... e non avrei nemmeno pensato di suggerirtelo
visto che io lo uso per scontato quasi sempre quando faccio i
giochetti di grafica con Progress o altro... se ti da fastidio il
Flare metti un Paintig della Form a False, repaint e Painting a
true...
@Alex

 Daniele
Devo dire che non avevo proprio capito nulla... almeno leggendo, e
capendo, quello che dici ora...!!
Si, che sia normale non saprei dire, ma � capitato anche a me che
l'aggiornamento delle Label non venisse effettuato... quindi metto
sempre un Repaint ora... e non avrei nemmeno pensato di suggerirtelo
visto che io lo uso per scontato quasi sempre quando faccio i
giochetti di grafica con Progress o altro... se ti da fastidio il
Flare metti un Paintig della Form a False, repaint e Painting a
true...
@Alex
O meglio
    Application.ECHO False
    Me.Repaint
    Application.ECHO True
Grazie mille!
Ciao

 Ciao
NOoooo...
Fai attenzione... alla abissale differenza tra quello che ti ho
suggerito io e quello che invece hai inteso tu...!
Verifica la cosa... ECHO ha effetto su tutto... REPAINTING solo sulla
FORM... cosa che, in caso di CRASH, o MultiForms ha una sostanziale
differenza.
@Alex

 ha scritto nel messaggio 
news:6a7e4661-3b10-4833...@r10g2000yqa.googlegroups.com...



@Alex
Ritorno subito nei miei passi ho appena verificato che se application.echo � 
impostatoe su false e qualcosa va storto... bhe puoi immaginare... tutto 
non ha pi� eco ne voce.
Grazie
Daniele