public REFERENCECONTROL(PROJECTINFORMATION ProjectInformation, XlBinaryReader Data)
        {
            this.Id                  = Data.ReadUInt16();
            this.SizeTwiddled        = Data.ReadUInt32();
            this.SizeOfLibidTwiddled = Data.ReadUInt32();
            this.LibidTwiddled       = Data.ReadBytes(this.SizeOfLibidTwiddled);
            this.Reserved1           = Data.ReadUInt32();
            this.Reserved2           = Data.ReadUInt16();

            UInt16 peek = Data.PeekUInt16();

            if (peek == (UInt16)0x0016)
            {
                // REFERENCENAME record
                this.NameRecordExtended = new REFERENCENAME(ProjectInformation, Data);
            }

            this.Reserved3           = Data.ReadUInt16();
            this.SizeExtended        = Data.ReadUInt32();
            this.SizeOfLibidExtended = Data.ReadUInt32();
            this.LibidExtended       = Data.ReadBytes(this.SizeOfLibidExtended);
            this.Reserved4           = Data.ReadUInt32();
            this.Reserved5           = Data.ReadUInt16();
            this.OriginalTypeLib     = Data.ReadGuid();
            this.Cookie = Data.ReadUInt32();

            Validate();
        }
示例#2
0
        public REFERENCENAME(PROJECTINFORMATION ProjectInformation, XlBinaryReader Data)
        {
            this.ProjectInformation = ProjectInformation;

            this.Id                = Data.ReadUInt16();
            this.SizeOfName        = Data.ReadUInt32();
            this.Name              = Data.ReadBytes(this.SizeOfName);
            this.Reserved          = Data.ReadUInt16();
            this.SizeOfNameUnicode = Data.ReadUInt32();
            this.NameUnicode       = Data.ReadBytes(this.SizeOfNameUnicode);

            Validate();
        }
示例#3
0
        public PROJECTDOCSTRING(PROJECTINFORMATION parent, XlBinaryReader Data)
        {
            this.parent = parent;

            this.Id = Data.ReadUInt16();
            this.SizeOfDocString        = Data.ReadUInt32();
            this.DocString              = Data.ReadBytes(Convert.ToInt32(this.SizeOfDocString));
            this.Reserved               = Data.ReadUInt16();
            this.SizeOfDocStringUnicode = Data.ReadUInt32();
            this.DocStringUnicode       = Data.ReadBytes(Convert.ToInt32(this.SizeOfDocStringUnicode));

            Validate();
        }
示例#4
0
        public PROJECTHELPFILEPATH(PROJECTINFORMATION parent, XlBinaryReader Data)
        {
            this.parent = parent;

            this.Id = Data.ReadUInt16();
            this.SizeOfHelpFile1 = Data.ReadUInt32();
            this.HelpFile1       = Data.ReadBytes(this.SizeOfHelpFile1);
            this.Reserved        = Data.ReadUInt16();
            this.SizeOfHelpFile2 = Data.ReadUInt32();
            this.HelpFile2       = Data.ReadBytes(this.SizeOfHelpFile2);

            Validate();
        }
示例#5
0
        public MODULESTREAMNAME(PROJECTINFORMATION ProjectInformation, XlBinaryReader Data)
        {
            this.ProjectInformation = ProjectInformation;

            this.Id = Data.ReadUInt16();
            this.SizeOfStreamName        = Data.ReadUInt32();
            this.StreamName              = Data.ReadBytes(this.SizeOfStreamName);
            this.Reserved                = Data.ReadUInt16();
            this.SizeOfStreamNameUnicode = Data.ReadUInt32();
            this.StreamNameUnicode       = Data.ReadBytes(this.SizeOfStreamNameUnicode);

            Validate();
        }
        public PROJECTCONSTANTS(PROJECTINFORMATION parent, XlBinaryReader Data)
        {
            this.parent = parent;

            this.Id = Data.ReadUInt16();
            this.SizeOfConstants        = Data.ReadUInt32();
            this.Constants              = Data.ReadBytes(this.SizeOfConstants);
            this.Reserved               = Data.ReadUInt16();
            this.SizeOfConstantsUnicode = Data.ReadUInt32();
            this.ConstantsUnicode       = Data.ReadBytes(this.SizeOfConstantsUnicode);

            Validate();
        }
示例#7
0
        public REFERENCEPROJECT(PROJECTINFORMATION ProjectInformation, XlBinaryReader Data)
        {
            this.ProjectInformation = ProjectInformation;

            this.Id   = Data.ReadUInt16();
            this.Size = Data.ReadUInt32();
            this.SizeOfLibidAbsolute = Data.ReadUInt32();
            this.LibidAbsolute       = Data.ReadBytes(this.SizeOfLibidAbsolute);
            this.SizeOfLibidRelative = Data.ReadUInt32();
            this.LibidRelative       = Data.ReadBytes(this.SizeOfLibidRelative);
            this.MajorVersion        = Data.ReadUInt32();
            this.MinorVersion        = Data.ReadUInt16();

            Validate();
        }
示例#8
0
        public REFERENCEORIGINAL(XlBinaryReader Data)
        {
            this.Id = Data.ReadUInt16();
            this.SizeOfLibidOriginal = Data.ReadUInt32();
            this.LibidOriginal       = Data.ReadBytes(this.SizeOfLibidOriginal);

            Validate();
        }
示例#9
0
        public MODULENAMEUNICODE(XlBinaryReader Data)
        {
            this.Id = Data.ReadUInt16();
            this.SizeOfModuleNameUnicode = Data.ReadUInt32();
            this.ModuleNameUnicode       = Data.ReadBytes(this.SizeOfModuleNameUnicode);

            Validate();
        }
        public PROJECTNAME(PROJECTINFORMATION parent, XlBinaryReader Data)
        {
            this.parent = parent;

            this.Id          = Data.ReadUInt16();
            this.Size        = Data.ReadUInt32();
            this.ProjectName = Data.ReadBytes((int)this.Size);

            Validate();
        }
示例#11
0
        public REFERENCEREGISTERED(XlBinaryReader Data)
        {
            this.Id          = Data.ReadUInt16();
            this.Size        = Data.ReadUInt32();
            this.SizeOfLibid = Data.ReadUInt32();
            this.Libid       = Data.ReadBytes(this.SizeOfLibid);
            this.Reserved1   = Data.ReadUInt32();
            this.Reserved2   = Data.ReadUInt16();

            Validate();
        }
示例#12
0
        public _VBA_PROJECTStream(XlBinaryReader data)
        {
            this.Reserved1 = data.ReadUInt16();
            this.Version   = data.ReadUInt16();
            this.Reserved2 = data.ReadByte();
            this.Reserved3 = data.ReadUInt16();

            int PerformanceCacheLength = data.Length - 7;

            this.PerformanceCache = data.ReadBytes(PerformanceCacheLength);

            Validate();
        }
        public ModuleStream(PROJECTINFORMATION ProjectInformation, MODULE module, XlBinaryReader Data)
        {
            this.ProjectInformation = ProjectInformation;

            this.PerformanceCache = Data.ReadBytes(module.OffsetRecord.TextOffset);

            Byte[] rest      = Data.GetUnreadData();
            var    reader    = new XlBinaryReader(ref rest);
            var    container = new CompressedContainer(reader);
            var    buffer    = new DecompressedBuffer();

            container.Decompress(buffer);
            this.UncompressedSourceCode = buffer.GetData();
        }