/// <summary> /// Create an FDI context. /// </summary> /// <param name="fnMemAlloc">Memory allocation delegate.</param> /// <param name="fnMemFree">Memory free delegate.</param> /// <param name="fnFileOpen">File open delegate.</param> /// <param name="fnFileRead">File read delegate.</param> /// <param name="fnFileWrite">File write delegate.</param> /// <param name="fnFileClose">File close delegate.</param> /// <param name="fnFileSeek">File seek delegate.</param> /// <param name="erf">Error structure that will be filled in with error information.</param> /// <returns>On success, returns a non-null FDI context handle. /// If an error occurs, the return value will be IntPtr.Zero, /// and the passed CabError structure will contain error information.</returns> public static IntPtr FdiCreate( FdiMemAllocDelegate fnMemAlloc, FdiMemFreeDelegate fnMemFree, FdiFileOpenDelegate fnFileOpen, FdiFileReadDelegate fnFileRead, FdiFileWriteDelegate fnFileWrite, FdiFileCloseDelegate fnFileClose, FdiFileSeekDelegate fnFileSeek, ref CabError erf) { return FdiCreate(fnMemAlloc, fnMemFree, fnFileOpen, fnFileRead, fnFileWrite, fnFileClose, fnFileSeek, cpuTypeUnknown, ref erf); }
public static extern IntPtr FciCreate(/*[In, Out][MarshalAs(UnmanagedType.LPStruct)]*/ ref CabError erf, FciFilePlacedDelegate fnFilePlaced, FciMemAllocDelegate fnMemAlloc, FciMemFreeDelegate fnMemFree, FciFileOpenDelegate fnFileOpen, FciFileReadDelegate fnFileRead, FciFileWriteDelegate fnFileWrite, FciFileCloseDelegate fnFileClose, FciFileSeekDelegate fnFileSeek, FciFileDeleteDelegate fnFileDelete, FciGetTempFileDelegate fnTempFile, [In, Out][MarshalAs(UnmanagedType.LPStruct)] FciCurrentCab ccab, IntPtr userData);
private static extern IntPtr FdiCreate( FdiMemAllocDelegate fnMemAlloc, FdiMemFreeDelegate fnMemFree, FdiFileOpenDelegate fnFileOpen, FdiFileReadDelegate fnFileRead, FdiFileWriteDelegate fnFileWrite, FdiFileCloseDelegate fnFileClose, FdiFileSeekDelegate fnFileSeek, int cpuType, // ignored by 32-bit FDI ref CabError erf);