/// <summary> /// Parses the StringData /// </summary> private void ParseStringData() { StringData = new Structs.StringData(); if (ShellLinkHeader.LinkFlags.HasFlag(Enums.LinkFlags.HasName)) { StringData.NameString = ReadStringData(); } if (ShellLinkHeader.LinkFlags.HasFlag(Enums.LinkFlags.HasRelativePath)) { StringData.RelativePath = ReadStringData(); } if (ShellLinkHeader.LinkFlags.HasFlag(Enums.LinkFlags.HasWorkingDir)) { StringData.WorkingDir = ReadStringData(); } if (ShellLinkHeader.LinkFlags.HasFlag(Enums.LinkFlags.HasArguments)) { StringData.CommandLineArgs = ReadStringData(); } if (ShellLinkHeader.LinkFlags.HasFlag(Enums.LinkFlags.HasIconLocation)) { StringData.IconLocation = ReadStringData(); } }
/// <summary> /// Resets the Stream position to the beginning and clears the fields /// </summary> private void Reset() { Stream.Seek(0, SeekOrigin.Begin); ShellLinkHeader = new Structs.ShellLinkHeader(); LinkTargetIdList = new Structs.LinkTargetIDList(); LinkInfo = new Structs.LinkInfo(); StringData = new Structs.StringData(); }