/*
 * Copyright (C) the Wine project
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

#ifndef __WINE_WINE_WINUSER16_H
#define __WINE_WINE_WINUSER16_H

#include "wine/wingdi16.h" /* wingdi.h needed for COLORREF */
#include "winuser.h" /* winuser.h needed for MSGBOXCALLBACK */

#include "pshpack1.h"

typedef struct tagCOMSTAT16
{
    BYTE   status;
    UINT16 cbInQue WINE_PACKED;
    UINT16 cbOutQue WINE_PACKED;
} COMSTAT16,*LPCOMSTAT16;

typedef struct tagDCB16
{
    BYTE   Id;
    UINT16 BaudRate WINE_PACKED;
    BYTE   ByteSize;
    BYTE   Parity;
    BYTE   StopBits;
    UINT16 RlsTimeout;
    UINT16 CtsTimeout;
    UINT16 DsrTimeout;

    unsigned fBinary        :1;
    unsigned fRtsDisable    :1;
    unsigned fParity        :1;
    unsigned fOutxCtsFlow   :1;
    unsigned fOutxDsrFlow   :1;
    unsigned fDummy         :2;
    unsigned fDtrDisable    :1;

    unsigned fOutX          :1;
    unsigned fInX           :1;
    unsigned fPeChar        :1;
    unsigned fNull          :1;
    unsigned fChEvt         :1;
    unsigned fDtrflow       :1;
    unsigned fRtsflow       :1;
    unsigned fDummy2        :1;

    CHAR   XonChar;
    CHAR   XoffChar;
    UINT16 XonLim;
    UINT16 XoffLim;
    CHAR   PeChar;
    CHAR   EofChar;
    CHAR   EvtChar;
    UINT16 TxDelay WINE_PACKED;
} DCB16, *LPDCB16;


typedef struct
{
   LPARAM   lParam;
   WPARAM16 wParam;
   UINT16   message;
   HWND16   hwnd;
} CWPSTRUCT16, *LPCWPSTRUCT16;

typedef struct
{
  LRESULT       lResult;
  LPARAM        lParam;
  WPARAM16      wParam;
  DWORD         message;
  HWND16        hwnd;
} CWPRETSTRUCT16, *LPCWPRETSTRUCT16;

  /* SetWindowPlacement() struct */
typedef struct
{
    UINT16   length;
    UINT16   flags;
    UINT16   showCmd;
    POINT16  ptMinPosition WINE_PACKED;
    POINT16  ptMaxPosition WINE_PACKED;
    RECT16   rcNormalPosition WINE_PACKED;
} WINDOWPLACEMENT16, *LPWINDOWPLACEMENT16;

/****** Window classes ******/

typedef struct
{
    UINT16      style;
    WNDPROC16   lpfnWndProc WINE_PACKED;
    INT16       cbClsExtra;
    INT16       cbWndExtra;
    HANDLE16    hInstance;
    HICON16     hIcon;
    HCURSOR16   hCursor;
    HBRUSH16    hbrBackground;
    SEGPTR      lpszMenuName WINE_PACKED;
    SEGPTR      lpszClassName WINE_PACKED;
} WNDCLASS16, *LPWNDCLASS16;

typedef struct
{
    UINT      cbSize;
    UINT      style;
    WNDPROC16   lpfnWndProc;
    INT16       cbClsExtra;
    INT16       cbWndExtra;
    HANDLE16    hInstance;
    HICON16     hIcon;
    HCURSOR16   hCursor;
    HBRUSH16    hbrBackground;
    SEGPTR      lpszMenuName;
    SEGPTR      lpszClassName;
    HICON16     hIconSm;
} WNDCLASSEX16, *LPWNDCLASSEX16;

typedef struct
{
    HWND16    hwnd;
    UINT16    message;
    WPARAM16  wParam;
    LPARAM    lParam WINE_PACKED;
    DWORD     time WINE_PACKED;
    POINT16   pt WINE_PACKED;
} MSG16, *LPMSG16;

typedef struct
{
    MSG16 msg;
    WORD wParamHigh;
} MSG32_16, *LPMSG16_32;

/* Cursors / Icons */

typedef struct tagCURSORICONINFO
{
    POINT16 ptHotSpot;
    WORD    nWidth;
    WORD    nHeight;
    WORD    nWidthBytes;
    BYTE    bPlanes;
    BYTE    bBitsPerPixel;
} CURSORICONINFO;

typedef struct {
	BOOL16		fIcon;
	WORD		xHotspot;
	WORD		yHotspot;
	HBITMAP16	hbmMask;
	HBITMAP16	hbmColor;
} ICONINFO16,*LPICONINFO16;

typedef struct
{
    BYTE   fVirt;
    WORD   key;
    WORD   cmd;
} ACCEL16, *LPACCEL16;

/* FIXME: not sure this one is correct */
typedef struct {
  UINT16    cbSize;
  UINT16    fMask;
  UINT16    fType;
  UINT16    fState;
  UINT16    wID;
  HMENU16   hSubMenu;
  HBITMAP16 hbmpChecked;
  HBITMAP16 hbmpUnchecked;
  DWORD     dwItemData;
  SEGPTR    dwTypeData;
  UINT16    cch;
} MENUITEMINFO16, *LPMENUITEMINFO16;

/* DrawState defines ... */
typedef BOOL16 (CALLBACK *DRAWSTATEPROC16)(HDC16,LPARAM,WPARAM16,INT16,INT16);

/* Listbox messages */
#define LB_ADDSTRING16           (WM_USER+1)
#define LB_INSERTSTRING16        (WM_USER+2)
#define LB_DELETESTRING16        (WM_USER+3)
#define LB_SELITEMRANGEEX16      (WM_USER+4)
#define LB_RESETCONTENT16        (WM_USER+5)
#define LB_SETSEL16              (WM_USER+6)
#define LB_SETCURSEL16           (WM_USER+7)
#define LB_GETSEL16              (WM_USER+8)
#define LB_GETCURSEL16           (WM_USER+9)
#define LB_GETTEXT16             (WM_USER+10)
#define LB_GETTEXTLEN16          (WM_USER+11)
#define LB_GETCOUNT16            (WM_USER+12)
#define LB_SELECTSTRING16        (WM_USER+13)
#define LB_DIR16                 (WM_USER+14)
#define LB_GETTOPINDEX16         (WM_USER+15)
#define LB_FINDSTRING16          (WM_USER+16)
#define LB_GETSELCOUNT16         (WM_USER+17)
#define LB_GETSELITEMS16         (WM_USER+18)
#define LB_SETTABSTOPS16         (WM_USER+19)
#define LB_GETHORIZONTALEXTENT16 (WM_USER+20)
#define LB_SETHORIZONTALEXTENT16 (WM_USER+21)
#define LB_SETCOLUMNWIDTH16      (WM_USER+22)
#define LB_ADDFILE16             (WM_USER+23)
#define LB_SETTOPINDEX16         (WM_USER+24)
#define LB_GETITEMRECT16         (WM_USER+25)
#define LB_GETITEMDATA16         (WM_USER+26)
#define LB_SETITEMDATA16         (WM_USER+27)
#define LB_SELITEMRANGE16        (WM_USER+28)
#define LB_SETANCHORINDEX16      (WM_USER+29)
#define LB_GETANCHORINDEX16      (WM_USER+30)
#define LB_SETCARETINDEX16       (WM_USER+31)
#define LB_GETCARETINDEX16       (WM_USER+32)
#define LB_SETITEMHEIGHT16       (WM_USER+33)
#define LB_GETITEMHEIGHT16       (WM_USER+34)
#define LB_FINDSTRINGEXACT16     (WM_USER+35)
#define LB_CARETON16             (WM_USER+36)
#define LB_CARETOFF16            (WM_USER+37)

