mirror of
https://git.code.sf.net/p/mingw-w64/mingw-w64
synced 2024-11-27 20:04:56 +08:00
Update widl to current Wine version.
This commit is contained in:
parent
079ed545d3
commit
cb6bc23b4d
@ -1 +1 @@
|
||||
WIDL version 3.1
|
||||
WIDL version 3.14
|
||||
|
20
mingw-w64-tools/widl/configure
vendored
20
mingw-w64-tools/widl/configure
vendored
@ -1,6 +1,6 @@
|
||||
#! /bin/sh
|
||||
# Guess values for system-dependent variables and create Makefiles.
|
||||
# Generated by GNU Autoconf 2.69 for widl 3.1.
|
||||
# Generated by GNU Autoconf 2.69 for widl 3.14.
|
||||
#
|
||||
# Report bugs to <mingw-w64-public@lists.sourceforge.net>.
|
||||
#
|
||||
@ -580,8 +580,8 @@ MAKEFLAGS=
|
||||
# Identity of this package.
|
||||
PACKAGE_NAME='widl'
|
||||
PACKAGE_TARNAME='widl'
|
||||
PACKAGE_VERSION='3.1'
|
||||
PACKAGE_STRING='widl 3.1'
|
||||
PACKAGE_VERSION='3.14'
|
||||
PACKAGE_STRING='widl 3.14'
|
||||
PACKAGE_BUGREPORT='mingw-w64-public@lists.sourceforge.net'
|
||||
PACKAGE_URL=''
|
||||
|
||||
@ -1283,7 +1283,7 @@ if test "$ac_init_help" = "long"; then
|
||||
# Omit some internal or obsolete options to make the list less imposing.
|
||||
# This message is too long to be a string in the A/UX 3.1 sh.
|
||||
cat <<_ACEOF
|
||||
\`configure' configures widl 3.1 to adapt to many kinds of systems.
|
||||
\`configure' configures widl 3.14 to adapt to many kinds of systems.
|
||||
|
||||
Usage: $0 [OPTION]... [VAR=VALUE]...
|
||||
|
||||
@ -1354,7 +1354,7 @@ fi
|
||||
|
||||
if test -n "$ac_init_help"; then
|
||||
case $ac_init_help in
|
||||
short | recursive ) echo "Configuration of widl 3.1:";;
|
||||
short | recursive ) echo "Configuration of widl 3.14:";;
|
||||
esac
|
||||
cat <<\_ACEOF
|
||||
|
||||
@ -1448,7 +1448,7 @@ fi
|
||||
test -n "$ac_init_help" && exit $ac_status
|
||||
if $ac_init_version; then
|
||||
cat <<\_ACEOF
|
||||
widl configure 3.1
|
||||
widl configure 3.14
|
||||
generated by GNU Autoconf 2.69
|
||||
|
||||
Copyright (C) 2012 Free Software Foundation, Inc.
|
||||
@ -2001,7 +2001,7 @@ cat >config.log <<_ACEOF
|
||||
This file contains any messages produced by compilers while
|
||||
running configure, to aid debugging if configure makes a mistake.
|
||||
|
||||
It was created by widl $as_me 3.1, which was
|
||||
It was created by widl $as_me 3.14, which was
|
||||
generated by GNU Autoconf 2.69. Invocation command line was
|
||||
|
||||
$ $0 $@
|
||||
@ -2979,7 +2979,7 @@ fi
|
||||
|
||||
# Define the identity of the package.
|
||||
PACKAGE='widl'
|
||||
VERSION='3.1'
|
||||
VERSION='3.14'
|
||||
|
||||
|
||||
cat >>confdefs.h <<_ACEOF
|
||||
@ -5645,7 +5645,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
|
||||
# report actual input values of CONFIG_FILES etc. instead of their
|
||||
# values after options handling.
|
||||
ac_log="
|
||||
This file was extended by widl $as_me 3.1, which was
|
||||
This file was extended by widl $as_me 3.14, which was
|
||||
generated by GNU Autoconf 2.69. Invocation command line was
|
||||
|
||||
CONFIG_FILES = $CONFIG_FILES
|
||||
@ -5711,7 +5711,7 @@ _ACEOF
|
||||
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
|
||||
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
|
||||
ac_cs_version="\\
|
||||
widl config.status 3.1
|
||||
widl config.status 3.14
|
||||
configured by $0, generated by GNU Autoconf 2.69,
|
||||
with options \\"\$ac_cs_config\\"
|
||||
|
||||
|
@ -130,12 +130,12 @@ typedef GUID FMTID,*LPFMTID;
|
||||
#define REFCLSID const CLSID &
|
||||
#define REFIID const IID &
|
||||
#define REFFMTID const FMTID &
|
||||
#else /* !defined(__cplusplus) && !defined(CINTERFACE) */
|
||||
#else /* !defined(__cplusplus) */
|
||||
#define REFGUID const GUID* __MIDL_CONST
|
||||
#define REFCLSID const CLSID* __MIDL_CONST
|
||||
#define REFIID const IID* __MIDL_CONST
|
||||
#define REFFMTID const FMTID* __MIDL_CONST
|
||||
#endif /* !defined(__cplusplus) && !defined(CINTERFACE) */
|
||||
#endif /* !defined(__cplusplus) */
|
||||
|
||||
#if defined(__cplusplus) && !defined(CINTERFACE)
|
||||
#define IsEqualGUID(rguid1, rguid2) (!memcmp(&(rguid1), &(rguid2), sizeof(GUID)))
|
||||
|
309
mingw-w64-tools/widl/include/ndrtypes.h
Normal file
309
mingw-w64-tools/widl/include/ndrtypes.h
Normal file
@ -0,0 +1,309 @@
|
||||
/*
|
||||
* NDR Types
|
||||
*
|
||||
* Copyright 2006 Robert Shearman (for CodeWeavers)
|
||||
*
|
||||
* 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
*/
|
||||
|
||||
#ifndef __NDRTYPES_H__
|
||||
#define __NDRTYPES_H__
|
||||
|
||||
#include <limits.h>
|
||||
|
||||
typedef struct
|
||||
{
|
||||
unsigned short MustSize : 1; /* 0x0001 - client interpreter MUST size this
|
||||
* parameter, other parameters may be skipped, using the value in
|
||||
* NDR_PROC_PARTIAL_OIF_HEADER::constant_client_buffer_size instead. */
|
||||
unsigned short MustFree : 1; /* 0x0002 - server interpreter MUST size this
|
||||
* parameter, other parameters may be skipped, using the value in
|
||||
* NDR_PROC_PARTIAL_OIF_HEADER::constant_server_buffer_size instead. */
|
||||
unsigned short IsPipe : 1; /* 0x0004 - The parameter is a pipe handle */
|
||||
unsigned short IsIn : 1; /* 0x0008 - The parameter is an input */
|
||||
unsigned short IsOut : 1; /* 0x0010 - The parameter is an output */
|
||||
unsigned short IsReturn : 1; /* 0x0020 - The parameter is to be returned */
|
||||
unsigned short IsBasetype : 1; /* 0x0040 - The parameter is simple and has the
|
||||
* format defined by NDR_PARAM_OIF_BASETYPE rather than by
|
||||
* NDR_PARAM_OIF_OTHER. */
|
||||
unsigned short IsByValue : 1; /* 0x0080 - Set for compound types being sent by
|
||||
* value. Can be of type: structure, union, transmit_as, represent_as,
|
||||
* wire_marshal and SAFEARRAY. */
|
||||
unsigned short IsSimpleRef : 1; /* 0x0100 - parameter that is a reference
|
||||
* pointer to anything other than another pointer, and which has no
|
||||
* allocate attributes. */
|
||||
unsigned short IsDontCallFreeInst : 1; /* 0x0200 - Used for some represent_as types
|
||||
* for when the free instance routine should not be called. */
|
||||
unsigned short SaveForAsyncFinish : 1; /* 0x0400 - Unknown */
|
||||
unsigned short Unused : 2;
|
||||
unsigned short ServerAllocSize : 3; /* 0xe000 - If non-zero
|
||||
* specifies the size of the object in numbers of 8byte blocks needed.
|
||||
* It will be stored on the server's stack rather than using an allocate
|
||||
* call. */
|
||||
} PARAM_ATTRIBUTES;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
unsigned char ServerMustSize : 1; /* 0x01 - the server must perform a
|
||||
* sizing pass. */
|
||||
unsigned char ClientMustSize : 1; /* 0x02 - the client must perform a
|
||||
* sizing pass. */
|
||||
unsigned char HasReturn : 1; /* 0x04 - procedure has a return value. */
|
||||
unsigned char HasPipes : 1; /* 0x08 - the pipe package should be used. */
|
||||
unsigned char Unused : 1; /* 0x10 - not used */
|
||||
unsigned char HasAsyncUuid : 1; /* 0x20 - indicates an asynchronous DCOM
|
||||
* procedure. */
|
||||
unsigned char HasExtensions : 1; /* 0x40 - indicates that Win2000
|
||||
* extensions are in use. */
|
||||
unsigned char HasAsyncHandle : 1; /* 0x80 - indicates an asynchronous RPC
|
||||
* procedure. */
|
||||
} INTERPRETER_OPT_FLAGS, *PINTERPRETER_OPT_FLAGS;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
unsigned char HasNewCorrDesc : 1; /* 0x01 - indicates new correlation
|
||||
* descriptors in use. */
|
||||
unsigned char ClientCorrCheck : 1; /* 0x02 - client needs correlation
|
||||
* check. */
|
||||
unsigned char ServerCorrCheck : 1; /* 0x04 - server needs correlation
|
||||
* check. */
|
||||
unsigned char HasNotify : 1; /* 0x08 - should call MIDL [notify]
|
||||
* routine @ NotifyIndex. */
|
||||
unsigned char HasNotify2 : 1; /* 0x10 - should call MIDL [notify_flag] routine @
|
||||
* NotifyIndex. */
|
||||
|
||||
/* The following bits are in fact used by midl but haven't yet been
|
||||
named in the SDK. */
|
||||
unsigned char Unused : 3; /* 0x20 - has complex return */
|
||||
/* 0x40 - has range on conformance */
|
||||
} INTERPRETER_OPT_FLAGS2, *PINTERPRETER_OPT_FLAGS2;
|
||||
|
||||
/* Win2000 extensions */
|
||||
typedef struct
|
||||
{
|
||||
/* size in bytes of all following extensions */
|
||||
unsigned char Size;
|
||||
|
||||
INTERPRETER_OPT_FLAGS2 Flags2;
|
||||
|
||||
/* client cache size hint */
|
||||
unsigned short ClientCorrHint;
|
||||
|
||||
/* server cache size hint */
|
||||
unsigned short ServerCorrHint;
|
||||
|
||||
/* index of routine in MIDL_STUB_DESC::NotifyRoutineTable to call if
|
||||
* HasNotify or HasNotify2 flag set */
|
||||
unsigned short NotifyIndex;
|
||||
} NDR_PROC_HEADER_EXTS;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
/* size in bytes of all following extensions */
|
||||
unsigned char Size;
|
||||
|
||||
INTERPRETER_OPT_FLAGS2 Flags2;
|
||||
|
||||
/* client cache size hint */
|
||||
unsigned short ClientCorrHint;
|
||||
|
||||
/* server cache size hint */
|
||||
unsigned short ServerCorrHint;
|
||||
|
||||
/* index of routine in MIDL_STUB_DESC::NotifyRoutineTable to call if
|
||||
* HasNotify or HasNotify2 flag set */
|
||||
unsigned short NotifyIndex;
|
||||
|
||||
/* needed only on IA64 to cope with float/register loading */
|
||||
unsigned short FloatArgMask;
|
||||
} NDR_PROC_HEADER_EXTS64;
|
||||
|
||||
typedef enum
|
||||
{
|
||||
FC_BYTE = 0x01, /* 0x01 */
|
||||
FC_CHAR, /* 0x02 */
|
||||
FC_SMALL, /* 0x03 */
|
||||
FC_USMALL, /* 0x04 */
|
||||
FC_WCHAR, /* 0x05 */
|
||||
FC_SHORT, /* 0x06 */
|
||||
FC_USHORT, /* 0x07 */
|
||||
FC_LONG, /* 0x08 */
|
||||
FC_ULONG, /* 0x09 */
|
||||
FC_FLOAT, /* 0x0a */
|
||||
FC_HYPER, /* 0x0b */
|
||||
FC_DOUBLE, /* 0x0c */
|
||||
FC_ENUM16, /* 0x0d */
|
||||
FC_ENUM32, /* 0x0e */
|
||||
FC_IGNORE, /* 0x0f */
|
||||
FC_ERROR_STATUS_T, /* 0x10 */
|
||||
|
||||
FC_RP, /* 0x11 */ /* reference pointer */
|
||||
FC_UP, /* 0x12 */ /* unique pointer */
|
||||
FC_OP, /* 0x13 */ /* object pointer */
|
||||
FC_FP, /* 0x14 */ /* full pointer */
|
||||
|
||||
FC_STRUCT, /* 0x15 */ /* simple structure */
|
||||
FC_PSTRUCT, /* 0x16 */ /* simple structure w/ pointers */
|
||||
FC_CSTRUCT, /* 0x17 */ /* conformant structure */
|
||||
FC_CPSTRUCT, /* 0x18 */ /* conformant structure w/ pointers */
|
||||
FC_CVSTRUCT, /* 0x19 */ /* conformant varying struct */
|
||||
FC_BOGUS_STRUCT, /* 0x1a */ /* complex structure */
|
||||
|
||||
FC_CARRAY, /* 0x1b */ /* conformant array */
|
||||
FC_CVARRAY, /* 0x1c */ /* conformant varying array */
|
||||
FC_SMFARRAY, /* 0x1d */ /* small (<64K) fixed array */
|
||||
FC_LGFARRAY, /* 0x1e */ /* large (>= 64k) fixed array */
|
||||
FC_SMVARRAY, /* 0x1f */ /* small (<64k) varying array */
|
||||
FC_LGVARRAY, /* 0x20 */ /* large (>= 64k) varying array */
|
||||
FC_BOGUS_ARRAY, /* 0x21 */ /* complex array */
|
||||
|
||||
FC_C_CSTRING, /* 0x22 */ /* conformant char string */
|
||||
FC_C_BSTRING, /* 0x23 */
|
||||
FC_C_SSTRING, /* 0x24 */
|
||||
FC_C_WSTRING, /* 0x25 */ /* conformant wchar string */
|
||||
FC_CSTRING, /* 0x26 */ /* non-conformant char string */
|
||||
FC_BSTRING, /* 0x27 */
|
||||
FC_SSTRING, /* 0x28 */
|
||||
FC_WSTRING, /* 0x29 */ /* non-conformant wchar string */
|
||||
|
||||
FC_ENCAPSULATED_UNION, /* 0x2a */
|
||||
FC_NON_ENCAPSULATED_UNION, /* 0x2b */
|
||||
|
||||
FC_BYTE_COUNT_POINTER, /* 0x2c */ /* [byte_count] ACF attribute */
|
||||
|
||||
FC_TRANSMIT_AS, /* 0x2d */
|
||||
FC_REPRESENT_AS, /* 0x2e */
|
||||
|
||||
FC_IP, /* 0x2f */ /* interface pointer */
|
||||
|
||||
FC_BIND_CONTEXT, /* 0x30 */
|
||||
|
||||
FC_BIND_GENERIC, /* 0x31 */
|
||||
FC_BIND_PRIMITIVE, /* 0x32 */
|
||||
FC_AUTO_HANDLE, /* 0x33 */
|
||||
FC_CALLBACK_HANDLE, /* 0x34 */
|
||||
|
||||
FC_UNUSED1, /* 0x35 */
|
||||
|
||||
FC_POINTER, /* 0x36 */
|
||||
|
||||
FC_ALIGNM2, /* 0x37 */
|
||||
FC_ALIGNM4, /* 0x38 */
|
||||
FC_ALIGNM8, /* 0x39 */
|
||||
|
||||
FC_UNUSED2, /* 0x3a */
|
||||
FC_UNUSED3, /* 0x3b */
|
||||
FC_UNUSED4, /* 0x3c */
|
||||
|
||||
FC_STRUCTPAD1, /* 0x3d */
|
||||
FC_STRUCTPAD2, /* 0x3e */
|
||||
FC_STRUCTPAD3, /* 0x3f */
|
||||
FC_STRUCTPAD4, /* 0x40 */
|
||||
FC_STRUCTPAD5, /* 0x41 */
|
||||
FC_STRUCTPAD6, /* 0x42 */
|
||||
FC_STRUCTPAD7, /* 0x43 */
|
||||
|
||||
FC_STRING_SIZED, /* 0x44 */
|
||||
|
||||
FC_UNUSED5, /* 0x45 */
|
||||
|
||||
FC_NO_REPEAT, /* 0x46 */
|
||||
FC_FIXED_REPEAT, /* 0x47 */
|
||||
FC_VARIABLE_REPEAT, /* 0x48 */
|
||||
FC_FIXED_OFFSET, /* 0x49 */
|
||||
FC_VARIABLE_OFFSET, /* 0x4a */
|
||||
|
||||
FC_PP, /* 0x4b */ /* pointer layout */
|
||||
/* FC_PP: FC_PAD layouts */
|
||||
/* layouts: FC_NO_REPEAT FC_PAD instance */
|
||||
/* instance: NdrFcShort(memofs), NdrFcShort(bufofs), desc */
|
||||
|
||||
FC_EMBEDDED_COMPLEX, /* 0x4c */
|
||||
|
||||
FC_IN_PARAM, /* 0x4d */
|
||||
FC_IN_PARAM_BASETYPE, /* 0x4e */
|
||||
FC_IN_PARAM_NO_FREE_INST, /* 0x4f */
|
||||
FC_IN_OUT_PARAM, /* 0x50 */
|
||||
FC_OUT_PARAM, /* 0x51 */
|
||||
FC_RETURN_PARAM, /* 0x52 */
|
||||
FC_RETURN_PARAM_BASETYPE, /* 0x53 */
|
||||
|
||||
FC_DEREFERENCE, /* 0x54 */
|
||||
FC_DIV_2, /* 0x55 */
|
||||
FC_MULT_2, /* 0x56 */
|
||||
FC_ADD_1, /* 0x57 */
|
||||
FC_SUB_1, /* 0x58 */
|
||||
|
||||
FC_CALLBACK, /* 0x59 */
|
||||
|
||||
FC_CONSTANT_IID, /* 0x5a */
|
||||
|
||||
FC_END, /* 0x5b */
|
||||
FC_PAD, /* 0x5c */
|
||||
|
||||
FC_HARD_STRUCT = 0xb1,
|
||||
|
||||
FC_TRANSMIT_AS_PTR, /* 0xb2 */
|
||||
FC_REPRESENT_AS_PTR, /* 0xb3 */
|
||||
|
||||
FC_USER_MARSHAL, /* 0xb4 */
|
||||
|
||||
FC_PIPE, /* 0xb5 */
|
||||
FC_BLKHOLE, /* 0xb6 */
|
||||
|
||||
FC_RANGE, /* 0xb7 */
|
||||
|
||||
FC_INT3264, /* 0xb8 */
|
||||
FC_UINT3264, /* 0xb9 */
|
||||
} FORMAT_CHARACTER;
|
||||
|
||||
#define FC_ALLOCATE_ALL_NODES 0x01
|
||||
#define FC_DONT_FREE 0x02
|
||||
#define FC_ALLOCED_ON_STACK 0x04
|
||||
#define FC_SIMPLE_POINTER 0x08
|
||||
#define FC_POINTER_DEREF 0x10
|
||||
|
||||
/* flags for all handle types */
|
||||
#define HANDLE_PARAM_IS_VIA_PTR 0x80
|
||||
#define HANDLE_PARAM_IS_IN 0x40
|
||||
#define HANDLE_PARAM_IS_OUT 0x20
|
||||
#define HANDLE_PARAM_IS_RETURN 0x10
|
||||
|
||||
/* flags for context handles */
|
||||
#define NDR_STRICT_CONTEXT_HANDLE 0x08
|
||||
#define NDR_CONTEXT_HANDLE_NOSERIALIZE 0x04
|
||||
#define NDR_CONTEXT_HANDLE_SERIALIZE 0x02
|
||||
#define NDR_CONTEXT_HANDLE_CANNOT_BE_NULL 0x01
|
||||
|
||||
#define Oi_FULL_PTR_USED 0x01
|
||||
#define Oi_RPCSS_ALLOC_USED 0x02
|
||||
#define Oi_OBJECT_PROC 0x04
|
||||
#define Oi_HAS_RPCFLAGS 0x08
|
||||
#define Oi_OBJ_USE_V2_INTERPRETER 0x20
|
||||
#define Oi_HAS_COMM_OR_FAULT 0x20
|
||||
#define Oi_USE_NEW_INIT_ROUTINES 0x40
|
||||
|
||||
#define FC_NORMAL_CONFORMANCE (unsigned char) 0x00
|
||||
#define FC_POINTER_CONFORMANCE (unsigned char) 0x10
|
||||
#define FC_TOP_LEVEL_CONFORMANCE (unsigned char) 0x20
|
||||
#define FC_CONSTANT_CONFORMANCE (unsigned char) 0x40
|
||||
#define FC_TOP_LEVEL_MULTID_CONFORMANCE (unsigned char) 0x80
|
||||
|
||||
#define USER_MARSHAL_UNIQUE 0x80
|
||||
#define USER_MARSHAL_REF 0x40
|
||||
#define USER_MARSHAL_POINTER 0xc0
|
||||
#define USER_MARSHAL_IID 0x20
|
||||
|
||||
#endif
|
@ -1683,7 +1683,7 @@ typedef enum _PROC_THREAD_ATTRIBUTE_NUM
|
||||
#define PROC_THREAD_ATTRIBUTE_GROUP_AFFINITY (ProcThreadAttributeGroupAffinity | PROC_THREAD_ATTRIBUTE_THREAD | PROC_THREAD_ATTRIBUTE_INPUT)
|
||||
#define PROC_THREAD_ATTRIBUTE_IDEAL_PROCESSOR (ProcThreadAttributeIdealProcessor | PROC_THREAD_ATTRIBUTE_THREAD | PROC_THREAD_ATTRIBUTE_INPUT)
|
||||
#define PROC_THREAD_ATTRIBUTE_UMS_THREAD (ProcThreadAttributeUmsThread | PROC_THREAD_ATTRIBUTE_THREAD | PROC_THREAD_ATTRIBUTE_INPUT)
|
||||
#define PROC_THREAD_ATTRIBUTE_MIGITATION_POLICY (ProcThreadAttributeMitigationPolicy | PROC_THREAD_ATTRIBUTE_INPUT)
|
||||
#define PROC_THREAD_ATTRIBUTE_MITIGATION_POLICY (ProcThreadAttributeMitigationPolicy | PROC_THREAD_ATTRIBUTE_INPUT)
|
||||
#define PROC_THREAD_ATTRIBUTE_SECURITY_CAPABILITIES (ProcThreadAttributeSecurityCapabilities | PROC_THREAD_ATTRIBUTE_INPUT)
|
||||
#define PROC_THREAD_ATTRIBUTE_PROTECTION_LEVEL (ProcThreadAttributeProtectionLevel | PROC_THREAD_ATTRIBUTE_INPUT)
|
||||
#define PROC_THREAD_ATTRIBUTE_JOB_LIST (ProcThreadAttributeJobList | PROC_THREAD_ATTRIBUTE_INPUT)
|
||||
@ -1694,6 +1694,20 @@ typedef enum _PROC_THREAD_ATTRIBUTE_NUM
|
||||
#define SYMBOLIC_LINK_FLAG_DIRECTORY (0x1)
|
||||
#define VALID_SYMBOLIC_LINK_FLAGS SYMBOLIC_LINK_FLAG_DIRECTORY
|
||||
|
||||
typedef void *PUMS_CONTEXT;
|
||||
typedef void *PUMS_COMPLETION_LIST;
|
||||
typedef PRTL_UMS_SCHEDULER_ENTRY_POINT PUMS_SCHEDULER_ENTRY_POINT;
|
||||
typedef struct _UMS_SCHEDULER_STARTUP_INFO
|
||||
{
|
||||
ULONG UmsVersion;
|
||||
PUMS_COMPLETION_LIST CompletionList;
|
||||
PUMS_SCHEDULER_ENTRY_POINT SchedulerProc;
|
||||
PVOID SchedulerParam;
|
||||
} UMS_SCHEDULER_STARTUP_INFO, *PUMS_SCHEDULER_STARTUP_INFO;
|
||||
|
||||
typedef enum _RTL_UMS_SCHEDULER_REASON UMS_SCHEDULER_REASON;
|
||||
typedef enum _RTL_UMS_THREAD_INFO_CLASS UMS_THREAD_INFO_CLASS, *PUMS_THREAD_INFO_CLASS;
|
||||
|
||||
WINBASEAPI BOOL WINAPI ActivateActCtx(HANDLE,ULONG_PTR *);
|
||||
WINADVAPI BOOL WINAPI AddAccessAllowedAce(PACL,DWORD,DWORD,PSID);
|
||||
WINADVAPI BOOL WINAPI AddAccessAllowedAceEx(PACL,DWORD,DWORD,DWORD,PSID);
|
||||
@ -1844,6 +1858,7 @@ WINADVAPI BOOL WINAPI CreateProcessAsUserW(HANDLE,LPCWSTR,LPWSTR,LPSECUR
|
||||
#define CreateProcessAsUser WINELIB_NAME_AW(CreateProcessAsUser)
|
||||
WINADVAPI BOOL WINAPI CreateProcessWithLogonW(LPCWSTR,LPCWSTR,LPCWSTR,DWORD,LPCWSTR,LPWSTR,DWORD,LPVOID,LPCWSTR,LPSTARTUPINFOW,LPPROCESS_INFORMATION);
|
||||
WINBASEAPI HANDLE WINAPI CreateRemoteThread(HANDLE,LPSECURITY_ATTRIBUTES,SIZE_T,LPTHREAD_START_ROUTINE,LPVOID,DWORD,LPDWORD);
|
||||
WINBASEAPI HANDLE WINAPI CreateRemoteThreadEx(HANDLE,LPSECURITY_ATTRIBUTES,SIZE_T,LPTHREAD_START_ROUTINE,LPVOID,DWORD,LPPROC_THREAD_ATTRIBUTE_LIST,LPDWORD);
|
||||
WINADVAPI BOOL WINAPI CreateRestrictedToken(HANDLE,DWORD,DWORD,PSID_AND_ATTRIBUTES,DWORD,PLUID_AND_ATTRIBUTES,DWORD,PSID_AND_ATTRIBUTES,PHANDLE);
|
||||
WINBASEAPI HANDLE WINAPI CreateSemaphoreA(LPSECURITY_ATTRIBUTES,LONG,LONG,LPCSTR);
|
||||
WINBASEAPI HANDLE WINAPI CreateSemaphoreW(LPSECURITY_ATTRIBUTES,LONG,LONG,LPCWSTR);
|
||||
@ -1861,6 +1876,8 @@ WINBASEAPI DWORD WINAPI CreateTapePartition(HANDLE,DWORD,DWORD,DWORD);
|
||||
WINBASEAPI HANDLE WINAPI CreateThread(LPSECURITY_ATTRIBUTES,SIZE_T,LPTHREAD_START_ROUTINE,LPVOID,DWORD,LPDWORD);
|
||||
WINBASEAPI HANDLE WINAPI CreateTimerQueue(void);
|
||||
WINBASEAPI BOOL WINAPI CreateTimerQueueTimer(PHANDLE,HANDLE,WAITORTIMERCALLBACK,PVOID,DWORD,DWORD,ULONG);
|
||||
WINBASEAPI BOOL WINAPI CreateUmsCompletionList(PUMS_COMPLETION_LIST*);
|
||||
WINBASEAPI BOOL WINAPI CreateUmsThreadContext(PUMS_CONTEXT*);
|
||||
WINBASEAPI HANDLE WINAPI CreateWaitableTimerA(LPSECURITY_ATTRIBUTES,BOOL,LPCSTR);
|
||||
WINBASEAPI HANDLE WINAPI CreateWaitableTimerW(LPSECURITY_ATTRIBUTES,BOOL,LPCWSTR);
|
||||
#define CreateWaitableTimer WINELIB_NAME_AW(CreateWaitableTimer)
|
||||
@ -1894,13 +1911,17 @@ WINBASEAPI void WINAPI DeleteProcThreadAttributeList(struct _PROC_THREAD_
|
||||
WINBASEAPI BOOL WINAPI DeleteTimerQueue(HANDLE);
|
||||
WINBASEAPI BOOL WINAPI DeleteTimerQueueEx(HANDLE,HANDLE);
|
||||
WINBASEAPI BOOL WINAPI DeleteTimerQueueTimer(HANDLE,HANDLE,HANDLE);
|
||||
WINBASEAPI BOOL WINAPI DeleteUmsCompletionList(PUMS_COMPLETION_LIST);
|
||||
WINBASEAPI BOOL WINAPI DeleteUmsThreadContext(PUMS_CONTEXT);
|
||||
WINBASEAPI BOOL WINAPI DeleteVolumeMountPointA(LPCSTR);
|
||||
WINBASEAPI BOOL WINAPI DeleteVolumeMountPointW(LPCWSTR);
|
||||
#define DeleteVolumeMountPoint WINELIB_NAME_AW(DeleteVolumeMountPoint)
|
||||
WINBASEAPI BOOL WINAPI DequeueUmsCompletionListItems(void *, DWORD, PUMS_CONTEXT *);
|
||||
WINADVAPI BOOL WINAPI DeregisterEventSource(HANDLE);
|
||||
WINADVAPI BOOL WINAPI DestroyPrivateObjectSecurity(PSECURITY_DESCRIPTOR*);
|
||||
WINBASEAPI BOOL WINAPI DeviceIoControl(HANDLE,DWORD,LPVOID,DWORD,LPVOID,DWORD,LPDWORD,LPOVERLAPPED);
|
||||
WINBASEAPI BOOL WINAPI DisableThreadLibraryCalls(HMODULE);
|
||||
WINBASEAPI VOID WINAPI DisassociateCurrentThreadFromCallback(PTP_CALLBACK_INSTANCE);
|
||||
WINBASEAPI BOOL WINAPI DisconnectNamedPipe(HANDLE);
|
||||
WINBASEAPI BOOL WINAPI DnsHostnameToComputerNameA(LPCSTR,LPSTR,LPDWORD);
|
||||
WINBASEAPI BOOL WINAPI DnsHostnameToComputerNameW(LPCWSTR,LPWSTR,LPDWORD);
|
||||
@ -1919,6 +1940,7 @@ WINBASEAPI BOOL WINAPI EndUpdateResourceA(HANDLE,BOOL);
|
||||
WINBASEAPI BOOL WINAPI EndUpdateResourceW(HANDLE,BOOL);
|
||||
#define EndUpdateResource WINELIB_NAME_AW(EndUpdateResource)
|
||||
WINBASEAPI void WINAPI EnterCriticalSection(CRITICAL_SECTION *lpCrit);
|
||||
WINBASEAPI BOOL WINAPI EnterUmsSchedulingMode(PUMS_SCHEDULER_STARTUP_INFO);
|
||||
WINBASEAPI BOOL WINAPI EnumResourceLanguagesA(HMODULE,LPCSTR,LPCSTR,ENUMRESLANGPROCA,LONG_PTR);
|
||||
WINBASEAPI BOOL WINAPI EnumResourceLanguagesW(HMODULE,LPCWSTR,LPCWSTR,ENUMRESLANGPROCW,LONG_PTR);
|
||||
#define EnumResourceLanguages WINELIB_NAME_AW(EnumResourceLanguages)
|
||||
@ -1936,6 +1958,7 @@ WINADVAPI BOOL WINAPI EqualPrefixSid(PSID,PSID);
|
||||
WINBASEAPI DWORD WINAPI EraseTape(HANDLE,DWORD,BOOL);
|
||||
WINBASEAPI VOID DECLSPEC_NORETURN WINAPI ExitProcess(DWORD);
|
||||
WINBASEAPI VOID DECLSPEC_NORETURN WINAPI ExitThread(DWORD);
|
||||
WINBASEAPI BOOL WINAPI ExecuteUmsThread(PUMS_CONTEXT);
|
||||
WINBASEAPI DWORD WINAPI ExpandEnvironmentStringsA(LPCSTR,LPSTR,DWORD);
|
||||
WINBASEAPI DWORD WINAPI ExpandEnvironmentStringsW(LPCWSTR,LPWSTR,DWORD);
|
||||
#define ExpandEnvironmentStrings WINELIB_NAME_AW(ExpandEnvironmentStrings)
|
||||
@ -2015,6 +2038,7 @@ WINBASEAPI BOOL WINAPI FreeResource(HGLOBAL);
|
||||
WINADVAPI PVOID WINAPI FreeSid(PSID);
|
||||
WINADVAPI BOOL WINAPI GetAce(PACL,DWORD,LPVOID*);
|
||||
WINADVAPI BOOL WINAPI GetAclInformation(PACL,LPVOID,DWORD,ACL_INFORMATION_CLASS);
|
||||
WINBASEAPI HRESULT WINAPI GetApplicationRestartSettings(HANDLE,WCHAR*,DWORD*,DWORD*);
|
||||
WINBASEAPI UINT WINAPI GetAtomNameA(ATOM,LPSTR,INT);
|
||||
WINBASEAPI UINT WINAPI GetAtomNameW(ATOM,LPWSTR,INT);
|
||||
#define GetAtomName WINELIB_NAME_AW(GetAtomName)
|
||||
@ -2051,6 +2075,7 @@ WINBASEAPI DWORD WINAPI GetCurrentProcessorNumber(void);
|
||||
WINBASEAPI VOID WINAPI GetCurrentProcessorNumberEx(PPROCESSOR_NUMBER);
|
||||
WINBASEAPI HANDLE WINAPI GetCurrentThread(void);
|
||||
#define GetCurrentTime() GetTickCount()
|
||||
WINBASEAPI PUMS_CONTEXT WINAPI GetCurrentUmsThread(void);
|
||||
WINBASEAPI BOOL WINAPI GetDefaultCommConfigA(LPCSTR,LPCOMMCONFIG,LPDWORD);
|
||||
WINBASEAPI BOOL WINAPI GetDefaultCommConfigW(LPCWSTR,LPCOMMCONFIG,LPDWORD);
|
||||
#define GetDefaultCommConfig WINELIB_NAME_AW(GetDefaultCommConfig)
|
||||
@ -2118,12 +2143,16 @@ WINBASEAPI HMODULE WINAPI GetModuleHandleW(LPCWSTR);
|
||||
WINBASEAPI BOOL WINAPI GetModuleHandleExA(DWORD,LPCSTR,HMODULE*);
|
||||
WINBASEAPI BOOL WINAPI GetModuleHandleExW(DWORD,LPCWSTR,HMODULE*);
|
||||
#define GetModuleHandleEx WINELIB_NAME_AW(GetModuleHandleEx)
|
||||
WINBASEAPI BOOL WINAPI GetNamedPipeClientProcessId(HANDLE,PULONG);
|
||||
WINBASEAPI BOOL WINAPI GetNamedPipeClientSessionId(HANDLE,PULONG);
|
||||
WINBASEAPI BOOL WINAPI GetNamedPipeHandleStateA(HANDLE,LPDWORD,LPDWORD,LPDWORD,LPDWORD,LPSTR,DWORD);
|
||||
WINBASEAPI BOOL WINAPI GetNamedPipeHandleStateW(HANDLE,LPDWORD,LPDWORD,LPDWORD,LPDWORD,LPWSTR,DWORD);
|
||||
#define GetNamedPipeHandleState WINELIB_NAME_AW(GetNamedPipeHandleState)
|
||||
WINBASEAPI BOOL WINAPI GetNamedPipeInfo(HANDLE,LPDWORD,LPDWORD,LPDWORD,LPDWORD);
|
||||
WINBASEAPI BOOL WINAPI GetNamedPipeClientProcessId(HANDLE,PULONG);
|
||||
WINBASEAPI BOOL WINAPI GetNamedPipeServerProcessId(HANDLE,PULONG);
|
||||
WINBASEAPI BOOL WINAPI GetNamedPipeServerSessionId(HANDLE,PULONG);
|
||||
WINBASEAPI VOID WINAPI GetNativeSystemInfo(LPSYSTEM_INFO);
|
||||
WINBASEAPI PUMS_CONTEXT WINAPI GetNextUmsListItem(PUMS_CONTEXT);
|
||||
WINBASEAPI BOOL WINAPI GetNumaProcessorNode(UCHAR,PUCHAR);
|
||||
WINADVAPI BOOL WINAPI GetNumberOfEventLogRecords(HANDLE,PDWORD);
|
||||
WINADVAPI BOOL WINAPI GetOldestEventLogRecord(HANDLE,PDWORD);
|
||||
@ -2224,6 +2253,7 @@ WINBASEAPI BOOL WINAPI GetThreadPriorityBoost(HANDLE,PBOOL);
|
||||
WINBASEAPI BOOL WINAPI GetThreadSelectorEntry(HANDLE,DWORD,LPLDT_ENTRY);
|
||||
WINBASEAPI BOOL WINAPI GetThreadTimes(HANDLE,LPFILETIME,LPFILETIME,LPFILETIME,LPFILETIME);
|
||||
WINADVAPI BOOL WINAPI GetTokenInformation(HANDLE,TOKEN_INFORMATION_CLASS,LPVOID,DWORD,LPDWORD);
|
||||
WINBASEAPI BOOL WINAPI GetUmsCompletionListEvent(PUMS_COMPLETION_LIST, PHANDLE);
|
||||
WINADVAPI BOOL WINAPI GetUserNameA(LPSTR,LPDWORD);
|
||||
WINADVAPI BOOL WINAPI GetUserNameW(LPWSTR,LPDWORD);
|
||||
#define GetUserName WINELIB_NAME_AW(GetUserName)
|
||||
@ -2244,6 +2274,7 @@ WINBASEAPI BOOL WINAPI GetVolumePathNameW(LPCWSTR,LPWSTR,DWORD);
|
||||
WINBASEAPI BOOL WINAPI GetVolumePathNamesForVolumeNameA(LPCSTR,LPSTR,DWORD,PDWORD);
|
||||
WINBASEAPI BOOL WINAPI GetVolumePathNamesForVolumeNameW(LPCWSTR,LPWSTR,DWORD,PDWORD);
|
||||
#define GetVolumePathNamesForVolumeName WINELIB_NAME_AW(GetVolumePathNamesForVolumeName)
|
||||
WINADVAPI BOOL WINAPI GetWindowsAccountDomainSid(PSID,PSID,DWORD*);
|
||||
WINBASEAPI UINT WINAPI GetWindowsDirectoryA(LPSTR,UINT);
|
||||
WINBASEAPI UINT WINAPI GetWindowsDirectoryW(LPWSTR,UINT);
|
||||
#define GetWindowsDirectory WINELIB_NAME_AW(GetWindowsDirectory)
|
||||
@ -2316,6 +2347,7 @@ WINBASEAPI BOOL WINAPI IsBadWritePtr(LPVOID,UINT_PTR);
|
||||
WINBASEAPI BOOL WINAPI IsDebuggerPresent(void);
|
||||
WINBASEAPI BOOL WINAPI IsSystemResumeAutomatic(void);
|
||||
WINADVAPI BOOL WINAPI IsTextUnicode(LPCVOID,INT,LPINT);
|
||||
WINBASEAPI BOOL WINAPI IsThreadpoolTimerSet(PTP_TIMER);
|
||||
WINADVAPI BOOL WINAPI IsTokenRestricted(HANDLE);
|
||||
WINADVAPI BOOL WINAPI IsValidAcl(PACL);
|
||||
WINADVAPI BOOL WINAPI IsValidSecurityDescriptor(PSECURITY_DESCRIPTOR);
|
||||
@ -2328,6 +2360,7 @@ WINADVAPI BOOL WINAPI ImpersonateSelf(SECURITY_IMPERSONATION_LEVEL);
|
||||
WINBASEAPI BOOL WINAPI IsProcessInJob(HANDLE,HANDLE,PBOOL);
|
||||
WINBASEAPI BOOL WINAPI IsProcessorFeaturePresent(DWORD);
|
||||
WINBASEAPI void WINAPI LeaveCriticalSection(CRITICAL_SECTION *lpCrit);
|
||||
WINBASEAPI VOID WINAPI LeaveCriticalSectionWhenCallbackReturns(PTP_CALLBACK_INSTANCE,CRITICAL_SECTION*);
|
||||
WINBASEAPI HMODULE WINAPI LoadLibraryA(LPCSTR);
|
||||
WINBASEAPI HMODULE WINAPI LoadLibraryW(LPCWSTR);
|
||||
#define LoadLibrary WINELIB_NAME_AW(LoadLibrary)
|
||||
@ -2449,6 +2482,7 @@ WINADVAPI BOOL WINAPI PrivilegedServiceAuditAlarmW(LPCWSTR,LPCWSTR,HANDL
|
||||
#define PrivilegedServiceAuditAlarm WINELIB_NAME_AW(PrivilegedServiceAuditAlarm)
|
||||
WINBASEAPI BOOL WINAPI PulseEvent(HANDLE);
|
||||
WINBASEAPI BOOL WINAPI PurgeComm(HANDLE,DWORD);
|
||||
WINBASEAPI BOOL WINAPI QueryActCtxSettingsW(DWORD,HANDLE,const WCHAR*,const WCHAR*,WCHAR*,SIZE_T,SIZE_T*);
|
||||
WINBASEAPI BOOL WINAPI QueryActCtxW(DWORD,HANDLE,PVOID,ULONG,PVOID,SIZE_T,SIZE_T *);
|
||||
WINBASEAPI USHORT WINAPI QueryDepthSList(PSLIST_HEADER);
|
||||
WINBASEAPI DWORD WINAPI QueryDosDeviceA(LPCSTR,LPSTR,DWORD);
|
||||
@ -2462,6 +2496,7 @@ WINBASEAPI BOOL WINAPI QueryMemoryResourceNotification(HANDLE,PBOOL);
|
||||
WINBASEAPI BOOL WINAPI QueryPerformanceCounter(LARGE_INTEGER*);
|
||||
WINBASEAPI BOOL WINAPI QueryPerformanceFrequency(LARGE_INTEGER*);
|
||||
WINBASEAPI BOOL WINAPI QueryThreadCycleTime(HANDLE,PULONG64);
|
||||
WINBASEAPI BOOL WINAPI QueryUmsThreadInformation(PUMS_CONTEXT,UMS_THREAD_INFO_CLASS,PVOID,ULONG,PULONG);
|
||||
WINBASEAPI DWORD WINAPI QueueUserAPC(PAPCFUNC,HANDLE,ULONG_PTR);
|
||||
WINBASEAPI BOOL WINAPI QueueUserWorkItem(LPTHREAD_START_ROUTINE,PVOID,ULONG);
|
||||
WINBASEAPI void WINAPI RaiseException(DWORD,DWORD,DWORD,const ULONG_PTR *);
|
||||
@ -2481,7 +2516,9 @@ WINBASEAPI BOOL WINAPI RegisterWaitForSingleObject(PHANDLE,HANDLE,WAITORT
|
||||
WINBASEAPI HANDLE WINAPI RegisterWaitForSingleObjectEx(HANDLE,WAITORTIMERCALLBACK,PVOID,ULONG,ULONG);
|
||||
WINBASEAPI VOID WINAPI ReleaseActCtx(HANDLE);
|
||||
WINBASEAPI BOOL WINAPI ReleaseMutex(HANDLE);
|
||||
WINBASEAPI VOID WINAPI ReleaseMutexWhenCallbackReturns(PTP_CALLBACK_INSTANCE,HANDLE);
|
||||
WINBASEAPI BOOL WINAPI ReleaseSemaphore(HANDLE,LONG,LPLONG);
|
||||
WINBASEAPI VOID WINAPI ReleaseSemaphoreWhenCallbackReturns(PTP_CALLBACK_INSTANCE,HANDLE,DWORD);
|
||||
WINBASEAPI VOID WINAPI ReleaseSRWLockExclusive(PSRWLOCK);
|
||||
WINBASEAPI VOID WINAPI ReleaseSRWLockShared(PSRWLOCK);
|
||||
WINBASEAPI ULONG WINAPI RemoveVectoredExceptionHandler(PVOID);
|
||||
@ -2493,6 +2530,7 @@ WINBASEAPI BOOL WINAPI RemoveDirectoryW(LPCWSTR);
|
||||
#define RemoveDirectory WINELIB_NAME_AW(RemoveDirectory)
|
||||
WINADVAPI BOOL WINAPI ReportEventA(HANDLE,WORD,WORD,DWORD,PSID,WORD,DWORD,LPCSTR *,LPVOID);
|
||||
WINADVAPI BOOL WINAPI ReportEventW(HANDLE,WORD,WORD,DWORD,PSID,WORD,DWORD,LPCWSTR *,LPVOID);
|
||||
WINBASEAPI BOOL WINAPI RequestDeviceWakeup(HANDLE);
|
||||
WINBASEAPI BOOL WINAPI RequestWakeupLatency(LATENCY_TIME latency);
|
||||
#define ReportEvent WINELIB_NAME_AW(ReportEvent)
|
||||
WINBASEAPI BOOL WINAPI ResetEvent(HANDLE);
|
||||
@ -2531,6 +2569,7 @@ WINBASEAPI BOOL WINAPI SetEnvironmentVariableW(LPCWSTR,LPCWSTR);
|
||||
#define SetEnvironmentVariable WINELIB_NAME_AW(SetEnvironmentVariable)
|
||||
WINBASEAPI UINT WINAPI SetErrorMode(UINT);
|
||||
WINBASEAPI BOOL WINAPI SetEvent(HANDLE);
|
||||
WINBASEAPI VOID WINAPI SetEventWhenCallbackReturns(PTP_CALLBACK_INSTANCE,HANDLE);
|
||||
WINBASEAPI VOID WINAPI SetFileApisToANSI(void);
|
||||
WINBASEAPI VOID WINAPI SetFileApisToOEM(void);
|
||||
WINBASEAPI BOOL WINAPI SetFileAttributesA(LPCSTR,DWORD);
|
||||
@ -2576,6 +2615,8 @@ WINBASEAPI BOOL WINAPI SetThreadContext(HANDLE,const CONTEXT *);
|
||||
WINBASEAPI BOOL WINAPI SetThreadErrorMode(DWORD,LPDWORD);
|
||||
WINBASEAPI DWORD WINAPI SetThreadExecutionState(EXECUTION_STATE);
|
||||
WINBASEAPI DWORD WINAPI SetThreadIdealProcessor(HANDLE,DWORD);
|
||||
WINBASEAPI VOID WINAPI SetThreadpoolThreadMaximum(PTP_POOL,DWORD);
|
||||
WINBASEAPI BOOL WINAPI SetThreadpoolThreadMinimum(PTP_POOL,DWORD);
|
||||
WINBASEAPI BOOL WINAPI SetThreadPriority(HANDLE,INT);
|
||||
WINBASEAPI BOOL WINAPI SetThreadPriorityBoost(HANDLE,BOOL);
|
||||
WINADVAPI BOOL WINAPI SetThreadToken(PHANDLE,HANDLE);
|
||||
@ -2593,6 +2634,7 @@ WINBASEAPI BOOL WINAPI SetVolumeMountPointW(LPCWSTR,LPCWSTR);
|
||||
#define SetVolumeMountPoint WINELIB_NAME_AW(SetVolumeMountPoint)
|
||||
WINBASEAPI BOOL WINAPI SetWaitableTimer(HANDLE,const LARGE_INTEGER*,LONG,PTIMERAPCROUTINE,LPVOID,BOOL);
|
||||
WINBASEAPI BOOL WINAPI SetWaitableTimerEx(HANDLE,const LARGE_INTEGER*,LONG,PTIMERAPCROUTINE,LPVOID,REASON_CONTEXT*,ULONG);
|
||||
WINBASEAPI BOOL WINAPI SetUmsThreadInformation(PUMS_CONTEXT,UMS_THREAD_INFO_CLASS,void *,ULONG);
|
||||
WINBASEAPI BOOL WINAPI SetupComm(HANDLE,DWORD,DWORD);
|
||||
WINBASEAPI DWORD WINAPI SignalObjectAndWait(HANDLE,HANDLE,DWORD,BOOL);
|
||||
WINBASEAPI DWORD WINAPI SizeofResource(HMODULE,HRSRC);
|
||||
@ -2626,6 +2668,7 @@ WINBASEAPI BOOL WINAPI UnlockFileEx(HANDLE,DWORD,DWORD,DWORD,LPOVERLAPPED
|
||||
#define UnlockResource(handle) ((handle), 0)
|
||||
#define UnlockSegment(handle) GlobalUnfix((HANDLE)(handle))
|
||||
WINBASEAPI BOOL WINAPI UnmapViewOfFile(LPCVOID);
|
||||
WINBASEAPI BOOL WINAPI UmsThreadYield(void *);
|
||||
WINBASEAPI HRESULT WINAPI UnregisterApplicationRestart(void);
|
||||
WINBASEAPI BOOL WINAPI UnregisterWait(HANDLE);
|
||||
WINBASEAPI BOOL WINAPI UnregisterWaitEx(HANDLE,HANDLE);
|
||||
@ -2654,6 +2697,8 @@ WINBASEAPI DWORD WINAPI WaitForMultipleObjectsEx(DWORD,const HANDLE*,BOOL,
|
||||
WINBASEAPI DWORD WINAPI WaitForSingleObject(HANDLE,DWORD);
|
||||
WINBASEAPI DWORD WINAPI WaitForSingleObjectEx(HANDLE,DWORD,BOOL);
|
||||
WINBASEAPI VOID WINAPI WaitForThreadpoolTimerCallbacks(PTP_TIMER,BOOL);
|
||||
WINBASEAPI VOID WINAPI WaitForThreadpoolWaitCallbacks(PTP_WAIT,BOOL);
|
||||
WINBASEAPI VOID WINAPI WaitForThreadpoolWorkCallbacks(PTP_WORK,BOOL);
|
||||
WINBASEAPI BOOL WINAPI WaitNamedPipeA(LPCSTR,DWORD);
|
||||
WINBASEAPI BOOL WINAPI WaitNamedPipeW(LPCWSTR,DWORD);
|
||||
#define WaitNamedPipe WINELIB_NAME_AW(WaitNamedPipe)
|
||||
@ -2662,7 +2707,9 @@ WINBASEAPI VOID WINAPI WakeConditionVariable(PCONDITION_VARIABLE);
|
||||
WINBASEAPI UINT WINAPI WinExec(LPCSTR,UINT);
|
||||
WINBASEAPI BOOL WINAPI Wow64DisableWow64FsRedirection(PVOID*);
|
||||
WINBASEAPI BOOLEAN WINAPI Wow64EnableWow64FsRedirection(BOOLEAN);
|
||||
WINBASEAPI BOOL WINAPI Wow64GetThreadContext(HANDLE, WOW64_CONTEXT *);
|
||||
WINBASEAPI BOOL WINAPI Wow64RevertWow64FsRedirection(PVOID);
|
||||
WINBASEAPI BOOL WINAPI Wow64SetThreadContext(HANDLE, const WOW64_CONTEXT *);
|
||||
WINADVAPI DWORD WINAPI WriteEncryptedFileRaw(PFE_IMPORT_FUNC,PVOID,PVOID);
|
||||
WINBASEAPI BOOL WINAPI WriteFile(HANDLE,LPCVOID,DWORD,LPDWORD,LPOVERLAPPED);
|
||||
WINBASEAPI BOOL WINAPI WriteFileEx(HANDLE,LPCVOID,DWORD,LPOVERLAPPED,LPOVERLAPPED_COMPLETION_ROUTINE);
|
||||
|
@ -71,6 +71,8 @@ extern "C" {
|
||||
# endif
|
||||
# elif defined(__arm__) && defined (__GNUC__) && !defined(__SOFTFP__)
|
||||
# define __stdcall __attribute__((pcs("aapcs-vfp")))
|
||||
# elif defined(__aarch64__) && defined (__GNUC__)
|
||||
# define __stdcall __attribute__((ms_abi))
|
||||
# else /* __i386__ */
|
||||
# define __stdcall
|
||||
# endif /* __i386__ */
|
||||
@ -91,13 +93,15 @@ extern "C" {
|
||||
# endif
|
||||
# elif defined(__arm__) && defined (__GNUC__) && !defined(__SOFTFP__)
|
||||
# define __cdecl __attribute__((pcs("aapcs-vfp")))
|
||||
# elif defined(__aarch64__) && defined (__GNUC__)
|
||||
# define __cdecl __attribute__((ms_abi))
|
||||
# elif !defined(_MSC_VER)
|
||||
# define __cdecl
|
||||
# endif
|
||||
#endif /* __cdecl */
|
||||
|
||||
#ifndef __ms_va_list
|
||||
# if defined(__x86_64__) && defined (__GNUC__)
|
||||
# if (defined(__x86_64__) || defined(__aarch64__)) && defined (__GNUC__)
|
||||
# define __ms_va_list __builtin_ms_va_list
|
||||
# define __ms_va_start(list,arg) __builtin_ms_va_start(list,arg)
|
||||
# define __ms_va_end(list) __builtin_ms_va_end(list)
|
||||
@ -289,6 +293,7 @@ typedef DWORD COLORREF, *LPCOLORREF;
|
||||
/* Handle types */
|
||||
|
||||
typedef int HFILE;
|
||||
DECLARE_HANDLE(DPI_AWARENESS_CONTEXT);
|
||||
DECLARE_HANDLE(HACCEL);
|
||||
DECLARE_HANDLE(HBITMAP);
|
||||
DECLARE_HANDLE(HBRUSH);
|
||||
@ -432,6 +437,20 @@ typedef struct _RECTL
|
||||
|
||||
typedef const RECTL *LPCRECTL;
|
||||
|
||||
/* DPI awareness */
|
||||
typedef enum DPI_AWARENESS
|
||||
{
|
||||
DPI_AWARENESS_INVALID = -1,
|
||||
DPI_AWARENESS_UNAWARE = 0,
|
||||
DPI_AWARENESS_SYSTEM_AWARE,
|
||||
DPI_AWARENESS_PER_MONITOR_AWARE
|
||||
} DPI_AWARENESS;
|
||||
|
||||
#define DPI_AWARENESS_CONTEXT_UNAWARE ((DPI_AWARENESS_CONTEXT)-1)
|
||||
#define DPI_AWARENESS_CONTEXT_SYSTEM_AWARE ((DPI_AWARENESS_CONTEXT)-2)
|
||||
#define DPI_AWARENESS_CONTEXT_PER_MONITOR_AWARE ((DPI_AWARENESS_CONTEXT)-3)
|
||||
#define DPI_AWARENESS_CONTEXT_PER_MONITOR_AWARE_V2 ((DPI_AWARENESS_CONTEXT)-4)
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
@ -1,205 +0,0 @@
|
||||
/*
|
||||
* RPC format chars, as found by studying MIDL output.
|
||||
* Some, but not all, usage of these are explained on MSDN.
|
||||
*/
|
||||
|
||||
#ifndef __WINE_RPCFC_H
|
||||
#define __WINE_RPCFC_H
|
||||
|
||||
/* base types */
|
||||
#define RPC_FC_BYTE 0x01
|
||||
#define RPC_FC_CHAR 0x02
|
||||
#define RPC_FC_SMALL 0x03
|
||||
#define RPC_FC_USMALL 0x04
|
||||
#define RPC_FC_WCHAR 0x05
|
||||
#define RPC_FC_SHORT 0x06
|
||||
#define RPC_FC_USHORT 0x07
|
||||
#define RPC_FC_LONG 0x08
|
||||
#define RPC_FC_ULONG 0x09
|
||||
#define RPC_FC_FLOAT 0x0a
|
||||
#define RPC_FC_HYPER 0x0b
|
||||
#define RPC_FC_DOUBLE 0x0c
|
||||
#define RPC_FC_ENUM16 0x0d
|
||||
#define RPC_FC_ENUM32 0x0e
|
||||
#define RPC_FC_IGNORE 0x0f
|
||||
#define RPC_FC_ERROR_STATUS_T 0x10
|
||||
|
||||
/* other stuff */
|
||||
#define RPC_FC_RP 0x11 /* reference pointer */
|
||||
#define RPC_FC_UP 0x12 /* unique pointer */
|
||||
#define RPC_FC_OP 0x13 /* unique pointer in object ? */
|
||||
#define RPC_FC_FP 0x14 /* full pointer */
|
||||
|
||||
#define RPC_FC_STRUCT 0x15 /* simple structure */
|
||||
/* FC_STRUCT: align-1, NdrFcShort(size), fields */
|
||||
|
||||
#define RPC_FC_PSTRUCT 0x16 /* simple structure w/ pointers */
|
||||
/* FC_PTRUCT: align-1, NdrFcShort(size), ptrs, fields */
|
||||
|
||||
#define RPC_FC_CSTRUCT 0x17 /* conformant structure */
|
||||
|
||||
#define RPC_FC_CPSTRUCT 0x18 /* conformant structure w/ pointers */
|
||||
|
||||
#define RPC_FC_CVSTRUCT 0x19 /* conformant varying struct */
|
||||
|
||||
#define RPC_FC_BOGUS_STRUCT 0x1a /* complex structure */
|
||||
|
||||
#define RPC_FC_CARRAY 0x1b /* conformant array */
|
||||
/* FC_CARRAY: align-1, NdrFcShort(size), conformance, ptrs, fields */
|
||||
#define RPC_FC_CVARRAY 0x1c /* conformant varying array */
|
||||
/* FC_CARRAY: align-1, NdrFcShort(size), conformance, variance, ptrs, fields */
|
||||
#define RPC_FC_SMFARRAY 0x1d /* small (<64K) fixed array */
|
||||
/* FC_SMFARRAY: align-1, NdrFcShort(size), ptrs, fields */
|
||||
|
||||
#define RPC_FC_LGFARRAY 0x1e /* large (>= 64k) fixed array */
|
||||
|
||||
#define RPC_FC_SMVARRAY 0x1f /* small (<64k) varying array */
|
||||
|
||||
#define RPC_FC_LGVARRAY 0x20 /* large (>= 64k) varying array */
|
||||
|
||||
#define RPC_FC_BOGUS_ARRAY 0x21 /* complex array */
|
||||
|
||||
#define RPC_FC_C_CSTRING 0x22
|
||||
#define RPC_FC_C_SSTRING 0x24
|
||||
#define RPC_FC_C_WSTRING 0x25
|
||||
#define RPC_FC_CSTRING 0x26
|
||||
#define RPC_FC_SSTRING 0x28
|
||||
#define RPC_FC_WSTRING 0x29
|
||||
|
||||
#define RPC_FC_ENCAPSULATED_UNION 0x2a
|
||||
#define RPC_FC_NON_ENCAPSULATED_UNION 0x2b
|
||||
|
||||
#define RPC_FC_BYTE_COUNT_POINTER 0x2c /* [byte_count] ACF attribute */
|
||||
|
||||
#define RPC_FC_TRANSMIT_AS 0x2d
|
||||
#define RPC_FC_REPRESENT_AS 0x2e
|
||||
|
||||
#define RPC_FC_IP 0x2f /* interface pointer */
|
||||
/* FC_IP: FC_CONSTANT_IID iid */
|
||||
/* FC_IP: FC_PAD correlation */
|
||||
|
||||
#define RPC_FC_BIND_CONTEXT 0x30
|
||||
|
||||
#define RPC_FC_BIND_GENERIC 0x31
|
||||
#define RPC_FC_BIND_PRIMITIVE 0x32
|
||||
#define RPC_FC_AUTO_HANDLE 0x33
|
||||
#define RPC_FC_CALLBACK_HANDLE 0x34
|
||||
|
||||
#define RPC_FC_POINTER 0x36
|
||||
|
||||
#define RPC_FC_ALIGNM2 0x37
|
||||
#define RPC_FC_ALIGNM4 0x38
|
||||
#define RPC_FC_ALIGNM8 0x39
|
||||
|
||||
#define RPC_FC_STRUCTPAD1 0x3d
|
||||
#define RPC_FC_STRUCTPAD2 0x3e
|
||||
#define RPC_FC_STRUCTPAD3 0x3f
|
||||
#define RPC_FC_STRUCTPAD4 0x40
|
||||
#define RPC_FC_STRUCTPAD5 0x41
|
||||
#define RPC_FC_STRUCTPAD6 0x42
|
||||
#define RPC_FC_STRUCTPAD7 0x43
|
||||
|
||||
#define RPC_FC_STRING_SIZED 0x44
|
||||
|
||||
#define RPC_FC_NO_REPEAT 0x46
|
||||
#define RPC_FC_FIXED_REPEAT 0x47
|
||||
#define RPC_FC_VARIABLE_REPEAT 0x48
|
||||
#define RPC_FC_FIXED_OFFSET 0x49
|
||||
#define RPC_FC_VARIABLE_OFFSET 0x4a
|
||||
|
||||
#define RPC_FC_PP 0x4b /* pointer layout */
|
||||
/* FC_PP: FC_PAD layouts */
|
||||
/* layouts: FC_NO_REPEAT FC_PAD instance */
|
||||
/* instance: NdrFcShort(memofs), NdrFcShort(bufofs), desc */
|
||||
|
||||
#define RPC_FC_EMBEDDED_COMPLEX 0x4c
|
||||
/* FC_EMBEDDED_COMPLEX: padding, NdrFcShort(typeofs) */
|
||||
|
||||
#define RPC_FC_IN_PARAM 0x4d
|
||||
/* FC_IN_PARAM: stacksiz, NdrFcShort(typeofs) */
|
||||
#define RPC_FC_IN_PARAM_BASETYPE 0x4e
|
||||
/* FC_IN_PARAM_BASETYPE: basetype */
|
||||
#define RPC_FC_IN_PARAM_NO_FREE_INST 0x4f
|
||||
#define RPC_FC_IN_OUT_PARAM 0x50
|
||||
/* FC_IN_OUT_PARAM: stacksiz, NdrFcShort(typeofs) */
|
||||
#define RPC_FC_OUT_PARAM 0x51
|
||||
/* FC_OUT_PARAM: stacksiz, NdrFcShort(typeofs) */
|
||||
#define RPC_FC_RETURN_PARAM 0x52
|
||||
/* FC_RETURN_PARAM: stacksiz, NdrFcShort(typeofs) */
|
||||
#define RPC_FC_RETURN_PARAM_BASETYPE 0x53
|
||||
/* FC_RETURN_PARAM_BASETYPE: basetype */
|
||||
|
||||
#define RPC_FC_DEREFERENCE 0x54
|
||||
#define RPC_FC_DIV_2 0x55
|
||||
#define RPC_FC_MULT_2 0x56
|
||||
#define RPC_FC_ADD_1 0x57
|
||||
#define RPC_FC_SUB_1 0x58
|
||||
|
||||
#define RPC_FC_CALLBACK 0x59
|
||||
|
||||
#define RPC_FC_CONSTANT_IID 0x5a
|
||||
/* FC_CONSTANT_IID: NdrFcLong(), NdrFcShort(), NdrFcShort(), 8x () */
|
||||
|
||||
#define RPC_FC_END 0x5b
|
||||
#define RPC_FC_PAD 0x5c
|
||||
|
||||
#define RPC_FC_USER_MARSHAL 0xb4
|
||||
|
||||
#define RPC_FC_RANGE 0xb7
|
||||
|
||||
#define RPC_FC_INT3264 0xb8
|
||||
#define RPC_FC_UINT3264 0xb9
|
||||
|
||||
/* FC_RP/UP/OP/FP: flags, NdrFcShort(typeofs)/basetype */
|
||||
#define RPC_FC_P_ALLOCALLNODES 0x01
|
||||
#define RPC_FC_P_DONTFREE 0x02
|
||||
#define RPC_FC_P_ONSTACK 0x04 /* [alloced_on_stack] */
|
||||
#define RPC_FC_P_SIMPLEPOINTER 0x08 /* [simple_pointer] */
|
||||
#define RPC_FC_P_DEREF 0x10
|
||||
|
||||
#define RPC_FC_BIND_EXPLICIT 0x00
|
||||
|
||||
/* proc header: oiflags, NdrFcLong(rpcflags), NdrFcShort(procnum), NdrFcShort(stacksiz),
|
||||
* oi2 header: NdrFcShort(clientbuf), NdrFcShort(servbuf), oi2flags, parmcount
|
||||
* oi2 parameters: NdrFcShort(flags), NdrFcShort(stackofs), NdrFcShort(typeofs)/basetype */
|
||||
#define RPC_FC_PROC_OIF_FULLPTR 0x01
|
||||
#define RPC_FC_PROC_OIF_RPCSSALLOC 0x02
|
||||
#define RPC_FC_PROC_OIF_OBJECT 0x04
|
||||
#define RPC_FC_PROC_OIF_RPCFLAGS 0x08
|
||||
#define RPC_FC_PROC_OIF_OBJ_V2 0x20
|
||||
#define RPC_FC_PROC_OIF_HAS_COMM_OR_FAULT 0x20
|
||||
#define RPC_FC_PROC_OIF_NEWINIT 0x40
|
||||
|
||||
#define RPC_FC_PROC_PF_MUSTSIZE 0x0001
|
||||
#define RPC_FC_PROC_PF_MUSTFREE 0x0002
|
||||
#define RPC_FC_PROC_PF_PIPE 0x0004
|
||||
#define RPC_FC_PROC_PF_IN 0x0008
|
||||
#define RPC_FC_PROC_PF_OUT 0x0010
|
||||
#define RPC_FC_PROC_PF_RETURN 0x0020
|
||||
#define RPC_FC_PROC_PF_BASETYPE 0x0040
|
||||
#define RPC_FC_PROC_PF_BYVAL 0x0080
|
||||
#define RPC_FC_PROC_PF_SIMPLEREF 0x0100
|
||||
#define RPC_FC_PROC_PF_DONTFREEINST 0x0200
|
||||
#define RPC_FC_PROC_PF_SAVEASYNC 0x0400
|
||||
#define RPC_FC_PROC_PF_SRVALLOCSIZE 0xe000 /* in 8 byte units */
|
||||
|
||||
/* correlation types */
|
||||
#define RPC_FC_NORMAL_CONFORMANCE 0x00
|
||||
#define RPC_FC_POINTER_CONFORMANCE 0x10
|
||||
#define RPC_FC_TOP_LEVEL_CONFORMANCE 0x20
|
||||
#define RPC_FC_CONSTANT_CONFORMANCE 0x40
|
||||
#define RPC_FC_TOP_LEVEL_MULTID_CONFORMANCE 0x80
|
||||
|
||||
/* user marshal flags */
|
||||
#define USER_MARSHAL_UNIQUE 0x80
|
||||
#define USER_MARSHAL_REF 0x40
|
||||
#define USER_MARSHAL_POINTER 0xc0
|
||||
#define USER_MARSHAL_IID 0x20
|
||||
|
||||
/* context handle flags */
|
||||
#define NDR_CONTEXT_HANDLE_CANNOT_BE_NULL 0x01
|
||||
#define NDR_CONTEXT_HANDLE_SERIALIZE 0x02
|
||||
#define NDR_CONTEXT_HANDLE_NO_SERIALIZE 0x04
|
||||
#define NDR_STRICT_CONTEXT_HANDLE 0x08
|
||||
|
||||
#endif /* __WINE_RPCFC_H */
|
@ -940,7 +940,6 @@ static inline HRESULT HRESULT_FROM_WIN32(unsigned int x)
|
||||
#define ERROR_WRONG_COMPARTMENT 1468
|
||||
#define ERROR_AUTHIP_FAILURE 1469
|
||||
#define ERROR_NO_NVRAM_RESOURCES 1470
|
||||
#define ERROR_NOT_GUI_PROCESS 1471
|
||||
#define ERROR_EVENTLOG_FILE_CORRUPT 1500
|
||||
#define ERROR_EVENTLOG_CANT_START 1501
|
||||
#define ERROR_LOG_FILE_FULL 1502
|
||||
@ -3011,6 +3010,85 @@ static inline HRESULT HRESULT_FROM_WIN32(unsigned int x)
|
||||
#define SCARD_W_CACHE_ITEM_STALE _HRESULT_TYPEDEF_(0x80100071)
|
||||
#define SCARD_W_CACHE_ITEM_TOO_BIG _HRESULT_TYPEDEF_(0x80100072)
|
||||
|
||||
#define WININET_E_OUT_OF_HANDLES _HRESULT_TYPEDEF_(0x80072ee1)
|
||||
#define WININET_E_TIMEOUT _HRESULT_TYPEDEF_(0x80072ee2)
|
||||
#define WININET_E_EXTENDED_ERROR _HRESULT_TYPEDEF_(0x80072ee3)
|
||||
#define WININET_E_INTERNAL_ERROR _HRESULT_TYPEDEF_(0x80072ee4)
|
||||
#define WININET_E_INVALID_URL _HRESULT_TYPEDEF_(0x80072ee5)
|
||||
#define WININET_E_UNRECOGNIZED_SCHEME _HRESULT_TYPEDEF_(0x80072ee6)
|
||||
#define WININET_E_NAME_NOT_RESOLVED _HRESULT_TYPEDEF_(0x80072ee7)
|
||||
#define WININET_E_PROTOCOL_NOT_FOUND _HRESULT_TYPEDEF_(0x80072ee8)
|
||||
#define WININET_E_INVALID_OPTION _HRESULT_TYPEDEF_(0x80072ee9)
|
||||
#define WININET_E_BAD_OPTION_LENGTH _HRESULT_TYPEDEF_(0x80072eea)
|
||||
#define WININET_E_OPTION_NOT_SETTABLE _HRESULT_TYPEDEF_(0x80072eeb)
|
||||
#define WININET_E_SHUTDOWN _HRESULT_TYPEDEF_(0x80072eec)
|
||||
#define WININET_E_INCORRECT_USER_NAME _HRESULT_TYPEDEF_(0x80072eed)
|
||||
#define WININET_E_INCORRECT_PASSWORD _HRESULT_TYPEDEF_(0x80072eee)
|
||||
#define WININET_E_LOGIN_FAILURE _HRESULT_TYPEDEF_(0x80072eef)
|
||||
#define WININET_E_INVALID_OPERATION _HRESULT_TYPEDEF_(0x80072ef0)
|
||||
#define WININET_E_OPERATION_CANCELLED _HRESULT_TYPEDEF_(0x80072ef1)
|
||||
#define WININET_E_INCORRECT_HANDLE_TYPE _HRESULT_TYPEDEF_(0x80072ef2)
|
||||
#define WININET_E_INCORRECT_HANDLE_STATE _HRESULT_TYPEDEF_(0x80072ef3)
|
||||
#define WININET_E_NOT_PROXY_REQUEST _HRESULT_TYPEDEF_(0x80072ef4)
|
||||
#define WININET_E_REGISTRY_VALUE_NOT_FOUND _HRESULT_TYPEDEF_(0x80072ef5)
|
||||
#define WININET_E_BAD_REGISTRY_PARAMETER _HRESULT_TYPEDEF_(0x80072ef6)
|
||||
#define WININET_E_NO_DIRECT_ACCESS _HRESULT_TYPEDEF_(0x80072ef7)
|
||||
#define WININET_E_NO_CONTEXT _HRESULT_TYPEDEF_(0x80072ef8)
|
||||
#define WININET_E_NO_CALLBACK _HRESULT_TYPEDEF_(0x80072ef9)
|
||||
#define WININET_E_REQUEST_PENDING _HRESULT_TYPEDEF_(0x80072efa)
|
||||
#define WININET_E_INCORRECT_FORMAT _HRESULT_TYPEDEF_(0x80072efb)
|
||||
#define WININET_E_ITEM_NOT_FOUND _HRESULT_TYPEDEF_(0x80072efc)
|
||||
#define WININET_E_CANNOT_CONNECT _HRESULT_TYPEDEF_(0x80072efd)
|
||||
#define WININET_E_CONNECTION_ABORTED _HRESULT_TYPEDEF_(0x80072efe)
|
||||
#define WININET_E_CONNECTION_RESET _HRESULT_TYPEDEF_(0x80072eff)
|
||||
#define WININET_E_FORCE_RETRY _HRESULT_TYPEDEF_(0x80072f00)
|
||||
#define WININET_E_INVALID_PROXY_REQUEST _HRESULT_TYPEDEF_(0x80072f01)
|
||||
#define WININET_E_NEED_UI _HRESULT_TYPEDEF_(0x80072f02)
|
||||
#define WININET_E_HANDLE_EXISTS _HRESULT_TYPEDEF_(0x80072f04)
|
||||
#define WININET_E_SEC_CERT_DATE_INVALID _HRESULT_TYPEDEF_(0x80072f05)
|
||||
#define WININET_E_SEC_CERT_CN_INVALID _HRESULT_TYPEDEF_(0x80072f06)
|
||||
#define WININET_E_HTTP_TO_HTTPS_ON_REDIR _HRESULT_TYPEDEF_(0x80072f07)
|
||||
#define WININET_E_HTTPS_TO_HTTP_ON_REDIR _HRESULT_TYPEDEF_(0x80072f08)
|
||||
#define WININET_E_MIXED_SECURITY _HRESULT_TYPEDEF_(0x80072f09)
|
||||
#define WININET_E_CHG_POST_IS_NON_SECURE _HRESULT_TYPEDEF_(0x80072f0a)
|
||||
#define WININET_E_POST_IS_NON_SECURE _HRESULT_TYPEDEF_(0x80072f0b)
|
||||
#define WININET_E_CLIENT_AUTH_CERT_NEEDED _HRESULT_TYPEDEF_(0x80072f0c)
|
||||
#define WININET_E_INVALID_CA _HRESULT_TYPEDEF_(0x80072f0d)
|
||||
#define WININET_E_CLIENT_AUTH_NOT_SETUP _HRESULT_TYPEDEF_(0x80072f0e)
|
||||
#define WININET_E_ASYNC_THREAD_FAILED _HRESULT_TYPEDEF_(0x80072f0f)
|
||||
#define WININET_E_REDIRECT_SCHEME_CHANGE _HRESULT_TYPEDEF_(0x80072f10)
|
||||
#define WININET_E_DIALOG_PENDING _HRESULT_TYPEDEF_(0x80072f11)
|
||||
#define WININET_E_RETRY_DIALOG _HRESULT_TYPEDEF_(0x80072f12)
|
||||
#define WININET_E_NO_NEW_CONTAINERS _HRESULT_TYPEDEF_(0x80072f13)
|
||||
#define WININET_E_HTTPS_HTTP_SUBMIT_REDIR _HRESULT_TYPEDEF_(0x80072f14)
|
||||
#define WININET_E_SEC_CERT_ERRORS _HRESULT_TYPEDEF_(0x80072f17)
|
||||
#define WININET_E_SEC_CERT_REV_FAILED _HRESULT_TYPEDEF_(0x80072f19)
|
||||
#define WININET_E_HEADER_NOT_FOUND _HRESULT_TYPEDEF_(0x80072f76)
|
||||
#define WININET_E_DOWNLEVEL_SERVER _HRESULT_TYPEDEF_(0x80072f77)
|
||||
#define WININET_E_INVALID_SERVER_RESPONSE _HRESULT_TYPEDEF_(0x80072f78)
|
||||
#define WININET_E_INVALID_HEADER _HRESULT_TYPEDEF_(0x80072f79)
|
||||
#define WININET_E_INVALID_QUERY_REQUEST _HRESULT_TYPEDEF_(0x80072f7a)
|
||||
#define WININET_E_HEADER_ALREADY_EXISTS _HRESULT_TYPEDEF_(0x80072f7b)
|
||||
#define WININET_E_REDIRECT_FAILED _HRESULT_TYPEDEF_(0x80072f7c)
|
||||
#define WININET_E_SECURITY_CHANNEL_ERROR _HRESULT_TYPEDEF_(0x80072f7d)
|
||||
#define WININET_E_UNABLE_TO_CACHE_FILE _HRESULT_TYPEDEF_(0x80072f7e)
|
||||
#define WININET_E_TCPIP_NOT_INSTALLED _HRESULT_TYPEDEF_(0x80072f7f)
|
||||
#define WININET_E_NOT_REDIRECTED _HRESULT_TYPEDEF_(0x80072f80)
|
||||
#define WININET_E_COOKIE_NEEDS_CONFIRMATION _HRESULT_TYPEDEF_(0x80072f81)
|
||||
#define WININET_E_COOKIE_DECLINED _HRESULT_TYPEDEF_(0x80072f82)
|
||||
#define WININET_E_DISCONNECTED _HRESULT_TYPEDEF_(0x80072f83)
|
||||
#define WININET_E_SERVER_UNREACHABLE _HRESULT_TYPEDEF_(0x80072f84)
|
||||
#define WININET_E_PROXY_SERVER_UNREACHABLE _HRESULT_TYPEDEF_(0x80072f85)
|
||||
#define WININET_E_BAD_AUTO_PROXY_SCRIPT _HRESULT_TYPEDEF_(0x80072f86)
|
||||
#define WININET_E_UNABLE_TO_DOWNLOAD_SCRIPT _HRESULT_TYPEDEF_(0x80072f87)
|
||||
#define WININET_E_REDIRECT_NEEDS_CONFIRMATION _HRESULT_TYPEDEF_(0x80072f88)
|
||||
#define WININET_E_SEC_INVALID_CERT _HRESULT_TYPEDEF_(0x80072f89)
|
||||
#define WININET_E_SEC_CERT_REVOKED _HRESULT_TYPEDEF_(0x80072f8a)
|
||||
#define WININET_E_FAILED_DUETOSECURITYCHECK _HRESULT_TYPEDEF_(0x80072f8b)
|
||||
#define WININET_E_NOT_INITIALIZED _HRESULT_TYPEDEF_(0x80072f8c)
|
||||
#define WININET_E_LOGIN_FAILURE_DISPLAY_ENTITY_BODY _HRESULT_TYPEDEF_(0x80072f8e)
|
||||
#define WININET_E_DECODING_FAILED _HRESULT_TYPEDEF_(0x80072f8f)
|
||||
|
||||
#define D3D11_ERROR_TOO_MANY_UNIQUE_STATE_OBJECTS _HRESULT_TYPEDEF_(0x887c0001)
|
||||
#define D3D11_ERROR_FILE_NOT_FOUND _HRESULT_TYPEDEF_(0x887c0002)
|
||||
#define D3D11_ERROR_TOO_MANY_UNIQUE_VIEW_OBJECTS _HRESULT_TYPEDEF_(0x887c0003)
|
||||
|
@ -352,6 +352,10 @@ static const WCHAR LOCALE_NAME_SYSTEM_DEFAULT[] = {'!','s','y','s','-','d','e','
|
||||
#define NORM_IGNOREKANATYPE 0x00010000
|
||||
#define NORM_IGNOREWIDTH 0x00020000
|
||||
#define NORM_LINGUISTIC_CASING 0x08000000
|
||||
#define FIND_STARTSWITH 0x00100000
|
||||
#define FIND_ENDSWITH 0x00200000
|
||||
#define FIND_FROMSTART 0x00400000
|
||||
#define FIND_FROMEND 0x00800000
|
||||
|
||||
#define CP_ACP 0
|
||||
#define CP_OEMCP 1
|
||||
@ -822,7 +826,9 @@ enum SYSGEOTYPE
|
||||
GEO_PARENT,
|
||||
GEO_DIALINGCODE,
|
||||
GEO_CURRENCYCODE,
|
||||
GEO_CURRENCYSYMBOL
|
||||
GEO_CURRENCYSYMBOL,
|
||||
GEO_NAME,
|
||||
GEO_ID
|
||||
};
|
||||
|
||||
enum SYSGEOCLASS
|
||||
@ -890,6 +896,7 @@ WINBASEAPI INT WINAPI GetCalendarInfoA(LCID,DWORD,DWORD,LPSTR,INT,LPDWOR
|
||||
WINBASEAPI INT WINAPI GetCalendarInfoW(LCID,DWORD,DWORD,LPWSTR,INT,LPDWORD);
|
||||
#define GetCalendarInfo WINELIB_NAME_AW(GetCalendarInfo)
|
||||
WINBASEAPI INT WINAPI GetCurrencyFormatA(LCID,DWORD,LPCSTR,const CURRENCYFMTA*,LPSTR,INT);
|
||||
WINBASEAPI INT WINAPI GetCurrencyFormatEx(LPCWSTR,DWORD,LPCWSTR,const CURRENCYFMTW*,LPWSTR,int);
|
||||
WINBASEAPI INT WINAPI GetCurrencyFormatW(LCID,DWORD,LPCWSTR,const CURRENCYFMTW*,LPWSTR,INT);
|
||||
#define GetCurrencyFormat WINELIB_NAME_AW(GetCurrencyFormat)
|
||||
WINBASEAPI INT WINAPI GetDateFormatA(LCID,DWORD,const SYSTEMTIME*,LPCSTR,LPSTR,INT);
|
||||
@ -961,6 +968,7 @@ WINBASEAPI BOOL WINAPI SetThreadLocale(LCID);
|
||||
WINBASEAPI LANGID WINAPI SetThreadUILanguage(LANGID);
|
||||
WINBASEAPI BOOL WINAPI SetUserGeoID(GEOID);
|
||||
WINBASEAPI INT WINAPI WideCharToMultiByte(UINT,DWORD,LPCWSTR,INT,LPSTR,INT,LPCSTR,LPBOOL);
|
||||
WINBASEAPI INT WINAPI FindNLSStringEx(const WCHAR *,DWORD,const WCHAR *,INT,const WCHAR *,INT,INT *,NLSVERSIONINFO *,void *,LPARAM);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
@ -759,6 +759,10 @@ typedef struct _MEMORY_BASIC_INFORMATION
|
||||
#define CONTAINING_RECORD(address, type, field) \
|
||||
((type *)((PCHAR)(address) - offsetof(type, field)))
|
||||
|
||||
#ifdef __WINESRC__
|
||||
# define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]))
|
||||
#endif
|
||||
|
||||
/* Types */
|
||||
|
||||
typedef struct _LIST_ENTRY {
|
||||
@ -995,7 +999,7 @@ typedef struct _LDT_ENTRY {
|
||||
unsigned BaseHi : 8;
|
||||
} Bits;
|
||||
} HighWord;
|
||||
} LDT_ENTRY, *PLDT_ENTRY;
|
||||
} LDT_ENTRY, *PLDT_ENTRY, WOW64_LDT_ENTRY, *PWOW64_LDT_ENTRY;
|
||||
|
||||
/* x86-64 context definitions */
|
||||
#if defined(__x86_64__)
|
||||
@ -1850,12 +1854,12 @@ typedef struct _CONTEXT
|
||||
DWORD64 X26; /* 0d8 */
|
||||
DWORD64 X27; /* 0e0 */
|
||||
DWORD64 X28; /* 0e8 */
|
||||
DWORD64 Fp; /* 0f0 */
|
||||
DWORD64 Lr; /* 0f8 */
|
||||
} DUMMYSTRUCTNAME;
|
||||
DWORD64 X[29]; /* 008 */
|
||||
DWORD64 X[31]; /* 008 */
|
||||
} DUMMYUNIONNAME;
|
||||
/* CONTEXT_CONTROL */
|
||||
DWORD64 Fp; /* 0f0 */
|
||||
DWORD64 Lr; /* 0f8 */
|
||||
DWORD64 Sp; /* 100 */
|
||||
DWORD64 Pc; /* 108 */
|
||||
/* CONTEXT_FLOATING_POINT */
|
||||
@ -2112,6 +2116,74 @@ typedef CONTEXT *PCONTEXT;
|
||||
|
||||
NTSYSAPI void WINAPI RtlCaptureContext(CONTEXT*);
|
||||
|
||||
#define WOW64_CONTEXT_i386 0x00010000
|
||||
#define WOW64_CONTEXT_i486 0x00010000
|
||||
#define WOW64_CONTEXT_CONTROL (WOW64_CONTEXT_i386 | __MSABI_LONG(0x00000001))
|
||||
#define WOW64_CONTEXT_INTEGER (WOW64_CONTEXT_i386 | __MSABI_LONG(0x00000002))
|
||||
#define WOW64_CONTEXT_SEGMENTS (WOW64_CONTEXT_i386 | __MSABI_LONG(0x00000004))
|
||||
#define WOW64_CONTEXT_FLOATING_POINT (WOW64_CONTEXT_i386 | __MSABI_LONG(0x00000008))
|
||||
#define WOW64_CONTEXT_DEBUG_REGISTERS (WOW64_CONTEXT_i386 | __MSABI_LONG(0x00000010))
|
||||
#define WOW64_CONTEXT_EXTENDED_REGISTERS (WOW64_CONTEXT_i386 | __MSABI_LONG(0x00000020))
|
||||
#define WOW64_CONTEXT_FULL (WOW64_CONTEXT_CONTROL | WOW64_CONTEXT_INTEGER | WOW64_CONTEXT_SEGMENTS)
|
||||
#define WOW64_CONTEXT_ALL (WOW64_CONTEXT_CONTROL | WOW64_CONTEXT_INTEGER | \
|
||||
WOW64_CONTEXT_SEGMENTS | WOW64_CONTEXT_FLOATING_POINT | \
|
||||
WOW64_CONTEXT_DEBUG_REGISTERS | WOW64_CONTEXT_EXTENDED_REGISTERS)
|
||||
|
||||
#define WOW64_CONTEXT_XSTATE (WOW64_CONTEXT_i386 | __MSABI_LONG(0x00000040))
|
||||
|
||||
#define WOW64_CONTEXT_EXCEPTION_ACTIVE 0x08000000
|
||||
#define WOW64_CONTEXT_SERVICE_ACTIVE 0x10000000
|
||||
#define WOW64_CONTEXT_EXCEPTION_REQUEST 0x40000000
|
||||
#define WOW64_CONTEXT_EXCEPTION_REPORTING 0x80000000
|
||||
|
||||
#define WOW64_SIZE_OF_80387_REGISTERS 80
|
||||
#define WOW64_MAXIMUM_SUPPORTED_EXTENSION 512
|
||||
|
||||
typedef struct _WOW64_FLOATING_SAVE_AREA
|
||||
{
|
||||
DWORD ControlWord;
|
||||
DWORD StatusWord;
|
||||
DWORD TagWord;
|
||||
DWORD ErrorOffset;
|
||||
DWORD ErrorSelector;
|
||||
DWORD DataOffset;
|
||||
DWORD DataSelector;
|
||||
BYTE RegisterArea[WOW64_SIZE_OF_80387_REGISTERS];
|
||||
DWORD Cr0NpxState;
|
||||
} WOW64_FLOATING_SAVE_AREA, *PWOW64_FLOATING_SAVE_AREA;
|
||||
|
||||
#include "pshpack4.h"
|
||||
typedef struct _WOW64_CONTEXT
|
||||
{
|
||||
DWORD ContextFlags;
|
||||
DWORD Dr0;
|
||||
DWORD Dr1;
|
||||
DWORD Dr2;
|
||||
DWORD Dr3;
|
||||
DWORD Dr6;
|
||||
DWORD Dr7;
|
||||
WOW64_FLOATING_SAVE_AREA FloatSave;
|
||||
DWORD SegGs;
|
||||
DWORD SegFs;
|
||||
DWORD SegEs;
|
||||
DWORD SegDs;
|
||||
DWORD Edi;
|
||||
DWORD Esi;
|
||||
DWORD Ebx;
|
||||
DWORD Edx;
|
||||
DWORD Ecx;
|
||||
DWORD Eax;
|
||||
DWORD Ebp;
|
||||
DWORD Eip;
|
||||
DWORD SegCs;
|
||||
DWORD EFlags;
|
||||
DWORD Esp;
|
||||
DWORD SegSs;
|
||||
BYTE ExtendedRegisters[WOW64_MAXIMUM_SUPPORTED_EXTENSION];
|
||||
} WOW64_CONTEXT, *PWOW64_CONTEXT;
|
||||
#include "poppack.h"
|
||||
|
||||
|
||||
/*
|
||||
* Product types
|
||||
*/
|
||||
@ -2424,6 +2496,58 @@ extern struct _TEB * WINAPI NtCurrentTeb(void);
|
||||
|
||||
#define TLS_MINIMUM_AVAILABLE 64
|
||||
|
||||
#define MAXIMUM_REPARSE_DATA_BUFFER_SIZE (16 * 1024)
|
||||
|
||||
#define IO_REPARSE_TAG_RESERVED_ZERO 0
|
||||
#define IO_REPARSE_TAG_RESERVED_ONE 1
|
||||
#define IO_REPARSE_TAG_RESERVED_TWO 2
|
||||
|
||||
#define IO_REPARSE_TAG_RESERVED_RANGE IO_REPARSE_TAG_RESERVED_TWO
|
||||
|
||||
#define IO_REPARSE_TAG_MOUNT_POINT __MSABI_LONG(0xA0000003)
|
||||
#define IO_REPARSE_TAG_HSM __MSABI_LONG(0xC0000004)
|
||||
#define IO_REPARSE_TAG_DRIVE_EXTENDER __MSABI_LONG(0x80000005)
|
||||
#define IO_REPARSE_TAG_HSM2 __MSABI_LONG(0x80000006)
|
||||
#define IO_REPARSE_TAG_SIS __MSABI_LONG(0x80000007)
|
||||
#define IO_REPARSE_TAG_WIM __MSABI_LONG(0x80000008)
|
||||
#define IO_REPARSE_TAG_CSV __MSABI_LONG(0x80000009)
|
||||
#define IO_REPARSE_TAG_DFS __MSABI_LONG(0x8000000A)
|
||||
#define IO_REPARSE_TAG_FILTER_MANAGER __MSABI_LONG(0x8000000B)
|
||||
#define IO_REPARSE_TAG_SYMLINK __MSABI_LONG(0xA000000C)
|
||||
#define IO_REPARSE_TAG_IIS_CACHE __MSABI_LONG(0xA0000010)
|
||||
#define IO_REPARSE_TAG_DFSR __MSABI_LONG(0x80000012)
|
||||
#define IO_REPARSE_TAG_DEDUP __MSABI_LONG(0x80000013)
|
||||
#define IO_REPARSE_TAG_NFS __MSABI_LONG(0x80000014)
|
||||
#define IO_REPARSE_TAG_FILE_PLACEHOLDER __MSABI_LONG(0x80000015)
|
||||
#define IO_REPARSE_TAG_WOF __MSABI_LONG(0x80000017)
|
||||
#define IO_REPARSE_TAG_WCI __MSABI_LONG(0x80000018)
|
||||
#define IO_REPARSE_TAG_WCI_1 __MSABI_LONG(0x90001018)
|
||||
#define IO_REPARSE_TAG_GLOBAL_REPARSE __MSABI_LONG(0xA0000019)
|
||||
#define IO_REPARSE_TAG_CLOUD __MSABI_LONG(0x9000001A)
|
||||
#define IO_REPARSE_TAG_CLOUD_1 __MSABI_LONG(0x9000101A)
|
||||
#define IO_REPARSE_TAG_CLOUD_2 __MSABI_LONG(0x9000201A)
|
||||
#define IO_REPARSE_TAG_CLOUD_3 __MSABI_LONG(0x9000301A)
|
||||
#define IO_REPARSE_TAG_CLOUD_4 __MSABI_LONG(0x9000401A)
|
||||
#define IO_REPARSE_TAG_CLOUD_5 __MSABI_LONG(0x9000501A)
|
||||
#define IO_REPARSE_TAG_CLOUD_6 __MSABI_LONG(0x9000601A)
|
||||
#define IO_REPARSE_TAG_CLOUD_7 __MSABI_LONG(0x9000701A)
|
||||
#define IO_REPARSE_TAG_CLOUD_8 __MSABI_LONG(0x9000801A)
|
||||
#define IO_REPARSE_TAG_CLOUD_9 __MSABI_LONG(0x9000901A)
|
||||
#define IO_REPARSE_TAG_CLOUD_A __MSABI_LONG(0x9000A01A)
|
||||
#define IO_REPARSE_TAG_CLOUD_B __MSABI_LONG(0x9000B01A)
|
||||
#define IO_REPARSE_TAG_CLOUD_C __MSABI_LONG(0x9000C01A)
|
||||
#define IO_REPARSE_TAG_CLOUD_D __MSABI_LONG(0x9000D01A)
|
||||
#define IO_REPARSE_TAG_CLOUD_E __MSABI_LONG(0x9000E01A)
|
||||
#define IO_REPARSE_TAG_CLOUD_F __MSABI_LONG(0x9000F01A)
|
||||
#define IO_REPARSE_TAG_CLOUD_MASK __MSABI_LONG(0x0000F000)
|
||||
#define IO_REPARSE_TAG_APPEXECLINK __MSABI_LONG(0x8000001B)
|
||||
#define IO_REPARSE_TAG_GVFS __MSABI_LONG(0x9000001C)
|
||||
#define IO_REPARSE_TAG_STORAGE_SYNC __MSABI_LONG(0x8000001E)
|
||||
#define IO_REPARSE_TAG_WCI_TOMBSTONE __MSABI_LONG(0xA000001F)
|
||||
#define IO_REPARSE_TAG_UNHANDLED __MSABI_LONG(0x80000020)
|
||||
#define IO_REPARSE_TAG_ONEDRIVE __MSABI_LONG(0x80000021)
|
||||
#define IO_REPARSE_TAG_GVFS_TOMBSTONE __MSABI_LONG(0xA0000022)
|
||||
|
||||
/*
|
||||
* File formats definitions
|
||||
*/
|
||||
@ -3621,10 +3745,11 @@ typedef enum ReplacesCorHdrNumericDefines
|
||||
COMIMAGE_FLAGS_STRONGNAMESIGNED = 0x00000008,
|
||||
COMIMAGE_FLAGS_NATIVE_ENTRYPOINT= 0x00000010,
|
||||
COMIMAGE_FLAGS_TRACKDEBUGDATA = 0x00010000,
|
||||
COMIMAGE_FLAGS_32BITPREFERRED = 0x00020000,
|
||||
|
||||
COR_VERSION_MAJOR_V2 = 2,
|
||||
COR_VERSION_MAJOR = COR_VERSION_MAJOR_V2,
|
||||
COR_VERSION_MINOR = 0,
|
||||
COR_VERSION_MINOR = 5,
|
||||
COR_DELETED_NAME_LENGTH = 8,
|
||||
COR_VTABLEGAP_NAME_LENGTH = 8,
|
||||
|
||||
@ -5367,6 +5492,7 @@ typedef struct _TAPE_GET_MEDIA_PARAMETERS {
|
||||
#define REG_NOTIFY_CHANGE_ATTRIBUTES 0x02
|
||||
#define REG_NOTIFY_CHANGE_LAST_SET 0x04
|
||||
#define REG_NOTIFY_CHANGE_SECURITY 0x08
|
||||
#define REG_NOTIFY_THREAD_AGNOSTIC 0x10000000
|
||||
|
||||
#define KEY_QUERY_VALUE 0x00000001
|
||||
#define KEY_SET_VALUE 0x00000002
|
||||
@ -5746,15 +5872,50 @@ typedef struct _ASSEMBLY_FILE_DETAILED_INFORMATION {
|
||||
|
||||
typedef const ASSEMBLY_FILE_DETAILED_INFORMATION *PCASSEMBLY_FILE_DETAILED_INFORMATION;
|
||||
|
||||
typedef enum {
|
||||
ACTCX_COMPATIBILITY_ELEMENT_TYPE_UNKNOWN = 0,
|
||||
ACTCX_COMPATIBILITY_ELEMENT_TYPE_OS
|
||||
} ACTCTX_COMPATIBILITY_ELEMENT_TYPE;
|
||||
|
||||
typedef struct _COMPATIBILITY_CONTEXT_ELEMENT {
|
||||
GUID Id;
|
||||
ACTCTX_COMPATIBILITY_ELEMENT_TYPE Type;
|
||||
} COMPATIBILITY_CONTEXT_ELEMENT, *PCOMPATIBILITY_CONTEXT_ELEMENT;
|
||||
|
||||
#if !defined(__WINESRC__) && (defined(_MSC_EXTENSIONS) || ((defined(__GNUC__) && __GNUC__ >= 3)))
|
||||
typedef struct _ACTIVATION_CONTEXT_COMPATIBILITY_INFORMATION {
|
||||
DWORD ElementCount;
|
||||
COMPATIBILITY_CONTEXT_ELEMENT Elements[];
|
||||
} ACTIVATION_CONTEXT_COMPATIBILITY_INFORMATION, *PACTIVATION_CONTEXT_COMPATIBILITY_INFORMATION;
|
||||
#endif
|
||||
|
||||
typedef enum {
|
||||
ACTCTX_RUN_LEVEL_UNSPECIFIED = 0,
|
||||
ACTCTX_RUN_LEVEL_AS_INVOKER,
|
||||
ACTCTX_RUN_LEVEL_HIGHEST_AVAILABLE,
|
||||
ACTCTX_RUN_LEVEL_REQUIRE_ADMIN,
|
||||
ACTCTX_RUN_LEVEL_NUMBERS
|
||||
} ACTCTX_REQUESTED_RUN_LEVEL;
|
||||
|
||||
typedef struct _ACTIVATION_CONTEXT_RUN_LEVEL_INFORMATION {
|
||||
DWORD ulFlags;
|
||||
ACTCTX_REQUESTED_RUN_LEVEL RunLevel;
|
||||
DWORD UiAccess;
|
||||
} ACTIVATION_CONTEXT_RUN_LEVEL_INFORMATION, *PACTIVATION_CONTEXT_RUN_LEVEL_INFORMATION;
|
||||
|
||||
typedef const struct _ACTIVATION_CONTEXT_RUN_LEVEL_INFORMATION *PCACTIVATION_CONTEXT_RUN_LEVEL_INFORMATION;
|
||||
|
||||
typedef enum _ACTIVATION_CONTEXT_INFO_CLASS {
|
||||
ActivationContextBasicInformation = 1,
|
||||
ActivationContextDetailedInformation = 2,
|
||||
AssemblyDetailedInformationInActivationContext = 3,
|
||||
FileInformationInAssemblyOfAssemblyInActivationContext = 4,
|
||||
RunlevelInformationInActivationContext = 5,
|
||||
CompatibilityInformationInActivationContext = 6,
|
||||
ActivationContextManifestResourceName = 7,
|
||||
MaxActivationContextInfoClass,
|
||||
|
||||
AssemblyDetailedInformationInActivationContxt = 3,
|
||||
FileInformationInAssemblyOfAssemblyInActivationContxt = 4
|
||||
AssemblyDetailedInformationInActivationContxt = AssemblyDetailedInformationInActivationContext,
|
||||
FileInformationInAssemblyOfAssemblyInActivationContxt = FileInformationInAssemblyOfAssemblyInActivationContext
|
||||
} ACTIVATION_CONTEXT_INFO_CLASS;
|
||||
|
||||
#define ACTIVATION_CONTEXT_PATH_TYPE_NONE 1
|
||||
@ -5771,6 +5932,8 @@ typedef enum _ACTIVATION_CONTEXT_INFO_CLASS {
|
||||
#define ACTIVATION_CONTEXT_SECTION_COM_PROGID_REDIRECTION 7
|
||||
#define ACTIVATION_CONTEXT_SECTION_GLOBAL_OBJECT_RENAME_TABLE 8
|
||||
#define ACTIVATION_CONTEXT_SECTION_CLR_SURROGATES 9
|
||||
#define ACTIVATION_CONTEXT_SECTION_APPLICATION_SETTINGS 10
|
||||
#define ACTIVATION_CONTEXT_SECTION_COMPATIBILITY_INFO 11
|
||||
|
||||
typedef enum _JOBOBJECTINFOCLASS
|
||||
{
|
||||
@ -5891,6 +6054,8 @@ typedef enum _LOGICAL_PROCESSOR_RELATIONSHIP
|
||||
RelationAll = 0xffff
|
||||
} LOGICAL_PROCESSOR_RELATIONSHIP;
|
||||
|
||||
#define LTP_PC_SMT 0x1
|
||||
|
||||
typedef enum _PROCESSOR_CACHE_TYPE
|
||||
{
|
||||
CacheUnified,
|
||||
@ -6087,6 +6252,47 @@ typedef VOID (CALLBACK *PTP_WIN32_IO_CALLBACK)(PTP_CALLBACK_INSTANCE,PVOID,PVOID
|
||||
|
||||
NTSYSAPI BOOLEAN NTAPI RtlGetProductInfo(DWORD,DWORD,DWORD,DWORD,PDWORD);
|
||||
|
||||
typedef enum _RTL_UMS_THREAD_INFO_CLASS
|
||||
{
|
||||
UmsThreadInvalidInfoClass,
|
||||
UmsThreadUserContext,
|
||||
UmsThreadPriority,
|
||||
UmsThreadAffinity,
|
||||
UmsThreadTeb,
|
||||
UmsThreadIsSuspended,
|
||||
UmsThreadIsTerminated,
|
||||
UmsThreadMaxInfoClass
|
||||
} RTL_UMS_THREAD_INFO_CLASS, *PRTL_UMS_THREAD_INFO_CLASS;
|
||||
|
||||
typedef enum _RTL_UMS_SCHEDULER_REASON
|
||||
{
|
||||
UmsSchedulerStartup,
|
||||
UmsSchedulerThreadBlocked,
|
||||
UmsSchedulerThreadYield,
|
||||
} RTL_UMS_SCHEDULER_REASON, *PRTL_UMS_SCHEDULER_REASON;
|
||||
|
||||
typedef void (CALLBACK *PRTL_UMS_SCHEDULER_ENTRY_POINT)(RTL_UMS_SCHEDULER_REASON,ULONG_PTR,PVOID);
|
||||
|
||||
typedef enum _PROCESS_MITIGATION_POLICY
|
||||
{
|
||||
ProcessDEPPolicy,
|
||||
ProcessASLRPolicy,
|
||||
ProcessDynamicCodePolicy,
|
||||
ProcessStrictHandleCheckPolicy,
|
||||
ProcessSystemCallDisablePolicy,
|
||||
ProcessMitigationOptionsMask,
|
||||
ProcessExtensionPointDisablePolicy,
|
||||
ProcessControlFlowGuardPolicy,
|
||||
ProcessSignaturePolicy,
|
||||
ProcessFontDisablePolicy,
|
||||
ProcessImageLoadPolicy,
|
||||
ProcessSystemCallFilterPolicy,
|
||||
ProcessPayloadRestrictionPolicy,
|
||||
ProcessChildProcessPolicy,
|
||||
ProcessSideChannelIsolationPolicy,
|
||||
MaxProcessMitigationPolicy
|
||||
} PROCESS_MITIGATION_POLICY, *PPROCESS_MITIGATION_POLICY;
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
@ -91,7 +91,7 @@ static void write_function_stub( const type_t *iface, const var_t *func,
|
||||
print_client("MIDL_STUB_MESSAGE _StubMsg;\n");
|
||||
if (handle_var)
|
||||
{
|
||||
if (explicit_fc == RPC_FC_BIND_GENERIC)
|
||||
if (explicit_fc == FC_BIND_GENERIC)
|
||||
print_client("%s %s;\n",
|
||||
get_explicit_generic_handle_type(handle_var)->name, handle_var->name );
|
||||
print_client("RPC_BINDING_HANDLE _Handle;\n");
|
||||
@ -113,7 +113,7 @@ static void write_function_stub( const type_t *iface, const var_t *func,
|
||||
|
||||
print_client("NdrFreeBuffer(&__frame->_StubMsg);\n");
|
||||
|
||||
if (explicit_fc == RPC_FC_BIND_GENERIC)
|
||||
if (explicit_fc == FC_BIND_GENERIC)
|
||||
{
|
||||
fprintf(client, "\n");
|
||||
print_client("if (__frame->_Handle)\n");
|
||||
@ -144,7 +144,7 @@ static void write_function_stub( const type_t *iface, const var_t *func,
|
||||
if (handle_var)
|
||||
{
|
||||
print_client( "__frame->_Handle = 0;\n" );
|
||||
if (explicit_fc == RPC_FC_BIND_GENERIC)
|
||||
if (explicit_fc == FC_BIND_GENERIC)
|
||||
print_client("__frame->%s = %s;\n", handle_var->name, handle_var->name );
|
||||
}
|
||||
if (has_ret && decl_indirect(retval->type))
|
||||
@ -180,16 +180,16 @@ static void write_function_stub( const type_t *iface, const var_t *func,
|
||||
|
||||
switch (explicit_fc)
|
||||
{
|
||||
case RPC_FC_BIND_PRIMITIVE:
|
||||
case FC_BIND_PRIMITIVE:
|
||||
print_client("__frame->_Handle = %s;\n", handle_var->name);
|
||||
fprintf(client, "\n");
|
||||
break;
|
||||
case RPC_FC_BIND_GENERIC:
|
||||
case FC_BIND_GENERIC:
|
||||
print_client("__frame->_Handle = %s_bind(%s);\n",
|
||||
get_explicit_generic_handle_type(handle_var)->name, handle_var->name);
|
||||
fprintf(client, "\n");
|
||||
break;
|
||||
case RPC_FC_BIND_CONTEXT:
|
||||
case FC_BIND_CONTEXT:
|
||||
{
|
||||
/* if the context_handle attribute appears in the chain of types
|
||||
* without pointers being followed, then the context handle must
|
||||
|
@ -519,11 +519,11 @@ static struct expression_type resolve_expression(const struct expr_loc *expr_loc
|
||||
break;
|
||||
case EXPR_STRLIT:
|
||||
result.is_temporary = TRUE;
|
||||
result.type = type_new_pointer(RPC_FC_UP, type_new_int(TYPE_BASIC_CHAR, 0), NULL);
|
||||
result.type = type_new_pointer(FC_UP, type_new_int(TYPE_BASIC_CHAR, 0), NULL);
|
||||
break;
|
||||
case EXPR_WSTRLIT:
|
||||
result.is_temporary = TRUE;
|
||||
result.type = type_new_pointer(RPC_FC_UP, type_new_int(TYPE_BASIC_WCHAR, 0), NULL);
|
||||
result.type = type_new_pointer(FC_UP, type_new_int(TYPE_BASIC_WCHAR, 0), NULL);
|
||||
break;
|
||||
case EXPR_CHARCONST:
|
||||
result.is_temporary = TRUE;
|
||||
@ -573,7 +573,7 @@ static struct expression_type resolve_expression(const struct expr_loc *expr_loc
|
||||
expr_loc->attr ? expr_loc->attr : "");
|
||||
result.is_variable = FALSE;
|
||||
result.is_temporary = TRUE;
|
||||
result.type = type_new_pointer(RPC_FC_UP, result.type, NULL);
|
||||
result.type = type_new_pointer(FC_UP, result.type, NULL);
|
||||
break;
|
||||
case EXPR_PPTR:
|
||||
result = resolve_expression(expr_loc, cont_type, e->ref);
|
||||
|
@ -805,17 +805,17 @@ const var_t *get_func_handle_var( const type_t *iface, const var_t *func,
|
||||
if (!is_attr( var->attrs, ATTR_IN ) && is_attr( var->attrs, ATTR_OUT )) continue;
|
||||
if (type_get_type( var->type ) == TYPE_BASIC && type_basic_get_type( var->type ) == TYPE_BASIC_HANDLE)
|
||||
{
|
||||
*explicit_fc = RPC_FC_BIND_PRIMITIVE;
|
||||
*explicit_fc = FC_BIND_PRIMITIVE;
|
||||
return var;
|
||||
}
|
||||
if (get_explicit_generic_handle_type( var ))
|
||||
{
|
||||
*explicit_fc = RPC_FC_BIND_GENERIC;
|
||||
*explicit_fc = FC_BIND_GENERIC;
|
||||
return var;
|
||||
}
|
||||
if (is_context_handle( var->type ))
|
||||
{
|
||||
*explicit_fc = RPC_FC_BIND_CONTEXT;
|
||||
*explicit_fc = FC_BIND_CONTEXT;
|
||||
return var;
|
||||
}
|
||||
}
|
||||
@ -824,13 +824,13 @@ const var_t *get_func_handle_var( const type_t *iface, const var_t *func,
|
||||
{
|
||||
if (type_get_type( var->type ) == TYPE_BASIC &&
|
||||
type_basic_get_type( var->type ) == TYPE_BASIC_HANDLE)
|
||||
*implicit_fc = RPC_FC_BIND_PRIMITIVE;
|
||||
*implicit_fc = FC_BIND_PRIMITIVE;
|
||||
else
|
||||
*implicit_fc = RPC_FC_BIND_GENERIC;
|
||||
*implicit_fc = FC_BIND_GENERIC;
|
||||
return var;
|
||||
}
|
||||
|
||||
*implicit_fc = RPC_FC_AUTO_HANDLE;
|
||||
*implicit_fc = FC_AUTO_HANDLE;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
@ -111,7 +111,7 @@
|
||||
#include "expr.h"
|
||||
#include "typetree.h"
|
||||
|
||||
static unsigned char pointer_default = RPC_FC_UP;
|
||||
static unsigned char pointer_default = FC_UP;
|
||||
|
||||
typedef struct list typelist_t;
|
||||
struct typenode {
|
||||
@ -4853,19 +4853,19 @@ yyreduce:
|
||||
|
||||
case 375:
|
||||
#line 1110 "parser.y" /* yacc.c:1646 */
|
||||
{ (yyval.num) = RPC_FC_RP; }
|
||||
{ (yyval.num) = FC_RP; }
|
||||
#line 4858 "parser.tab.c" /* yacc.c:1646 */
|
||||
break;
|
||||
|
||||
case 376:
|
||||
#line 1111 "parser.y" /* yacc.c:1646 */
|
||||
{ (yyval.num) = RPC_FC_UP; }
|
||||
{ (yyval.num) = FC_UP; }
|
||||
#line 4864 "parser.tab.c" /* yacc.c:1646 */
|
||||
break;
|
||||
|
||||
case 377:
|
||||
#line 1112 "parser.y" /* yacc.c:1646 */
|
||||
{ (yyval.num) = RPC_FC_FP; }
|
||||
{ (yyval.num) = FC_FP; }
|
||||
#line 4870 "parser.tab.c" /* yacc.c:1646 */
|
||||
break;
|
||||
|
||||
@ -5558,12 +5558,12 @@ static var_t *declare_var(attr_list_t *attrs, decl_spec_t *decl_spec, const decl
|
||||
}
|
||||
if (is_ptr(ptr))
|
||||
{
|
||||
if (ptr_attr && ptr_attr != RPC_FC_UP &&
|
||||
if (ptr_attr && ptr_attr != FC_UP &&
|
||||
type_get_type(type_pointer_get_ref(ptr)) == TYPE_INTERFACE)
|
||||
warning_loc_info(&v->loc_info,
|
||||
"%s: pointer attribute applied to interface "
|
||||
"pointer type has no effect\n", v->name);
|
||||
if (!ptr_attr && top && (*pt)->details.pointer.def_fc != RPC_FC_RP)
|
||||
if (!ptr_attr && top && (*pt)->details.pointer.def_fc != FC_RP)
|
||||
{
|
||||
/* FIXME: this is a horrible hack to cope with the issue that we
|
||||
* store an offset to the typeformat string in the type object, but
|
||||
@ -5588,9 +5588,9 @@ static var_t *declare_var(attr_list_t *attrs, decl_spec_t *decl_spec, const decl
|
||||
t = type_pointer_get_ref(t);
|
||||
|
||||
if (type_get_type(t) != TYPE_BASIC &&
|
||||
(get_basic_fc(t) != RPC_FC_CHAR &&
|
||||
get_basic_fc(t) != RPC_FC_BYTE &&
|
||||
get_basic_fc(t) != RPC_FC_WCHAR))
|
||||
(get_basic_fc(t) != FC_CHAR &&
|
||||
get_basic_fc(t) != FC_BYTE &&
|
||||
get_basic_fc(t) != FC_WCHAR))
|
||||
{
|
||||
error_loc("'%s': [string] attribute is only valid on 'char', 'byte', or 'wchar_t' pointers and arrays\n",
|
||||
v->name);
|
||||
@ -5821,7 +5821,7 @@ static declarator_t *make_declarator(var_t *var)
|
||||
static type_t *make_safearray(type_t *type)
|
||||
{
|
||||
return type_new_array(NULL, type_new_alias(type, "SAFEARRAY"), TRUE, 0,
|
||||
NULL, NULL, RPC_FC_RP);
|
||||
NULL, NULL, FC_RP);
|
||||
}
|
||||
|
||||
static typelib_t *make_library(const char *name, const attr_list_t *attrs)
|
||||
|
@ -38,7 +38,7 @@
|
||||
#include "expr.h"
|
||||
#include "typetree.h"
|
||||
|
||||
static unsigned char pointer_default = RPC_FC_UP;
|
||||
static unsigned char pointer_default = FC_UP;
|
||||
|
||||
typedef struct list typelist_t;
|
||||
struct typenode {
|
||||
@ -1107,9 +1107,9 @@ threading_type:
|
||||
;
|
||||
|
||||
pointer_type:
|
||||
tREF { $$ = RPC_FC_RP; }
|
||||
| tUNIQUE { $$ = RPC_FC_UP; }
|
||||
| tPTR { $$ = RPC_FC_FP; }
|
||||
tREF { $$ = FC_RP; }
|
||||
| tUNIQUE { $$ = FC_UP; }
|
||||
| tPTR { $$ = FC_FP; }
|
||||
;
|
||||
|
||||
structdef: tSTRUCT t_ident '{' fields '}' { $$ = type_new_struct($2, current_namespace, TRUE, $4); }
|
||||
@ -1501,12 +1501,12 @@ static var_t *declare_var(attr_list_t *attrs, decl_spec_t *decl_spec, const decl
|
||||
}
|
||||
if (is_ptr(ptr))
|
||||
{
|
||||
if (ptr_attr && ptr_attr != RPC_FC_UP &&
|
||||
if (ptr_attr && ptr_attr != FC_UP &&
|
||||
type_get_type(type_pointer_get_ref(ptr)) == TYPE_INTERFACE)
|
||||
warning_loc_info(&v->loc_info,
|
||||
"%s: pointer attribute applied to interface "
|
||||
"pointer type has no effect\n", v->name);
|
||||
if (!ptr_attr && top && (*pt)->details.pointer.def_fc != RPC_FC_RP)
|
||||
if (!ptr_attr && top && (*pt)->details.pointer.def_fc != FC_RP)
|
||||
{
|
||||
/* FIXME: this is a horrible hack to cope with the issue that we
|
||||
* store an offset to the typeformat string in the type object, but
|
||||
@ -1531,9 +1531,9 @@ static var_t *declare_var(attr_list_t *attrs, decl_spec_t *decl_spec, const decl
|
||||
t = type_pointer_get_ref(t);
|
||||
|
||||
if (type_get_type(t) != TYPE_BASIC &&
|
||||
(get_basic_fc(t) != RPC_FC_CHAR &&
|
||||
get_basic_fc(t) != RPC_FC_BYTE &&
|
||||
get_basic_fc(t) != RPC_FC_WCHAR))
|
||||
(get_basic_fc(t) != FC_CHAR &&
|
||||
get_basic_fc(t) != FC_BYTE &&
|
||||
get_basic_fc(t) != FC_WCHAR))
|
||||
{
|
||||
error_loc("'%s': [string] attribute is only valid on 'char', 'byte', or 'wchar_t' pointers and arrays\n",
|
||||
v->name);
|
||||
@ -1764,7 +1764,7 @@ static declarator_t *make_declarator(var_t *var)
|
||||
static type_t *make_safearray(type_t *type)
|
||||
{
|
||||
return type_new_array(NULL, type_new_alias(type, "SAFEARRAY"), TRUE, 0,
|
||||
NULL, NULL, RPC_FC_RP);
|
||||
NULL, NULL, FC_RP);
|
||||
}
|
||||
|
||||
static typelib_t *make_library(const char *name, const attr_list_t *attrs)
|
||||
|
@ -152,7 +152,7 @@ static void free_variable( const var_t *arg, const char *local_var_prefix )
|
||||
break;
|
||||
|
||||
case TGT_STRUCT:
|
||||
if (get_struct_fc(type) != RPC_FC_STRUCT)
|
||||
if (get_struct_fc(type) != FC_STRUCT)
|
||||
print_proxy("/* FIXME: %s code for %s struct type 0x%x missing */\n", __FUNCTION__, arg->name, get_struct_fc(type) );
|
||||
break;
|
||||
|
||||
|
@ -104,7 +104,7 @@ static void write_function_stub(const type_t *iface, const var_t *func, unsigned
|
||||
|
||||
write_parameters_init(server, indent, func, "__frame->");
|
||||
|
||||
if (explicit_fc == RPC_FC_BIND_PRIMITIVE)
|
||||
if (explicit_fc == FC_BIND_PRIMITIVE)
|
||||
{
|
||||
print_server("__frame->%s = _pRpcMessage->Handle;\n", handle_var->name);
|
||||
fprintf(server, "\n");
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -100,3 +100,4 @@ unsigned char get_basic_fc(const type_t *type);
|
||||
unsigned char get_pointer_fc(const type_t *type, const attr_list_t *attrs, int toplevel_param);
|
||||
unsigned char get_struct_fc(const type_t *type);
|
||||
enum typegen_type typegen_detect_type(const type_t *type, const attr_list_t *attrs, unsigned int flags);
|
||||
unsigned int type_memsize_and_alignment(const type_t *t, unsigned int *align);
|
||||
|
@ -442,6 +442,7 @@ void type_interface_define(type_t *iface, type_t *inherit, statement_list_t *stm
|
||||
iface->details.iface->disp_methods = NULL;
|
||||
iface->details.iface->stmts = stmts;
|
||||
iface->details.iface->inherit = inherit;
|
||||
iface->details.iface->disp_inherit = NULL;
|
||||
iface->defined = TRUE;
|
||||
compute_method_indexes(iface);
|
||||
}
|
||||
@ -454,14 +455,22 @@ void type_dispinterface_define(type_t *iface, var_list_t *props, var_list_t *met
|
||||
iface->details.iface->stmts = NULL;
|
||||
iface->details.iface->inherit = find_type("IDispatch", NULL, 0);
|
||||
if (!iface->details.iface->inherit) error_loc("IDispatch is undefined\n");
|
||||
iface->details.iface->disp_inherit = NULL;
|
||||
iface->defined = TRUE;
|
||||
compute_method_indexes(iface);
|
||||
}
|
||||
|
||||
void type_dispinterface_define_from_iface(type_t *dispiface, type_t *iface)
|
||||
{
|
||||
type_dispinterface_define(dispiface, iface->details.iface->disp_props,
|
||||
iface->details.iface->disp_methods);
|
||||
dispiface->details.iface = xmalloc(sizeof(*dispiface->details.iface));
|
||||
dispiface->details.iface->disp_props = NULL;
|
||||
dispiface->details.iface->disp_methods = NULL;
|
||||
dispiface->details.iface->stmts = NULL;
|
||||
dispiface->details.iface->inherit = find_type("IDispatch", NULL, 0);
|
||||
if (!dispiface->details.iface->inherit) error_loc("IDispatch is undefined\n");
|
||||
dispiface->details.iface->disp_inherit = iface;
|
||||
dispiface->defined = TRUE;
|
||||
compute_method_indexes(dispiface);
|
||||
}
|
||||
|
||||
void type_module_define(type_t *module, statement_list_t *stmts)
|
||||
|
@ -176,6 +176,13 @@ static inline var_list_t *type_dispiface_get_methods(const type_t *type)
|
||||
return type->details.iface->disp_methods;
|
||||
}
|
||||
|
||||
static inline type_t *type_dispiface_get_inherit(const type_t *type)
|
||||
{
|
||||
type = type_get_real_type(type);
|
||||
assert(type_get_type(type) == TYPE_INTERFACE);
|
||||
return type->details.iface->disp_inherit;
|
||||
}
|
||||
|
||||
static inline int type_is_defined(const type_t *type)
|
||||
{
|
||||
return type->defined;
|
||||
|
@ -24,7 +24,7 @@
|
||||
#include <stdarg.h>
|
||||
#include <assert.h>
|
||||
#include "guiddef.h"
|
||||
#include "wine/rpcfc.h"
|
||||
#include "ndrtypes.h"
|
||||
#include "wine/list.h"
|
||||
|
||||
#ifndef UUID_DEFINED
|
||||
@ -343,6 +343,7 @@ struct iface_details
|
||||
var_list_t *disp_methods;
|
||||
var_list_t *disp_props;
|
||||
struct _type_t *inherit;
|
||||
struct _type_t *disp_inherit;
|
||||
};
|
||||
|
||||
struct module_details
|
||||
|
@ -52,6 +52,7 @@
|
||||
#include "hash.h"
|
||||
#include "typetree.h"
|
||||
#include "parser.h"
|
||||
#include "typegen.h"
|
||||
|
||||
enum MSFT_segment_index {
|
||||
MSFT_SEG_TYPEINFO = 0, /* type information */
|
||||
@ -780,8 +781,6 @@ static int encode_type(
|
||||
int vt, /* [I] vt to encode */
|
||||
type_t *type, /* [I] type */
|
||||
int *encoded_type, /* [O] The encoded type description. */
|
||||
int *width, /* [O] The width of the type, or NULL. */
|
||||
int *alignment, /* [O] The alignment of the type, or NULL. */
|
||||
int *decoded_size) /* [O] The total size of the unencoded TYPEDESCs, including nested descs. */
|
||||
{
|
||||
int default_type;
|
||||
@ -794,8 +793,6 @@ static int encode_type(
|
||||
chat("encode_type vt %d type %p\n", vt, type);
|
||||
|
||||
default_type = 0x80000000 | (vt << 16) | vt;
|
||||
if (!width) width = &scratch;
|
||||
if (!alignment) alignment = &scratch;
|
||||
if (!decoded_size) decoded_size = &scratch;
|
||||
|
||||
*decoded_size = 0;
|
||||
@ -804,38 +801,20 @@ static int encode_type(
|
||||
case VT_I1:
|
||||
case VT_UI1:
|
||||
*encoded_type = default_type;
|
||||
*width = 1;
|
||||
*alignment = 1;
|
||||
break;
|
||||
|
||||
case VT_INT:
|
||||
*encoded_type = 0x80000000 | (VT_I4 << 16) | VT_INT;
|
||||
if ((typelib->typelib_header.varflags & 0x0f) == SYS_WIN16) {
|
||||
*width = 2;
|
||||
*alignment = 2;
|
||||
} else {
|
||||
*width = 4;
|
||||
*alignment = 4;
|
||||
}
|
||||
break;
|
||||
|
||||
case VT_UINT:
|
||||
*encoded_type = 0x80000000 | (VT_UI4 << 16) | VT_UINT;
|
||||
if ((typelib->typelib_header.varflags & 0x0f) == SYS_WIN16) {
|
||||
*width = 2;
|
||||
*alignment = 2;
|
||||
} else {
|
||||
*width = 4;
|
||||
*alignment = 4;
|
||||
}
|
||||
break;
|
||||
|
||||
case VT_UI2:
|
||||
case VT_I2:
|
||||
case VT_BOOL:
|
||||
*encoded_type = default_type;
|
||||
*width = 2;
|
||||
*alignment = 2;
|
||||
break;
|
||||
|
||||
case VT_I4:
|
||||
@ -844,56 +823,40 @@ static int encode_type(
|
||||
case VT_ERROR:
|
||||
case VT_HRESULT:
|
||||
*encoded_type = default_type;
|
||||
*width = 4;
|
||||
*alignment = 4;
|
||||
break;
|
||||
|
||||
case VT_R8:
|
||||
case VT_I8:
|
||||
case VT_UI8:
|
||||
*encoded_type = default_type;
|
||||
*width = 8;
|
||||
*alignment = 8;
|
||||
break;
|
||||
|
||||
case VT_CY:
|
||||
case VT_DATE:
|
||||
*encoded_type = default_type;
|
||||
*width = 8;
|
||||
*alignment = 8;
|
||||
break;
|
||||
|
||||
case VT_DECIMAL:
|
||||
*encoded_type = default_type;
|
||||
*width = 16;
|
||||
*alignment = 8;
|
||||
break;
|
||||
|
||||
case VT_VOID:
|
||||
*encoded_type = 0x80000000 | (VT_EMPTY << 16) | vt;
|
||||
*width = 0;
|
||||
*alignment = 1;
|
||||
break;
|
||||
|
||||
case VT_UNKNOWN:
|
||||
case VT_DISPATCH:
|
||||
case VT_BSTR:
|
||||
*encoded_type = default_type;
|
||||
*width = pointer_size;
|
||||
*alignment = 4;
|
||||
break;
|
||||
|
||||
case VT_VARIANT:
|
||||
*encoded_type = default_type;
|
||||
*width = 8 + 2 * pointer_size;
|
||||
*alignment = 8;
|
||||
break;
|
||||
|
||||
case VT_LPSTR:
|
||||
case VT_LPWSTR:
|
||||
*encoded_type = 0xfffe0000 | vt;
|
||||
*width = pointer_size;
|
||||
*alignment = 4;
|
||||
break;
|
||||
|
||||
case VT_PTR:
|
||||
@ -909,14 +872,12 @@ static int encode_type(
|
||||
next_vt = VT_VOID;
|
||||
|
||||
encode_type(typelib, next_vt, type_pointer_get_ref(type),
|
||||
&target_type, NULL, NULL, &child_size);
|
||||
&target_type, &child_size);
|
||||
/* these types already have an implicit pointer, so we don't need to
|
||||
* add another */
|
||||
if(next_vt == VT_DISPATCH || next_vt == VT_UNKNOWN) {
|
||||
chat("encode_type: skipping ptr\n");
|
||||
*encoded_type = target_type;
|
||||
*width = pointer_size;
|
||||
*alignment = 4;
|
||||
*decoded_size = child_size;
|
||||
break;
|
||||
}
|
||||
@ -945,8 +906,6 @@ static int encode_type(
|
||||
|
||||
*encoded_type = typeoffset;
|
||||
|
||||
*width = pointer_size;
|
||||
*alignment = 4;
|
||||
*decoded_size = 8 /*sizeof(TYPEDESC)*/ + child_size;
|
||||
break;
|
||||
}
|
||||
@ -956,7 +915,8 @@ static int encode_type(
|
||||
type_t *element_type = type_alias_get_aliasee(type_array_get_element(type));
|
||||
int next_vt = get_type_vt(element_type);
|
||||
|
||||
encode_type(typelib, next_vt, type_alias_get_aliasee(type_array_get_element(type)), &target_type, NULL, NULL, &child_size);
|
||||
encode_type(typelib, next_vt, type_alias_get_aliasee(type_array_get_element(type)),
|
||||
&target_type, &child_size);
|
||||
|
||||
for (typeoffset = 0; typeoffset < typelib->typelib_segdir[MSFT_SEG_TYPEDESC].length; typeoffset += 8) {
|
||||
typedata = (void *)&typelib->typelib_segment_data[MSFT_SEG_TYPEDESC][typeoffset];
|
||||
@ -982,26 +942,39 @@ static int encode_type(
|
||||
|
||||
*encoded_type = typeoffset;
|
||||
|
||||
*width = pointer_size;
|
||||
*alignment = 4;
|
||||
*decoded_size = 8 /*sizeof(TYPEDESC)*/ + child_size;
|
||||
break;
|
||||
}
|
||||
|
||||
case VT_USERDEFINED:
|
||||
{
|
||||
importinfo_t *importinfo;
|
||||
int typeinfo_offset;
|
||||
|
||||
/* typedef'd types without public attribute aren't included in the typelib */
|
||||
while (type->typelib_idx < 0 && type_is_alias(type) && !is_attr(type->attrs, ATTR_PUBLIC))
|
||||
type = type_alias_get_aliasee(type);
|
||||
if (type->typelib_idx > -1)
|
||||
{
|
||||
chat("encode_type: VT_USERDEFINED - found already defined type %s at %d\n",
|
||||
type->name, type->typelib_idx);
|
||||
typeinfo_offset = typelib->typelib_typeinfo_offsets[type->typelib_idx];
|
||||
}
|
||||
else if ((importinfo = find_importinfo(typelib, type->name)))
|
||||
{
|
||||
chat("encode_type: VT_USERDEFINED - found imported type %s in %s\n",
|
||||
type->name, importinfo->importlib->name);
|
||||
alloc_importinfo(typelib, importinfo);
|
||||
typeinfo_offset = importinfo->offset | 0x1;
|
||||
}
|
||||
else
|
||||
{
|
||||
/* typedef'd types without public attribute aren't included in the typelib */
|
||||
while (type_is_alias(type) && !is_attr(type->attrs, ATTR_PUBLIC))
|
||||
type = type_alias_get_aliasee(type);
|
||||
|
||||
chat("encode_type: VT_USERDEFINED - type %p name = %s real type %d idx %d\n", type,
|
||||
type->name, type_get_type(type), type->typelib_idx);
|
||||
chat("encode_type: VT_USERDEFINED - adding new type %s, real type %d\n",
|
||||
type->name, type_get_type(type));
|
||||
|
||||
if(type->typelib_idx == -1) {
|
||||
chat("encode_type: trying to ref not added type\n");
|
||||
switch (type_get_type(type)) {
|
||||
switch (type_get_type(type))
|
||||
{
|
||||
case TYPE_STRUCT:
|
||||
add_structure_typeinfo(typelib, type);
|
||||
break;
|
||||
@ -1021,9 +994,9 @@ static int encode_type(
|
||||
error("encode_type: VT_USERDEFINED - unhandled type %d\n",
|
||||
type_get_type(type));
|
||||
}
|
||||
}
|
||||
|
||||
typeinfo_offset = typelib->typelib_typeinfo_offsets[type->typelib_idx];
|
||||
typeinfo_offset = typelib->typelib_typeinfo_offsets[type->typelib_idx];
|
||||
}
|
||||
for (typeoffset = 0; typeoffset < typelib->typelib_segdir[MSFT_SEG_TYPEDESC].length; typeoffset += 8) {
|
||||
typedata = (void *)&typelib->typelib_segment_data[MSFT_SEG_TYPEDESC][typeoffset];
|
||||
if ((typedata[0] == ((0x7fff << 16) | VT_USERDEFINED)) && (typedata[1] == typeinfo_offset)) break;
|
||||
@ -1038,16 +1011,12 @@ static int encode_type(
|
||||
}
|
||||
|
||||
*encoded_type = typeoffset;
|
||||
*width = 0;
|
||||
*alignment = 1;
|
||||
break;
|
||||
}
|
||||
|
||||
default:
|
||||
error("encode_type: unrecognized type %d.\n", vt);
|
||||
*encoded_type = default_type;
|
||||
*width = 0;
|
||||
*alignment = 1;
|
||||
break;
|
||||
}
|
||||
|
||||
@ -1064,8 +1033,6 @@ static int encode_var(
|
||||
type_t *type, /* [I] The type description to encode. */
|
||||
var_t *var, /* [I] The var to encode. */
|
||||
int *encoded_type, /* [O] The encoded type description. */
|
||||
int *width, /* [O] The width of the type, or NULL. */
|
||||
int *alignment, /* [O] The alignment of the type, or NULL. */
|
||||
int *decoded_size) /* [O] The total size of the unencoded TYPEDESCs, including nested descs. */
|
||||
{
|
||||
int typeoffset;
|
||||
@ -1075,8 +1042,6 @@ static int encode_var(
|
||||
int vt;
|
||||
int scratch;
|
||||
|
||||
if (!width) width = &scratch;
|
||||
if (!alignment) alignment = &scratch;
|
||||
if (!decoded_size) decoded_size = &scratch;
|
||||
*decoded_size = 0;
|
||||
|
||||
@ -1095,7 +1060,7 @@ static int encode_var(
|
||||
++num_dims;
|
||||
|
||||
chat("array with %d dimensions\n", num_dims);
|
||||
encode_var(typelib, atype, var, &target_type, width, alignment, NULL);
|
||||
encode_var(typelib, atype, var, &target_type, NULL);
|
||||
arrayoffset = ctl2_alloc_segment(typelib, MSFT_SEG_ARRAYDESC, (2 + 2 * num_dims) * sizeof(int), 0);
|
||||
arraydata = (void *)&typelib->typelib_segment_data[MSFT_SEG_ARRAYDESC][arrayoffset];
|
||||
|
||||
@ -1121,7 +1086,6 @@ static int encode_var(
|
||||
typedata[1] = arrayoffset;
|
||||
|
||||
*encoded_type = typeoffset;
|
||||
*width = *width * elements;
|
||||
*decoded_size = 20 /*sizeof(ARRAYDESC)*/ + (num_dims - 1) * 8 /*sizeof(SAFEARRAYBOUND)*/;
|
||||
return 0;
|
||||
}
|
||||
@ -1130,15 +1094,12 @@ static int encode_var(
|
||||
if (vt == VT_PTR) {
|
||||
type_t *ref = is_ptr(type) ?
|
||||
type_pointer_get_ref(type) : type_array_get_element(type);
|
||||
int skip_ptr = encode_var(typelib, ref, var,
|
||||
&target_type, NULL, NULL, &child_size);
|
||||
int skip_ptr = encode_var(typelib, ref, var, &target_type, &child_size);
|
||||
|
||||
if(skip_ptr == 2) {
|
||||
chat("encode_var: skipping ptr\n");
|
||||
*encoded_type = target_type;
|
||||
*decoded_size = child_size;
|
||||
*width = pointer_size;
|
||||
*alignment = 4;
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -1169,15 +1130,13 @@ static int encode_var(
|
||||
|
||||
*encoded_type = typeoffset;
|
||||
|
||||
*width = pointer_size;
|
||||
*alignment = 4;
|
||||
*decoded_size = 8 /*sizeof(TYPEDESC)*/ + child_size;
|
||||
return 0;
|
||||
}
|
||||
|
||||
dump_type(type);
|
||||
|
||||
encode_type(typelib, vt, type, encoded_type, width, alignment, decoded_size);
|
||||
encode_type(typelib, vt, type, encoded_type, decoded_size);
|
||||
/* these types already have an implicit pointer, so we don't need to
|
||||
* add another */
|
||||
if(vt == VT_DISPATCH || vt == VT_UNKNOWN) return 2;
|
||||
@ -1199,59 +1158,79 @@ static unsigned int get_ulong_val(unsigned int val, int vt)
|
||||
return val;
|
||||
}
|
||||
|
||||
static void write_value(msft_typelib_t* typelib, int *out, int vt, const void *value)
|
||||
static void write_int_value(msft_typelib_t *typelib, int *out, int vt, int value)
|
||||
{
|
||||
switch(vt) {
|
||||
case VT_I2:
|
||||
case VT_I4:
|
||||
case VT_R4:
|
||||
case VT_BOOL:
|
||||
case VT_I1:
|
||||
case VT_UI1:
|
||||
case VT_UI2:
|
||||
case VT_UI4:
|
||||
case VT_INT:
|
||||
case VT_UINT:
|
||||
case VT_HRESULT:
|
||||
case VT_PTR:
|
||||
case VT_UNKNOWN:
|
||||
case VT_DISPATCH:
|
||||
{
|
||||
const unsigned int lv = get_ulong_val(*(const unsigned int *)value, vt);
|
||||
if((lv & 0x3ffffff) == lv) {
|
||||
*out = 0x80000000;
|
||||
*out |= vt << 26;
|
||||
*out |= lv;
|
||||
} else {
|
||||
int offset = ctl2_alloc_segment(typelib, MSFT_SEG_CUSTDATA, 8, 0);
|
||||
*((unsigned short *)&typelib->typelib_segment_data[MSFT_SEG_CUSTDATA][offset]) = vt;
|
||||
memcpy(&typelib->typelib_segment_data[MSFT_SEG_CUSTDATA][offset+2], value, 4);
|
||||
*((unsigned short *)&typelib->typelib_segment_data[MSFT_SEG_CUSTDATA][offset+6]) = 0x5757;
|
||||
*out = offset;
|
||||
}
|
||||
return;
|
||||
}
|
||||
case VT_BSTR:
|
||||
{
|
||||
const char *s = (const char *) value;
|
||||
int len = strlen(s), seg_len = (len + 6 + 3) & ~0x3;
|
||||
int offset = ctl2_alloc_segment(typelib, MSFT_SEG_CUSTDATA, seg_len, 0);
|
||||
const unsigned int lv = get_ulong_val(value, vt);
|
||||
if ((lv & 0x3ffffff) == lv) {
|
||||
*out = 0x80000000;
|
||||
*out |= vt << 26;
|
||||
*out |= lv;
|
||||
} else {
|
||||
int offset = ctl2_alloc_segment(typelib, MSFT_SEG_CUSTDATA, 8, 0);
|
||||
*((unsigned short *)&typelib->typelib_segment_data[MSFT_SEG_CUSTDATA][offset]) = vt;
|
||||
memcpy(&typelib->typelib_segment_data[MSFT_SEG_CUSTDATA][offset+2], &len, sizeof(len));
|
||||
memcpy(&typelib->typelib_segment_data[MSFT_SEG_CUSTDATA][offset+6], value, len);
|
||||
len += 6;
|
||||
while(len < seg_len) {
|
||||
*((char *)&typelib->typelib_segment_data[MSFT_SEG_CUSTDATA][offset+len]) = 0x57;
|
||||
len++;
|
||||
}
|
||||
memcpy(&typelib->typelib_segment_data[MSFT_SEG_CUSTDATA][offset+2], &value, 4);
|
||||
*((unsigned short *)&typelib->typelib_segment_data[MSFT_SEG_CUSTDATA][offset+6]) = 0x5757;
|
||||
*out = offset;
|
||||
return;
|
||||
}
|
||||
|
||||
default:
|
||||
warning("can't write value of type %d yet\n", vt);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
static void write_string_value(msft_typelib_t *typelib, int *out, const char *value)
|
||||
{
|
||||
int len = strlen(value), seg_len = (len + 6 + 3) & ~0x3;
|
||||
int offset = ctl2_alloc_segment(typelib, MSFT_SEG_CUSTDATA, seg_len, 0);
|
||||
*((unsigned short *)&typelib->typelib_segment_data[MSFT_SEG_CUSTDATA][offset]) = VT_BSTR;
|
||||
memcpy(&typelib->typelib_segment_data[MSFT_SEG_CUSTDATA][offset+2], &len, sizeof(len));
|
||||
memcpy(&typelib->typelib_segment_data[MSFT_SEG_CUSTDATA][offset+6], value, len);
|
||||
len += 6;
|
||||
while(len < seg_len) {
|
||||
*((char *)&typelib->typelib_segment_data[MSFT_SEG_CUSTDATA][offset+len]) = 0x57;
|
||||
len++;
|
||||
}
|
||||
*out = offset;
|
||||
}
|
||||
|
||||
static void write_default_value(msft_typelib_t *typelib, type_t *type, expr_t *expr, int *out)
|
||||
{
|
||||
int vt;
|
||||
|
||||
if (expr->type == EXPR_STRLIT || expr->type == EXPR_WSTRLIT) {
|
||||
if (get_type_vt(type) != VT_BSTR)
|
||||
error("string default value applied to non-string type\n");
|
||||
chat("default value '%s'\n", expr->u.sval);
|
||||
write_string_value(typelib, out, expr->u.sval);
|
||||
return;
|
||||
}
|
||||
|
||||
if (type_get_type(type) == TYPE_ENUM) {
|
||||
vt = VT_I4;
|
||||
} else if (is_ptr(type)) {
|
||||
vt = get_type_vt(type_pointer_get_ref(type));
|
||||
if (vt == VT_USERDEFINED)
|
||||
vt = VT_I4;
|
||||
if (expr->cval)
|
||||
warning("non-null pointer default value\n");
|
||||
} else {
|
||||
vt = get_type_vt(type);
|
||||
switch(vt) {
|
||||
case VT_I2:
|
||||
case VT_I4:
|
||||
case VT_R4:
|
||||
case VT_BOOL:
|
||||
case VT_I1:
|
||||
case VT_UI1:
|
||||
case VT_UI2:
|
||||
case VT_UI4:
|
||||
case VT_INT:
|
||||
case VT_UINT:
|
||||
case VT_HRESULT:
|
||||
break;
|
||||
default:
|
||||
warning("can't write value of type %d yet\n", vt);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
write_int_value(typelib, out, vt, expr->cval);
|
||||
}
|
||||
|
||||
static HRESULT set_custdata(msft_typelib_t *typelib, REFGUID guid,
|
||||
@ -1269,7 +1248,10 @@ static HRESULT set_custdata(msft_typelib_t *typelib, REFGUID guid,
|
||||
guidentry.next_hash = -1;
|
||||
|
||||
guidoffset = ctl2_alloc_guid(typelib, &guidentry);
|
||||
write_value(typelib, &data_out, vt, value);
|
||||
if(vt == VT_BSTR)
|
||||
write_string_value(typelib, &data_out, value);
|
||||
else
|
||||
write_int_value(typelib, &data_out, vt, *(int*)value);
|
||||
|
||||
custoffset = ctl2_alloc_segment(typelib, MSFT_SEG_CUSTDATAGUID, 12, 0);
|
||||
|
||||
@ -1282,33 +1264,6 @@ static HRESULT set_custdata(msft_typelib_t *typelib, REFGUID guid,
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
/* It's possible to have a default value for pointer arguments too.
|
||||
In this case default value has a referenced type, e.g.
|
||||
'LONG*' argument gets VT_I4, 'DOUBLE*' - VT_R8. IUnknown* and IDispatch*
|
||||
are recognised too and stored as VT_UNKNOWN and VT_DISPATCH.
|
||||
But IUnknown/IDispatch arguments can only have default value of 0
|
||||
(or expression that resolves to zero) while other pointers can have
|
||||
any default value. */
|
||||
static int get_defaultvalue_vt(type_t *type)
|
||||
{
|
||||
int vt;
|
||||
if (type_get_type(type) == TYPE_ENUM)
|
||||
vt = VT_I4;
|
||||
else
|
||||
{
|
||||
vt = get_type_vt(type);
|
||||
if (vt == VT_PTR && is_ptr(type)) {
|
||||
vt = get_type_vt(type_pointer_get_ref(type));
|
||||
/* The only acceptable value for pointers to non-basic types
|
||||
is NULL, it's stored as VT_I4 for both 32 and 64 bit typelibs. */
|
||||
if (vt == VT_USERDEFINED)
|
||||
vt = VT_I4;
|
||||
}
|
||||
}
|
||||
|
||||
return vt;
|
||||
}
|
||||
|
||||
static HRESULT add_func_desc(msft_typeinfo_t* typeinfo, var_t *func, int index)
|
||||
{
|
||||
int offset, name_offset;
|
||||
@ -1489,7 +1444,8 @@ static HRESULT add_func_desc(msft_typeinfo_t* typeinfo, var_t *func, int index)
|
||||
|
||||
/* fill out the basic type information */
|
||||
typedata[0] = typedata_size | (index << 16);
|
||||
encode_var(typeinfo->typelib, type_function_get_rettype(func->type), func, &typedata[1], NULL, NULL, &decoded_size);
|
||||
encode_var(typeinfo->typelib, type_function_get_rettype(func->type), func,
|
||||
&typedata[1], &decoded_size);
|
||||
typedata[2] = funcflags;
|
||||
typedata[3] = ((52 /*sizeof(FUNCDESC)*/ + decoded_size) << 16) | typeinfo->typeinfo->cbSizeVft;
|
||||
typedata[4] = (next_idx << 16) | (callconv << 8) | (invokekind << 3) | funckind;
|
||||
@ -1526,26 +1482,13 @@ static HRESULT add_func_desc(msft_typeinfo_t* typeinfo, var_t *func, int index)
|
||||
|
||||
if(defaultdata) *defaultdata = -1;
|
||||
|
||||
encode_var(typeinfo->typelib, arg->type, arg, paramdata, NULL, NULL, &decoded_size);
|
||||
encode_var(typeinfo->typelib, arg->type, arg, paramdata, &decoded_size);
|
||||
if (arg->attrs) LIST_FOR_EACH_ENTRY( attr, arg->attrs, const attr_t, entry ) {
|
||||
switch(attr->type) {
|
||||
case ATTR_DEFAULTVALUE:
|
||||
{
|
||||
int vt;
|
||||
expr_t *expr = (expr_t *)attr->u.pval;
|
||||
vt = get_defaultvalue_vt(arg->type);
|
||||
paramflags |= 0x30; /* PARAMFLAG_FHASDEFAULT | PARAMFLAG_FOPT */
|
||||
if (expr->type == EXPR_STRLIT || expr->type == EXPR_WSTRLIT)
|
||||
{
|
||||
if (vt != VT_BSTR) error("string default value applied to non-string type\n");
|
||||
chat("default value '%s'\n", expr->u.sval);
|
||||
write_value(typeinfo->typelib, defaultdata, vt, expr->u.sval);
|
||||
}
|
||||
else
|
||||
{
|
||||
chat("default value %d\n", expr->cval);
|
||||
write_value(typeinfo->typelib, defaultdata, vt, &expr->cval);
|
||||
}
|
||||
write_default_value(typeinfo->typelib, arg->type, (expr_t *)attr->u.pval, defaultdata);
|
||||
break;
|
||||
}
|
||||
case ATTR_IN:
|
||||
@ -1652,8 +1595,7 @@ static HRESULT add_var_desc(msft_typeinfo_t *typeinfo, UINT index, var_t* var)
|
||||
int offset, id;
|
||||
unsigned int typedata_size;
|
||||
INT *typedata;
|
||||
int var_datawidth;
|
||||
int var_alignment;
|
||||
unsigned int var_datawidth, var_alignment = 0;
|
||||
int var_type_size, var_kind = 0 /* VAR_PERINSTANCE */;
|
||||
int alignment;
|
||||
int varflags = 0;
|
||||
@ -1755,8 +1697,8 @@ static HRESULT add_var_desc(msft_typeinfo_t *typeinfo, UINT index, var_t* var)
|
||||
typeinfo->var_offsets[var_num] = offset;
|
||||
|
||||
/* figure out type widths and whatnot */
|
||||
encode_var(typeinfo->typelib, var->type, var, &typedata[1], &var_datawidth,
|
||||
&var_alignment, &var_type_size);
|
||||
var_datawidth = type_memsize_and_alignment(var->type, &var_alignment);
|
||||
encode_var(typeinfo->typelib, var->type, var, &typedata[1], &var_type_size);
|
||||
|
||||
/* pad out starting position to data width */
|
||||
typeinfo->datawidth += var_alignment - 1;
|
||||
@ -1764,7 +1706,7 @@ static HRESULT add_var_desc(msft_typeinfo_t *typeinfo, UINT index, var_t* var)
|
||||
|
||||
switch(typeinfo->typekind) {
|
||||
case TKIND_ENUM:
|
||||
write_value(typeinfo->typelib, &typedata[4], VT_I4, &var->eval->cval);
|
||||
write_int_value(typeinfo->typelib, &typedata[4], VT_I4, var->eval->cval);
|
||||
var_kind = 2; /* VAR_CONST */
|
||||
var_type_size += 16; /* sizeof(VARIANT) */
|
||||
typeinfo->datawidth = var_datawidth;
|
||||
@ -1780,7 +1722,6 @@ static HRESULT add_var_desc(msft_typeinfo_t *typeinfo, UINT index, var_t* var)
|
||||
case TKIND_DISPATCH:
|
||||
var_kind = 3; /* VAR_DISPATCH */
|
||||
typeinfo->datawidth = pointer_size;
|
||||
var_alignment = 4;
|
||||
break;
|
||||
default:
|
||||
error("add_var_desc: unhandled type kind %d\n", typeinfo->typekind);
|
||||
@ -2027,11 +1968,29 @@ static void add_dispatch(msft_typelib_t *typelib)
|
||||
|
||||
static void add_dispinterface_typeinfo(msft_typelib_t *typelib, type_t *dispinterface)
|
||||
{
|
||||
int num_parents = 0, num_funcs = 0;
|
||||
importinfo_t *importinfo = NULL;
|
||||
const statement_t *stmt_func;
|
||||
type_t *inherit, *ref;
|
||||
int idx = 0;
|
||||
var_t *func;
|
||||
var_t *var;
|
||||
msft_typeinfo_t *msft_typeinfo;
|
||||
|
||||
if (-1 < dispinterface->typelib_idx)
|
||||
return;
|
||||
|
||||
inherit = type_dispiface_get_inherit(dispinterface);
|
||||
|
||||
if (inherit)
|
||||
{
|
||||
importinfo = find_importinfo(typelib, inherit->name);
|
||||
|
||||
if (!importinfo && type_iface_get_inherit(inherit) && inherit->typelib_idx == -1)
|
||||
add_interface_typeinfo(typelib, inherit);
|
||||
}
|
||||
|
||||
/* check typelib_idx again, it could have been added while resolving the parent interface */
|
||||
if (-1 < dispinterface->typelib_idx)
|
||||
return;
|
||||
|
||||
@ -2040,11 +1999,31 @@ static void add_dispinterface_typeinfo(msft_typelib_t *typelib, type_t *dispinte
|
||||
dispinterface->attrs);
|
||||
|
||||
msft_typeinfo->typeinfo->size = pointer_size;
|
||||
msft_typeinfo->typeinfo->typekind |= 0x2100;
|
||||
msft_typeinfo->typeinfo->typekind |= pointer_size << 11 | pointer_size << 6;
|
||||
|
||||
msft_typeinfo->typeinfo->flags |= 0x1000; /* TYPEFLAG_FDISPATCHABLE */
|
||||
add_dispatch(typelib);
|
||||
msft_typeinfo->typeinfo->cImplTypes = 1;
|
||||
|
||||
if (inherit)
|
||||
{
|
||||
add_impl_type(msft_typeinfo, inherit, importinfo);
|
||||
msft_typeinfo->typeinfo->typekind |= 0x10;
|
||||
}
|
||||
|
||||
/* count the number of inherited interfaces and non-local functions */
|
||||
for (ref = inherit; ref; ref = type_iface_get_inherit(ref))
|
||||
{
|
||||
num_parents++;
|
||||
STATEMENTS_FOR_EACH_FUNC( stmt_func, type_iface_get_stmts(ref) )
|
||||
{
|
||||
var_t *func = stmt_func->u.var;
|
||||
if (!is_local(func->attrs)) num_funcs++;
|
||||
}
|
||||
}
|
||||
msft_typeinfo->typeinfo->datatype2 = num_funcs << 16 | num_parents;
|
||||
msft_typeinfo->typeinfo->cbSizeVft = num_funcs * pointer_size;
|
||||
|
||||
msft_typeinfo->typeinfo->cImplTypes = 1; /* IDispatch */
|
||||
|
||||
/* count the no of methods, as the variable indices come after the funcs */
|
||||
if (dispinterface->details.iface->disp_methods)
|
||||
@ -2109,16 +2088,13 @@ static void add_interface_typeinfo(msft_typelib_t *typelib, type_t *interface)
|
||||
interface->typelib_idx = typelib->typelib_header.nrtypeinfos;
|
||||
msft_typeinfo = create_msft_typeinfo(typelib, TKIND_INTERFACE, interface->name, interface->attrs);
|
||||
msft_typeinfo->typeinfo->size = pointer_size;
|
||||
msft_typeinfo->typeinfo->typekind |= 0x2200;
|
||||
msft_typeinfo->typeinfo->typekind |= 0x0200;
|
||||
msft_typeinfo->typeinfo->typekind |= pointer_size << 11;
|
||||
|
||||
for (derived = inherit; derived; derived = type_iface_get_inherit(derived))
|
||||
if (derived->name && !strcmp(derived->name, "IDispatch"))
|
||||
msft_typeinfo->typeinfo->flags |= 0x1000; /* TYPEFLAG_FDISPATCHABLE */
|
||||
|
||||
/* can't be dual if it doesn't derive from IDispatch */
|
||||
if (!(msft_typeinfo->typeinfo->flags & 0x1000)) /* TYPEFLAG_FDISPATCHABLE */
|
||||
msft_typeinfo->typeinfo->flags &= ~0x40; /* TYPEFLAG_FDUAL */
|
||||
|
||||
if(type_iface_get_inherit(interface))
|
||||
add_impl_type(msft_typeinfo, type_iface_get_inherit(interface),
|
||||
ref_importinfo);
|
||||
@ -2198,7 +2174,8 @@ static void add_union_typeinfo(msft_typelib_t *typelib, type_t *tunion)
|
||||
static void add_typedef_typeinfo(msft_typelib_t *typelib, type_t *tdef)
|
||||
{
|
||||
msft_typeinfo_t *msft_typeinfo = NULL;
|
||||
int alignment, datatype1, datatype2, size, duplicate = 0;
|
||||
int datatype1, datatype2, duplicate = 0;
|
||||
unsigned int size, alignment = 0;
|
||||
type_t *type;
|
||||
|
||||
if (-1 < tdef->typelib_idx)
|
||||
@ -2214,8 +2191,8 @@ static void add_typedef_typeinfo(msft_typelib_t *typelib, type_t *tdef)
|
||||
else
|
||||
duplicate = 1;
|
||||
|
||||
encode_type(typelib, get_type_vt(type), type,
|
||||
&datatype1, &size, &alignment, &datatype2);
|
||||
encode_type(typelib, get_type_vt(type), type, &datatype1, &datatype2);
|
||||
size = type_memsize_and_alignment(type, &alignment);
|
||||
|
||||
if (msft_typeinfo)
|
||||
{
|
||||
|
@ -30,12 +30,12 @@ do
|
||||
fi
|
||||
done
|
||||
|
||||
for f in basetsd.h guiddef.h poppack.h pshpack1.h pshpack2.h pshpack4.h pshpack8.h winbase.h windef.h winerror.h winnls.h winnt.h winnt.rh
|
||||
for f in basetsd.h guiddef.h ndrtypes.h poppack.h pshpack1.h pshpack2.h pshpack4.h pshpack8.h winbase.h windef.h winerror.h winnls.h winnt.h winnt.rh
|
||||
do
|
||||
cp $WINE_DIR/include/$f include
|
||||
done
|
||||
|
||||
for f in list.h rpcfc.h wpp.h
|
||||
for f in list.h wpp.h
|
||||
do
|
||||
cp $WINE_DIR/include/wine/$f include/wine
|
||||
done
|
||||
|
Loading…
Reference in New Issue
Block a user