int indices[42];
int names[42];
- int offsets[42];
int datawidth;
ICreateTypeInfo2Impl *This = (ICreateTypeInfo2Impl *)iface;
CyclicList *insert;
- int offset;
int *typedata;
int i;
int decoded_size;
This->typedata->next = insert;
This->typedata = insert;
- offset = This->typedata->next->u.val;
This->typedata->next->u.val += 0x18 + (pFuncDesc->cParams * 12);
typedata = This->typedata->u.data;
/* update the index data */
This->indices[index] = ((0x6000 | This->typeinfo->cImplTypes) << 16) | index;
This->names[index] = -1;
- This->offsets[index] = offset;
/* ??? */
if (!This->typeinfo->res2) This->typeinfo->res2 = 0x20;
ICreateTypeInfo2Impl *This = (ICreateTypeInfo2Impl *)iface;
CyclicList *insert;
- int offset;
INT *typedata;
int var_datawidth;
int var_alignment;
This->typedata->next = insert;
This->typedata = insert;
- offset = This->typedata->next->u.val;
This->typedata->next->u.val += 0x14;
typedata = This->typedata->u.data;
/* update the index data */
This->indices[index] = 0x40000000 + index;
This->names[index] = -1;
- This->offsets[index] = offset;
/* figure out type widths and whatnot */
ctl2_encode_typedesc(This->typelib, &pVarDesc->elemdescVar.tdesc,
for (typeinfo = This->typeinfos; typeinfo; typeinfo = typeinfo->next_typeinfo) {
CyclicList *iter;
+ int offset = 0;
if (!typeinfo->typedata) continue;
ctl2_write_chunk(hFile, typeinfo->indices, ((typeinfo->typeinfo->cElement & 0xffff) + (typeinfo->typeinfo->cElement >> 16)) * 4);
ctl2_write_chunk(hFile, typeinfo->names, ((typeinfo->typeinfo->cElement & 0xffff) + (typeinfo->typeinfo->cElement >> 16)) * 4);
- ctl2_write_chunk(hFile, typeinfo->offsets, ((typeinfo->typeinfo->cElement & 0xffff) + (typeinfo->typeinfo->cElement >> 16)) * 4);
+
+ for(iter=typeinfo->typedata->next->next; iter!=typeinfo->typedata->next; iter=iter->next) {
+ ctl2_write_chunk(hFile, &offset, sizeof(int));
+ offset += iter->u.data[0] & 0xffff;
+ }
}
}