/* Combo box messages */
#define CB_GETEDITSEL16            (WM_USER+0)
#define CB_LIMITTEXT16             (WM_USER+1)
#define CB_SETEDITSEL16            (WM_USER+2)
#define CB_ADDSTRING16             (WM_USER+3)
#define CB_DELETESTRING16          (WM_USER+4)
#define CB_DIR16                   (WM_USER+5)
#define CB_GETCOUNT16              (WM_USER+6)
#define CB_GETCURSEL16             (WM_USER+7)
#define CB_GETLBTEXT16             (WM_USER+8)
#define CB_GETLBTEXTLEN16          (WM_USER+9)
#define CB_INSERTSTRING16          (WM_USER+10)
#define CB_RESETCONTENT16          (WM_USER+11)
#define CB_FINDSTRING16            (WM_USER+12)
#define CB_SELECTSTRING16          (WM_USER+13)
#define CB_SETCURSEL16             (WM_USER+14)
#define CB_SHOWDROPDOWN16          (WM_USER+15)
#define CB_GETITEMDATA16           (WM_USER+16)
#define CB_SETITEMDATA16           (WM_USER+17)
#define CB_GETDROPPEDCONTROLRECT16 (WM_USER+18)
#define CB_SETITEMHEIGHT16         (WM_USER+19)
#define CB_GETITEMHEIGHT16         (WM_USER+20)
#define CB_SETEXTENDEDUI16         (WM_USER+21)
#define CB_GETEXTENDEDUI16         (WM_USER+22)
#define CB_GETDROPPEDSTATE16       (WM_USER+23)
#define CB_FINDSTRINGEXACT16       (WM_USER+24)

typedef struct /* not sure if the 16bit version is correct */
{
    UINT	cbSize;
    HWND16	hwndOwner;
    HINSTANCE16	hInstance;
    SEGPTR	lpszText;
    SEGPTR	lpszCaption;
    DWORD	dwStyle;
    SEGPTR	lpszIcon;
    DWORD	dwContextHelpId;
    MSGBOXCALLBACK	lpfnMsgBoxCallback;
    DWORD	dwLanguageId;
} MSGBOXPARAMS16,*LPMSGBOXPARAMS16;

  /* Windows */

typedef struct
{
    LPVOID      lpCreateParams;
    HINSTANCE16 hInstance;
    HMENU16     hMenu;
    HWND16      hwndParent;
    INT16       cy;
    INT16       cx;
    INT16       y;
    INT16       x;
    LONG        style WINE_PACKED;
    SEGPTR      lpszName WINE_PACKED;
    SEGPTR      lpszClass WINE_PACKED;
    DWORD       dwExStyle WINE_PACKED;
} CREATESTRUCT16, *LPCREATESTRUCT16;

typedef struct
{
    HDC16   hdc;
    BOOL16  fErase;
    RECT16  rcPaint;
    BOOL16  fRestore;
    BOOL16  fIncUpdate;
    BYTE    rgbReserved[16];
} PAINTSTRUCT16, *LPPAINTSTRUCT16;

typedef struct
{
    HMENU16   hWindowMenu;
    UINT16    idFirstChild;
} CLIENTCREATESTRUCT16, *LPCLIENTCREATESTRUCT16;

typedef struct
{
    SEGPTR       szClass;
    SEGPTR       szTitle;
    HINSTANCE16  hOwner;
    INT16        x;
    INT16        y;
    INT16        cx;
    INT16        cy;
    DWORD        style WINE_PACKED;
    LPARAM       lParam WINE_PACKED;
} MDICREATESTRUCT16, *LPMDICREATESTRUCT16;

  /* WM_GETMINMAXINFO struct */
typedef struct
{
    POINT16   ptReserved;
    POINT16   ptMaxSize;
    POINT16   ptMaxPosition;
    POINT16   ptMinTrackSize;
    POINT16   ptMaxTrackSize;
} MINMAXINFO16;

  /* WM_WINDOWPOSCHANGING/CHANGED struct */
typedef struct tagWINDOWPOS16
{
    HWND16  hwnd;
    HWND16  hwndInsertAfter;
    INT16   x;
    INT16   y;
    INT16   cx;
    INT16   cy;
    UINT16  flags;
} WINDOWPOS16, *LPWINDOWPOS16;

  /* WM_NCCALCSIZE parameter structure */
typedef struct
{
    RECT16  rgrc[3];
    SEGPTR  lppos;
} NCCALCSIZE_PARAMS16, *LPNCCALCSIZE_PARAMS16;

typedef struct {
	UINT16		cbSize;
	INT16		iBorderWidth;
	INT16		iScrollWidth;
	INT16		iScrollHeight;
	INT16		iCaptionWidth;
	INT16		iCaptionHeight;
	LOGFONT16	lfCaptionFont;
	INT16		iSmCaptionWidth;
	INT16		iSmCaptionHeight;
	LOGFONT16	lfSmCaptionFont;
	INT16		iMenuWidth;
	INT16		iMenuHeight;
	LOGFONT16	lfMenuFont;
	LOGFONT16	lfStatusFont;
	LOGFONT16	lfMessageFont;
} NONCLIENTMETRICS16,*LPNONCLIENTMETRICS16;

  /* Journalling hook structure */

typedef struct
{
    UINT16  message;
    UINT16  paramL;
    UINT16  paramH;
    DWORD   time WINE_PACKED;
} EVENTMSG16, *LPEVENTMSG16;

  /* Mouse hook structure */

typedef struct
{
    POINT16 pt;
    HWND16  hwnd;
    UINT16  wHitTestCode;
    DWORD   dwExtraInfo;
} MOUSEHOOKSTRUCT16, *LPMOUSEHOOKSTRUCT16;

  /* Hardware hook structure */

typedef struct
{
    HWND16    hWnd;
    UINT16    wMessage;
    WPARAM16  wParam;
    LPARAM    lParam WINE_PACKED;
} HARDWAREHOOKSTRUCT16, *LPHARDWAREHOOKSTRUCT16;

