Robert Shearman : widl: Generate correct proc format strings for [out] and [in, out] parameters.

Alexandre Julliard julliard at wine.codeweavers.com
Mon Dec 26 11:46:35 CST 2005


Module: wine
Branch: refs/heads/master
Commit: 73a25d316ddec23509fdd2ff0de3e5ced680bcba
URL:    http://source.winehq.org/git/?p=wine.git;a=commit;h=73a25d316ddec23509fdd2ff0de3e5ced680bcba

Author: Robert Shearman <rob at codeweavers.com>
Date:   Mon Dec 26 13:07:55 2005 +0100

widl: Generate correct proc format strings for [out] and [in, out] parameters.

---

 tools/widl/typegen.c |    8 ++++++++
 1 files changed, 8 insertions(+), 0 deletions(-)

diff --git a/tools/widl/typegen.c b/tools/widl/typegen.c
index 5724d96..09420dc 100644
--- a/tools/widl/typegen.c
+++ b/tools/widl/typegen.c
@@ -96,10 +96,18 @@ static size_t write_procformatstring_var
     }
     else
     {
+        int in_attr = is_attr(var->attrs, ATTR_IN);
+        int out_attr = is_attr(var->attrs, ATTR_OUT);
+
         if (is_return)
             print_file(file, indent, "0x52,    /* FC_RETURN_PARAM */\n");
+        else if (in_attr && out_attr)
+            print_file(file, indent, "0x50,    /* FC_IN_OUT_PARAM */\n");
+        else if (out_attr)
+            print_file(file, indent, "0x51,    /* FC_OUT_PARAM */\n");
         else
             print_file(file, indent, "0x4d,    /* FC_IN_PARAM */\n");
+
         print_file(file, indent, "0x01,\n");
         print_file(file, indent, "NdrFcShort(0x%x),\n", *type_offset);
         size = 4; /* includes param type prefix */




More information about the wine-cvs mailing list