Changeset 4657 for trunk/include


Ignore:
Timestamp:
Nov 21, 2000, 12:34:31 PM (25 years ago)
Author:
sandervl
Message:

header updates for TEB changes

Location:
trunk/include
Files:
1 added
8 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/versionos2.h

    r4367 r4657  
    1 /* $Id: versionos2.h,v 1.8 2000-10-02 13:35:08 sandervl Exp $ */
     1/* $Id: versionos2.h,v 1.9 2000-11-21 11:33:58 sandervl Exp $ */
    22
    33#ifndef __VERSIONOS2__H__
     
    1919 *
    2020 */
    21 #define PE2LX_VERSION 5
     21#define PE2LX_VERSION 6
    2222
    2323#ifndef SYSTEM
  • trunk/include/win/queue.h

    r3522 r4657  
    1 /* $Id: queue.h,v 1.2 2000-05-12 18:04:11 sandervl Exp $ */
     1/* $Id: queue.h,v 1.3 2000-11-21 11:33:59 sandervl Exp $ */
    22
    33/*
     
    7373  HQUEUE16  next;                   /* Next queue */
    7474  HQUEUE16  self;                   /* Handle to self (was: reserved) */
    75   THDB*     thdb;                   /* Thread owning queue */
     75  TEB*      teb;                   /* Thread owning queue */
    7676  HANDLE  hEvent;                 /* Event handle */
    7777  CRITICAL_SECTION cSection;        /* Queue access critical section */
  • trunk/include/win/thread.h

    r3808 r4657  
    1 /* $Id: thread.h,v 1.17 2000-07-08 07:23:09 sandervl Exp $ */
     1/* $Id: thread.h,v 1.18 2000-11-21 11:33:59 sandervl Exp $ */
    22
    33/*
     
    1515  #include "config.h"
    1616  #include "winbase.h"
     17  #include "winuser.h"
     18  #include <ntdef.h>
    1719 #endif
    1820 #include <ntdllsec.h> //PROCESSTHREAD_SECURITYINFO struct
     
    2426
    2527struct _PDB;
    26 
    27 /* Thread exception block */
    28 typedef struct _TEB
    29 {
    30     void        *except;         /* 00 Head of exception handling chain */
    31     void        *stack_top;      /* 04 Top of thread stack */
    32     void        *stack_low;      /* 08 Stack low-water mark */
    33     HTASK16      htask16;        /* 0c Win16 task handle */
    34     WORD         stack_sel;      /* 0e 16-bit stack selector */
    35     DWORD        selman_list;    /* 10 Selector manager list */
    36     DWORD        user_ptr;       /* 14 User pointer */
    37     struct _TEB *self;           /* 18 Pointer to this structure */
    38     WORD         flags;          /* 1c Flags */
    39     WORD         mutex_count;    /* 1e Win16 mutex count */
    40     DWORD        debug_context;  /* 20 Debug context */
    41     DWORD       *ppriority;      /* 24 Pointer to current priority */
    42     HQUEUE16     queue;          /* 28 Message queue */
    43     WORD         pad1;           /* 2a */
    44     LPVOID      *tls_ptr;        /* 2c Pointer to TLS array */
    45     struct _PDB *process;      /* 30 owning process (used by NT3.51 applets)*/
    46 } TEB;
    47 
    48 /* Thread exception flags */
    49 #define TEBF_WIN32  0x0001
    50 #define TEBF_TRAP   0x0002
    5128
    5229#ifndef OS2DEF_INCLUDED
     
    6441#endif
    6542
    66 /* Thread database */
    67 typedef struct _THDB
     43/* Thread exception block
     44
     45  flags in the comment:
     46  1-- win95 field
     47  d-- win95 debug version
     48  -2- nt field
     49  --3 wine special
     50  --n wine unused
     51  !-- or -!- likely or observed  collision
     52  more problems (collected from mailing list):
     53  psapi.dll 0x10/0x30 (expects nt fields)
     54  ie4       0x40
     55  PESHiELD  0x23/0x30 (win95)
     56*/
     57
     58#pragma pack(1)
     59/* Thread exception block */
     60typedef struct _TEB
    6861{
    69     LONG           header[2];      /*  00 Kernel object header */
    70     struct _PDB   *process;        /*  08 Process owning this thread */
    71     HANDLE         event;          /*  0c Thread event */
    72     TEB            teb;            /*  10 Thread exception block */
    73     DWORD          flags;          /*  44 Flags */
    74     DWORD          exit_code;      /*  48 Termination status */
    75     WORD           teb_sel;        /*  4c Selector to TEB */
    76     WORD           emu_sel;        /*  4e 80387 emulator selector */
    77     int            thread_errno;   /*  50 Per-thread errno (was: unknown) */
    78     void          *wait_list;      /*  54 Event waiting list */
    79     int            thread_h_errno; /*  50 Per-thread h_errno (was: unknown) */
    80     void          *ring0_thread;   /*  5c Pointer to ring 0 thread */
    81     void          *ptdbx;          /*  60 Pointer to TDBX structure */
    82     void          *stack_base;     /*  64 Base of the stack */
    83     void          *exit_stack;     /*  68 Stack pointer on thread exit */
    84     void          *emu_data;       /*  6c Related to 80387 emulation */
    85     DWORD          last_error;     /*  70 Last error code */
    86     void          *debugger_CB;    /*  74 Debugger context block */
    87     DWORD          debug_thread;   /*  78 Thread debugging this one (?) */
    88     void          *pcontext;       /*  7c Thread register context */
    89     DWORD          cur_stack;      /*  80 Current stack (was: unknown) */
    90     DWORD          unknown3[2];    /*  84 Unknown */
    91     WORD           current_ss;     /*  8c Another 16-bit stack selector */
    92     WORD           pad2;           /*  8e */
    93     void          *ss_table;       /*  90 Pointer to info about 16-bit stack */
    94     WORD           thunk_ss;       /*  94 Yet another 16-bit stack selector */
    95     WORD           pad3;           /*  96 */
     62/* start of NT_TIB */
     63    void        *except; /* 12- 00 Head of exception handling chain */
     64    void        *stack_top;      /* 12-  04 Top of thread stack */
     65    void        *stack_low;      /* 12-  08 Stack low-water mark */
     66    HTASK16      htask16;        /* 1--  0c Win16 task handle */
     67    WORD         stack_sel;      /* 1--  0e 16-bit stack selector */
     68    DWORD        selman_list;    /* 1-n  10 Selector manager list */
     69    DWORD        user_ptr;       /* 12n  14 User pointer */
     70/* end of NT_TIB */ 
     71    struct _TEB *self;           /* 12-  18 Pointer to this structure */
     72    WORD         tibflags;       /* 1!n  1c Flags (NT: EnvironmentPointer) */
     73    WORD         mutex_count;    /* 1-n  1e Win16 mutex count */
     74    void        *pid;            /* !2-  20 Process id (win95: debug context) */
     75    void        *tid;            /* -2-  24 Thread id */
     76    HQUEUE16     queue;          /* 1!-  28 Message queue (NT: DWORD ActiveRpcHandle)*/
     77    WORD         pad1;           /* --n  2a */
     78    LPVOID      *tls_ptr;        /* 2c Pointer to TLS array */
     79    struct _PDB *process;        /* 12-  30 owning process (win95: PDB; nt: NTPEB !!) */
     80    DWORD        flags;          /* 1-n  34 */
     81    DWORD        exit_code;      /* 1--  38 Termination status */
     82    WORD         teb_sel;        /* 1--  3c Selector to TEB */
     83    WORD         emu_sel;        /* 1-n  3e 80387 emulator selector */
     84    DWORD        unknown1;       /* --n  40 */
     85    DWORD        unknown2;       /* --n  44 */
     86    void       (*startup)(void); /* --3  48 Thread startup routine */
     87    int          thread_errno;   /* --3  4c Per-thread errno (was: ring0_thread) */
     88    int          thread_h_errno; /* --3  50 Per-thread h_errno (was: ptr to tdbx structure) */
     89    void        *stack_base;     /* 1--  54 Base of the stack */
     90    void        *signal_stack;   /* --3  58 Signal stack (was: exit_stack) */
     91    void        *emu_data;       /* --n  5c Related to 80387 emulation */
     92    DWORD        last_error;     /* 1--  60 Last error code */
     93    HANDLE       debug_cb;       /* 1-n  64 Debugger context block */
     94    DWORD        debug_thread;   /* 1-n  68 Thread debugging this one (?) */
     95    void        *pcontext;       /* 1-n  6c Thread register context */
     96    DWORD        cur_stack;      /* --3  70 Current stack (was: unknown) */
     97    DWORD        ThunkConnect;   /* 1-n  74 */
     98    DWORD        NegStackBase;   /* 1-n  78 */
     99    WORD         current_ss;     /* 1-n  7c Another 16-bit stack selector */
     100    WORD         pad2;           /* --n  7e */
     101    void        *ss_table;       /* --n  80 Pointer to info about 16-bit stack */
     102    WORD         thunk_ss;       /* --n  84 Yet another 16-bit stack selector */
     103    WORD         pad3;           /* --n  86 */
     104    DWORD        pad4[15];       /* --n  88 */
     105    ULONG        CurrentLocale;  /* -2-  C4 */
     106    DWORD        pad5[48];       /* --n  C8 */
     107    DWORD        delta_priority; /* 1-n 188 Priority delta */
     108    DWORD        unknown4[7];    /* d-n 18c Unknown */
     109    void        *create_data;    /* d-n 1a8 Pointer to creation structure */
     110    DWORD        suspend_count;  /* d-n 1ac SuspendThread() counter */
     111    void        *entry_point;    /* --3 1b0 Thread entry point (was: unknown) */
     112    void        *entry_arg;      /* --3 1b4 Entry point arg (was: unknown) */
     113    DWORD        unknown5[4];    /* --n 1b8 Unknown */
     114    DWORD        sys_count[4];   /* --3 1c8 Syslevel mutex entry counters */
     115    struct tagSYSLEVEL *sys_mutex[4];   /* --3 1d8 Syslevel mutex pointers */
     116    DWORD        unknown6[5];    /* --n 1e8 Unknown */
     117
     118    union {
    96119#ifdef __WIN32OS2__
    97     LPVOID         tls_array[TLS_MINIMUM_AVAILABLE];  /*  98 Thread local storage */
     120          struct {
     121              struct _TEB   *next;
     122              DWORD          OrgTIBSel;      // Original OS/2 TIB selector (always the same, but let's not assume too much for future compatibility)
     123              ULONG          hmq;            // Thread message queue
     124              ULONG          hab;            // Thread Anchor block
     125              ULONG          hooks[WH_NB_HOOKS]; //list of hooks for this thread queue
     126              ULONG          threadId;       // Thread ID
     127              ULONG          hThread;        // thread handle
     128              ULONG          exceptFrame;    // address of os/2 exception handler frame
     129              ULONG          newWindow;      // Pointer to window object of window that was just created
     130              void*          pWsockData;     // Winsock data pointer (NULL if unused)
     131              DWORD          lParam;         // MessageExtraInfo
     132              WINDOWPOS      wp;             // Used by message translation for WM_WINDOWPOSCHANGED
     133              ULONG          nrOfMsgs;       // Usually 1; some PM messages can generated more than 1 win32 msg
     134              BOOL           fTranslated;    // WM_CHAR already translated or not
     135              ULONG          msgstate;       // odd -> dispatchmessage called, even -> not called
     136              QMSG           os2msg;         // original os2 msg (received with Get- or PeekMessage)
     137              MSG            winmsg;         // temporary storage for translated os2 msg (used in DispatchMessage)
     138              MSG            msg;            // Used by message translation to store translated PM message (sent to win32 window proc in pmwindow.cpp)
     139              MSG            msgWCHAR;       // Used to store extra WM_CHAR message generated by TranslateMessage
     140              DWORD          pidDebuggee;    // process id of debuggee
     141              DWORD          logfile;        // last FILE ptr used for logging (for exception handling in vfprintf)
     142              PROCESSTHREAD_SECURITYINFO threadinfo; //used to store security info for thread tokens
     143              DWORD          lcid;           // thread lcid
     144          } odin;
     145#endif
     146          /* the following are nt specific fields */
     147          DWORD        pad6[633];                  /* --n 214 */
     148    } o;
     149    UNICODE_STRING StaticUnicodeString;      /* -2- bf8 used by advapi32 */
     150    USHORT       StaticUnicodeBuffer[261];   /* -2- c00 used by advapi32 */
     151    DWORD        pad7;                       /* --n e0c */
     152#ifdef __WIN32OS2__
     153    LPVOID         tls_array[TLS_MINIMUM_AVAILABLE];  /* -2- e10 Thread local storage */
    98154#else
    99     LPVOID         tls_array[64];  /*  98 Thread local storage */
     155    LPVOID       tls_array[64];              /* -2- e10 Thread local storage */
    100156#endif
    101     DWORD          delta_priority; /* 198 Priority delta */
    102     DWORD          unknown4[7];    /* 19c Unknown */
    103     void          *create_data;    /* 1b8 Pointer to creation structure */
    104     DWORD          suspend_count;  /* 1bc SuspendThread() counter */
    105     void          *entry_point;    /* 1c0 Thread entry point (was: unknown) */
    106     void          *entry_arg;      /* 1c4 Entry point arg (was: unknown) */
    107     DWORD          unknown5[4];    /* 1c8 Unknown */
    108     DWORD          sys_count[4];   /* 1d8 Syslevel mutex entry counters */
    109     CRITICAL_SECTION *sys_mutex[4];/* 1e8 Syslevel mutex pointers */
    110     DWORD          unknown6[2];    /* 1f8 Unknown */
    111     /* The following are Wine-specific fields */
    112     int            socket;         /* Socket for server communication */
    113     unsigned int   seq;            /* Server sequence number */
    114     void          *server_tid;     /* Server id for this thread */
    115     void         (*startup)(void); /* Thread startup routine */
    116     struct _THDB  *next;           /* Global thread list */
    117 #ifdef __WIN32OS2__
    118     DWORD          OrgTIBSel;      // Original OS/2 TIB selector (always the same, but let's not assume too much for future compatibility)
    119     ULONG          hmq;            // Thread message queue
    120     ULONG          hab;            // Thread Anchor block
    121     ULONG          hooks[WH_NB_HOOKS]; //list of hooks for this thread queue
    122     ULONG          threadId;       // Thread ID
    123     ULONG          hThread;        // thread handle
    124     ULONG          exceptFrame;    // address of os/2 exception handler frame
    125     ULONG          newWindow;      // Pointer to window object of window that was just created
    126     void*          pWsockData;     // Winsock data pointer (NULL if unused)
    127     DWORD          lParam;         // MessageExtraInfo
    128     WINDOWPOS      wp;             // Used by message translation for WM_WINDOWPOSCHANGED
    129     ULONG          nrOfMsgs;       // Usually 1; some PM messages can generated more than 1 win32 msg
    130     BOOL           fTranslated;    // WM_CHAR already translated or not
    131     ULONG          msgstate;       // odd -> dispatchmessage called, even -> not called
    132     QMSG           os2msg;         // original os2 msg (received with Get- or PeekMessage)
    133     MSG            winmsg;         // temporary storage for translated os2 msg (used in DispatchMessage)
    134     MSG            msg;            // Used by message translation to store translated PM message (sent to win32 window proc in pmwindow.cpp)
    135     MSG            msgWCHAR;       // Used to store extra WM_CHAR message generated by TranslateMessage
    136     DWORD          pidDebuggee;    // process id of debuggee
    137     DWORD          logfile;        // last FILE ptr used for logging (for exception handling in vfprintf)
    138     PROCESSTHREAD_SECURITYINFO threadinfo; //used to store security info for thread tokens
    139     DWORD          lcid;           // thread lcid
    140 #endif
    141 } THDB;
     157    DWORD        pad8[3];                    /* --n f10 */
     158    PVOID        ReservedForNtRpc;           /* -2- f1c used by rpcrt4 */
     159    DWORD        pad9[24];                   /* --n f20 */
     160    PVOID        ErrorInfo;                  /* -2- f80 used by ole32 (IErrorInfo*) */
     161} TEB;
     162#pragma pack()
     163
     164/* Thread exception flags */
     165#define TEBF_WIN32  0x0001
     166#define TEBF_TRAP   0x0002
     167
    142168
    143169/* The pseudo handle value returned by GetCurrentThread */
    144170#define CURRENT_THREAD_PSEUDOHANDLE 0xfffffffe
    145171
    146 #ifdef __i386__
    147 /* On the i386, the current thread is in the %fs register */
    148 # define SET_CUR_THREAD(thdb) SET_FS((thdb)->teb_sel)
    149 #else
    150 extern THDB *pCurrentThread;
    151 # define SET_CUR_THREAD(thdb) (pCurrentThread = (thdb))
    152 #endif  /* __i386__ */
    153 
    154 
    155 /* scheduler/thread.c */
    156 extern THDB *THREAD_CreateInitialThread( struct _PDB *pdb, int server_fd );
    157 extern THDB *THREAD_Create( struct _PDB *pdb, DWORD flags,
    158                             DWORD stack_size, BOOL alloc_stack16,
    159                             LPSECURITY_ATTRIBUTES sa, int *server_handle );
    160 extern THDB *THREAD_Current(void);
    161 extern BOOL THREAD_IsWin16( THDB *thdb );
    162 extern THDB *THREAD_IdToTHDB( DWORD id );
    163 
    164 /* scheduler/sysdeps.c */
    165 extern int SYSDEPS_SpawnThread( THDB *thread );
    166 extern void SYSDEPS_ExitThread(void);
    167 extern TEB * WINAPI NtCurrentTeb(void);
    168 
    169172#endif  /* __WINE_THREAD_H */
  • trunk/include/win/winbase.h

    r4413 r4657  
    1 /* $Id: winbase.h,v 1.20 2000-10-03 17:51:06 sandervl Exp $ */
     1/* $Id: winbase.h,v 1.21 2000-11-21 11:33:59 sandervl Exp $ */
    22
    33#ifndef __WINE_WINBASE_H
     
    22532253                                          HANDLE                hClientToken);
    22542254
     2255
     2256/* undocumented functions */
     2257
     2258typedef struct tagSYSLEVEL
     2259{
     2260    CRITICAL_SECTION crst;
     2261    INT              level;
     2262} SYSLEVEL;
     2263
     2264VOID        WINAPI GetpWin16Lock(SYSLEVEL**);
     2265DWORD       WINAPI MapLS(LPVOID);
     2266LPVOID      WINAPI MapSL(DWORD);
     2267VOID        WINAPI ReleaseThunkLock(DWORD*);
     2268VOID        WINAPI RestoreThunkLock(DWORD);
     2269VOID        WINAPI UnMapLS(DWORD);
     2270DWORD       WINAPI _ConfirmWin16Lock(void);
     2271DWORD       WINAPI _ConfirmSysLevel(SYSLEVEL*);
     2272VOID        WINAPI _EnterSysLevel(SYSLEVEL*);
     2273VOID        WINAPI _LeaveSysLevel(SYSLEVEL*);
     2274
    22552275#ifdef __cplusplus
    22562276}
  • trunk/include/win/wine/obj_oleaut.h

    r2606 r4657  
    1 /* $Id: obj_oleaut.h,v 1.7 2000-02-03 13:26:23 sandervl Exp $ */
    21/*
    32 * Defines the COM interfaces and APIs related to OLE automation support.
     
    76#define __WINE_WINE_OBJ_OLEAUT_H
    87
    9 #include "wine/obj_base.h"
    10 
    118/*****************************************************************************
    129 * Predeclare the interfaces
     
    4845typedef struct ITypeInfo2 ITypeInfo2,*LPTYPEINFO2;
    4946
    50 DEFINE_GUID(IID_IErrorInfo,         0x1CF2B120,0x547D,0x101B,0x8E,0x65,
    51         0x08,0x00, 0x2B,0x2B,0xD1,0x19);
    52 typedef struct IErrorInfo IErrorInfo,*LPERRORINFO;
    53 
    54 DEFINE_GUID(IID_ICreateErrorInfo,   0x22F03340,0x547D,0x101B,0x8E,0x65,
    55         0x08,0x00, 0x2B,0x2B,0xD1,0x19);
    56 typedef struct ICreateErrorInfo ICreateErrorInfo,*LPCREATEERRORINFO;
    57 
    58 DEFINE_GUID(IID_ISupportErrorInfo,  0xDF0B3D60,0x547D,0x101B,0x8E,0x65,
    59         0x08,0x00, 0x2B,0x2B,0xD1,0x19);
    60 typedef struct ISupportErrorInfo ISupportErrorInfo,*LPSUPPORTERRORINFO;
    61 
    6247/*****************************************************************************
    6348 * Automation data types
    6449 */
    65 #if defined(__cplusplus) && !defined(NONAMELESSUNION)
    66 #define DUMMYUNIONNAME
    67 #else /* defined(__cplusplus) && !defined(NONAMELESSUNION) */
    68 #define DUMMYUNIONNAME u
    69 #endif /* defined(__cplusplus) && !defined(NONAMELESSUNION) */
    7050
    7151/*****************************************************************
     
    7353 */
    7454
    75 #define FADF_AUTO       ( 0x1 )
    76 #define FADF_STATIC     ( 0x2 )
    77 #define FADF_EMBEDDED   ( 0x4 )
    78 #define FADF_FIXEDSIZE  ( 0x10 )
    79 #define FADF_BSTR       ( 0x100 )
    80 #define FADF_UNKNOWN    ( 0x200 )
    81 #define FADF_DISPATCH   ( 0x400 )
    82 #define FADF_VARIANT    ( 0x800 )
    83 #define FADF_RESERVED   ( 0xf0e8 )
     55#define FADF_AUTO        ( 0x1 )
     56#define FADF_STATIC      ( 0x2 )
     57#define FADF_EMBEDDED    ( 0x4 )
     58#define FADF_FIXEDSIZE   ( 0x10 )
     59#define FADF_RECORD      ( 0x20 )
     60#define FADF_HAVEIID     ( 0x40 )
     61#define FADF_HAVEVARTYPE ( 0x80 )
     62#define FADF_BSTR        ( 0x100 )
     63#define FADF_UNKNOWN     ( 0x200 )
     64#define FADF_DISPATCH    ( 0x400 )
     65#define FADF_VARIANT     ( 0x800 )
     66#define FADF_RESERVED    ( 0xf008 )
     67
     68/* Undocumented flags */                                                                                 
     69#define FADF_CREATEVECTOR ( 0x2000 ) /* set when the safe array is created using SafeArrayCreateVector */
     70
    8471
    8572typedef struct  tagSAFEARRAYBOUND
     
    225212    DWORD dwHelpContext;
    226213    PVOID pvReserved;
    227     HRESULT (* __stdcall pfnDeferredFillIn)(struct tagEXCEPINFO *);
     214    HRESULT (* WINAPI pfnDeferredFillIn)(struct tagEXCEPINFO *);
    228215    SCODE scode;
    229216} EXCEPINFO, * LPEXCEPINFO;
     
    413400} BINDPTR, *LPBINDPTR;
    414401
    415 typedef enum tagFUNCFLAGS
    416 {
    417         FUNCFLAG_FRESTRICTED    = 0x1,
    418         FUNCFLAG_FSOURCE        = 0x2,
    419         FUNCFLAG_FBINDABLE      = 0x4,
    420         FUNCFLAG_FREQUESTEDIT   = 0x8,
    421         FUNCFLAG_FDISPLAYBIND   = 0x10,
    422         FUNCFLAG_FDEFAULTBIND   = 0x20,
    423         FUNCFLAG_FHIDDEN        = 0x40,
    424         FUNCFLAG_FUSESGETLASTERROR      = 0x80,
    425         FUNCFLAG_FDEFAULTCOLLELEM       = 0x100,
    426         FUNCFLAG_FUIDEFAULT     = 0x200,
    427         FUNCFLAG_FNONBROWSABLE  = 0x400,
    428         FUNCFLAG_FREPLACEABLE   = 0x800,
    429         FUNCFLAG_FIMMEDIATEBIND = 0x1000
    430 }   FUNCFLAGS;
    431 
    432 
    433402typedef enum tagVARFLAGS
    434403{
     
    448417} VARFLAGS;
    449418
    450 /*****************************************************************
    451  *  SafeArray defines and structs
    452  */
    453 
    454 #define FADF_AUTO       ( 0x1 )
    455 #define FADF_STATIC     ( 0x2 )
    456 #define FADF_EMBEDDED   ( 0x4 )
    457 #define FADF_FIXEDSIZE  ( 0x10 )
    458 #define FADF_BSTR       ( 0x100 )
    459 #define FADF_UNKNOWN    ( 0x200 )
    460 #define FADF_DISPATCH   ( 0x400 )
    461 #define FADF_VARIANT    ( 0x800 )
    462 #define FADF_RESERVED   ( 0xf0e8 )
    463419
    464420/*
     
    498454        VT_LPSTR  = 30,
    499455        VT_LPWSTR = 31,
     456        VT_RECORD = 36,
    500457        VT_FILETIME = 64,
    501458        VT_BLOB = 65,
     
    562519#undef ICOM_INTERFACE
    563520
    564 #ifdef ICOM_CINTERFACE
    565521/*** IUnknown methods ***/
    566522#define IDispatch_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b)
     
    569525/*** IDispatch methods ***/
    570526#define IDispatch_GetTypeInfoCount(p,a)      ICOM_CALL1 (GetTypeInfoCount,p,a)
    571 #define IDispatch_GetTypeInfo(p,a,b,c)       ICOM_CALL3 (GetTypeInfo,p,b,c)
     527#define IDispatch_GetTypeInfo(p,a,b,c)       ICOM_CALL3 (GetTypeInfo,p,a,b,c)
    572528#define IDispatch_GetIDsOfNames(p,a,b,c,d,e) ICOM_CALL5 (GetIDsOfNames,p,a,b,c,d,e)
    573529#define IDispatch_Invoke(p,a,b,c,d,e,f,g,h)  ICOM_CALL8 (Invoke,p,a,b,c,d,e,f,g,h)
    574 #endif
    575530
    576531
     
    598553        ICOM_METHOD1(HRESULT,ReleaseTypeAttr, TYPEATTR*,pTypeAttr) \
    599554        ICOM_METHOD1(HRESULT,ReleaseFuncDesc, FUNCDESC*,pFuncDesc) \
    600         ICOM_METHOD1(HRESULT,ReleaseVarDesc, VARDESC*,pVarDesc)\
    601 \
    602 \
    603         /* itypeinfo2 methods */\
     555        ICOM_METHOD1(HRESULT,ReleaseVarDesc, VARDESC*,pVarDesc)
     556
     557#define ITypeInfo_IMETHODS \
     558        IUnknown_IMETHODS \
     559        ITypeInfo_METHODS
     560ICOM_DEFINE(ITypeInfo,IUnknown)
     561#undef ICOM_INTERFACE
     562
     563/*** IUnknown methods ***/
     564#define ITypeInfo_QueryInterface(p,a,b)         ICOM_CALL2(QueryInterface,p,a,b)
     565#define ITypeInfo_AddRef(p)                     ICOM_CALL (AddRef,p)
     566#define ITypeInfo_Release(p)                    ICOM_CALL (Release,p)
     567/*** ITypeInfo methods ***/
     568#define ITypeInfo_GetTypeAttr(p,a)              ICOM_CALL1(GetTypeAttr,p,a)
     569#define ITypeInfo_GetTypeComp(p,a)              ICOM_CALL1(GetTypeComp,p,a)
     570#define ITypeInfo_GetFuncDesc(p,a,b)            ICOM_CALL2(GetFuncDesc,p,a,b)
     571#define ITypeInfo_GetVarDesc(p,a,b)             ICOM_CALL2(GetVarDesc,p,a,b)
     572#define ITypeInfo_GetNames(p,a,b,c,d)           ICOM_CALL4(GetNames,p,a,b,c,d)
     573#define ITypeInfo_GetRefTypeOfImplType(p,a,b)   ICOM_CALL2(GetRefTypeOfImplType,p,a,b)
     574#define ITypeInfo_GetImplTypeFlags(p,a,b)       ICOM_CALL2(GetImplTypeFlags,p,a,b)
     575#define ITypeInfo_GetIDsOfNames(p,a,b,c)        ICOM_CALL3(GetIDsOfNames,p,a,b,c)
     576#define ITypeInfo_Invoke(p,a,b,c,d,e,f,g)       ICOM_CALL7(Invoke,p,a,b,c,d,e,f,g)
     577#define ITypeInfo_GetDocumentation(p,a,b,c,d,e) ICOM_CALL5(GetDocumentation,p,a,b,c,d,e)
     578#define ITypeInfo_GetDllEntry(p,a,b,c,d,e)      ICOM_CALL5(GetDllEntry,p,a,b,c,d,e)
     579#define ITypeInfo_GetRefTypeInfo(p,a,b)         ICOM_CALL2(GetRefTypeInfo,p,a,b)
     580#define ITypeInfo_AddressOfMember(p,a,b,c)      ICOM_CALL3(AddressOfMember,p,a,b,c)
     581#define ITypeInfo_CreateInstance(p,a,b,c)       ICOM_CALL3(CreateInstance,p,a,b,c)
     582#define ITypeInfo_GetMops(p,a,b)                ICOM_CALL2(GetMops,p,a,b)
     583#define ITypeInfo_GetContainingTypeLib(p,a,b)   ICOM_CALL2(GetContainingTypeLib,p,a,b)
     584#define ITypeInfo_ReleaseTypeAttr(p,a)          ICOM_CALL1(ReleaseTypeAttr,p,a)
     585#define ITypeInfo_ReleaseFuncDesc(p,a)          ICOM_CALL1(ReleaseFuncDesc,p,a)
     586#define ITypeInfo_ReleaseVarDesc(p,a)           ICOM_CALL1(ReleaseVarDesc,p,a)
     587                                 
     588
     589/*****************************************************************************
     590 * ITypeInfo2 interface
     591 */
     592#define ICOM_INTERFACE ITypeInfo2
     593#define ITypeInfo2_METHODS \
    604594        ICOM_METHOD1(HRESULT, GetTypeKind, TYPEKIND*, pTypeKind) \
    605595        ICOM_METHOD1(HRESULT, GetTypeFlags, UINT*, pTypeFlags) \
     
    618608                VARIANT*, pVarVal) \
    619609        ICOM_METHOD5(HRESULT, GetDocumentation2, MEMBERID, memid, LCID, lcid,\
    620                 BSTR*, pbstrHelpString, INT*, pdwHelpStringContext,\
     610                BSTR*, pbstrHelpString, DWORD*, pdwHelpStringContext,\
    621611                BSTR*, pbstrHelpStringDll) \
    622612        ICOM_METHOD1(HRESULT, GetAllCustData, CUSTDATA*, pCustData) \
     
    629619        ICOM_METHOD2(HRESULT, GetAllImplTypeCustData, UINT, index, CUSTDATA*,\
    630620                pCustData)
     621
     622#define ITypeInfo2_IMETHODS \
     623        IUnknown_IMETHODS \
     624        ITypeInfo_METHODS \
     625        ITypeInfo2_METHODS
     626ICOM_DEFINE(ITypeInfo2,ITypeInfo)
     627#undef ICOM_INTERFACE
    631628       
    632 #define ITypeInfo_IMETHODS \
    633         IUnknown_IMETHODS \
    634         ITypeInfo_METHODS
    635 ICOM_DEFINE(ITypeInfo,IUnknown)
    636 #undef ICOM_INTERFACE
    637 
    638 #ifdef ICOM_CINTERFACE
    639629/*** IUnknown methods ***/
    640 #define ITypeInfo_QueryInterface(p,a,b)         ICOM_CALL2(QueryInterface,p,a,b)
    641 #define ITypeInfo_AddRef(p)                     ICOM_CALL (AddRef,p)
    642 #define ITypeInfo_Release(p)                    ICOM_CALL (Release,p)
     630#define ITypeInfo2_QueryInterface(p,a,b)         ICOM_CALL2(QueryInterface,p,a,b)
     631#define ITypeInfo2_AddRef(p)                     ICOM_CALL (AddRef,p)
     632#define ITypeInfo2_Release(p)                    ICOM_CALL (Release,p)
    643633/*** ITypeInfo methods ***/
    644 #define ITypeInfo_GetTypeAttr(p,a)              ICOM_CALL1(GetTypeAttr,p,a)
    645 #define ITypeInfo_GetTypeComp(p,a)              ICOM_CALL1(GetTypeComp,p,a)
    646 #define ITypeInfo_GetFuncDesc(p,a,b)            ICOM_CALL2(GetFuncDesc,p,a,b)
    647 #define ITypeInfo_GetVarDesc(p,a,b)             ICOM_CALL2(GetVarDesc,p,a,b)
    648 #define ITypeInfo_GetNames(p,a,b,c,d)           ICOM_CALL4(GetNames,p,a,b,c,d)
    649 #define ITypeInfo_GetRefTypeOfImplType(p,a,b)   ICOM_CALL2(GetRefTypeOfImplType,p,a,b)
    650 #define ITypeInfo_GetImplTypeFlags(p,a,b)       ICOM_CALL2(GetImplTypeFlags,p,a,b)
    651 #define ITypeInfo_GetIDsOfNames(p,a,b,c)        ICOM_CALL3(GetImplTypeFlags,p,a,b,c)
    652 #define ITypeInfo_Invoke(p,a,b,c,d,e,f,g)       ICOM_CALL7(Invoke,p,a,b,c,d,e,f,g)
    653 #define ITypeInfo_GetDocumentation(p,a,b,c,d,e) ICOM_CALL5(GetDocumentation,p,a,b,c,d,e)
    654 #define ITypeInfo_GetDllEntry(p,a,b,c,d,e)      ICOM_CALL5(GetDllEntry,p,a,b,c,d,e)
    655 #define ITypeInfo_GetRefTypeInfo(p,a,b)         ICOM_CALL2(GetRefTypeInfo,p,a,b)
    656 #define ITypeInfo_AddressOfMember(p,a,b,c)      ICOM_CALL3(AddressOfMember,p,a,b,c)
    657 #define ITypeInfo_CreateInstance(p,a,b,c)       ICOM_CALL3(CreateInstance,p,a,b,c)
    658 #define ITypeInfo_GetMops(p,a,b)                ICOM_CALL2(GetMops,p,a,b)
    659 #define ITypeInfo_GetContainingTypeLib(p,a,b)   ICOM_CALL2(GetContainingTypeLib,p,a,b)
    660 #define ITypeInfo_ReleaseTypeAttr(p,a)          ICOM_CALL1(ReleaseTypeAttr,p,a)
    661 #define ITypeInfo_ReleaseFuncDesc(p,a)          ICOM_CALL1(ReleaseFuncDesc,p,a)
    662 #define ITypeInfo_ReleaseVarDesc(p,a)           ICOM_CALL1(ReleaseVarDesc,p,a)
    663 #endif
    664                                  
     634#define ITypeInfo2_GetTypeAttr(p,a)              ICOM_CALL1(GetTypeAttr,p,a)
     635#define ITypeInfo2_GetTypeComp(p,a)              ICOM_CALL1(GetTypeComp,p,a)
     636#define ITypeInfo2_GetFuncDesc(p,a,b)            ICOM_CALL2(GetFuncDesc,p,a,b)
     637#define ITypeInfo2_GetVarDesc(p,a,b)             ICOM_CALL2(GetVarDesc,p,a,b)
     638#define ITypeInfo2_GetNames(p,a,b,c,d)           ICOM_CALL4(GetNames,p,a,b,c,d)
     639#define ITypeInfo2_GetRefTypeOfImplType(p,a,b)   ICOM_CALL2(GetRefTypeOfImplType,p,a,b)
     640#define ITypeInfo2_GetImplTypeFlags(p,a,b)       ICOM_CALL2(GetImplTypeFlags,p,a,b)
     641#define ITypeInfo2_GetIDsOfNames(p,a,b,c)        ICOM_CALL3(GetIDsOfNames,p,a,b,c)
     642#define ITypeInfo2_Invoke(p,a,b,c,d,e,f,g)       ICOM_CALL7(Invoke,p,a,b,c,d,e,f,g)
     643#define ITypeInfo2_GetDocumentation(p,a,b,c,d,e) ICOM_CALL5(GetDocumentation,p,a,b,c,d,e)
     644#define ITypeInfo2_GetDllEntry(p,a,b,c,d,e)      ICOM_CALL5(GetDllEntry,p,a,b,c,d,e)
     645#define ITypeInfo2_GetRefTypeInfo(p,a,b)         ICOM_CALL2(GetRefTypeInfo,p,a,b)
     646#define ITypeInfo2_AddressOfMember(p,a,b,c)      ICOM_CALL3(AddressOfMember,p,a,b,c)
     647#define ITypeInfo2_CreateInstance(p,a,b,c)       ICOM_CALL3(CreateInstance,p,a,b,c)
     648#define ITypeInfo2_GetMops(p,a,b)                ICOM_CALL2(GetMops,p,a,b)
     649#define ITypeInfo2_GetContainingTypeLib(p,a,b)   ICOM_CALL2(GetContainingTypeLib,p,a,b)
     650#define ITypeInfo2_ReleaseTypeAttr(p,a)          ICOM_CALL1(ReleaseTypeAttr,p,a)
     651#define ITypeInfo2_ReleaseFuncDesc(p,a)          ICOM_CALL1(ReleaseFuncDesc,p,a)
     652#define ITypeInfo2_ReleaseVarDesc(p,a)           ICOM_CALL1(ReleaseVarDesc,p,a)
     653/*** ITypeInfo2 methods ***/
     654#define ITypeInfo2_GetTypeKind(p,a)              ICOM_CALL1(GetTypeKind,p,a)
     655#define ITypeInfo2_GetTypeFlags(p,a)             ICOM_CALL1(GetTypeFlags,p,a)
     656#define ITypeInfo2_GetFuncIndexOfMemId(p,a,b,c)  ICOM_CALL3(GetFuncIndexOfMemId,p,a,b,c)
     657#define ITypeInfo2_GetVarIndexOfMemId(p,a,b)     ICOM_CALL2(GetVarIndexOfMemId,p,a,b)
     658#define ITypeInfo2_GetCustData(p,a,b)            ICOM_CALL2(GetCustData,p,a,b)
     659#define ITypeInfo2_GetFuncCustData(p,a,b,c)      ICOM_CALL3(GetFuncCustData,p,a,b,c)
     660#define ITypeInfo2_GetParamCustData(p,a,b,c,d)   ICOM_CALL4(GetParamCustData,p,a,b,c,d)
     661#define ITypeInfo2_GetVarCustData(p,a,b,c)       ICOM_CALL3(GetVarCustData,p,a,b,c)
     662#define ITypeInfo2_GetImplTypeCustData(p,a,b,c)  ICOM_CALL3(GetImplTypeCustData,p,a,b,c)
     663#define ITypeInfo2_GetDocumentation2(p,a,b,c,d,e) ICOM_CALL5(GetDocumentation2,p,a,b,c,d,e)
     664#define ITypeInfo2_GetAllCustData(p,a)           ICOM_CALL1(GetAllCustData,p,a)
     665#define ITypeInfo2_GetAllFuncCustData(p,a,b)     ICOM_CALL2(GetAllFuncCustData,p,a,b)
     666#define ITypeInfo2_GetAllParamCustData(p,a,b,c)  ICOM_CALL3(GetAllParamCustData,p,a,b,c)
     667#define ITypeInfo2_GetAllVarCustData(p,a,b)      ICOM_CALL2(GetAllVarCustData,p,a,b)
     668#define ITypeInfo2_GetAllImplTypeCustData(p,a,b) ICOM_CALL2(GetAllImplTypeCustData,p,a,b)
    665669
    666670/*****************************************************************************
     
    678682        ICOM_METHOD3(HRESULT,IsName, LPOLESTR,szNameBuf, ULONG,lHashVal, BOOL*,bfName) \
    679683        ICOM_METHOD5(HRESULT,FindName, LPOLESTR,szNameBuf, ULONG,lHashVal, ITypeInfo**,ppTInfo, MEMBERID*,rgMemId, USHORT*,pcFound) \
    680         ICOM_METHOD1(VOID,ReleaseTLibAttr, TLIBATTR*,pTLibAttr)\
    681 \
    682         ICOM_METHOD2(HRESULT,GetCustData, REFGUID,guid, VARIANT*, pVarVal)\
    683         ICOM_METHOD2(HRESULT, GetLibStatistics, UINT *,pcUniqueNames, \
    684                         UINT*, pcchUniqueNames) \
    685         ICOM_METHOD5(HRESULT, GetDocumentation2, INT, index, LCID, lcid,\
    686                 BSTR*, pbstrHelpString, INT*, pdwHelpStringContext,\
    687                 BSTR*, pbstrHelpStringDll)\
    688         ICOM_METHOD1(HRESULT, GetAllCustData, CUSTDATA *, pCustData)
    689        
     684        ICOM_METHOD1(VOID,ReleaseTLibAttr, TLIBATTR*,pTLibAttr)
    690685#define ITypeLib_IMETHODS \
    691686        IUnknown_IMETHODS \
     
    694689#undef ICOM_INTERFACE
    695690
    696 #ifdef ICOM_CINTERFACE
    697691/*** IUnknown methods ***/
    698692#define ITypeLib_QueryInterface(p,a,b)         ICOM_CALL2(QueryInterface,p,a,b)
     
    710704#define ITypeLib_FindName(p,a,b,c,d,e)         ICOM_CALL5(FindName,p,a,b,c,d,e)
    711705#define ITypeLib_ReleaseTLibAttr(p,a)          ICOM_CALL1(ReleaseTLibAttr,p,a)
    712 #endif
    713 
     706
     707
     708/*****************************************************************************
     709 * ITypeLib2 interface
     710 */
     711#define ICOM_INTERFACE ITypeLib2
     712#define ITypeLib2_METHODS \
     713        ICOM_METHOD2(HRESULT, GetCustData, REFGUID, guid, VARIANT*, pVarVal) \
     714        ICOM_METHOD2(HRESULT, GetLibStatistics, ULONG *, pcUniqueNames, ULONG*,pcchUniqueNames) \
     715        ICOM_METHOD5(HRESULT, GetDocumentation2, INT, index, LCID, lcid,BSTR*, pbstrHelpString, DWORD*, pdwHelpStringContext, BSTR*, strHelpStringDll) \
     716        ICOM_METHOD1(HRESULT, GetAllCustData, CUSTDATA *, pCustData)
     717#define ITypeLib2_IMETHODS \
     718        IUnknown_IMETHODS \
     719        ITypeLib_IMETHODS \
     720        ITypeLib2_METHODS
     721ICOM_DEFINE(ITypeLib2,ITypeLib)
     722#undef ICOM_INTERFACE
     723
     724/*** IUnknown methods ***/
     725#define ITypeLib2_QueryInterface(p,a,b)         ICOM_CALL2(QueryInterface,p,a,b)
     726#define ITypeLib2_AddRef(p)                     ICOM_CALL (AddRef,p)
     727#define ITypeLib2_Release(p)                    ICOM_CALL (Release,p)
     728/*** ITypeLib methods ***/
     729#define ITypeLib2_GetTypeInfoCount(p)           ICOM_CALL (GetTypeInfoCount,p)
     730#define ITypeLib2_GetTypeInfo(p,a,b)            ICOM_CALL2(GetTypeInfo,p,a,b)
     731#define ITypeLib2_GetTypeInfoType(p,a,b)        ICOM_CALL2(GetTypeInfoType,p,a,b)
     732#define ITypeLib2_GetTypeInfoOfGuid(p,a,b)      ICOM_CALL2(GetTypeInfoOfGuid,p,a,b)
     733#define ITypeLib2_GetLibAttr(p,a)               ICOM_CALL1(GetLibAttr,p,a)
     734#define ITypeLib2_GetTypeComp(p,a)              ICOM_CALL1(GetTypeComp,p,a)
     735#define ITypeLib2_GetDocumentation(p,a,b,c,d,e) ICOM_CALL5(GetDocumentation,p,a,b,c,d,e)
     736#define ITypeLib2_IsName(p,a,b,c)               ICOM_CALL3(IsName,p,a,b,c)
     737#define ITypeLib2_FindName(p,a,b,c,d,e)         ICOM_CALL5(FindName,p,a,b,c,d,e)
     738#define ITypeLib2_ReleaseTLibAttr(p,a)          ICOM_CALL1(ReleaseTLibAttr,p,a)
     739/*** ITypeLib2 methods ***/
     740#define ITypeLib2_GetCustData(p,a,b)            ICOM_CALL2(GetCustData,p,a,b)
     741#define ITypeLib2_GetLibStatistics(p,a,b)       ICOM_CALL2(GetLibStatistics,p,a,b)
     742#define ITypeLib2_GetDocumentation2(p,a,b,c,d,e,f) ICOM_CALL5(GetDocumentation2,p,a,b,c,d,e)
     743#define ITypeLib2_GetAllCustData(p,a)           ICOM_CALL1(GetAllCustData,p,a)
    714744
    715745/*****************************************************************************
     
    726756#undef ICOM_INTERFACE
    727757
    728 #ifdef ICOM_CINTERFACE
    729758/*** IUnknown methods ***/
    730759#define ITypeComp_QueryInterface(p,a,b)         ICOM_CALL2(QueryInterface,p,a,b)
     
    734763#define ITypeComp_Bind(p,a,b,c,d,e,f)           ICOM_CALL6(Bind,p,a,b,c,d,e,f)
    735764#define ITypeComp_BindType(p,a,b,c,d)           ICOM_CALL4(BindType,p,a,b,c,d)
    736 #endif
    737765                                 
    738766/*****************************************************************************
     
    751779#undef ICOM_INTERFACE
    752780
    753 #ifdef ICOM_CINTERFACE
    754781/*** IUnknown methods ***/
    755782#define IEnumVARIANT_QueryInterface(p,a,b)   ICOM_CALL2(QueryInterface,p,a,b)
     
    761788#define IEnumVARIANT_Reset(p)                ICOM_CALL (Reset,p)
    762789#define IEnumVARIANT_Clone(p,a)              ICOM_CALL1(Clone,p,a)
    763 #endif
    764790                                 
    765791#endif /* __WINE_WINE_OBJ_OLEAUT_H */
  • trunk/include/win/winnt.h

    r4411 r4657  
    10841084
    10851085#else /* __WINE__ */
    1086 extern struct _TEB * WINAPI NtCurrentTeb(void);
     1086#define NtCurrentTeb GetThreadTEB
     1087struct _TEB  *WINAPI GetThreadTEB();
    10871088#endif
    10881089#endif //__WIN32OS2__
  • trunk/include/win32type.h

    r4539 r4657  
    1 /* $Id: win32type.h,v 1.42 2000-10-27 07:58:52 sandervl Exp $ */
     1/* $Id: win32type.h,v 1.43 2000-11-21 11:33:59 sandervl Exp $ */
    22
    33/*
     
    322322#define LPCTSTR const char *
    323323#define LPWSTR  WCHAR *
     324#define PWSTR   WCHAR *
    324325#define LPCWSTR const WCHAR *
    325326
     
    13391340#endif //__WINE_WINNT_H
    13401341
     1342typedef struct _UNICODE_STRING {
     1343        USHORT  Length;         /* bytes */
     1344        USHORT  MaximumLength;  /* bytes */
     1345        PWSTR   Buffer;
     1346} UNICODE_STRING,*PUNICODE_STRING;
     1347
    13411348typedef DWORD COLORREF, *LPCOLORREF;
    13421349typedef BOOL (* CALLBACK ABORTPROC)(HDC32, INT);
  • trunk/include/wprocess.h

    r4234 r4657  
    1 /* $Id: wprocess.h,v 1.17 2000-09-12 04:26:40 bird Exp $ */
     1/* $Id: wprocess.h,v 1.18 2000-11-21 11:33:59 sandervl Exp $ */
    22/*
    33 * Process help functions
     
    4242#define NtCurrentTeb GetThreadTEB
    4343TEB  *WIN32API GetThreadTEB();
    44 THDB *WIN32API GetThreadTHDB();
    45 THDB *WIN32API GetTHDBFromThreadId(ULONG threadId);
    46 THDB *WIN32API GetTHDBFromThreadHandle(HANDLE hThread);
     44TEB  *WIN32API GetTEBFromThreadId(ULONG threadId);
     45TEB  *WIN32API GetTEBFromThreadHandle(HANDLE hThread);
    4746
    4847#ifndef OS2_INCLUDED
Note: See TracChangeset for help on using the changeset viewer.