Я использую функцию Windows API ReadFile () для чтения системных метафайлов. Но меня смущает то, как на самом деле обрабатывать данные, возвращаемые этой функцией. Я предполагаю, что он хранится в параметре lpBuffer, и мне как-то нужно декодировать содержимое этого буфера, чтобы интерпретировать фактические данные.
Я использую Windows 10 и использую C # для взаимодействия.
Вот моя обертка:
[DllImport("kernel32", CharSet = CharSet.Auto)]
public static extern bool ReadFile(SafeFileHandle hFile, IntPtr lpBuffer, uint nNumberOfBytesToRead, out uint lpNumberOfBytesRead, ref NativeOverlapped lpOverlapped);
А вот и мой звонок:
NativeMethods.ReadFile(_volumeHandle, (IntPtr)buffer, (uint)len, out read, ref overlapped)
//do something with the buffer???
Данные, содержащиеся в буфере после вызова, являются указателем на int - что я и ожидал - но где находятся фактические данные файла?