コード例 #1
0
        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);
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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);
        }