summaryrefslogtreecommitdiff
path: root/source4/build/pidl
diff options
context:
space:
mode:
Diffstat (limited to 'source4/build/pidl')
-rw-r--r--source4/build/pidl/validator.pm14
1 files changed, 10 insertions, 4 deletions
diff --git a/source4/build/pidl/validator.pm b/source4/build/pidl/validator.pm
index c4720a737f..c9b717434f 100644
--- a/source4/build/pidl/validator.pm
+++ b/source4/build/pidl/validator.pm
@@ -114,10 +114,16 @@ sub ValidInterface($)
my($interface) = shift;
my($data) = $interface->{DATA};
- if (util::has_property($interface, "object") &&
- util::has_property($interface, "version") &&
- $interface->{PROPERTIES}->{version} != 0) {
- fatal "Object interfaces must have version 0.0\n";
+ if (util::has_property($interface, "object")) {
+ if(util::has_property($interface, "version") &&
+ $interface->{PROPERTIES}->{version} != 0) {
+ fatal "Object interfaces must have version 0.0 ($interface->{NAME})\n";
+ }
+
+ if(!defined($interface->{BASE}) &&
+ not ($interface->{NAME} eq "IUnknown")) {
+ fatal "Object interfaces must all derive from IUnknown ($interface->{NAME})\n";
+ }
}
foreach my $d (@{$data}) {