diff options
Diffstat (limited to 'source4/build/pidl/typelist.pm')
-rw-r--r-- | source4/build/pidl/typelist.pm | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/source4/build/pidl/typelist.pm b/source4/build/pidl/typelist.pm index f1ece68d8d..2d38d1f18d 100644 --- a/source4/build/pidl/typelist.pm +++ b/source4/build/pidl/typelist.pm @@ -126,6 +126,7 @@ sub mapType($) return mapScalarType($e->{TYPE}) if ($dt->{DATA}->{TYPE} eq "SCALAR"); return "enum $dt->{NAME}" if ($dt->{DATA}->{TYPE} eq "ENUM"); return "struct $dt->{NAME}" if ($dt->{DATA}->{TYPE} eq "STRUCT"); + return "struct $dt->{NAME}" if ($dt->{DATA}->{TYPE} eq "INTERFACE"); return "union $dt->{NAME}" if ($dt->{DATA}->{TYPE} eq "UNION"); return mapScalarType(bitmap_type_fn($dt->{DATA})) if ($dt->{DATA}->{TYPE} eq "BITMAP"); @@ -138,7 +139,14 @@ sub LoadIdl($) foreach my $x (@{$idl}) { next if $x->{TYPE} ne "INTERFACE"; - addType($x); + + # DCOM interfaces can be types as well + addType({ + NAME => $x->{NAME}, + TYPE => "TYPEDEF", + DATA => $x + }) if (util::has_property($x, "object")); + foreach my $y (@{$x->{DATA}}) { addType($y) if ( $y->{TYPE} eq "TYPEDEF" |