SetFilePointerEx (kernel32)
Last changed: -


C# Signature:

static extern bool SetFilePointerEx(IntPtr hFile, long liDistanceToMove,
   IntPtr lpNewFilePointer, uint dwMoveMethod);

C# Signature:

public static extern bool SetFilePointerEx(
     SafeFileHandle hFile, long liDistanceToMove,
     out long lpNewFilePointer, uint dwMoveMethod);

User-Defined Types:




Tips & Tricks:

The third argument (lpNewFilePointer) is of type LARGE_INTEGER, which has a size of 64 bits. For this reason use a UInt64 for this argument. (See sample below)

Sample Code:

UInt64 n = 0; //it is important to use UInt64, because the 3rd argument is of type PLARGE_INTEGER, where LARGE_INTEGER has a size of 64 bits.

IntPtr ptr = new IntPtr(&n);

SetFilePointerEx(handle, 0, ptr, FILE_CURRENT);//ptr contains current location of file pointer. handle is a pointer to an open file handle.

Alternative Managed API:

Do you know one? Please contribute it!



UInt64 -