SetFilePointer (kernel32)
Last changed: timur.kelman+pinvoke@gmail.com-79.193.218.180

.
Summary

C# Signature:

[DllImport("kernel32.dll")]
static extern uint SetFilePointer(IntPtr hFile, int lDistanceToMove,
   IntPtr lpDistanceToMoveHigh, uint dwMoveMethod);

User-Defined Types:

None.

VB Signature:

    Public Enum EMoveMethod : uint
        FILE_BEGIN = 0
        FILE_CURRENT = 1
        FILE_END = 2
    End Enum

    <DllImport("kernel32.dll", SetLastError:=True)> _
    Shared Function SetFilePointer( _
        ByVal hFile As IntPtr, _
        ByVal lDistanceToMove As Integer, _
        ByRef lpDistanceToMoveHigh As IntPtr, _
        ByVal dwMoveMethod As EMoveMethod) _
        As System.UInt32
    End Function

    Public Const INVALID_SET_FILE_POINTER As Integer = -1

Notes:

If you are using this function to access hard-disk sectors greater than (2^32 - 2) bytes,

then the third argument will not be null or IntPtr.Zero. So when you pass an IntPtr to

the third argument, pass it as a reference. To do this, just change the third argument signature

to: ref IntPtr lpDistanceToMoveHigh.

None.

Tips & Tricks:

Please add some!

Sample Code:

Please add some!

Alternative Managed API:

Do you know one? Please contribute it!

Documentation