예제 #1
0
        public override void Write()
        {
            TypeDataWriter w = CreateWriter(LeafType.LF_NESTTYPE);

            w.WriteUInt16(0x00);
            w.WriteIndexedType(NestedTypeDef);
            w.WriteCString(Name);
            w.WriteHeader();
        }
예제 #2
0
        public override void Write()
        {
            TypeDataWriter w = CreateWriter(LeafType.LF_STMEMBER);

            w.WriteUInt16((ushort)Attributes);
            w.WriteIndexedType(TypeRecord);
            w.WriteCString(Name);
            w.WriteHeader();
        }
예제 #3
0
        public override void Write()
        {
            TypeDataWriter w = CreateWriter(LeafType.LF_METHOD);

            w.WriteUInt16(NumberOfOccurrences);
            w.WriteIndexedType(MethodListRecord);
            w.WriteCString(Name);
            w.WriteHeader();
        }
예제 #4
0
        public override void Write()
        {
            TypeDataWriter w = CreateWriter(LeafType.LF_ENUMERATE);

            w.WriteUInt16((ushort)Attributes);
            w.WriteVaryingType(Value);
            w.WriteCString(FieldName);
            w.WriteHeader();
        }
예제 #5
0
        public void Write(PDBFile pdb, Stream stream)
        {
            TypeDataWriter w = CreateWriter(LeafType.LF_UNION);

            w.WriteUInt16(NumberOfElements);
            w.Write <TypeProperties>(Properties);
            w.WriteIndexedType(FieldType);
            w.WriteVaryingType(StructSize);
            w.WriteCString(Name);
        }
예제 #6
0
        public override void Write()
        {
            TypeDataWriter w = CreateWriter(LeafType.LF_MEMBER);

            w.WriteUInt16((ushort)Attributes);
            w.WriteIndexedType(FieldType);
            w.WriteVaryingType(Offset);
            w.WriteCString(Name);
            w.WriteHeader();
        }
예제 #7
0
        public override void Write()
        {
            TypeDataWriter w = CreateWriter(Leaves.LeafType.LF_ARRAY);

            w.WriteIndexedType(ElementType);
            w.WriteIndexedType(IndexingType);
            w.WriteVaryingType(Size);
            w.WriteCString(Name);
            w.WriteHeader();
        }
예제 #8
0
        public override void Write()
        {
            TypeDataWriter w = CreateWriter(LeafType.LF_ENUM);

            w.WriteUInt16(NumElements);
            w.Write <TypeProperties>(Properties);
            w.WriteIndexedType(UnderlyingType);
            w.WriteIndexedType(FieldType);
            w.WriteCString(Name);
            w.WriteHeader();
        }
예제 #9
0
        public override void Write()
        {
            TypeDataWriter w = CreateWriter(LeafType.LF_CLASS);

            w.WriteUInt16(NumberOfElements);
            w.Write <TypeProperties>(FieldProperties);
            w.WriteIndexedType(FieldIndex);
            w.WriteIndexedType(VShapeTableType);
            w.WriteVaryingType(StructSize);
            w.WriteCString(Name);
            w.WriteHeader();
        }
예제 #10
0
        public override void Write()
        {
            TypeDataWriter w = CreateWriter(LeafType.LF_VFTABLE);

            w.WriteIndexedType(Type);
            w.WriteIndexedType(BaseVfTable);
            w.WriteUInt32(OffsetInObjectLayout);
            w.WriteUInt32(NamesSize);
            foreach (string name in Names)
            {
                w.WriteCString(name);
            }
            w.WriteHeader();
        }
예제 #11
0
        public override void Write()
        {
            TypeDataWriter w = CreateWriter(LeafType.LF_ONEMETHOD);

            w.WriteUInt16((ushort)Attributes);
            w.WriteIndexedType(ProcedureType);
            switch (Attributes.MethodProperties)
            {
            case MethodProperties.Intro:
            case MethodProperties.PureIntro:
                w.WriteUInt32(VBaseOffset);
                break;
            }
            w.WriteCString(Name);
            w.WriteHeader();
        }