public override List <string> GetAttributes() { var lprops = new List <string> { $"uuid({_ta.guid})" }; var ta = new TypeAttr(_ti); if (_ta.wMajorVerNum != 0 || _ta.wMinorVerNum != 0) { lprops.Add($"version({ta.wMajorVerNum}.{ta.wMinorVerNum})"); } OWCustData.GetCustData(_ti, ref lprops); var help = _ti.GetHelpDocumentationById(-1, out var context); AddHelpStringAndContext(lprops, help, context); if (0 == (_ta.wTypeFlags & TypeAttr.TypeFlags.TYPEFLAG_FCANCREATE)) { lprops.Add("noncreatable"); } return(lprops); }
public override List <string> GetAttributes() { var lprops = new List <string> { $"uuid({_ta.guid})" }; var ta = new TypeAttr(_ti); if (ta.wMajorVerNum != 0 || ta.wMinorVerNum != 0) { lprops.Add($"version({ta.wMajorVerNum}.{ta.wMinorVerNum})"); } OWCustData.GetCustData(_ti, ref lprops); var help = _ti.GetHelpDocumentationById(-1, out var context); AddHelpStringAndContext(lprops, help, context); if (0 != (_ta.wTypeFlags & TypeAttr.TypeFlags.TYPEFLAG_FAGGREGATABLE)) { lprops.Add("aggregatable"); } if (0 != (_ta.wTypeFlags & TypeAttr.TypeFlags.TYPEFLAG_FAPPOBJECT)) { lprops.Add("appobject"); } // TYPEFLAG_FCANCREATE is not applicable to interfaces/dispinterfaces if (0 != (_ta.wTypeFlags & TypeAttr.TypeFlags.TYPEFLAG_FCONTROL)) { lprops.Add("control"); } // No IDL syntax for TYPEFLAG_FDISPATCHABLE -- it is computed if (0 != (_ta.wTypeFlags & TypeAttr.TypeFlags.TYPEFLAG_FDUAL)) { lprops.Add("dual"); } if (0 != (_ta.wTypeFlags & TypeAttr.TypeFlags.TYPEFLAG_FHIDDEN)) { lprops.Add("hidden"); } if (0 != (_ta.wTypeFlags & TypeAttr.TypeFlags.TYPEFLAG_FLICENSED)) { lprops.Add("licensed"); } if (0 != (_ta.wTypeFlags & TypeAttr.TypeFlags.TYPEFLAG_FNONEXTENSIBLE)) { lprops.Add("nonextensible"); } if (0 != (_ta.wTypeFlags & TypeAttr.TypeFlags.TYPEFLAG_FOLEAUTOMATION)) { lprops.Add("oleautomation"); } // Can't find IDL for TYPEFLAG_FPREDECLID?!? if (0 != (_ta.wTypeFlags & TypeAttr.TypeFlags.TYPEFLAG_FPROXY)) { lprops.Add("proxy"); } // Can't find IDL for TYPEFLAG_FREPLACEABLE?!? if (0 != (_ta.wTypeFlags & TypeAttr.TypeFlags.TYPEFLAG_FRESTRICTED)) { lprops.Add("restricted"); } // Can't find IDL for TYPEFLAG_FREVERSEBIND?!? return(lprops); }