private string FormatProcedure(NdrProcedureDefinition procedure) { string return_value; if (procedure.ReturnValue == null) { return_value = "void"; } else if (procedure.ReturnValue.Type.Format == NdrFormatCharacter.FC_LONG) { return_value = "HRESULT"; } else { return_value = procedure.ReturnValue.Type.FormatType(this); } string procedureParameters = string.Join(", ", procedure.Params.Select( (p, i) => string.Format( "{0} {1} {2}", (this as INdrFormatterInternal).FormatComment("Stack Offset: {0}", p.Offset), p.Format(this), p.FormatName(i) ) )); return(string.Format("virtual {0} __stdcall {1}({2});", return_value, procedure.Name, procedureParameters)); }
string INdrFormatter.FormatProcedure(NdrProcedureDefinition procedure) { return(procedure.FormatProcedure(this)); }