widl: Allow specifying a class version outside of a typelib too.
diff --git a/tools/widl/register.c b/tools/widl/register.c
index d58fc0a..6b9980f 100644
--- a/tools/widl/register.c
+++ b/tools/widl/register.c
@@ -121,6 +121,7 @@
const char *progid = get_attrp( class->attrs, ATTR_PROGID );
const char *vi_progid = get_attrp( class->attrs, ATTR_VIPROGID );
const char *threading = get_coclass_threading( class );
+ unsigned int version = get_attrv( class->attrs, ATTR_VERSION );
if (!uuid) return 0;
if (typelib && !threading) return 0;
@@ -134,11 +135,10 @@
if (typelib)
{
const UUID *typelib_uuid = get_attrp( typelib->attrs, ATTR_UUID );
- unsigned int version = get_attrv( class->attrs, ATTR_VERSION );
- if (!version) version = get_attrv( typelib->attrs, ATTR_VERSION );
put_str( indent, "TypeLib = s '%s'\n", format_uuid( typelib_uuid ));
- put_str( indent, "Version = s '%u.%u'\n", MAJORVERSION(version), MINORVERSION(version) );
+ if (!version) version = get_attrv( typelib->attrs, ATTR_VERSION );
}
+ if (version) put_str( indent, "Version = s '%u.%u'\n", MAJORVERSION(version), MINORVERSION(version) );
if (vi_progid) put_str( indent, "VersionIndependentProgId = s '%s'\n", vi_progid );
put_str( --indent, "}\n" );
return 1;