/* Scrollbar messages */
#define SBM_SETPOS16             (WM_USER+0)
#define SBM_GETPOS16             (WM_USER+1)
#define SBM_SETRANGE16           (WM_USER+2)
#define SBM_GETRANGE16           (WM_USER+3)
#define SBM_ENABLE_ARROWS16      (WM_USER+4)
#define SBM_SETRANGEREDRAW16     WM_NULL  /* Not in Win16 */
#define SBM_SETSCROLLINFO16      WM_NULL  /* Not in Win16 */
#define SBM_GETSCROLLINFO16      WM_NULL  /* Not in Win16 */

  /* CBT hook structures */

typedef struct
{
    CREATESTRUCT16  *lpcs;
    HWND16           hwndInsertAfter;
} CBT_CREATEWND16, *LPCBT_CREATEWND16;

typedef struct
{
    BOOL16    fMouse;
    HWND16    hWndActive;
} CBTACTIVATESTRUCT16, *LPCBTACTIVATESTRUCT16;

  /* Debug hook structure */

typedef struct
{
    HMODULE16   hModuleHook;
    LPARAM	reserved WINE_PACKED;
    LPARAM	lParam WINE_PACKED;
    WPARAM16    wParam;
    INT16       code;
} DEBUGHOOKINFO16, *LPDEBUGHOOKINFO16;

#define GETMAXLPT	8
#define GETMAXCOM	9
#define GETBASEIRQ	10

/* GetFreeSystemResources() parameters */

#define GFSR_SYSTEMRESOURCES   0x0000
#define GFSR_GDIRESOURCES      0x0001
#define GFSR_USERRESOURCES     0x0002

#define MAKEINTRESOURCE16(i)  (SEGPTR)((DWORD)((WORD)(i)))

/* Predefined resource types */
#define RT_CURSOR16          MAKEINTRESOURCE16(1)
#define RT_BITMAP16          MAKEINTRESOURCE16(2)
#define RT_ICON16            MAKEINTRESOURCE16(3)
#define RT_MENU16            MAKEINTRESOURCE16(4)
#define RT_DIALOG16          MAKEINTRESOURCE16(5)
#define RT_STRING16          MAKEINTRESOURCE16(6)
#define RT_FONTDIR16         MAKEINTRESOURCE16(7)
#define RT_FONT16            MAKEINTRESOURCE16(8)
#define RT_ACCELERATOR16     MAKEINTRESOURCE16(9)
#define RT_RCDATA16          MAKEINTRESOURCE16(10)
#define RT_MESSAGELIST16     MAKEINTRESOURCE16(11)
#define RT_GROUP_CURSOR16    MAKEINTRESOURCE16(12)
#define RT_GROUP_ICON16      MAKEINTRESOURCE16(14)

/* CreateWindow() coordinates */
#define CW_USEDEFAULT16 ((INT16)0x8000)

/* Win16 button control messages */
#define BM_GETCHECK16          (WM_USER+0)
#define BM_SETCHECK16          (WM_USER+1)
#define BM_GETSTATE16          (WM_USER+2)
#define BM_SETSTATE16          (WM_USER+3)
#define BM_SETSTYLE16          (WM_USER+4)
#define BM_CLICK16             WM_NULL  /* Does not exist in Win16 */
#define BM_GETIMAGE16          WM_NULL  /* Does not exist in Win16 */
#define BM_SETIMAGE16          WM_NULL  /* Does not exist in Win16 */

/* Static Control Messages */
#define STM_SETICON16       (WM_USER+0)
#define STM_GETICON16       (WM_USER+1)

/* Edit control messages */
#define EM_GETSEL16                (WM_USER+0)
#define EM_SETSEL16                (WM_USER+1)
#define EM_GETRECT16               (WM_USER+2)
#define EM_SETRECT16               (WM_USER+3)
#define EM_SETRECTNP16             (WM_USER+4)
#define EM_SCROLL16                (WM_USER+5)
#define EM_LINESCROLL16            (WM_USER+6)
#define EM_SCROLLCARET16           (WM_USER+7)
#define EM_GETMODIFY16             (WM_USER+8)
#define EM_SETMODIFY16             (WM_USER+9)
#define EM_GETLINECOUNT16          (WM_USER+10)
#define EM_LINEINDEX16             (WM_USER+11)
#define EM_SETHANDLE16             (WM_USER+12)
#define EM_GETHANDLE16             (WM_USER+13)
#define EM_GETTHUMB16              (WM_USER+14)
#define EM_LINELENGTH16            (WM_USER+17)
#define EM_REPLACESEL16            (WM_USER+18)
#define EM_GETLINE16               (WM_USER+20)
#define EM_LIMITTEXT16             (WM_USER+21)
#define EM_CANUNDO16               (WM_USER+22)
#define EM_UNDO16                  (WM_USER+23)
#define EM_FMTLINES16              (WM_USER+24)
#define EM_LINEFROMCHAR16          (WM_USER+25)
#define EM_SETTABSTOPS16           (WM_USER+27)
#define EM_SETPASSWORDCHAR16       (WM_USER+28)
#define EM_EMPTYUNDOBUFFER16       (WM_USER+29)
#define EM_GETFIRSTVISIBLELINE16   (WM_USER+30)
#define EM_SETREADONLY16           (WM_USER+31)
#define EM_SETWORDBREAKPROC16      (WM_USER+32)
#define EM_GETWORDBREAKPROC16      (WM_USER+33)
#define EM_GETPASSWORDCHAR16       (WM_USER+34)
/*
  not in win16:
    EM_SETMARGINS16            WM_NULL
    EM_GETMARGINS16            WM_NULL
    EM_GETLIMITTEXT16          WM_NULL
    EM_POSFROMCHAR16           WM_NULL
    EM_CHARFROMPOS16           WM_NULL
    EM_SETLIMITTEXT16          WM_NULL - no name change in win16
*/

typedef struct
{
    UINT16      CtlType;
    UINT16      CtlID;
    UINT16      itemID;
    UINT16      itemAction;
    UINT16      itemState;
    HWND16      hwndItem;
    HDC16       hDC;
    RECT16      rcItem WINE_PACKED;
    DWORD       itemData WINE_PACKED;
} DRAWITEMSTRUCT16, *PDRAWITEMSTRUCT16, *LPDRAWITEMSTRUCT16;

typedef struct
{
    UINT16      CtlType;
    UINT16      CtlID;
    UINT16      itemID;
    UINT16      itemWidth;
    UINT16      itemHeight;
    DWORD       itemData WINE_PACKED;
} MEASUREITEMSTRUCT16, *PMEASUREITEMSTRUCT16, *LPMEASUREITEMSTRUCT16;

typedef struct
{
    UINT16     CtlType;
    UINT16     CtlID;
    UINT16     itemID;
    HWND16     hwndItem;
    DWORD      itemData;
} DELETEITEMSTRUCT16, *LPDELETEITEMSTRUCT16;

typedef struct
{
    UINT16      CtlType;
    UINT16      CtlID;
    HWND16      hwndItem;
    UINT16      itemID1;
    DWORD       itemData1;
    UINT16      itemID2;
    DWORD       itemData2 WINE_PACKED;
} COMPAREITEMSTRUCT16, *LPCOMPAREITEMSTRUCT16;

