Commit e9ca9f19 authored by Huw Davies's avatar Huw Davies Committed by Alexandre Julliard

Better type encoding. (Interface ptrs still not there yet).

parent de95de18
......@@ -95,6 +95,7 @@ unsigned short get_type_vt(type_t *t)
{
unsigned short vt;
chat("get_type_vt: %p type->name %s\n", t, t->name);
if (t->name) {
vt = builtin_vt(t->name);
if (vt) return vt;
......@@ -139,13 +140,15 @@ unsigned short get_type_vt(type_t *t)
if (match(t->ref->name, "IUnknown"))
return VT_UNKNOWN;
}
/* FIXME: should we recurse and add a VT_BYREF? */
/* Or just return VT_PTR? */
if(t->ref) return get_type_vt(t->ref);
if(t->ref)
return VT_PTR;
error("get_type_vt: unknown-deref-type: %d\n", t->ref->type);
break;
case RPC_FC_STRUCT:
return VT_USERDEFINED;
case 0:
return 0;
default:
error("get_type_vt: unknown-type: %d\n", t->type);
}
......@@ -156,6 +159,7 @@ unsigned short get_var_vt(var_t *v)
{
unsigned short vt;
chat("get_var_vt: %p tname %s\n", v, v->tname);
if (v->tname) {
vt = builtin_vt(v->tname);
if (vt) return vt;
......
......@@ -84,6 +84,7 @@ enum VARENUM {
VT_TYPEMASK = 0xfff
};
extern unsigned short get_type_vt(type_t *t);
extern unsigned short get_var_vt(var_t *v);
extern int create_msft_typelib(typelib_t *typelib);
#endif
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment