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; } }
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 { } }
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("]"); } }