#include "poppack.h"

/* WM_COMMNOTIFY flags */
#define CN_RECEIVE	0x0001
#define CN_TRANSMIT	0x0002
#define CN_EVENT	0x0004

BOOL16      WINAPI CheckMenuRadioItem16(HMENU16,UINT16,UINT16,UINT16,UINT16);
HICON16     WINAPI CopyImage16(HANDLE16,UINT16,INT16,INT16,UINT16);
HICON16     WINAPI CreateIconFromResource16(LPBYTE,UINT16,BOOL16,DWORD);
BOOL16      WINAPI EnumChildWindows16(HWND16,WNDENUMPROC16,LPARAM);
INT16       WINAPI EnumProps16(HWND16,PROPENUMPROC16);
BOOL16      WINAPI EnumWindows16(WNDENUMPROC16,LPARAM);
DWORD       WINAPI GetAppCompatFlags16(HTASK16);
INT16       WINAPI GetKBCodePage16(void);
INT16       WINAPI GetKeyboardType16(INT16);
INT16       WINAPI GetKeyNameText16(LONG,LPSTR,INT16);
INT16       WINAPI GetWindowRgn16(HWND16,HRGN16);
BOOL16      WINAPI IsWindow16(HWND16);
INT16       WINAPI LookupIconIdFromDirectory16(LPBYTE,BOOL16);
UINT16      WINAPI MapVirtualKey16(UINT16,UINT16);
FARPROC16   WINAPI SetWindowsHook16(INT16,HOOKPROC16);
HHOOK       WINAPI SetWindowsHookEx16(INT16,HOOKPROC16,HINSTANCE16,HTASK16);
BOOL16      WINAPI UnhookWindowsHook16(INT16,HOOKPROC16);
BOOL16      WINAPI UnhookWindowsHookEx16(HHOOK);
VOID        WINAPI CalcChildScroll16(HWND16,WORD);
VOID        WINAPI CascadeChildWindows16(HWND16,WORD);
INT16       WINAPI CloseComm16(INT16);
HGLOBAL16   WINAPI CreateCursorIconIndirect16(HINSTANCE16,CURSORICONINFO*,
                                            LPCVOID,LPCVOID);
BOOL16      WINAPI DCHook16(HDC16,WORD,DWORD,LPARAM);
BOOL16      WINAPI DlgDirSelect16(HWND16,LPSTR,INT16);
BOOL16      WINAPI DlgDirSelectComboBox16(HWND16,LPSTR,INT16);
DWORD       WINAPI DumpIcon16(SEGPTR,WORD*,SEGPTR*,SEGPTR*);
BOOL16      WINAPI EnableCommNotification16(INT16,HWND16,INT16,INT16);
BOOL16      WINAPI EnableHardwareInput16(BOOL16);
VOID        WINAPI FillWindow16(HWND16,HWND16,HDC16,HBRUSH16);
INT16       WINAPI FlushComm16(INT16,INT16);
UINT16      WINAPI GetCommEventMask16(INT16,UINT16);
HBRUSH16    WINAPI GetControlBrush16(HWND16,HDC16,UINT16);
HWND16      WINAPI GetDesktopHwnd16(void);
WORD        WINAPI GetIconID16(HGLOBAL16,DWORD);
FARPROC16   WINAPI GetMouseEventProc16(void);
INT16       WINAPI InitApp16(HINSTANCE16);
BOOL16      WINAPI IsUserIdle16(void);
HGLOBAL16   WINAPI LoadCursorIconHandler16(HGLOBAL16,HMODULE16,HRSRC16);
HGLOBAL16   WINAPI LoadDIBCursorHandler16(HGLOBAL16,HMODULE16,HRSRC16);
HGLOBAL16   WINAPI LoadDIBIconHandler16(HGLOBAL16,HMODULE16,HRSRC16);
HICON16     WINAPI LoadIconHandler16(HGLOBAL16,BOOL16);
HMENU16     WINAPI LookupMenuHandle16(HMENU16,INT16);
INT16       WINAPI OpenComm16(LPCSTR,UINT16,UINT16);
VOID        WINAPI PaintRect16(HWND16,HWND16,HDC16,HBRUSH16,const RECT16*);
INT16       WINAPI ReadComm16(INT16,LPSTR,INT16);
SEGPTR      WINAPI SetCommEventMask16(INT16,UINT16);
BOOL16      WINAPI SetDeskPattern(void);
VOID        WINAPI TileChildWindows16(HWND16,WORD);
INT16       WINAPI UngetCommChar16(INT16,CHAR);
VOID        WINAPI UserYield16(void);
INT16       WINAPI WriteComm16(INT16,LPSTR,INT16);
BOOL16      WINAPI AdjustWindowRect16(LPRECT16,DWORD,BOOL16);
BOOL16      WINAPI AdjustWindowRectEx16(LPRECT16,DWORD,BOOL16,DWORD);
SEGPTR      WINAPI AnsiLower16(SEGPTR);
UINT16      WINAPI AnsiLowerBuff16(LPSTR,UINT16);
SEGPTR      WINAPI AnsiNext16(SEGPTR);
SEGPTR      WINAPI AnsiPrev16(LPCSTR,SEGPTR);
SEGPTR      WINAPI AnsiUpper16(SEGPTR);
UINT16      WINAPI AnsiUpperBuff16(LPSTR,UINT16);
BOOL16      WINAPI AnyPopup16(void);
BOOL16      WINAPI AppendMenu16(HMENU16,UINT16,UINT16,SEGPTR);
UINT16      WINAPI ArrangeIconicWindows16(HWND16);
HDWP16      WINAPI BeginDeferWindowPos16(INT16);
HDC16       WINAPI BeginPaint16(HWND16,LPPAINTSTRUCT16);
BOOL16      WINAPI BringWindowToTop16(HWND16);
BOOL16      WINAPI CallMsgFilter16(SEGPTR,INT16);
BOOL16      WINAPI CallMsgFilter32_16(SEGPTR,INT16,BOOL16);
LRESULT     WINAPI CallNextHookEx16(HHOOK,INT16,WPARAM16,LPARAM);
LRESULT     WINAPI CallWindowProc16(WNDPROC16,HWND16,UINT16,WPARAM16,LPARAM);
BOOL16      WINAPI ChangeClipboardChain16(HWND16,HWND16);
BOOL16      WINAPI ChangeMenu16(HMENU16,UINT16,SEGPTR,UINT16,UINT16);
BOOL16      WINAPI CheckDlgButton16(HWND16,INT16,UINT16);
BOOL16      WINAPI CheckMenuItem16(HMENU16,UINT16,UINT16);
BOOL16      WINAPI CheckRadioButton16(HWND16,UINT16,UINT16,UINT16);
HWND16      WINAPI ChildWindowFromPoint16(HWND16,POINT16);
HWND16      WINAPI ChildWindowFromPointEx16(HWND16,POINT16,UINT16);
INT16       WINAPI ClearCommBreak16(INT16);
VOID        WINAPI ClientToScreen16(HWND16,LPPOINT16);
BOOL16      WINAPI ClipCursor16(const RECT16*);
BOOL16      WINAPI CloseClipboard16(void);
BOOL16      WINAPI CloseWindow16(HWND16);
void        WINAPI ControlPanelInfo16(INT16, WORD, LPSTR);
HCURSOR16   WINAPI CopyCursor16(HINSTANCE16,HCURSOR16);
HICON16     WINAPI CopyIcon16(HINSTANCE16,HICON16);
BOOL16      WINAPI CopyRect16(RECT16*,const RECT16*);
INT16       WINAPI CountClipboardFormats16(void);
VOID        WINAPI CreateCaret16(HWND16,HBITMAP16,INT16,INT16);
HCURSOR16   WINAPI CreateCursor16(HINSTANCE16,INT16,INT16,INT16,INT16,LPCVOID,LPCVOID);
HWND16      WINAPI CreateDialog16(HINSTANCE16,LPCSTR,HWND16,DLGPROC16);
HWND16      WINAPI CreateDialogIndirect16(HINSTANCE16,LPCVOID,HWND16,DLGPROC16);
HWND16      WINAPI CreateDialogIndirectParam16(HINSTANCE16,LPCVOID,HWND16,
                                               DLGPROC16,LPARAM);
