Esempio n. 1
0
        private void WriteReturnParameter(ComParameterInfo parameter)
        {
            char[]    tokens              = { '[', ']' };
            ITypeInfo typeInfo            = parameter.ComFunctionInfo.ComTypeInfo.GetITypeInfo();
            string    returnParameter     = ComHelper.TypeDescToString(parameter.ELEMDESC.tdesc, typeInfo);
            string    returnParameterLink = returnParameter.Trim(tokens);

            switch (parameter.VariantType)
            {
            case System.Runtime.InteropServices.VarEnum.VT_VOID:
                AppendText(returnParameter, ForeColor, FontStyle.Bold);
                break;

            default:
                if (ComTypeManager.Instance.HasComType(returnParameterLink))
                {
                    InsertLink(returnParameter, returnParameterLink);
                }
                else
                {
                    AppendText(returnParameter, _colorBlue, FontStyle.Bold);
                }
                break;
            }
        }
Esempio n. 2
0
        public void DescribeComFunctionInfo(ComFunctionInfo comFunctionInfo)
        {
            try
            {
                Clear();

                if (comFunctionInfo == null)
                {
                    return;
                }

                WriteReturnParameter(comFunctionInfo.ReturnParameter);

                AppendText(String.Format(" {0}", comFunctionInfo.Name), ForeColor, FontStyle.Bold);

                if (comFunctionInfo.Parameters.Length > 0)
                {
                    AppendText("(");

                    for (int i = 0; i < comFunctionInfo.Parameters.Length; i++)
                    {
                        ComParameterInfo parameter = comFunctionInfo.Parameters[i];

                        WriteParameter(parameter);

                        if (i < comFunctionInfo.Parameters.Length - 1)
                        {
                            AppendText(", ");
                        }
                    }

                    AppendText(")");
                }
                else
                {
                    AppendText("()");
                }

                AppendText(Environment.NewLine);
                AppendText("   Member of ");
                InsertLink(comFunctionInfo.ComTypeInfo.FullName);
                AppendText(Environment.NewLine);

                WriteSummary(comFunctionInfo.Description);
                WriteDispatchid(comFunctionInfo.DispId);
            }
            catch
            {
            }
        }
Esempio n. 3
0
        private void WriteParameter(ComParameterInfo parameter)
        {
            if (parameter.IsOptional)
            {
                AppendText("[");
            }

            if (parameter.IsOut)
            {
                if (parameter.IsIn)
                {
                    AppendText("ref ");
                }
                else
                {
                    AppendText("out ");
                }
            }
            else if (parameter.VariantType == System.Runtime.InteropServices.VarEnum.VT_PTR)
            {
                AppendText("ref ");
            }

            char[]    tokens                = { '[', ']' };
            ITypeInfo typeInfo              = parameter.ComFunctionInfo.ComTypeInfo.GetITypeInfo();
            string    parameterTypeName     = ComHelper.TypeDescToString(parameter.ELEMDESC.tdesc, typeInfo);
            string    parameterTypeNameLink = parameterTypeName.Trim(tokens);

            if (ComTypeManager.Instance.HasComType(parameterTypeNameLink))
            {
                InsertLink(parameterTypeName, parameterTypeNameLink);
            }
            else
            {
                AppendText(parameterTypeName, _colorBlue, FontStyle.Bold);
            }

            AppendText(" ");
            AppendText(parameter.Name, ForeColor, FontStyle.Italic);

            if (parameter.IsOptional)
            {
                AppendText("]");
            }
        }