Author: cfinck
Date: Thu Nov 29 00:40:39 2007
New Revision: 30842
URL:
http://svn.reactos.org/svn/reactos?rev=30842&view=rev
Log:
Change widl to use only host headers.
Part of my ongoing attempt to separate host and target headers properly (see also bug
2779)
- Add a new header "nls.h" in the host directory, which contains a bunch of
definitions needed for both widl and wrc.
- Add some more important defines to "typedefs.h".
Added:
trunk/reactos/include/host/nls.h (with props)
Modified:
trunk/reactos/include/host/typedefs.h
trunk/reactos/tools/widl/client.c
trunk/reactos/tools/widl/hash.c
trunk/reactos/tools/widl/header.c
trunk/reactos/tools/widl/parser.tab.c
trunk/reactos/tools/widl/parser.y
trunk/reactos/tools/widl/server.c
trunk/reactos/tools/widl/typegen.c
trunk/reactos/tools/widl/typelib.c
trunk/reactos/tools/widl/typelib_struct.h
trunk/reactos/tools/widl/widl.mak
trunk/reactos/tools/widl/widltypes.h
trunk/reactos/tools/widl/write_msft.c
trunk/reactos/tools/wrc/wrcrostypes.h
Added: trunk/reactos/include/host/nls.h
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/include/host/nls.h?rev=308…
==============================================================================
--- trunk/reactos/include/host/nls.h (added)
+++ trunk/reactos/include/host/nls.h Thu Nov 29 00:40:39 2007
@@ -1,0 +1,134 @@
+/*
+ PROJECT: ReactOS
+ LICENSE: GPL v2 or any later version
+ FILE: include/host/nls.h
+ PURPOSE: NLS definitions for host tools
+ COPYRIGHT: Copyright 2007 Colin Finck <mail(a)colinfinck.de>
+*/
+
+#ifndef _HOST_NLS_H
+#define _HOST_NLS_H
+
+#include <host/typedefs.h>
+
+typedef DWORD LCID;
+
+#define MAKELANGID(p,s) ((((WORD)(s))<<10)|(WORD)(p))
+#define PRIMARYLANGID(l) ((WORD)(l)&0x3ff)
+#define SUBLANGID(l) ((WORD)(l)>>10)
+#define LANGIDFROMLCID(l) ((WORD)(l))
+
+#define LANG_AFRIKAANS 0x36
+#define LANG_ALBANIAN 0x1c
+#define LANG_ARABIC 0x01
+#define LANG_ARMENIAN 0x2b
+#define LANG_ASSAMESE 0x4d
+#define LANG_AZERI 0x2c
+#define LANG_BASQUE 0x2d
+#define LANG_BELARUSIAN 0x23
+#define LANG_BENGALI 0x45
+#define LANG_BULGARIAN 0x02
+#define LANG_CATALAN 0x03
+#define LANG_CHINESE 0x04
+#define LANG_CROATIAN 0x1a
+#define LANG_CZECH 0x05
+#define LANG_DANISH 0x06
+#define LANG_DIVEHI 0x65
+#define LANG_DUTCH 0x13
+#define LANG_ENGLISH 0x09
+#define LANG_ESTONIAN 0x25
+#define LANG_FAEROESE 0x38
+#define LANG_FARSI 0x29
+#define LANG_FINNISH 0x0b
+#define LANG_FRENCH 0x0c
+#define LANG_GALICIAN 0x56
+#define LANG_GEORGIAN 0x37
+#define LANG_GERMAN 0x07
+#define LANG_GREEK 0x08
+#define LANG_GUJARATI 0x47
+#define LANG_HEBREW 0x0d
+#define LANG_HINDI 0x39
+#define LANG_HUNGARIAN 0x0e
+#define LANG_ICELANDIC 0x0f
+#define LANG_INDONESIAN 0x21
+#define LANG_IRISH 0x3c
+#define LANG_ITALIAN 0x10
+#define LANG_JAPANESE 0x11
+#define LANG_KANNADA 0x4b
+#define LANG_KASHMIRI 0x60
+#define LANG_KAZAK 0x3f
+#define LANG_KONKANI 0x57
+#define LANG_KOREAN 0x12
+#define LANG_KYRGYZ 0x40
+#define LANG_LATVIAN 0x26
+#define LANG_LITHUANIAN 0x27
+#define LANG_MACEDONIAN 0x2f
+#define LANG_MANIPURI 0x58
+#define LANG_MALAY 0x3e
+#define LANG_MALAYALAM 0x4c
+#define LANG_MARATHI 0x4e
+#define LANG_MONGOLIAN 0x50
+#define LANG_NEPALI 0x61
+#define LANG_NEUTRAL 0x00
+#define LANG_NORWEGIAN 0x14
+#define LANG_ORIYA 0x48
+#define LANG_POLISH 0x15
+#define LANG_PORTUGUESE 0x16
+#define LANG_PUNJABI 0x46
+#define LANG_ROMANIAN 0x18
+#define LANG_ROMANSH 0x17
+#define LANG_RUSSIAN 0x19
+#define LANG_SAMI 0x3b
+#define LANG_SANSKRIT 0x4f
+#define LANG_SERBIAN 0x1a
+#define LANG_SINDHI 0x59
+#define LANG_SLOVAK 0x1b
+#define LANG_SLOVENIAN 0x24
+#define LANG_SPANISH 0x0a
+#define LANG_SWAHILI 0x41
+#define LANG_SWEDISH 0x1d
+#define LANG_SYRIAC 0x5a
+#define LANG_TAJIK 0x28
+#define LANG_TAMIL 0x49
+#define LANG_TATAR 0x44
+#define LANG_TELUGU 0x4a
+#define LANG_THAI 0x1e
+#define LANG_TURKISH 0x1f
+#define LANG_UKRAINIAN 0x22
+#define LANG_URDU 0x20
+#define LANG_UZBEK 0x43
+#define LANG_VIETNAMESE 0x2a
+
+/* non standard; keep the number high enough (but < 0xff) */
+#define LANG_ESPERANTO 0x8f
+#define LANG_WALON 0x90
+#define LANG_CORNISH 0x91
+#define LANG_WELSH 0x92
+#define LANG_BRETON 0x93
+
+/* FIXME: these are not in the Windows header */
+#define LANG_GAELIC 0x94
+#define LANG_MALTESE 0x3a
+#define LANG_RHAETO_ROMANCE 0x17
+#define LANG_SAAMI 0x3b
+#define LANG_SORBIAN 0x2e
+#define LANG_LOWER_SORBIAN 0x2e
+#define LANG_UPPER_SORBIAN 0x2e
+#define LANG_SUTU 0x30
+#define LANG_TSONGA 0x31
+#define LANG_TSWANA 0x32
+#define LANG_VENDA 0x33
+#define LANG_XHOSA 0x34
+#define LANG_ZULU 0x35
+
+/* Sublanguages */
+#define SUBLANG_AZERI_CYRILLIC 0x02
+#define SUBLANG_CHINESE_SINGAPORE 0x04
+#define SUBLANG_CHINESE_SIMPLIFIED 0x02
+#define SUBLANG_DEFAULT 0x01
+#define SUBLANG_NEUTRAL 0x00
+#define SUBLANG_NORWEGIAN_NYNORSK 0x02
+#define SUBLANG_SERBIAN_CYRILLIC 0x03
+#define SUBLANG_UZBEK_CYRILLIC 0x02
+
+#endif
Propchange: trunk/reactos/include/host/nls.h
------------------------------------------------------------------------------
svn:eol-style = native
Modified: trunk/reactos/include/host/typedefs.h
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/include/host/typedefs.h?re…
==============================================================================
--- trunk/reactos/include/host/typedefs.h (original)
+++ trunk/reactos/include/host/typedefs.h Thu Nov 29 00:40:39 2007
@@ -4,6 +4,7 @@
FILE: include/host/typedefs.h
PURPOSE: Type definitions and useful macros for host tools
COPYRIGHT: Copyright 2007 Hervé Poussineau
+ Copyright 2007 Colin Finck <mail(a)colinfinck.de>
*/
#ifndef _TYPEDEFS_HOST_H
@@ -21,6 +22,7 @@
#error Unknown compiler
#endif
+/* Function attributes for GCC */
#if !defined(_MSC_VER) && !defined(__fastcall)
#define __fastcall __attribute__((fastcall))
#endif
@@ -31,6 +33,7 @@
#define __stdcall __attribute__((stdcall))
#endif
+/* Basic definitions */
#define UNIMPLEMENTED { printf("%s unimplemented\n", __FUNCTION__); exit(1); }
#define ASSERT(x) assert(x)
#define ASSERTMSG(x, m) assert(x)
@@ -53,6 +56,7 @@
#define ANYSIZE_ARRAY 1
+/* Type definitions */
typedef void VOID, *PVOID, *HANDLE;
typedef HANDLE HKEY, *PHKEY;
typedef unsigned char UCHAR, *PUCHAR, BYTE, *LPBYTE;
@@ -66,6 +70,8 @@
typedef unsigned int ULONG, *PULONG, DWORD, *LPDWORD;
typedef long long LONGLONG;
typedef unsigned long long ULONGLONG;
+typedef int INT;
+typedef unsigned int UINT, *PUINT, *LPUINT;
typedef UCHAR BOOLEAN, *PBOOLEAN;
typedef int BOOL;
typedef long int W64 LONG_PTR, *PLONG_PTR;
@@ -75,9 +81,11 @@
typedef const unsigned short *PCWSTR, *LPCWSTR;
typedef int NTSTATUS;
typedef int POOL_TYPE;
+typedef LONG HRESULT;
#define MAXUSHORT USHRT_MAX
+/* Widely used structures */
#include <host/pshpack4.h>
typedef struct _RTL_BITMAP
{
@@ -122,9 +130,7 @@
} UNICODE_STRING, *PUNICODE_STRING;
#include <host/poppack.h>
-//
-// List Functions
-//
+/* List Functions */
static __inline
VOID
InitializeListHead(
@@ -220,13 +226,25 @@
typedef const UNICODE_STRING *PCUNICODE_STRING;
-#define NT_SUCCESS(x) ((x)>=0)
-#define FIELD_OFFSET(t,f) ((LONG_PTR)&(((t*)0)->f))
-#define RTL_CONSTANT_STRING(s) { sizeof(s)-sizeof((s)[0]), sizeof(s), s }
-#define CONTAINING_RECORD(address, type, field) ((type *)(((ULONG_PTR)address) -
(ULONG_PTR)(&(((type *)0)->field))))
-#define RtlZeroMemory(Destination, Length) memset(Destination, 0, Length)
-#define RtlCopyMemory(Destination, Source, Length) memcpy(Destination, Source, Length)
-#define RtlMoveMemory(Destination, Source, Length) memmove(Destination, Source, Length)
+/* Widely used macros */
+#define min(a, b) ((a) < (b) ? (a) : (b))
+#define max(a,b) ((a) < (b) ? (b) : (a))
+
+#define LOBYTE(w) ((BYTE)(w))
+#define HIBYTE(w) ((BYTE)(((WORD)(w)>>8)&0xFF))
+#define LOWORD(l) ((WORD)((DWORD_PTR)(l)))
+#define HIWORD(l) ((WORD)(((DWORD_PTR)(l)>>16)&0xFFFF))
+#define MAKEWORD(a,b) ((WORD)(((BYTE)(a))|(((WORD)((BYTE)(b)))<<8)))
+#define MAKELONG(a,b) ((LONG)(((WORD)(a))|(((DWORD)((WORD)(b)))<<16)))
+
+#define NT_SUCCESS(x) ((x)>=0)
+#define FIELD_OFFSET(t,f) ((LONG_PTR)&(((t*)0)->f))
+#define RTL_CONSTANT_STRING(s) { sizeof(s)-sizeof((s)[0]), sizeof(s), s }
+#define CONTAINING_RECORD(address, type, field) ((type *)(((ULONG_PTR)address) -
(ULONG_PTR)(&(((type *)0)->field))))
+
+#define RtlZeroMemory(Destination, Length) memset(Destination, 0, Length)
+#define RtlCopyMemory(Destination, Source, Length) memcpy(Destination, Source,
Length)
+#define RtlMoveMemory(Destination, Source, Length) memmove(Destination, Source,
Length)
/* Prevent inclusion of some other headers */
#define __INTERNAL_DEBUG
Modified: trunk/reactos/tools/widl/client.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/tools/widl/client.c?rev=30…
==============================================================================
--- trunk/reactos/tools/widl/client.c (original)
+++ trunk/reactos/tools/widl/client.c Thu Nov 29 00:40:39 2007
@@ -29,12 +29,12 @@
#include <ctype.h>
#include <signal.h>
-#include "windef.h"
-
#include "widl.h"
#include "utils.h"
#include "parser.h"
#include "header.h"
+
+#include <host/typedefs.h>
#include "widltypes.h"
#include "typelib.h"
Modified: trunk/reactos/tools/widl/hash.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/tools/widl/hash.c?rev=3084…
==============================================================================
--- trunk/reactos/tools/widl/hash.c (original)
+++ trunk/reactos/tools/widl/hash.c Thu Nov 29 00:40:39 2007
@@ -21,10 +21,7 @@
#include <stdio.h>
#include <stdarg.h>
-#include "windef.h"
-#include "winbase.h"
-#include "winnls.h"
-
+#include <host/nls.h>
#include "hash.h"
static const unsigned char Lookup_16[128 * 3] = {
Modified: trunk/reactos/tools/widl/header.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/tools/widl/header.c?rev=30…
==============================================================================
--- trunk/reactos/tools/widl/header.c (original)
+++ trunk/reactos/tools/widl/header.c Thu Nov 29 00:40:39 2007
@@ -30,7 +30,6 @@
#include <ctype.h>
#include <signal.h>
-#include "windef.h"
#include "widl.h"
#include "utils.h"
#include "parser.h"
Modified: trunk/reactos/tools/widl/parser.tab.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/tools/widl/parser.tab.c?re…
==============================================================================
--- trunk/reactos/tools/widl/parser.tab.c (original)
+++ trunk/reactos/tools/widl/parser.tab.c Thu Nov 29 00:40:39 2007
@@ -356,8 +356,6 @@
#include <alloca.h>
#endif
-#include "windef.h"
-
#include "widl.h"
#include "utils.h"
#include "parser.h"
Modified: trunk/reactos/tools/widl/parser.y
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/tools/widl/parser.y?rev=30…
==============================================================================
--- trunk/reactos/tools/widl/parser.y (original)
+++ trunk/reactos/tools/widl/parser.y Thu Nov 29 00:40:39 2007
@@ -30,8 +30,6 @@
#ifdef HAVE_ALLOCA_H
#include <alloca.h>
#endif
-
-#include "windef.h"
#include "widl.h"
#include "utils.h"
Modified: trunk/reactos/tools/widl/server.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/tools/widl/server.c?rev=30…
==============================================================================
--- trunk/reactos/tools/widl/server.c (original)
+++ trunk/reactos/tools/widl/server.c Thu Nov 29 00:40:39 2007
@@ -35,7 +35,6 @@
#include "utils.h"
#include "parser.h"
#include "header.h"
-#include "windef.h"
#include "widl.h"
#include "typelib.h"
Modified: trunk/reactos/tools/widl/typegen.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/tools/widl/typegen.c?rev=3…
==============================================================================
--- trunk/reactos/tools/widl/typegen.c (original)
+++ trunk/reactos/tools/widl/typegen.c Thu Nov 29 00:40:39 2007
@@ -37,7 +37,6 @@
#include "utils.h"
#include "parser.h"
#include "header.h"
-#include "windef.h"
#include "wine/list.h"
#include "widl.h"
Modified: trunk/reactos/tools/widl/typelib.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/tools/widl/typelib.c?rev=3…
==============================================================================
--- trunk/reactos/tools/widl/typelib.c (original)
+++ trunk/reactos/tools/widl/typelib.c Thu Nov 29 00:40:39 2007
@@ -34,9 +34,6 @@
#define NONAMELESSUNION
#define NONAMELESSSTRUCT
-
-#include "windef.h"
-#include "winbase.h"
#include "widl.h"
#include "utils.h"
Modified: trunk/reactos/tools/widl/typelib_struct.h
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/tools/widl/typelib_struct.…
==============================================================================
--- trunk/reactos/tools/widl/typelib_struct.h (original)
+++ trunk/reactos/tools/widl/typelib_struct.h Thu Nov 29 00:40:39 2007
@@ -302,7 +302,7 @@
*
*/
-#include "pshpack1.h"
+#include <host/pshpack1.h>
typedef struct {
/*00*/ DWORD SLTG_magic; /* 0x47544c53 == "SLTG" */
@@ -599,7 +599,7 @@
WORD typeofarray
*/
-#include "poppack.h"
+#include <host/poppack.h>
/*---------------------------END--------------------------------------------*/
#endif
Modified: trunk/reactos/tools/widl/widl.mak
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/tools/widl/widl.mak?rev=30…
==============================================================================
--- trunk/reactos/tools/widl/widl.mak (original)
+++ trunk/reactos/tools/widl/widl.mak Thu Nov 29 00:40:39 2007
@@ -59,7 +59,7 @@
WIDL_HOST_CFLAGS = \
-DINT16=SHORT -DYYDEBUG=1 \
-I$(WIDL_BASE) -I$(WPP_BASE) \
- -Iinclude/reactos/wine -Iinclude/reactos -Iinclude/psdk \
+ -Iinclude/reactos/wine -Iinclude/reactos -Iinclude \
-I$(INTERMEDIATE_)include $(TOOLS_CFLAGS)
WIDL_HOST_LFLAGS = $(TOOLS_LFLAGS)
Modified: trunk/reactos/tools/widl/widltypes.h
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/tools/widl/widltypes.h?rev…
==============================================================================
--- trunk/reactos/tools/widl/widltypes.h (original)
+++ trunk/reactos/tools/widl/widltypes.h Thu Nov 29 00:40:39 2007
@@ -21,6 +21,12 @@
#ifndef __WIDL_WIDLTYPES_H
#define __WIDL_WIDLTYPES_H
+#include <host/typedefs.h>
+#define S_OK ((HRESULT)0x00000000L)
+#define S_FALSE ((HRESULT)0x00000001L)
+#define E_OUTOFMEMORY ((HRESULT)0x8007000EL)
+#define TYPE_E_IOERROR ((HRESULT)0x80028CA2L)
+
#include <stdarg.h>
#include "guiddef.h"
#include "wine/rpcfc.h"
@@ -29,9 +35,6 @@
#define UUID_DEFINED
typedef GUID UUID;
#endif
-
-#define TRUE 1
-#define FALSE 0
typedef struct _attr_t attr_t;
typedef struct _expr_t expr_t;
Modified: trunk/reactos/tools/widl/write_msft.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/tools/widl/write_msft.c?re…
==============================================================================
--- trunk/reactos/tools/widl/write_msft.c (original)
+++ trunk/reactos/tools/widl/write_msft.c Thu Nov 29 00:40:39 2007
@@ -40,10 +40,7 @@
#define NONAMELESSUNION
#define NONAMELESSSTRUCT
-#include "winerror.h"
-#include "windef.h"
-#include "winbase.h"
-#include "winnls.h"
+#include <host/nls.h>
#include "widltypes.h"
#include "typelib.h"
Modified: trunk/reactos/tools/wrc/wrcrostypes.h
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/tools/wrc/wrcrostypes.h?re…
==============================================================================
--- trunk/reactos/tools/wrc/wrcrostypes.h (original)
+++ trunk/reactos/tools/wrc/wrcrostypes.h Thu Nov 29 00:40:39 2007
@@ -10,19 +10,13 @@
#define _WRC_ROSTYPES_H
#include <host/typedefs.h>
+#include <host/nls.h>
#include <string.h>
// Definitions copied from various <win....h> files
// We only want to include host headers, so we define them manually
-#define LOBYTE(w) ((BYTE)(w))
-#define HIBYTE(w) ((BYTE)(((WORD)(w)>>8)&0xFF))
-#define LOWORD(l) ((WORD)((DWORD_PTR)(l)))
-#define HIWORD(l) ((WORD)(((DWORD_PTR)(l)>>16)&0xFFFF))
-#define MAKELANGID(p,s) ((((WORD)(s))<<10)|(WORD)(p))
#define VS_FFI_SIGNATURE 0xFEEF04BD
#define VS_FFI_STRUCVERSION 0x10000
-#define PRIMARYLANGID(l) ((WORD)(l)&0x3ff)
-#define SUBLANGID(l) ((WORD)(l)>>10)
#define BS_3STATE 5
#define BS_AUTO3STATE 6
@@ -60,104 +54,6 @@
#define WS_POPUPWINDOW 0x80880000
#define WS_TABSTOP 0x10000
#define WS_VISIBLE 0x10000000
-
-#define LANG_AFRIKAANS 0x36
-#define LANG_ALBANIAN 0x1c
-#define LANG_ARABIC 0x01
-#define LANG_ARMENIAN 0x2b
-#define LANG_AZERI 0x2c
-#define LANG_BASQUE 0x2d
-#define LANG_BELARUSIAN 0x23
-#define LANG_BULGARIAN 0x02
-#define LANG_CATALAN 0x03
-#define LANG_CHINESE 0x04
-#define LANG_CROATIAN 0x1a
-#define LANG_CZECH 0x05
-#define LANG_DANISH 0x06
-#define LANG_DIVEHI 0x65
-#define LANG_DUTCH 0x13
-#define LANG_ENGLISH 0x09
-#define LANG_ESTONIAN 0x25
-#define LANG_FAEROESE 0x38
-#define LANG_FARSI 0x29
-#define LANG_FINNISH 0x0b
-#define LANG_FRENCH 0x0c
-#define LANG_GALICIAN 0x56
-#define LANG_GEORGIAN 0x37
-#define LANG_GERMAN 0x07
-#define LANG_GREEK 0x08
-#define LANG_GUJARATI 0x47
-#define LANG_HEBREW 0x0d
-#define LANG_HINDI 0x39
-#define LANG_HUNGARIAN 0x0e
-#define LANG_ICELANDIC 0x0f
-#define LANG_INDONESIAN 0x21
-#define LANG_ITALIAN 0x10
-#define LANG_JAPANESE 0x11
-#define LANG_KANNADA 0x4b
-#define LANG_KAZAK 0x3f
-#define LANG_KONKANI 0x57
-#define LANG_KOREAN 0x12
-#define LANG_KYRGYZ 0x40
-#define LANG_LATVIAN 0x26
-#define LANG_LITHUANIAN 0x27
-#define LANG_MACEDONIAN 0x2f
-#define LANG_MALAY 0x3e
-#define LANG_MARATHI 0x4e
-#define LANG_MONGOLIAN 0x50
-#define LANG_NEUTRAL 0x00
-#define LANG_NORWEGIAN 0x14
-#define LANG_POLISH 0x15
-#define LANG_PORTUGUESE 0x16
-#define LANG_PUNJABI 0x46
-#define LANG_ROMANIAN 0x18
-#define LANG_RUSSIAN 0x19
-#define LANG_SANSKRIT 0x4f
-#define LANG_SERBIAN 0x1a
-#define LANG_SLOVAK 0x1b
-#define LANG_SLOVENIAN 0x24
-#define LANG_SPANISH 0x0a
-#define LANG_SWAHILI 0x41
-#define LANG_SWEDISH 0x1d
-#define LANG_SYRIAC 0x5a
-#define LANG_TAMIL 0x49
-#define LANG_TATAR 0x44
-#define LANG_TELUGU 0x4a
-#define LANG_THAI 0x1e
-#define LANG_TURKISH 0x1f
-#define LANG_UKRAINIAN 0x22
-#define LANG_URDU 0x20
-#define LANG_UZBEK 0x43
-#define LANG_VIETNAMESE 0x2a
-
-/* non standard; keep the number high enough (but < 0xff) */
-#define LANG_ESPERANTO 0x8f
-#define LANG_WALON 0x90
-#define LANG_CORNISH 0x91
-#define LANG_WELSH 0x92
-#define LANG_BRETON 0x93
-
-/* FIXME: these are not in the Windows header */
-#define LANG_GAELIC 0x94
-#define LANG_MALTESE 0x3a
-#define LANG_RHAETO_ROMANCE 0x17
-#define LANG_SAAMI 0x3b
-#define LANG_SORBIAN 0x2e
-#define LANG_LOWER_SORBIAN 0x2e
-#define LANG_UPPER_SORBIAN 0x2e
-#define LANG_SUTU 0x30
-#define LANG_TSONGA 0x31
-#define LANG_TSWANA 0x32
-#define LANG_VENDA 0x33
-#define LANG_XHOSA 0x34
-#define LANG_ZULU 0x35
-
-#define SUBLANG_AZERI_CYRILLIC 0x02
-#define SUBLANG_CHINESE_SINGAPORE 0x04
-#define SUBLANG_CHINESE_SIMPLIFIED 0x02
-#define SUBLANG_NEUTRAL 0x00
-#define SUBLANG_SERBIAN_CYRILLIC 0x03
-#define SUBLANG_UZBEK_CYRILLIC 0x02
#include <host/pshpack2.h>
typedef struct tagBITMAPFILEHEADER {