HWND16      WINAPI CreateDialogParam16(HINSTANCE16,LPCSTR,HWND16,DLGPROC16,LPARAM);
HICON16     WINAPI CreateIcon16(HINSTANCE16,INT16,INT16,BYTE,BYTE,LPCVOID,LPCVOID);
HICON16     WINAPI CreateIconFromResourceEx16(LPBYTE,UINT16,BOOL16,DWORD,INT16,INT16,UINT16);
HMENU16     WINAPI CreateMenu16(void);
HMENU16     WINAPI CreatePopupMenu16(void);
HWND16      WINAPI CreateWindow16(LPCSTR,LPCSTR,DWORD,INT16,INT16,INT16,INT16,
                                  HWND16,HMENU16,HINSTANCE16,LPVOID);
HWND16      WINAPI CreateWindowEx16(DWORD,LPCSTR,LPCSTR,DWORD,INT16,INT16,
                                INT16,INT16,HWND16,HMENU16,HINSTANCE16,LPVOID);
LRESULT     WINAPI DefDlgProc16(HWND16,UINT16,WPARAM16,LPARAM);
HDWP16      WINAPI DeferWindowPos16(HDWP16,HWND16,HWND16,INT16,INT16,INT16,INT16,UINT16);
LRESULT     WINAPI DefFrameProc16(HWND16,HWND16,UINT16,WPARAM16,LPARAM);
LRESULT     WINAPI DefHookProc16(INT16,WPARAM16,LPARAM,HHOOK*);
LRESULT     WINAPI DefMDIChildProc16(HWND16,UINT16,WPARAM16,LPARAM);
LRESULT     WINAPI DefWindowProc16(HWND16,UINT16,WPARAM16,LPARAM);
BOOL16      WINAPI DeleteMenu16(HMENU16,UINT16,UINT16);
VOID        WINAPI DestroyCaret16(void);
BOOL16      WINAPI DestroyCursor16(HCURSOR16);
BOOL16      WINAPI DestroyIcon16(HICON16);
BOOL16      WINAPI DestroyMenu16(HMENU16);
BOOL16      WINAPI DestroyWindow16(HWND16);
INT16       WINAPI DialogBox16(HINSTANCE16,LPCSTR,HWND16,DLGPROC16);
INT16       WINAPI DialogBoxIndirect16(HINSTANCE16,HANDLE16,HWND16,DLGPROC16);
INT16       WINAPI DialogBoxIndirectParam16(HINSTANCE16,HANDLE16,HWND16,DLGPROC16,LPARAM);
INT16       WINAPI DialogBoxParam16(HINSTANCE16,LPCSTR,HWND16,DLGPROC16,LPARAM);
LONG        WINAPI DispatchMessage16(const MSG16*);
LONG        WINAPI DispatchMessage32_16(const MSG32_16*,BOOL16);
INT16       WINAPI DlgDirList16(HWND16,LPSTR,INT16,INT16,UINT16);
INT16       WINAPI DlgDirListComboBox16(HWND16,LPSTR,INT16,INT16,UINT16);
BOOL16      WINAPI DlgDirSelectComboBoxEx16(HWND16,LPSTR,INT16,INT16);
BOOL16      WINAPI DlgDirSelectEx16(HWND16,LPSTR,INT16,INT16);
BOOL16      WINAPI DragDetect16(HWND16,POINT16);
DWORD       WINAPI DragObject16(HWND16,HWND16,UINT16,HANDLE16,WORD,HCURSOR16);
BOOL16      WINAPI DrawAnimatedRects16(HWND16,INT16,const RECT16*,const RECT16*);
BOOL16      WINAPI DrawCaption16(HWND16,HDC16,const RECT16*,UINT16);
BOOL16      WINAPI DrawCaptionTemp16(HWND16,HDC16, const RECT16*,HFONT16,HICON16,LPCSTR,UINT16);
BOOL16      WINAPI DrawEdge16(HDC16,LPRECT16,UINT16,UINT16);
void        WINAPI DrawFocusRect16(HDC16,const RECT16*);
BOOL16      WINAPI DrawFrameControl16(HDC16,LPRECT16,UINT16,UINT16);
BOOL16      WINAPI DrawIcon16(HDC16,INT16,INT16,HICON16);
BOOL16      WINAPI DrawIconEx16(HDC16,INT16,INT16,HICON16,INT16,INT16,
				UINT16,HBRUSH16,UINT16);
