public override void BuildIDLInto(IDLFormatter ih) { EnterElement(); var lprops = _data.Attributes; if (lprops.Count > 0) { ih.AddString("[" + string.Join(", ", lprops.ToArray()) + "] "); } var attr = _ti.GetTypeAttr(); if (TypeAttr.TypeFlags.TYPEFLAG_FDUAL != (attr.wTypeFlags & TypeAttr.TypeFlags.TYPEFLAG_FDUAL) && TypeAttr.TypeKind.TKIND_DISPATCH == (attr.typekind & TypeAttr.TypeKind.TKIND_DISPATCH)) { ih.AddString("dispinterface "); ih.AddLink(_data.ShortName, "di"); } else { ih.AddString("interface "); ih.AddLink(_data.ShortName, "i"); } ih.AppendLine(";"); ExitElement(); }
public override void BuildIDLInto(IDLFormatter ih) { EnterElement(); ih.AppendLine("["); var lprops = _data.Attributes; for (var i = 0; i < lprops.Count; ++i) { ih.AppendLine(" " + lprops[i] + (i < (lprops.Count - 1) ? "," : "")); } ih.AppendLine("]"); if (_ta.cImplTypes > 0) { _ti.GetRefTypeOfImplType(0, out var href); _ti.GetRefTypeInfo(href, out var ti2); ih.AddString($"{_data.Name} : "); ih.AddLink(ti2.GetName(), "i"); ih.AppendLine(" {"); } else { ih.AppendLine("interface " + _data.Name + " {"); } using (new IDLHelperTab(ih)) { Children.ForEach(x => x.BuildIDLInto(ih)); } ih.AppendLine("};"); ExitElement(); }
public override void BuildIDLInto(IDLFormatter ih) { ih.AppendLine("["); var lprops = new List <string> { $"uuid({_ta.guid})" }; var help = _ti.GetHelpDocumentationById(-1, out var context); AddHelpStringAndContext(lprops, help, context); if (0 != (_ta.wTypeFlags & TypeAttr.TypeFlags.TYPEFLAG_FHIDDEN)) { lprops.Add("hidden"); } if (0 != (_ta.wTypeFlags & TypeAttr.TypeFlags.TYPEFLAG_FDUAL)) { lprops.Add("dual"); } if (0 != (_ta.wTypeFlags & TypeAttr.TypeFlags.TYPEFLAG_FRESTRICTED)) { lprops.Add("restricted"); } if (0 != (_ta.wTypeFlags & TypeAttr.TypeFlags.TYPEFLAG_FNONEXTENSIBLE)) { lprops.Add("nonextensible"); } if (0 != (_ta.wTypeFlags & TypeAttr.TypeFlags.TYPEFLAG_FOLEAUTOMATION)) { lprops.Add("oleautomation"); } for (var i = 0; i < lprops.Count; ++i) { ih.AppendLine(" " + lprops[i] + (i < (lprops.Count - 1) ? "," : "")); } ih.AppendLine("]"); if (_ta.cImplTypes > 0) { _ti.GetRefTypeOfImplType(0, out var href); _ti.GetRefTypeInfo(href, out var ti2); ih.AddString($"interface {_name} : "); ih.AddLink(ti2.GetName(), "i"); ih.AppendLine(" {"); } else { ih.AppendLine("interface " + _name + " {"); } using (new IDLHelperTab(ih)) { Children.ForEach(x => x.BuildIDLInto(ih)); } ih.AppendLine("};"); }
public override void BuildIDLInto(IDLFormatter ih) { ih.AppendLine("["); var lprops = new List <string> { $"uuid({_ta.guid})" }; var help = _ti.GetHelpDocumentationById(-1, out var context); AddHelpStringAndContext(lprops, help, context); for (var i = 0; i < lprops.Count; ++i) { ih.AppendLine(" " + lprops[i] + (i < (lprops.Count - 1) ? "," : "")); } ih.AppendLine("]"); ih.AppendLine("coclass " + _name + " {"); using (new IDLHelperTab(ih)) { for (var x = 0; x < _ta.cImplTypes; ++x) { _ti.GetRefTypeOfImplType(x, out var href); _ti.GetRefTypeInfo(href, out var ti2); _ti.GetImplTypeFlags(x, out var itypflags); var res = new List <string>(); if (0 != (itypflags & IMPLTYPEFLAGS.IMPLTYPEFLAG_FDEFAULT)) { res.Add("default"); } if (0 != (itypflags & IMPLTYPEFLAGS.IMPLTYPEFLAG_FSOURCE)) { res.Add("source"); } if (res.Count > 0) { ih.AddString("[" + string.Join(", ", res.ToArray()) + "] "); } ih.AddString("interface "); ih.AddLink(ti2.GetName(), "i"); ih.AppendLine(";"); } } ih.AppendLine("};"); }