public static IntPtr FindFirstInternal(string path, IntPtr findFileData, bool isUnicode) { var result = NativeMethods.INVALID_HANDLE; _callSignature = $"FindFirst ({path})"; try { var o = Plugin.FindFirst(path, out var findData); if (o == null) { TraceCall(TraceLevel.Info, "<None>"); } else { findData.CopyTo(findFileData, isUnicode); result = TcHandles.AddHandle(o); TraceCall(TraceLevel.Info, findData.FileName); } } catch (NoMoreFilesException) { TraceCall(TraceLevel.Info, "<Nothing>"); NativeMethods.SetLastError(NativeMethods.ERROR_NO_MORE_FILES); } catch (Exception ex) { ProcessException(ex); } return(result); }
public static IntPtr LoadW(IntPtr parentWin, [MarshalAs(UnmanagedType.LPWStr)] string fileToLoad, int flags) { IntPtr listerHandle = IntPtr.Zero; ShowFlags showFlags = (ShowFlags)flags; callSignature = String.Format("Load ({0}, {1})", fileToLoad, showFlags.ToString()); try { object listerControl = Plugin.Load(fileToLoad, showFlags); listerHandle = ListerHandlerBuilder.GetHandle(listerControl, parentWin); if (listerHandle != IntPtr.Zero) { Plugin.ListerHandle = listerHandle; Plugin.ParentHandle = parentWin; long windowState = NativeMethods.GetWindowLong(parentWin, NativeMethods.GWL_STYLE); Plugin.IsQuickView = ((windowState & NativeMethods.WS_CHILD) != 0); TcHandles.AddHandle(listerHandle, listerControl); NativeMethods.SetParent(listerHandle, parentWin); } TraceCall(TraceLevel.Warning, listerHandle.ToString()); } catch (Exception ex) { ProcessException(ex); } return(listerHandle); }
public static IntPtr StartMemPackW(int options, [MarshalAs(UnmanagedType.LPWStr)] string fileName) { IntPtr result = IntPtr.Zero; MemPackOptions mpOptions = (MemPackOptions)options; callSignature = String.Format("StartMemPack {0} ({1})", fileName, mpOptions.ToString()); try { object o = Plugin.StartMemPack(mpOptions, fileName); if (o != null) { result = TcHandles.AddHandle(o); } TraceCall(TraceLevel.Warning, (result == IntPtr.Zero) ? "ERROR" : result.ToString()); } catch (Exception ex) { ProcessException(ex); } return(result); }
public static IntPtr OpenArchiveInternal(OpenArchiveData data) { IntPtr result = IntPtr.Zero; callSignature = String.Format("OpenArchive {0} ({1})", data.ArchiveName, data.Mode.ToString()); try { object o = Plugin.OpenArchive(ref data); if (o != null && data.Result == PackerResult.OK) { result = TcHandles.AddHandle(o); data.Update(); } TraceCall(TraceLevel.Info, (result == IntPtr.Zero) ? String.Format("Error ({0})", data.Result.ToString()) : result.ToString()); } catch (Exception ex) { ProcessException(ex); result = IntPtr.Zero; } return(result); }
public static IntPtr OpenArchiveInternal(OpenArchiveData data) { var result = IntPtr.Zero; _callSignature = $"OpenArchive {data.ArchiveName} ({data.Mode.ToString()})"; try { object o = Plugin.OpenArchive(ref data); if (o != null && data.Result == PackerResult.OK) { result = TcHandles.AddHandle(o); data.Update(); } TraceCall(TraceLevel.Info, result == IntPtr.Zero ? $"Error ({data.Result.ToString()})" : result.ToString()); } catch (Exception ex) { ProcessException(ex); result = IntPtr.Zero; } return(result); }