Exemple #1
0
        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);
        }
Exemple #2
0
        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;
        }