VOID        WINAPI DrawMenuBar16(HWND16);
INT16       WINAPI DrawText16(HDC16,LPCSTR,INT16,LPRECT16,UINT16);
BOOL16      WINAPI EmptyClipboard16(void);
UINT16      WINAPI EnableMenuItem16(HMENU16,UINT16,UINT16);
BOOL16      WINAPI EnableScrollBar16(HWND16,INT16,UINT16);
BOOL16      WINAPI EnableWindow16(HWND16,BOOL16);
BOOL16      WINAPI EndDeferWindowPos16(HDWP16);
BOOL16      WINAPI EndDialog16(HWND16,INT16);
BOOL16      WINAPI EndPaint16(HWND16,const PAINTSTRUCT16*);
UINT16      WINAPI EnumClipboardFormats16(UINT16);
BOOL16      WINAPI EqualRect16(const RECT16*,const RECT16*);
LONG        WINAPI EscapeCommFunction16(UINT16,UINT16);
INT16       WINAPI ExcludeUpdateRgn16(HDC16,HWND16);
BOOL16      WINAPI ExitWindows16(DWORD,UINT16);
INT16       WINAPI FillRect16(HDC16,const RECT16*,HBRUSH16);
HWND16      WINAPI FindWindow16(LPCSTR,LPCSTR);
HWND16      WINAPI FindWindowEx16(HWND16,HWND16,LPCSTR,LPCSTR);
BOOL16      WINAPI FlashWindow16(HWND16,BOOL16);
DWORD       WINAPI FormatMessage16(DWORD,SEGPTR,WORD,WORD,LPSTR,WORD,LPDWORD);
INT16       WINAPI FrameRect16(HDC16,const RECT16*,HBRUSH16);
HWND16      WINAPI GetActiveWindow16(void);
INT16       WINAPI GetAsyncKeyState16(INT16);
HWND16      WINAPI GetCapture16(void);
UINT16      WINAPI GetCaretBlinkTime16(void);
VOID        WINAPI GetCaretPos16(LPPOINT16);
BOOL16      WINAPI GetClassInfo16(HINSTANCE16,SEGPTR,WNDCLASS16 *);
BOOL16      WINAPI GetClassInfoEx16(HINSTANCE16,SEGPTR,WNDCLASSEX16 *);
LONG        WINAPI GetClassLong16(HWND16,INT16);
INT16       WINAPI GetClassName16(HWND16,LPSTR,INT16);
WORD        WINAPI GetClassWord16(HWND16,INT16);
void        WINAPI GetClientRect16(HWND16,LPRECT16);
HANDLE16    WINAPI GetClipboardData16(UINT16);
INT16       WINAPI GetClipboardFormatName16(UINT16,LPSTR,INT16);
HWND16      WINAPI GetClipboardOwner16(void);
HWND16      WINAPI GetClipboardViewer16(void);
void        WINAPI GetClipCursor16(LPRECT16);
DWORD       WINAPI GetCurrentTime16(void);
HCURSOR16   WINAPI GetCursor16(void);
BOOL16      WINAPI GetCursorPos16(LPPOINT16);
HDC16       WINAPI GetDC16(HWND16);
HDC16       WINAPI GetDCEx16(HWND16,HRGN16,DWORD);
HWND16      WINAPI GetDesktopWindow16(void);
INT16       WINAPI GetDlgCtrlID16(HWND16);
HWND16      WINAPI GetDlgItem16(HWND16,INT16);
UINT16      WINAPI GetDlgItemInt16(HWND16,INT16,BOOL16*,BOOL16);
INT16       WINAPI GetDlgItemText16(HWND16,INT16,SEGPTR,UINT16);
UINT16      WINAPI GetDoubleClickTime16(void);
HWND16      WINAPI GetFocus16(void);
HWND16      WINAPI GetForegroundWindow16(void);
BOOL16      WINAPI GetIconInfo16(HICON16,LPICONINFO16);
BOOL16      WINAPI GetInputState16(void);
UINT16      WINAPI GetInternalWindowPos16(HWND16,LPRECT16,LPPOINT16);
INT16       WINAPI GetKeyboardLayoutName16(LPSTR);
INT16       WINAPI GetKeyState16(INT16);
HWND16      WINAPI GetLastActivePopup16(HWND16);
HMENU16     WINAPI GetMenu16(HWND16);
DWORD       WINAPI GetMenuContextHelpId16(HMENU16);
INT16       WINAPI GetMenuItemCount16(HMENU16);
UINT16      WINAPI GetMenuItemID16(HMENU16,INT16);
BOOL16      WINAPI GetMenuItemRect16(HWND16,HMENU16,UINT16,LPRECT16);
UINT16      WINAPI GetMenuState16(HMENU16,UINT16,UINT16);
INT16       WINAPI GetMenuString16(HMENU16,UINT16,LPSTR,INT16,UINT16);
BOOL16      WINAPI GetMessage16(MSG16*,HWND16,UINT16,UINT16);
BOOL16      WINAPI GetMessage32_16(MSG32_16*,HWND16,UINT16,UINT16,BOOL16);
HWND16      WINAPI GetNextDlgGroupItem16(HWND16,HWND16,BOOL16);
HWND16      WINAPI GetNextDlgTabItem16(HWND16,HWND16,BOOL16);
HWND16      WINAPI GetNextWindow16(HWND16,WORD);
HWND16      WINAPI GetOpenClipboardWindow16(void);
HWND16      WINAPI GetParent16(HWND16);
INT16       WINAPI GetPriorityClipboardFormat16(UINT16*,INT16);
HANDLE16    WINAPI GetProp16(HWND16,LPCSTR);
DWORD       WINAPI GetQueueStatus16(UINT16);
BOOL16      WINAPI GetScrollInfo16(HWND16,INT16,LPSCROLLINFO);
INT16       WINAPI GetScrollPos16(HWND16,INT16);
BOOL16      WINAPI GetScrollRange16(HWND16,INT16,LPINT16,LPINT16);
HWND16      WINAPI GetShellWindow16(void);
HMENU16     WINAPI GetSubMenu16(HMENU16,INT16);
COLORREF    WINAPI GetSysColor16(INT16);
HBRUSH16    WINAPI GetSysColorBrush16(INT16);
HWND16      WINAPI GetSysModalWindow16(void);
HMENU16     WINAPI GetSystemMenu16(HWND16,BOOL16);
INT16       WINAPI GetSystemMetrics16(INT16);
DWORD       WINAPI GetTabbedTextExtent16(HDC16,LPCSTR,INT16,INT16,const INT16*);
HWND16      WINAPI GetTopWindow16(HWND16);
BOOL16      WINAPI GetUpdateRect16(HWND16,LPRECT16,BOOL16);
INT16       WINAPI GetUpdateRgn16(HWND16,HRGN16,BOOL16);
HWND16      WINAPI GetWindow16(HWND16,WORD);
HDC16       WINAPI GetWindowDC16(HWND16);
LONG        WINAPI GetWindowLong16(HWND16,INT16);
BOOL16      WINAPI GetWindowPlacement16(HWND16,LPWINDOWPLACEMENT16);
void        WINAPI GetWindowRect16(HWND16,LPRECT16);
HTASK16     WINAPI GetWindowTask16(HWND16);
INT16       WINAPI GetWindowText16(HWND16,SEGPTR,INT16);
INT16       WINAPI GetWindowTextLength16(HWND16);
WORD        WINAPI GetWindowWord16(HWND16,INT16);
ATOM        WINAPI GlobalAddAtom16(LPCSTR);
ATOM        WINAPI GlobalDeleteAtom16(ATOM);
ATOM        WINAPI GlobalFindAtom16(LPCSTR);
UINT16      WINAPI GlobalGetAtomName16(ATOM,LPSTR,INT16);
VOID        WINAPI HideCaret16(HWND16);
BOOL16      WINAPI HiliteMenuItem16(HWND16,HMENU16,UINT16,UINT16);
DWORD       WINAPI IconSize16(void);
void        WINAPI InflateRect16(LPRECT16,INT16,INT16);
HQUEUE16    WINAPI InitThreadInput16(WORD,WORD);
BOOL16      WINAPI InSendMessage16(void);
BOOL16      WINAPI InsertMenu16(HMENU16,UINT16,UINT16,UINT16,SEGPTR);
BOOL16      WINAPI InsertMenuItem16(HMENU16,UINT16,BOOL16,const MENUITEMINFO16*);
BOOL16      WINAPI IntersectRect16(LPRECT16,const RECT16*,const RECT16*);
void        WINAPI InvalidateRect16(HWND16,const RECT16*,BOOL16);
void        WINAPI InvalidateRgn16(HWND16,HRGN16,BOOL16);
void        WINAPI InvertRect16(HDC16,const RECT16*);
BOOL16      WINAPI IsCharAlpha16(CHAR);
BOOL16      WINAPI IsCharAlphaNumeric16(CHAR);
BOOL16      WINAPI IsCharLower16(CHAR);
BOOL16      WINAPI IsCharUpper16(CHAR);
BOOL16      WINAPI IsChild16(HWND16,HWND16);
BOOL16      WINAPI IsClipboardFormatAvailable16(UINT16);
UINT16      WINAPI IsDlgButtonChecked16(HWND16,UINT16);
BOOL16      WINAPI IsIconic16(HWND16);
BOOL16      WINAPI IsMenu16(HMENU16);
BOOL16      WINAPI IsRectEmpty16(const RECT16*);
BOOL16      WINAPI IsWindowEnabled16(HWND16);
BOOL16      WINAPI IsWindowVisible16(HWND16);
BOOL16      WINAPI IsZoomed16(HWND16);
BOOL16      WINAPI KillSystemTimer16(HWND16,UINT16);
BOOL16      WINAPI KillTimer16(HWND16,UINT16);
HBITMAP16   WINAPI LoadBitmap16(HANDLE16,LPCSTR);
HCURSOR16   WINAPI LoadCursor16(HINSTANCE16,LPCSTR);
HICON16     WINAPI LoadIcon16(HINSTANCE16,LPCSTR);
HANDLE16    WINAPI LoadImage16(HINSTANCE16,LPCSTR,UINT16,INT16,INT16,UINT16);
HMENU16     WINAPI LoadMenu16(HINSTANCE16,LPCSTR);
HMENU16     WINAPI LoadMenuIndirect16(LPCVOID);
INT16       WINAPI LoadString16(HINSTANCE16,UINT16,LPSTR,INT16);
BOOL16      WINAPI LockWindowUpdate16(HWND16);
INT16       WINAPI LookupIconIdFromDirectoryEx16(LPBYTE,BOOL16,INT16,INT16,UINT16);
void        WINAPI MapDialogRect16(HWND16,LPRECT16);
void        WINAPI MapWindowPoints16(HWND16,HWND16,LPPOINT16,UINT16);
VOID        WINAPI MessageBeep16(UINT16);
INT16       WINAPI MessageBox16(HWND16,LPCSTR,LPCSTR,UINT16);
INT16       WINAPI MessageBoxIndirect16(LPMSGBOXPARAMS16);
BOOL16      WINAPI ModifyMenu16(HMENU16,UINT16,UINT16,UINT16,SEGPTR);
BOOL16      WINAPI MoveWindow16(HWND16,INT16,INT16,INT16,INT16,BOOL16);
void        WINAPI OffsetRect16(LPRECT16,INT16,INT16);
BOOL16      WINAPI OpenClipboard16(HWND16);
BOOL16      WINAPI OpenIcon16(HWND16);
BOOL16      WINAPI PeekMessage16(MSG16*,HWND16,UINT16,UINT16,UINT16);
BOOL16      WINAPI PeekMessage32_16(MSG32_16*,HWND16,UINT16,UINT16,UINT16,BOOL16);
BOOL16      WINAPI PostAppMessage16(HTASK16,UINT16,WPARAM16,LPARAM);
BOOL16      WINAPI PostMessage16(HWND16,UINT16,WPARAM16,LPARAM);
void        WINAPI PostQuitMessage16(INT16);
BOOL16      WINAPI PtInRect16(const RECT16*,POINT16);
UINT16      WINAPI RealizePalette16(HDC16);
BOOL16      WINAPI RedrawWindow16(HWND16,const RECT16*,HRGN16,UINT16);
ATOM        WINAPI RegisterClass16(const WNDCLASS16*);
ATOM        WINAPI RegisterClassEx16(const WNDCLASSEX16*);
UINT16      WINAPI RegisterClipboardFormat16(LPCSTR);
BOOL        WINAPI RegisterShellHook16(HWND16,UINT16);
INT16       WINAPI ReleaseDC16(HWND16,HDC16);
BOOL16      WINAPI RemoveMenu16(HMENU16,UINT16,UINT16);
HANDLE16    WINAPI RemoveProp16(HWND16,LPCSTR);
VOID        WINAPI ReplyMessage16(LRESULT);
void        WINAPI ScreenToClient16(HWND16,LPPOINT16);
VOID        WINAPI ScrollChildren16(HWND16,UINT16,WPARAM16,LPARAM);
BOOL16      WINAPI ScrollDC16(HDC16,INT16,INT16,const RECT16*,const RECT16*,
                      HRGN16,LPRECT16);
