Skip to content

Commit 8608467

Browse files
MishaProductionstkreuzer
authored andcommitted
[WIDL][WPP] Sync to wine-10.0
Update widl/wpp tools to Wine-10.0. This is needed for compiling WinRT idl files, and for various winesyncs.
1 parent ff87209 commit 8608467

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

45 files changed

+9699
-7123
lines changed

dll/win32/actxprxy/precomp.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
#define DECLSPEC_HIDDEN
99

1010
#include <objbase.h>
11-
#include <rpcproxy.h>
1211
#include <rpc.h>
1312
#include <rpcndr.h>
1413
#include <windows.h>

dll/win32/rpcrt4/ndr_typelib.c

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -790,6 +790,9 @@ static size_t write_type_tfs(ITypeInfo *typeinfo, unsigned char *str,
790790
ITypeInfo *refinfo;
791791
TYPEATTR *attr;
792792
size_t off;
793+
#ifdef __REACTOS__
794+
GUID guid;
795+
#endif
793796

794797
TRACE("vt %d%s\n", desc->vt, toplevel ? " (toplevel)" : "");
795798

@@ -811,11 +814,25 @@ static size_t write_type_tfs(ITypeInfo *typeinfo, unsigned char *str,
811814
case TKIND_RECORD:
812815
off = write_struct_tfs(refinfo, str, len, attr);
813816
break;
817+
#ifdef __REACTOS__
818+
case TKIND_INTERFACE:
819+
case TKIND_DISPATCH:
820+
/* These are treated as if they were interface pointers. */
821+
off = *len;
822+
write_ip_tfs(str, len, &attr->guid);
823+
break;
824+
case TKIND_COCLASS:
825+
off = *len;
826+
get_default_iface(refinfo, attr->cImplTypes, &guid);
827+
write_ip_tfs(str, len, &guid);
828+
break;
829+
#else
814830
case TKIND_INTERFACE:
815831
case TKIND_DISPATCH:
816832
case TKIND_COCLASS:
817833
assert(0);
818834
break;
835+
#endif
819836
case TKIND_ALIAS:
820837
off = write_type_tfs(refinfo, str, len, &attr->tdescAlias, toplevel, onstack);
821838
break;
@@ -1001,6 +1018,14 @@ static HRESULT get_param_info(ITypeInfo *typeinfo, TYPEDESC *tdesc, int is_in,
10011018
hr = get_param_info(refinfo, &attr->tdescAlias, is_in, is_out,
10021019
server_size, flags, basetype, tfs_tdesc);
10031020
break;
1021+
#ifdef __REACTOS__
1022+
case TKIND_INTERFACE:
1023+
case TKIND_DISPATCH:
1024+
case TKIND_COCLASS:
1025+
/* These are treated as if they were interface pointers. */
1026+
*flags |= MustFree;
1027+
break;
1028+
#endif
10041029
default:
10051030
FIXME("unhandled kind %#x\n", attr->typekind);
10061031
hr = E_NOTIMPL;

media/doc/WINESYNC.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@ The following build tools are shared with Wine.
1818
base/ctf/msctf # Forked at Wine-10.12
1919

2020
sdk/tools/unicode # Synced to WineStaging-4.18
21-
sdk/tools/widl # Synced to WineStaging-4.0
22-
sdk/tools/wpp # Synced to WineStaging-2.9
21+
sdk/tools/widl # Synced to Wine-10.0
22+
sdk/tools/wpp # Synced to Wine-10.0 (Module was moved into wrc tool)
2323

2424
The following libraries are shared with Wine.
2525

sdk/cmake/widl-support.cmake

Lines changed: 18 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,27 @@
11

22
#idl files support
33
if(ARCH STREQUAL "i386")
4-
set(IDL_FLAGS -m32 --win32 -b i386-x-y)
4+
set(IDL_FLAGS -m32 --win32 -b i386-x-y -nostdinc)
55
elseif(ARCH STREQUAL "amd64")
6-
set(IDL_FLAGS -m64 --win64 -b amd64-x-y)
6+
set(IDL_FLAGS -m64 --win64 -b amd64-x-y -nostdinc)
77
else()
8-
set(IDL_FLAGS -b ${ARCH}-x-y)
8+
set(IDL_FLAGS -b ${ARCH}-x-y -nostdinc)
99
endif()
1010

1111
function(add_typelib)
1212
get_includes(INCLUDES)
1313
get_defines(DEFINES)
14+
get_includes(LIBS)
15+
string(REPLACE "-I" "-L" LIBS "${LIBS}")
16+
1417
foreach(FILE ${ARGN})
1518
if(${FILE} STREQUAL "std_ole_v1.idl")
1619
set(IDL_FLAGS ${IDL_FLAGS} --oldtlb)
1720
endif()
1821
get_filename_component(NAME ${FILE} NAME_WE)
1922
add_custom_command(
2023
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${NAME}.tlb
21-
COMMAND native-widl ${INCLUDES} ${DEFINES} ${IDL_FLAGS} -t -o ${CMAKE_CURRENT_BINARY_DIR}/${NAME}.tlb ${CMAKE_CURRENT_SOURCE_DIR}/${FILE}
24+
COMMAND native-widl ${INCLUDES} ${LIBS} ${DEFINES} ${IDL_FLAGS} -t -o ${CMAKE_CURRENT_BINARY_DIR}/${NAME}.tlb ${CMAKE_CURRENT_SOURCE_DIR}/${FILE}
2225
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${FILE} native-widl)
2326
list(APPEND OBJECTS ${CMAKE_CURRENT_BINARY_DIR}/${NAME}.tlb)
2427
endforeach()
@@ -28,11 +31,11 @@ function(add_idl_headers TARGET)
2831
get_includes(INCLUDES)
2932
get_defines(DEFINES)
3033
foreach(FILE ${ARGN})
31-
get_filename_component(NAME ${FILE} NAME_WE)
34+
get_filename_component(NAME ${FILE} NAME_WLE)
3235
set(HEADER ${CMAKE_CURRENT_BINARY_DIR}/${NAME}.h)
3336
add_custom_command(
3437
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${NAME}.h
35-
COMMAND native-widl ${INCLUDES} ${DEFINES} ${IDL_FLAGS} -h -o ${CMAKE_CURRENT_BINARY_DIR}/${NAME}.h ${FILE}
38+
COMMAND native-widl ${INCLUDES} ${DEFINES} ${IDL_FLAGS} -Oicf -h -o ${CMAKE_CURRENT_BINARY_DIR}/${NAME}.h ${FILE}
3639
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${FILE} native-widl
3740
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
3841
list(APPEND HEADERS ${HEADER})
@@ -45,7 +48,7 @@ function(add_rpcproxy_files)
4548
get_defines(DEFINES)
4649

4750
foreach(FILE ${ARGN})
48-
get_filename_component(NAME ${FILE} NAME_WE)
51+
get_filename_component(NAME ${FILE} NAME_WLE)
4952
# Most proxy idl's have names like <proxyname>_<original>.idl
5053
# We use this to create a dependency from the proxy to the original idl
5154
string(REPLACE "_" ";" SPLIT_FILE ${FILE})
@@ -62,16 +65,16 @@ function(add_rpcproxy_files)
6265
add_custom_command(
6366
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${NAME}_p.c ${CMAKE_CURRENT_BINARY_DIR}/${NAME}_p.h
6467
# We generate the two files in two passes because WIDL accepts only one custom file name as output
65-
COMMAND native-widl ${INCLUDES} ${DEFINES} ${IDL_FLAGS} -p -o ${CMAKE_CURRENT_BINARY_DIR}/${NAME}_p.c -H ${NAME}_p.h ${FILE}
66-
COMMAND native-widl ${INCLUDES} ${DEFINES} ${IDL_FLAGS} -h -o ${CMAKE_CURRENT_BINARY_DIR}/${NAME}_p.h ${FILE}
68+
COMMAND native-widl ${INCLUDES} ${DEFINES} ${IDL_FLAGS} -Oicf -p -o ${CMAKE_CURRENT_BINARY_DIR}/${NAME}_p.c -H ${NAME}_p.h ${FILE}
69+
COMMAND native-widl ${INCLUDES} ${DEFINES} ${IDL_FLAGS} -Oicf -h -o ${CMAKE_CURRENT_BINARY_DIR}/${NAME}_p.h ${FILE}
6770
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${FILE} ${EXTRA_DEP} native-widl
6871
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
6972
endforeach()
7073

7174
# Extra pass to generate dlldata
7275
add_custom_command(
7376
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/proxy.dlldata.c
74-
COMMAND native-widl ${INCLUDES} ${DEFINES} ${IDL_FLAGS} --dlldata-only -o ${CMAKE_CURRENT_BINARY_DIR}/proxy.dlldata.c ${IDLS}
77+
COMMAND native-widl ${INCLUDES} ${DEFINES} ${IDL_FLAGS} -Oicf --dlldata-only -o ${CMAKE_CURRENT_BINARY_DIR}/proxy.dlldata.c ${IDLS}
7578
DEPENDS ${IDL_DEPS} native-widl
7679
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
7780
endfunction()
@@ -91,13 +94,13 @@ function(add_rpc_files __type)
9194
message(FATAL_ERROR "Please pass either server or client as argument to add_rpc_files")
9295
endif()
9396
foreach(FILE ${ARGN})
94-
get_filename_component(__name ${FILE} NAME_WE)
97+
get_filename_component(__name ${FILE} NAME_WLE)
9598
set(__name ${__name}${__suffix})
9699
add_custom_command(
97100
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${__name}.c ${CMAKE_CURRENT_BINARY_DIR}/${__name}.h
98101
# We generate the two files in two passes because WIDL accepts only one custom file name as output
99-
COMMAND native-widl ${INCLUDES} ${DEFINES} ${IDL_FLAGS} ${__additional_flags} ${__server_client} -o ${CMAKE_CURRENT_BINARY_DIR}/${__name}.c -H ${__name}.h ${FILE}
100-
COMMAND native-widl ${INCLUDES} ${DEFINES} ${IDL_FLAGS} ${__additional_flags} -h -o ${CMAKE_CURRENT_BINARY_DIR}/${__name}.h ${FILE}
102+
COMMAND native-widl ${INCLUDES} ${DEFINES} ${IDL_FLAGS} -Oicf ${__additional_flags} ${__server_client} -o ${CMAKE_CURRENT_BINARY_DIR}/${__name}.c -H ${__name}.h ${FILE}
103+
COMMAND native-widl ${INCLUDES} ${DEFINES} ${IDL_FLAGS} -Oicf ${__additional_flags} -h -o ${CMAKE_CURRENT_BINARY_DIR}/${__name}.h ${FILE}
101104
DEPENDS ${FILE} native-widl
102105
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
103106
endforeach()
@@ -149,7 +152,7 @@ function(generate_idl_iids)
149152
get_filename_component(NAME ${IDL_FILE} NAME_WE)
150153
add_custom_command(
151154
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${NAME}_i.c
152-
COMMAND native-widl ${INCLUDES} ${DEFINES} ${IDL_FLAGS} -u -o ${CMAKE_CURRENT_BINARY_DIR}/${NAME}_i.c ${IDL_FILE}
155+
COMMAND native-widl ${INCLUDES} ${DEFINES} ${IDL_FLAGS} -Os -u -o ${CMAKE_CURRENT_BINARY_DIR}/${NAME}_i.c ${IDL_FILE}
153156
DEPENDS ${IDL_FILE} native-widl
154157
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
155158
endforeach()
@@ -172,7 +175,7 @@ function(add_idl_reg_script IDL_FILE)
172175
get_filename_component(NAME ${IDL_FILE} NAME_WE)
173176
add_custom_command(
174177
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${NAME}_r.res
175-
COMMAND native-widl ${INCLUDES} ${DEFINES} ${IDL_FLAGS} -r -o ${CMAKE_CURRENT_BINARY_DIR}/${NAME}_r.res ${IDL_FILE}
178+
COMMAND native-widl ${INCLUDES} ${DEFINES} ${IDL_FLAGS} -Oicf -r -o ${CMAKE_CURRENT_BINARY_DIR}/${NAME}_r.res ${IDL_FILE}
176179
DEPENDS ${IDL_FILE} native-widl
177180
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
178181
set_source_files_properties(${CMAKE_CURRENT_BINARY_DIR}/${NAME}_r.res PROPERTIES

sdk/include/host/pecoff.h

Lines changed: 120 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,68 @@
6161
#define IMAGE_REL_I386_REL16 0x0002
6262
#define IMAGE_REL_I386_DIR32 0x0006
6363

64+
/* Helper macro to enable gcc's extension. */
65+
#ifndef __GNU_EXTENSION
66+
#ifdef __GNUC__
67+
#define __GNU_EXTENSION __extension__
68+
#else
69+
#define __GNU_EXTENSION
70+
#endif
71+
#endif /* __GNU_EXTENSION */
72+
73+
74+
#ifndef DUMMYUNIONNAME
75+
#if defined(NONAMELESSUNION)// || !defined(_MSC_EXTENSIONS)
76+
#define _ANONYMOUS_UNION
77+
#define _UNION_NAME(x) x
78+
#define DUMMYUNIONNAME u
79+
#define DUMMYUNIONNAME1 u1
80+
#define DUMMYUNIONNAME2 u2
81+
#define DUMMYUNIONNAME3 u3
82+
#define DUMMYUNIONNAME4 u4
83+
#define DUMMYUNIONNAME5 u5
84+
#define DUMMYUNIONNAME6 u6
85+
#define DUMMYUNIONNAME7 u7
86+
#define DUMMYUNIONNAME8 u8
87+
#define DUMMYUNIONNAME9 u9
88+
#else
89+
#define _ANONYMOUS_UNION __GNU_EXTENSION
90+
#define _UNION_NAME(x)
91+
#define DUMMYUNIONNAME
92+
#define DUMMYUNIONNAME1
93+
#define DUMMYUNIONNAME2
94+
#define DUMMYUNIONNAME3
95+
#define DUMMYUNIONNAME4
96+
#define DUMMYUNIONNAME5
97+
#define DUMMYUNIONNAME6
98+
#define DUMMYUNIONNAME7
99+
#define DUMMYUNIONNAME8
100+
#define DUMMYUNIONNAME9
101+
#endif /* NONAMELESSUNION */
102+
#endif /* !DUMMYUNIONNAME */
103+
104+
#ifndef DUMMYSTRUCTNAME
105+
#if defined(NONAMELESSUNION)// || !defined(_MSC_EXTENSIONS)
106+
#define _ANONYMOUS_STRUCT
107+
#define _STRUCT_NAME(x) x
108+
#define DUMMYSTRUCTNAME s
109+
#define DUMMYSTRUCTNAME1 s1
110+
#define DUMMYSTRUCTNAME2 s2
111+
#define DUMMYSTRUCTNAME3 s3
112+
#define DUMMYSTRUCTNAME4 s4
113+
#define DUMMYSTRUCTNAME5 s5
114+
#else
115+
#define _ANONYMOUS_STRUCT __GNU_EXTENSION
116+
#define _STRUCT_NAME(x)
117+
#define DUMMYSTRUCTNAME
118+
#define DUMMYSTRUCTNAME1
119+
#define DUMMYSTRUCTNAME2
120+
#define DUMMYSTRUCTNAME3
121+
#define DUMMYSTRUCTNAME4
122+
#define DUMMYSTRUCTNAME5
123+
#endif /* NONAMELESSUNION */
124+
#endif /* DUMMYSTRUCTNAME */
125+
64126
#pragma pack(push,2)
65127
typedef struct _IMAGE_DOS_HEADER {
66128
WORD e_magic;
@@ -102,6 +164,22 @@ typedef struct _IMAGE_DATA_DIRECTORY {
102164
DWORD Size;
103165
} IMAGE_DATA_DIRECTORY,*PIMAGE_DATA_DIRECTORY;
104166

167+
#define IMAGE_DIRECTORY_ENTRY_EXPORT 0
168+
#define IMAGE_DIRECTORY_ENTRY_IMPORT 1
169+
#define IMAGE_DIRECTORY_ENTRY_RESOURCE 2
170+
#define IMAGE_DIRECTORY_ENTRY_EXCEPTION 3
171+
#define IMAGE_DIRECTORY_ENTRY_SECURITY 4
172+
#define IMAGE_DIRECTORY_ENTRY_BASERELOC 5
173+
#define IMAGE_DIRECTORY_ENTRY_DEBUG 6
174+
#define IMAGE_DIRECTORY_ENTRY_COPYRIGHT 7
175+
#define IMAGE_DIRECTORY_ENTRY_GLOBALPTR 8
176+
#define IMAGE_DIRECTORY_ENTRY_TLS 9
177+
#define IMAGE_DIRECTORY_ENTRY_LOAD_CONFIG 10
178+
#define IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT 11
179+
#define IMAGE_DIRECTORY_ENTRY_IAT 12
180+
#define IMAGE_DIRECTORY_ENTRY_DELAY_IMPORT 13
181+
#define IMAGE_DIRECTORY_ENTRY_COM_DESCRIPTOR 14
182+
105183
typedef struct _IMAGE_OPTIONAL_HEADER32 {
106184
WORD Magic;
107185
BYTE MajorLinkerVersion;
@@ -223,6 +301,48 @@ typedef struct _IMAGE_BASE_RELOCATION {
223301
} IMAGE_BASE_RELOCATION,*PIMAGE_BASE_RELOCATION;
224302
#pragma pack(pop)
225303

304+
typedef struct _IMAGE_RESOURCE_DIRECTORY {
305+
DWORD Characteristics;
306+
DWORD TimeDateStamp;
307+
WORD MajorVersion;
308+
WORD MinorVersion;
309+
WORD NumberOfNamedEntries;
310+
WORD NumberOfIdEntries;
311+
} IMAGE_RESOURCE_DIRECTORY, *PIMAGE_RESOURCE_DIRECTORY;
312+
313+
#define IMAGE_RESOURCE_NAME_IS_STRING 0x80000000
314+
#define IMAGE_RESOURCE_DATA_IS_DIRECTORY 0x80000000
315+
316+
typedef struct _IMAGE_RESOURCE_DIRECTORY_ENTRY {
317+
_ANONYMOUS_UNION union {
318+
_ANONYMOUS_STRUCT struct {
319+
DWORD NameOffset:31;
320+
DWORD NameIsString:1;
321+
} DUMMYSTRUCTNAME;
322+
DWORD Name;
323+
WORD Id;
324+
} DUMMYUNIONNAME;
325+
_ANONYMOUS_UNION union {
326+
DWORD OffsetToData;
327+
_ANONYMOUS_STRUCT struct {
328+
DWORD OffsetToDirectory:31;
329+
DWORD DataIsDirectory:1;
330+
} DUMMYSTRUCTNAME2;
331+
} DUMMYUNIONNAME2;
332+
} IMAGE_RESOURCE_DIRECTORY_ENTRY, *PIMAGE_RESOURCE_DIRECTORY_ENTRY;
333+
334+
typedef struct _IMAGE_RESOURCE_DIRECTORY_STRING {
335+
USHORT Length;
336+
CHAR NameString[ANYSIZE_ARRAY];
337+
} IMAGE_RESOURCE_DIRECTORY_STRING, *PIMAGE_RESOURCE_DIRECTORY_STRING;
338+
339+
typedef struct _IMAGE_RESOURCE_DATA_ENTRY {
340+
ULONG OffsetToData;
341+
ULONG Size;
342+
ULONG CodePage;
343+
ULONG Reserved;
344+
} IMAGE_RESOURCE_DATA_ENTRY, *PIMAGE_RESOURCE_DATA_ENTRY;
345+
226346
#ifndef UNALIGNED
227347
#define UNALIGNED
228348
#endif

sdk/include/psdk/mshtml.idl

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9284,9 +9284,6 @@ properties:
92849284
methods:
92859285
WINE_HTMLDATAELEMENT_DISPINTERFACE_DECL;
92869286

9287-
[propget, id(DISPID_IHTMLDOMCONSTRUCTOR_CONSTRUCTOR), hidden]
9288-
IDispatch* constructor();
9289-
92909287
[propput, id(DISPID_IHTMLAREAELEMENT_SHAPE)]
92919288
void shape(BSTR v);
92929289

0 commit comments

Comments
 (0)