private SHELL_LINK_HEADER Read_Header(BinaryReader br) { SHELL_LINK_HEADER header = new SHELL_LINK_HEADER(); header.headerSize = br.ReadUInt32(); if (header.headerSize != 0x4C) { throw new FormatException("Incorrect file size!"); } header.linkCLSID = br.ReadBytes(0x10); for (int i = 0; i < 0x10; i++) { if (header.linkCLSID[i] != CLSID[i]) { throw new FormatException("Invalid CLSID!"); } } header.linkFlags = Read_LinkFlags(br.ReadUInt32()); header.fileAttributes = Read_FileAttribute(br.ReadUInt32()); header.creationTime.dateTime = br.ReadUInt64(); header.accessTime.dateTime = br.ReadUInt64(); header.writeTime.dateTime = br.ReadUInt64(); header.fileSize = br.ReadUInt32(); header.iconIndex = br.ReadInt32(); header.showCommand = (SHOW_COMMAND)br.ReadUInt32(); header.hotKey.low = (HOTKEYS_FLAGS.LOW_BYTE)br.ReadByte(); header.hotKey.hight = (HOTKEYS_FLAGS.HIGH_BYTE)br.ReadByte(); header.reserved1 = br.ReadUInt16(); header.reserved2 = br.ReadUInt32(); header.reserved3 = br.ReadUInt32(); return(header); }
private SHELL_LINK_HEADER Read_Header(BinaryReader br) { SHELL_LINK_HEADER header = new SHELL_LINK_HEADER(); header.headerSize = br.ReadUInt32(); if (header.headerSize != 0x4C) throw new FormatException("Incorrect file size!"); header.linkCLSID = br.ReadBytes(0x10); for (int i = 0; i < 0x10; i++) if (header.linkCLSID[i] != CLSID[i]) throw new FormatException("Invalid CLSID!"); header.linkFlags = Read_LinkFlags(br.ReadUInt32()); header.fileAttributes = Read_FileAttribute(br.ReadUInt32()); header.creationTime.dateTime = br.ReadUInt64(); header.accessTime.dateTime = br.ReadUInt64(); header.writeTime.dateTime = br.ReadUInt64(); header.fileSize = br.ReadUInt32(); header.iconIndex = br.ReadInt32(); header.showCommand = (SHOW_COMMAND)br.ReadUInt32(); header.hotKey.low = (HOTKEYS_FLAGS.LOW_BYTE)br.ReadByte(); header.hotKey.hight = (HOTKEYS_FLAGS.HIGH_BYTE)br.ReadByte(); header.reserved1 = br.ReadUInt16(); header.reserved2 = br.ReadUInt32(); header.reserved3 = br.ReadUInt32(); return header; }