void        WINAPI ScrollWindow16(HWND16,INT16,INT16,const RECT16*,const RECT16*);
INT16       WINAPI ScrollWindowEx16(HWND16,INT16,INT16,const RECT16*,
                                    const RECT16*,HRGN16,LPRECT16,UINT16);
HPALETTE16  WINAPI SelectPalette16(HDC16,HPALETTE16,BOOL16);
LRESULT     WINAPI SendDlgItemMessage16(HWND16,INT16,UINT16,WPARAM16,LPARAM);
LRESULT     WINAPI SendMessage16(HWND16,UINT16,WPARAM16,LPARAM);
HWND16      WINAPI SetActiveWindow16(HWND16);
HWND16      WINAPI SetCapture16(HWND16);
VOID        WINAPI SetCaretBlinkTime16(UINT16);
VOID        WINAPI SetCaretPos16(INT16,INT16);
LONG        WINAPI SetClassLong16(HWND16,INT16,LONG);
WORD        WINAPI SetClassWord16(HWND16,INT16,WORD);
HANDLE16    WINAPI SetClipboardData16(UINT16,HANDLE16);
HWND16      WINAPI SetClipboardViewer16(HWND16);
INT16       WINAPI SetCommBreak16(INT16);
HCURSOR16   WINAPI SetCursor16(HCURSOR16);
void        WINAPI SetCursorPos16(INT16,INT16);
BOOL16      WINAPI SetDeskWallPaper16(LPCSTR);
void        WINAPI SetDlgItemInt16(HWND16,INT16,UINT16,BOOL16);
void        WINAPI SetDlgItemText16(HWND16,INT16,SEGPTR);
VOID        WINAPI SetDoubleClickTime16(UINT16);
HWND16      WINAPI SetFocus16(HWND16);
BOOL16      WINAPI SetForegroundWindow16(HWND16);
void        WINAPI SetInternalWindowPos16(HWND16,UINT16,LPRECT16,LPPOINT16);
BOOL16      WINAPI SetMenu16(HWND16,HMENU16);
BOOL16      WINAPI SetMenuContextHelpId16(HMENU16,DWORD);
BOOL16      WINAPI SetMenuItemBitmaps16(HMENU16,UINT16,UINT16,HBITMAP16,HBITMAP16);
BOOL16      WINAPI SetMessageQueue16(INT16);
HWND16      WINAPI SetParent16(HWND16,HWND16);
BOOL16      WINAPI SetProp16(HWND16,LPCSTR,HANDLE16);
void        WINAPI SetRect16(LPRECT16,INT16,INT16,INT16,INT16);
void        WINAPI SetRectEmpty16(LPRECT16);
INT16       WINAPI SetScrollInfo16(HWND16,INT16,const SCROLLINFO*,BOOL16);
INT16       WINAPI SetScrollPos16(HWND16,INT16,INT16,BOOL16);
void        WINAPI SetScrollRange16(HWND16,INT16,INT16,INT16,BOOL16);
VOID        WINAPI SetSysColors16(INT16,const INT16*,const COLORREF*);
HWND16      WINAPI SetSysModalWindow16(HWND16);
BOOL16      WINAPI SetSystemMenu16(HWND16,HMENU16);
UINT16      WINAPI SetSystemTimer16(HWND16,UINT16,UINT16,TIMERPROC16);
UINT16      WINAPI SetTimer16(HWND16,UINT16,UINT16,TIMERPROC16);
LONG        WINAPI SetWindowLong16(HWND16,INT16,LONG);
BOOL16      WINAPI SetWindowPlacement16(HWND16,const WINDOWPLACEMENT16*);
BOOL16      WINAPI SetWindowPos16(HWND16,HWND16,INT16,INT16,INT16,INT16,WORD);
INT16       WINAPI SetWindowRgn16(HWND16,HRGN16,BOOL16);
BOOL16      WINAPI SetWindowText16(HWND16,SEGPTR);
WORD        WINAPI SetWindowWord16(HWND16,INT16,WORD);
VOID        WINAPI ShowCaret16(HWND16);
INT16       WINAPI ShowCursor16(BOOL16);
void        WINAPI ShowScrollBar16(HWND16,INT16,BOOL16);
VOID        WINAPI ShowOwnedPopups16(HWND16,BOOL16);
BOOL16      WINAPI ShowWindow16(HWND16,INT16);
BOOL16      WINAPI SubtractRect16(LPRECT16,const RECT16*,const RECT16*);
BOOL16      WINAPI SwapMouseButton16(BOOL16);
VOID        WINAPI SwitchToThisWindow16(HWND16,BOOL16);
BOOL16      WINAPI SystemParametersInfo16(UINT16,UINT16,LPVOID,UINT16);
LONG        WINAPI TabbedTextOut16(HDC16,INT16,INT16,LPCSTR,INT16,INT16,const INT16*,INT16);
BOOL16      WINAPI TrackPopupMenu16(HMENU16,UINT16,INT16,INT16,INT16,HWND16,const RECT16*);
INT16       WINAPI TranslateAccelerator16(HWND16,HACCEL16,LPMSG16);
BOOL16      WINAPI TranslateMDISysAccel16(HWND16,LPMSG16);
BOOL16      WINAPI TranslateMessage16(const MSG16*);
BOOL16      WINAPI TranslateMessage32_16(const MSG32_16*,BOOL16);
INT16       WINAPI TransmitCommChar16(INT16,CHAR);
BOOL16      WINAPI UnionRect16(LPRECT16,const RECT16*,const RECT16*);
BOOL16      WINAPI UnregisterClass16(LPCSTR,HINSTANCE16);
VOID        WINAPI UpdateWindow16(HWND16);
VOID        WINAPI ValidateRect16(HWND16,const RECT16*);
VOID        WINAPI ValidateRgn16(HWND16,HRGN16);
HWND16      WINAPI WindowFromDC16(HDC16);
HWND16      WINAPI WindowFromPoint16(POINT16);
BOOL16      WINAPI WinHelp16(HWND16,LPCSTR,UINT16,DWORD);
UINT16      WINAPI WNetAddConnection16(LPCSTR,LPCSTR,LPCSTR);
INT16       WINAPI wvsprintf16(LPSTR,LPCSTR,LPCVOID);
BOOL16      WINAPI DrawState16A(HDC16,HBRUSH16,DRAWSTATEPROC16,LPARAM,WPARAM16,INT16,INT16,INT16,INT16,UINT16);
BOOL16      WINAPI IsDialogMessage16(HWND16,MSG16*);
INT16       WINAPI GetCommError16(INT16,LPCOMSTAT16);
INT16       WINAPI BuildCommDCB16(LPCSTR,LPDCB16);
INT16       WINAPI GetCommState16(INT16,LPDCB16);
INT16       WINAPI SetCommState16(LPDCB16);
INT16       WINAPI lstrcmp16(LPCSTR,LPCSTR);
INT16       WINAPI lstrcmpi16(LPCSTR,LPCSTR);

