Originariamente inviato da FM01967
Allora,
dopo questo scambio di email ho fatto delle prove ulteriori e sono riuscito a farlo funzionare in parte esattamente nel modo riportato nel listato. In parte in quanto mi funziona solo con la prima parte del file, ossia mi legge i caratteri dei primi due giga.
Cosa che quel programma aveva sempre fatto. E infatti, mi stavo scervellando su come non ti funzionasse ... a questo punto, tu non l'avevi mai provato ...

Il problema nasce quando cerco di accedere ai restanti due giga, imposto ad 1 il parametro della parte alta, invece di 0,

Call SetFilePointer(hFile, kStartPos, 1, FILE_BEGIN) ' low, high

ma mi legge solo spazi bianchi.
Come devo valorizzare il parametro?
Ecco ... e' questo il problema vero ... ma se leggi la documentazione su MSDN

SetFilePointer
http://msdn.microsoft.com/en-us/library/aa365541(VS.85).aspx

vedi facilmente che il parametro

__inout_opt PLONG lpDistanceToMoveHigh,

e' un puntatore a long, quindi dovresti usare una variabile

Dim ha As Long

ha = 1

e usare la variabile che sarà passata per riferimento

Call SetFilePointer(hFile, kStartPos, ha, FILE_BEGIN) ' low, high