Commit 6886467c authored by Gregg Mattinson's avatar Gregg Mattinson Committed by Alexandre Julliard

Fixes to allow big endian machines to load MSFT typelib files.

parent 2cbcb323
......@@ -24,8 +24,6 @@
#include "oleauto.h"
#include "wine/windef16.h"
#define TLBMAGIC2 "MSFT"
#define TLBMAGIC1 "SLTG"
#define HELPDLLFLAG (0x0100)
#define DO_NOT_SEEK (-1)
......@@ -137,8 +135,13 @@ typedef struct tagMSFT_TypeInfoBase {
/*040*/ INT helpstringcontext; /* */
INT helpcontext; /* */
INT oCustData; /* offset in customer data table */
#ifdef WORDS_BIGENDIAN
INT16 cbSizeVft; /* virtual table size, not including inherits */
INT16 cImplTypes; /* nr of implemented interfaces */
#else
INT16 cImplTypes; /* nr of implemented interfaces */
INT16 cbSizeVft; /* virtual table size, not including inherits */
#endif
/*050*/ INT size; /* size in bytes, at least for structures */
/* FIXME: name of this field */
INT datatype1; /* position in type description table */
......@@ -164,8 +167,13 @@ typedef struct {
/* INT recsize; record size including some xtra stuff */
INT DataType; /* data type of the memeber, eg return of function */
INT Flags; /* something to do with attribute flags (LOWORD) */
#ifdef WORDS_BIGENDIAN
INT16 res3; /* some offset into dunno what */
INT16 VtableOffset; /* offset in vtable */
#else
INT16 VtableOffset; /* offset in vtable */
INT16 res3; /* some offset into dunno what */
#endif
INT FKCCIC; /* bit string with the following */
/* meaning (bit 0 is the msb): */
/* bit 2 indicates that oEntry is numeric */
......@@ -174,8 +182,13 @@ typedef struct {
/* bit 8 indicates that custom data is present */
/* Invokation kind (bits 9-12 ) */
/* function kind (eg virtual), bits 13-15 */
#ifdef WORDS_BIGENDIAN
INT16 nroargs; /* nr of optional arguments */
INT16 nrargs; /* number of arguments (including optional ????) */
#else
INT16 nrargs; /* number of arguments (including optional ????) */
INT16 nroargs; /* nr of optional arguments */
#endif
/* optional attribute fields, the number of them is variable */
INT OptAttr[1];
/*
......@@ -208,8 +221,13 @@ typedef struct {
/* INT recsize; // record size including some xtra stuff */
INT DataType; /* data type of the variable */
INT Flags; /* VarFlags (LOWORD) */
#ifdef WORDS_BIGENDIAN
INT16 res3; /* some offset into dunno what */
INT16 VarKind; /* VarKind */
#else
INT16 VarKind; /* VarKind */
INT16 res3; /* some offset into dunno what */
#endif
INT OffsValue; /* value of the variable or the offset */
/* in the data structure */
/* optional attribute fields, the number of them is variable */
......@@ -561,5 +579,3 @@ extern void dump_Variant(VARIANT * pvar);
/*---------------------------END--------------------------------------------*/
#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