/* undocumented functions */

typedef VOID (*SYSTEMTIMERPROC)(WORD);

void        WINAPI ConvertDialog32To16(LPVOID,DWORD,LPVOID);
WORD        WINAPI CreateSystemTimer(WORD,SYSTEMTIMERPROC);
VOID        WINAPI DisableSystemTimers16(void);
VOID        WINAPI EnableSystemTimers16(void);
BOOL16      WINAPI EnumTaskWindows16(HTASK16,WNDENUMPROC16,LPARAM);
BOOL16      WINAPI GrayString16(HDC16,HBRUSH16,GRAYSTRINGPROC16,LPARAM,
                                INT16,INT16,INT16,INT16,INT16);
DWORD       WINAPI GetFileResourceSize16(LPCSTR,LPCSTR,LPCSTR,LPDWORD);
DWORD       WINAPI GetFileResource16(LPCSTR,LPCSTR,LPCSTR,DWORD,DWORD,LPVOID);
FARPROC16   WINAPI SetTaskSignalProc(HTASK16,FARPROC16);


/* DragObject stuff */

typedef struct
{
    HWND16     hWnd;
    HANDLE16   hScope;
    WORD       wFlags;
    HANDLE16   hList;
    HANDLE16   hOfStruct;
    POINT16 pt WINE_PACKED;
    LONG       l WINE_PACKED;
} DRAGINFO16, *LPDRAGINFO16;

#define DRAGOBJ_PROGRAM		0x0001
#define DRAGOBJ_DATA		0x0002
#define DRAGOBJ_DIRECTORY	0x0004
#define DRAGOBJ_MULTIPLE	0x0008
#define DRAGOBJ_EXTERNAL	0x8000

#define DRAG_PRINT		0x544E5250
#define DRAG_FILE		0x454C4946

#endif /* __WINE_WINE_WINUSER16_H */
