[DllImport("kernel32.dll")]
static extern bool SetFilePointerEx(IntPtr hFile, long liDistanceToMove,
IntPtr lpNewFilePointer, uint dwMoveMethod);
[DllImport("kernel32.dll")]
public static extern bool SetFilePointerEx(
SafeFileHandle hFile, long liDistanceToMove,
out long lpNewFilePointer, uint dwMoveMethod);
None.
None.
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)
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.
Do you know one? Please contribute it!
LARGE_INTEGER - http://msdn.microsoft.com/en-us/library/aa383713(VS.85).aspx
UInt64 - http://msdn.microsoft.com/en-us/library/system.uint64.aspx