NativeMethodsImpl
using Relativity.Transfer.Enumeration.Interfaces;
using System;
using System.Diagnostics.CodeAnalysis;
using System.IO;
using System.Runtime.InteropServices;
namespace Relativity.Transfer.Enumeration.Native
{
[ExcludeFromCodeCoverage]
internal sealed class NativeMethodsImpl : INativeMethods
{
public SafeFindHandle FindFirstFile(string fileName, [In] [Out] NativeFindData data)
{
return NativeMethods.FindFirstFile(fileName, data);
}
public bool FindNextFile(SafeFindHandle hndFindFile, [In] [Out] [MarshalAs(UnmanagedType.LPStruct)] NativeFindData lpFindFileData)
{
return NativeMethods.FindNextFile(hndFindFile, lpFindFileData);
}
public bool FindClose(IntPtr handle)
{
return NativeMethods.FindClose(handle);
}
public uint GetFileAttributes(string lpFileName)
{
return NativeMethods.GetFileAttributes(lpFileName);
}
public NativeCreateFileResult ([MarshalAs(UnmanagedType.LPWStr)] string filename, [MarshalAs(UnmanagedType.U4)] FileAccess access, [MarshalAs(UnmanagedType.U4)] FileShare share, IntPtr securityAttributes, [MarshalAs(UnmanagedType.U4)] FileMode creationDisposition, [MarshalAs(UnmanagedType.U4)] FileAttributes flagsAndAttributes, IntPtr templateFile)
{
SafeFindHandle handle = NativeMethods.CreateFileW(filename, access, share, securityAttributes, creationDisposition, flagsAndAttributes, templateFile);
int lastWin32Error = Marshal.GetLastWin32Error();
return new NativeCreateFileResult(handle, lastWin32Error);
}
}
}