Index: trunk/src/oleaut32/typelib.h
===================================================================
--- trunk/src/oleaut32/typelib.h	(revision 2024)
+++ 	(revision )
@@ -1,359 +1,0 @@
-/* $Id: typelib.h,v 1.2 1999-08-22 22:08:49 sandervl Exp $ */
-/*
- * typelib.h  internal wine data structures
- * used to decode typelib's
- *
- * Copyright 1999 Rein KLazes
- *  
- */
-#ifndef _WINE_TYPELIB_H
-#define _WINE_TYPELIB_H
-
-
-#include "ole2.h"
-#include "oleauto.h"
-#include "oaidl.h"
-
-
-#define TLBMAGIC2 "MSFT"
-#define TLBMAGIC1 "SLTG"
-#define HELPDLLFLAG (0x0100)
-#define DO_NOT_SEEK (-1)
-
-#define HREFTYPE_INTHISFILE(href) (!((href) & 3))
-#define HREFTYPE_INDEX(href) ((href) /sizeof(TLBTypeInfoBase))
-
-typedef struct tagTLBCustData {
-    GUID guid;
-    VARIANT data;
-    struct tagTLBCustData* next;
-} TLBCustData;
-
-/* internal Parameter data */
-typedef struct tagTLBParDesc{
-    PCHAR Name;
-    int ctCustData;
-    TLBCustData * pCustData;        /* linked list to cust data; */
-} TLBParDesc;
-
-
-/* internal Function data */
-typedef struct tagTLBFuncDesc{
-    FUNCDESC funcdesc;      /* lots of info on the function and its attributes. */
-    PCHAR Name;             /* the name of this function */
-    TLBParDesc *pParamDesc; /* array with name and custom data */
-    int helpcontext;
-    int HelpStringContext;
-    PCHAR HelpString;
-    PCHAR Entry;            /* if its Hiword==0, it numeric; -1 is not present*/
-    int ctCustData;
-    TLBCustData * pCustData;        /* linked list to cust data; */
-    struct tagTLBFuncDesc * next; 
-} TLBFuncDesc;
-
-/* internal Variable data */
-typedef struct tagTLBVarDesc{
-    VARDESC vardesc;        /* lots of info on the variable and its attributes. */
-    PCHAR Name;             /* the name of this variable */
-    int HelpContext;
-    int HelpStringContext;  /* fixme: where? */
-    PCHAR HelpString;
-    int ctCustData;
-    TLBCustData * pCustData;/* linked list to cust data; */
-    struct tagTLBVarDesc * next; 
-} TLBVarDesc;
-
-/* data for refernced types in a coclass, or an inherited interface */
-typedef struct tagTLBRefType {
-    GUID guid;              /* guid of the referenced type */
-                            /* (important if its a imported type) */
-    HREFTYPE reference;
-    int flags;
-    int ctCustData;
-    TLBCustData * pCustData;/* linked list to custom data; */
-    struct tagTLBImpLib *pImpTLInfo;
-    struct tagTLBRefType * next;
-    }TLBRefType;
-
-/* internal TypeInfo data */
-typedef struct tagTYPEINFO {
-    LPTYPEINFO_VTABLE lpvtbl;
-    UINT ref;
-    TYPEATTR TypeAttr ;         /* _lots_ of type information. */
-    struct tagTYPELIB * pTypeLib; /* back pointer to typelib */
-    int index;                  /* index in this typelib; */
-    /* type libs seem to store the doc strings in ascii 
-     * so why should we do it in unicode?
-     */
-    PCHAR Name;
-    PCHAR DocString;
-    unsigned long  dwHelpContext;
-    unsigned long  dwHelpStringContext;
-
-/* functions  */
-    TLBFuncDesc * funclist;     /* linked list with function descriptions */
-/* variables  */
-    TLBVarDesc * varlist;       /* linked list with variable descriptions */
-/* Implemented Interfaces  */
-    TLBRefType * impltypelist;      
-    int ctCustData;
-    TLBCustData * pCustData;        /* linked list to cust data; */
-    struct tagTYPEINFO * next;
-} TLBTypeInfo;
-
-/* data structure for import typelibs */
-typedef struct tagTLBImpLib {
-    int offset;                 /* offset in the file */
-    GUID guid;                  /* libid */
-    PCHAR name;                 /* name; */
-    struct tagTYPELIB *pImpTypeLib; /* pointer to loaded typelib */
-    struct tagTLBImpLib * next;
-    } TLBImpLib;
-
-/* internal TypeLib data */
-typedef struct tagTYPELIB  {
-    LPTYPELIB_VTABLE lpvtbl;
-    UINT ref;
-    TLIBATTR LibAttr;               /* guid,lcid,syskind,version,flags */
-    /* type libs seem to store the doc strings in ascii 
-     * so why should we do it in unicode?
-     */
-    PCHAR Name;
-    PCHAR DocString;
-    PCHAR HelpFile;
-    PCHAR HelpStringDll;
-    unsigned long  dwHelpContext;
-    int TypeInfoCount;          /* nr of typeinfo's in librarry */
-    TLBTypeInfo *pTypeInfo;     /* linked list of type info data */
-    int ctCustData;             /* number of items in cust data list */
-    TLBCustData * pCustData;    /* linked list to cust data; */
-    TLBImpLib   * pImpLibs;     /* linked list to all imported typelibs */
-    TYPEDESC * pTypeDesc;       /* array of TypeDescriptions found in the libary */
-} TLBLibInfo;
-
-/*-------------------------FILE STRUCTURES-----------------------------------*/
-
-
-/*
- * structure of the typelib type2 header
- * it is at the beginning of a type lib file
- *  
- */
-typedef struct tagTLB2Header {
-/*0x00*/INT magic1;       /* 0x5446534D "MSFT" */
-        INT   magic2;       /* 0x00010002 version nr? */
-        INT   posguid;      /* position of libid in guid table  */
-                            /* (should be,  else -1) */
-        INT   lcid;         /* locale id */
-/*0x10*/INT   lcid2;
-        INT   varflags;     /* (largely) unknown flags ,seems to be always 41 */
-                            /* becomes 0x51 with a helpfile defined */
-                            /* if help dll defined its 0x151 */
-                            /* update : the lower nibble is syskind */
-        INT   version;      /* set with SetVersion() */
-        INT   flags;        /* set with SetFlags() */
-/*0x20*/INT   nrtypeinfos;  /* number of typeinfo's (till so far) */
-        INT   helpstring;   /* position of help string in stringtable */
-        INT   helpstringcontext;
-        INT   helpcontext;
-/*0x30*/INT   nametablecount;   /* number of names in name table */
-        INT   nametablechars;   /* nr of characters in name table */
-        INT   NameOffset;       /* offset of name in name table */
-        INT   helpfile;         /* position of helpfile in stringtable */
-/*0x40*/INT   CustomDataOffset; /* if -1 no custom data, else it is offset */
-                                /* in customer data/guid offset table */
-        INT   res44;            /* unknown always: 0x20 */
-        INT   res48;            /* unknown always: 0x80 */
-        INT   dispatchpos;      /* gets a value (1+n*0x0c) with Idispatch interfaces */
-/*0x50*/INT   res50;            /* is zero becomes one when an interface is derived */
-} TLB2Header;
-
-/* segments in the type lib file have a structure like this: */
-typedef struct _tptag {
-        INT   offset;       /* absolute offset in file */
-        INT   length;       /* length of segment */
-        INT   res08;        /* unknown always -1 */
-        INT   res0c;        /* unknown always 0x0f in the header */
-                            /* 0x03 in the typeinfo_data */
-} pSeg;
-
-/* layout of the main segment directory */
-typedef struct tagTLBSegDir {
-/*1*/pSeg pTypeInfoTab; /* each type info get an entry of 0x64 bytes */
-                        /* (25 ints) */
-/*2*/pSeg pImpInfo;     /* table with info for imported types */
-/*3*/pSeg pImpFiles;    /* import libaries */
-/*4*/pSeg pRefTab;      /* References table */
-/*5*/pSeg pLibtab;      /* always exists, alway same size (0x80) */
-                        /* hash table w offsets to guid????? */
-/*6*/pSeg pGuidTab;     /* all guids are stored here together with  */
-                        /* offset in some table???? */
-/*7*/pSeg res07;        /* always created, alway same size (0x200) */
-                        /* purpose largely unknown */
-/*8*/pSeg pNametab;     /* name tables */
-/*9*/pSeg pStringtab;   /*string table */
-/*A*/pSeg pTypdescTab;  /* table with type descriptors */
-/*B*/pSeg pArrayDescriptions;
-/*C*/pSeg pCustData;    /*  data table, used for custom data and default */
-                        /* parameter values */
-/*D*/pSeg pCDGuids;     /* table with offsets for the guids and into the customer data table */
-/*E*/pSeg res0e;            /* unknown */
-/*F*/pSeg res0f;            /* unknown  */
-} TLBSegDir;
-
-
-/* base type info data */
-typedef struct tagTLBTypeInfoBase {
-/*000*/ INT   typekind;             /*  it is the TKIND_xxx */
-                                    /* some byte alignment stuf */
-        INT     memoffset;          /* points past the file, if no elements */
-        INT     res2;               /* zero if no element, N*0x40 */
-        INT     res3;               /* -1 if no lement, (N-1)*0x38 */
-/*010*/ INT     res4;               /* always? 3 */
-        INT     res5;               /* always? zero */
-        INT     cElement;           /* counts elements, HI=cVars, LO=cFuncs */
-        INT     res7;               /* always? zero */
-/*020*/ INT     res8;               /* always? zero */
-        INT     res9;               /* always? zero */
-        INT     resA;               /* always? zero */
-        INT     posguid;            /* position in guid table */
-/*030*/ INT     flags;              /* Typeflags */
-        INT     NameOffset;         /* offset in name table */
-        INT     version;            /* element version */
-        INT     docstringoffs;      /* offset of docstring in string tab */
-/*040*/ INT     helpstringcontext;  /*  */
-        INT     helpcontext;    /* */
-        INT     oCustData;          /* offset in customer data table */
-        INT16   cImplTypes;     /* nr of implemented interfaces */
-        INT16   cbSizeVft;      /* virtual table size, not including inherits */
-/*050*/ INT     size;           /* size in bytes, at least for structures */
-        /* fixme: name of this field */
-        INT     datatype1;      /* position in type description table */
-                                /* or in base intefaces */
-                                /* if coclass: offset in reftable */
-                                /* if interface: reference to inherited if */
-        INT     datatype2;      /* if 0x8000, entry above is valid */
-                                /* actually dunno */
-                                /* else it is zero? */
-        INT     res18;          /* always? 0 */
-/*060*/ INT     res19;          /* always? -1 */
-    } TLBTypeInfoBase;
-
-/* layout of an entry with information on imported types */
-typedef struct tagTLBImpInfo {
-    INT     res0;           /* unknown */
-    INT     oImpFile;       /* offset inthe Import File table */
-    INT     oGuid;          /* offset in Guid table */
-    } TLBImpInfo;
-
-/* function description data */
-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) */
-    INT16 VtableOffset; /* offset in vtable */
-    INT16 res3;         /* some offset into dunno what */
-    INT   FKCCIC;       /* bit string with the following  */
-                        /* meaning (bit 0 is the msb): */
-                        /* bit 2 indicates that oEntry is numeric */
-                        /* bit 3 that parameter has default values */
-                        /* calling convention (bits 4-7 ) */
-                        /* bit 8 indicates that custom data is present */
-                        /* Invokation kind (bits 9-12 ) */
-                        /* function kind (eg virtual), bits 13-15  */
-    INT16 nrargs;       /* number of arguments (including optional ????) */
-    INT16 nroargs;      /* nr of optional arguments */
-    /* optional attribute fields, the number of them is variable */
-    INT   OptAttr[1];
-/*
-0*  INT   helpcontext;
-1*  INT   oHelpString;
-2*  INT   oEntry;       // either offset in string table or numeric as it is //
-3*  INT   res9;         // unknown (-1) //
-4*  INT   resA;         // unknown (-1) //
-5*  INT   HelpStringContext;
-    // these are controlled by a bit set in the FKCCIC field  //
-6*  INT   oCustData;        // custom data for function //
-7*  INT   oArgCustData[1];  // custom data per argument //
-*/
-} TLBFuncRecord;
-
-/* after this may follow an array with default value pointers if the 
- * appropriate bit in the FKCCIC field has been set: 
- * INT   oDefautlValue[nrargs];
- */
-
-    /* Parameter info one per argument*/
-typedef struct {
-        INT   DataType;
-        INT   oName;
-        INT   Flags;
-    } TLBParameterInfo;
-
-/* Variable description data */
-typedef struct {
-/*  INT   recsize;      // record size including some xtra stuff */
-    INT   DataType;     /* data type of the variable */
-    INT   Flags;        /* VarFlags (LOWORD) */
-    INT16 VarKind;      /* VarKind */
-    INT16 res3;         /* some offset into dunno what */
-    INT   OffsValue;    /* value of the variable or the offset  */
-                        /* in the data structure */
-    /* optional attribute fields, the number of them is variable */
-    /* controlled by record length */
-    INT   HelpContext;
-    INT   oHelpString;
-    INT   res9;         /* unknown (-1) */
-    INT   oCustData;        /* custom data for variable */
-    INT   HelpStringContext;
-
-} TLBVarRecord;
-
-/* Structure of the reference data  */
-typedef struct {
-    INT   reftype;  /* either offset in type info table, then its */
-                    /* a multiple of 64 */
-                    /* or offset in the external reference table */
-                    /* with an offset of 1 */
-    INT   flags;
-    INT   oCustData;    /* custom data */
-    INT   onext;    /* next offset, -1 if last */
-} TLBRefRecord;
-
-/* this is how a guid is stored */
-typedef struct {
-    GUID guid;
-    INT   unk10;        /* differntiate with libid, classid etc? */
-                        /* its -2 for a libary */
-                        /* it's 0 for an interface */
-    INT   unk14;        /* always? -1 */
-} TLBGuidEntry;
-/* some data preceding entries in the name table */
-typedef struct {
-    INT   unk00;        /* sometimes -1 (lib, parameter) ,
-                           sometimes 0 (interface, func) */
-    INT   unk10;        /* sometimes -1 (lib) , sometimes 0 (interface, func),
-                           sometime 0x10 (par) */
-    INT   namelen;      /* only lower 8 bits are valid */
-} TLBNameIntro;
-/* the custom data table directory has enties like this */
-typedef struct {
-    INT   GuidOffset;
-    INT   DataOffset;
-    INT   next;     /* next offset in the table, -1 if its the last */
-} TLBCDGuid;
-
-
-
-/*---------------------------END--------------------------------------------*/
-
-typedef struct tagTLBContext {
-    HANDLE   hFile;            /* open typelib file  */
-    long oStart;                /* start of TLB in file */
-    TLBSegDir * pTblDir;
-    TLBLibInfo* pLibInfo;
-} TLBContext;
-
-
-#endif
-
