widl: Support client/server generation for explicit_handle interfaces

(based on a patch by Eric Kohl).
This commit is contained in:
Robert Shearman 2006-01-31 18:06:17 +01:00 committed by Alexandre Julliard
parent c08e00a9ec
commit 0a2c5b73fd
2 changed files with 17 additions and 1 deletions

View File

@ -509,7 +509,7 @@ var_t* get_explicit_handle_var(func_t* func)
while (NEXT_LINK(var)) var = NEXT_LINK(var);
while (var)
{
if (var->type->type == RPC_FC_IGNORE)
if (var->type->type == RPC_FC_BIND_PRIMITIVE)
return var;
var = PREV_LINK(var);

View File

@ -936,6 +936,10 @@ static size_t write_typeformatstring_var(FILE *file, int indent,
case RPC_FC_ENCAPSULATED_UNION:
case RPC_FC_NON_ENCAPSULATED_UNION:
return write_union_tfs(file, var->attrs, type, var->name, typeformat_offset);
case RPC_FC_IGNORE:
case RPC_FC_BIND_PRIMITIVE:
/* nothing to do */
return 0;
default:
error("write_typeformatstring_var: Unsupported type 0x%x for variable %s\n", type->type, var->name);
}
@ -1071,6 +1075,10 @@ static unsigned int get_required_buffer_size_type(
*alignment = 8;
return 8;
case RPC_FC_IGNORE:
case RPC_FC_BIND_PRIMITIVE:
return 0;
case RPC_FC_STRUCT:
{
size_t size = 0;
@ -1268,6 +1276,10 @@ void marshall_arguments(FILE *file, int indent, func_t *func,
case RPC_FC_BOGUS_STRUCT:
ndrtype = "ComplexStruct";
break;
case RPC_FC_IGNORE:
case RPC_FC_BIND_PRIMITIVE:
/* no marshalling needed */
continue;
default:
error("marshall_arguments: Unsupported type: %s (0x%02x, ptr_level: %d)\n",
var->name, var->type->type, var->ptr_level);
@ -1439,6 +1451,10 @@ void unmarshall_arguments(FILE *file, int indent, func_t *func,
case RPC_FC_BOGUS_STRUCT:
ndrtype = "ComplexStruct";
break;
case RPC_FC_IGNORE:
case RPC_FC_BIND_PRIMITIVE:
/* no unmarshalling needed */
continue;
default:
error("unmarshall_arguments: Unsupported type: %s (0x%02x, ptr_level: %d)\n",
var->name, var->type->type, var->ptr_level);