Does anyone have a good C# marshalling for the WIN32_FIND_DATA structure used
with API functions FindFirstFile, FindNextFile, FtpFindFirstFile and
InternetFindNextFile?
Have modeled as follows
[StructLayout(LayoutKind.Sequential)]
public class FILETIME
{
public int dwLowDateTime;
public int dwHighDateTime;
};
[StructLayout(LayoutKind.Sequential)]
public class WIN32_FIND_DATA
{
public const int MAX_PATH = 260;
public int dwFileAttributes;
public FILETIME ftCreationTime;
public FILETIME ftLastAccessTime;
public FILETIME ftLastWriteTime;
public int nFileSizeHigh;
public int nFileSizeLow;
public int dwReserved0;
public int dwReserved1;
[MarshalAs(UnmanagedType.LPStr, SizeConst=MAX_PATH)]
public string cFileName;
[MarshalAs(UnmanagedType.LPStr, SizeConst=14)]
public string cAlternateFileName;
};
[DllImport("kernel32.dll", CharSet=CharSet.Auto)]
public static extern int FindFirstFile(string szSearchFile,
[MarshalAs(UnmanagedType.LPStruct)] WIN32_FIND_DATA lpFindFileData)
Calls to FindFirstFile, FindNextFile etc. produce a good handle but no data
in the WIN32_FIND_DATA structure.