public override List <string> GetAttributes() { var lprops = new List <string>(); if (!MemIdInSpecialRange) { lprops.Add("id(" + _fd.memid.PaddedHex() + ")"); } switch (_fd.invkind) { case FuncDesc.InvokeKind.INVOKE_PROPERTYGET: lprops.Add("propget"); break; case FuncDesc.InvokeKind.INVOKE_PROPERTYPUT: lprops.Add("propput"); break; case FuncDesc.InvokeKind.INVOKE_PROPERTYPUTREF: lprops.Add("propputref"); break; } if (!MemIdInSpecialRange) { OWCustData.GetAllFuncCustData(_fd.memid, (INVOKEKIND)_fd.invkind, _ti, ref lprops); } var help = _ti.GetHelpDocumentationById(_fd.memid, out var context); if (0 != (_fd.wFuncFlags & FuncDesc.FuncFlags.FUNCFLAG_FRESTRICTED)) { lprops.Add("restricted"); } if (0 != (_fd.wFuncFlags & FuncDesc.FuncFlags.FUNCFLAG_FHIDDEN)) { lprops.Add("hidden"); } AddHelpStringAndContext(lprops, help, context); 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_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); }