widl: Make it possible to set typelib resource id with id attribute.

This commit is contained in:
Piotr Caban 2013-01-18 12:40:20 +01:00 committed by Alexandre Julliard
parent e73aa3e83d
commit 3d9454bc8f
2 changed files with 7 additions and 2 deletions

View File

@ -2057,7 +2057,7 @@ struct allowed_attr allowed_attr[] =
/* ATTR_HELPSTRINGCONTEXT */ { 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, "helpstringcontext" },
/* ATTR_HELPSTRINGDLL */ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, "helpstringdll" },
/* ATTR_HIDDEN */ { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, "hidden" },
/* ATTR_ID */ { 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, "id" },
/* ATTR_ID */ { 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, "id" },
/* ATTR_IDEMPOTENT */ { 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "idempotent" },
/* ATTR_IGNORE */ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, "ignore" },
/* ATTR_IIDIS */ { 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, "iid_is" },

View File

@ -2547,7 +2547,12 @@ static void save_all_changes(msft_typelib_t *typelib)
if (strendswith( typelib_name, ".res" )) /* create a binary resource file */
{
add_output_to_resources( "TYPELIB", "#1" );
char typelib_id[13] = "#1";
expr_t *expr = get_attrp( typelib->typelib->attrs, ATTR_ID );
if (expr)
sprintf( typelib_id, "#%d", expr->cval );
add_output_to_resources( "TYPELIB", typelib_id );
output_typelib_regscript( typelib->typelib );
flush_output_resources( typelib_name );
}