Signed-off-by: Nikolay Sivov nsivov@codeweavers.com ---
The point is to make necessary types available to rpcss idls and code, combase and ole32.
dlls/ole32/dcom.idl | 151 +-------------------------------- include/Makefile.in | 1 + include/wine/orpc.idl | 189 ++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 191 insertions(+), 150 deletions(-) create mode 100644 include/wine/orpc.idl
diff --git a/dlls/ole32/dcom.idl b/dlls/ole32/dcom.idl index c3d090a9cb6..e00aba5834c 100644 --- a/dlls/ole32/dcom.idl +++ b/dlls/ole32/dcom.idl @@ -22,7 +22,7 @@ #pragma makedep proxy #pragma makedep register
-import "unknwn.idl"; +#include "wine/orpc.idl"
[ threading(both), @@ -30,155 +30,6 @@ import "unknwn.idl"; ] coclass PSFactoryBuffer { interface IFactoryBuffer; }
-[ - uuid(99fcfe60-5260-101b-bbcb-00aa0021347a), - pointer_default(unique) -] -interface ObjectRpcBaseTypes -{ - typedef unsigned hyper ID; - typedef ID MID; - typedef ID OXID; - typedef ID OID; - typedef ID SETID; - typedef GUID IPID; - typedef GUID CID; - typedef REFGUID REFIPID; - - const unsigned short COM_MINOR_VERSION_1 = 1; - const unsigned short COM_MINOR_VERSION_2 = 2; - - const unsigned short COM_MAJOR_VERSION = 5; - const unsigned short COM_MINOR_VERSION = 3; - - typedef struct tagCOMVERSION { - unsigned short MajorVersion; - unsigned short MinorVersion; - } COMVERSION; - - const unsigned long ORPCF_NULL = 0; - const unsigned long ORPCF_LOCAL = 1; - const unsigned long ORPCF_RESERVED1 = 2; - const unsigned long ORPCF_RESERVED2 = 4; - const unsigned long ORPCF_RESERVED3 = 8; - const unsigned long ORPCF_RESERVED4 = 16; - - typedef struct tagORPC_EXTENT { - GUID id; - unsigned long size; - [size_is((size+7)&~7)] byte data[]; - } ORPC_EXTENT; - - typedef struct tagORPC_EXTENT_ARRAY { - unsigned long size; - unsigned long reserved; - [size_is((size+1)&~1,), unique] ORPC_EXTENT **extent; - } ORPC_EXTENT_ARRAY; - - typedef struct tagORPCTHIS { - COMVERSION version; - unsigned long flags; - unsigned long reserved1; - CID cid; - [unique] ORPC_EXTENT_ARRAY *extensions; - } ORPCTHIS; - - typedef struct tagORPCTHAT { - unsigned long flags; - [unique] ORPC_EXTENT_ARRAY *extensions; - } ORPCTHAT; - - const unsigned short NCADG_IP_UDP = 0x08; - const unsigned short NCACN_IP_TCP = 0x07; - const unsigned short NCADG_IPX = 0x0E; - const unsigned short NCACN_SPX = 0x0C; - const unsigned short NCACN_NB_NB = 0x12; - const unsigned short NCACN_NB_IPX = 0x0D; - const unsigned short NCACN_DNET_NSP = 0x04; - const unsigned short NCACN_HTTP = 0x1F; - - typedef struct tagSTRINGBINDING { - unsigned short wTowerId; - [string] WCHAR aNetworkAddr[]; - } STRINGBINDING; - - const unsigned short COM_C_AUTHZ_NONE = 0xffff; - - typedef struct tagSECURITYBINDING { - unsigned short wAuthnSvc; - unsigned short wAuthzSvc; - [string] WCHAR aPrincName[]; - } SECURITYBINDING; - - typedef struct tagDUALSTRINGARRAY { - unsigned short wNumEntries; - unsigned short wSecurityOffset; - [size_is(wNumEntries)] unsigned short aStringArray[]; - } DUALSTRINGARRAY; - - typedef struct tagOXID_INFO { - DWORD dwTid; - DWORD dwPid; - IPID ipidRemUnknown; - DWORD dwAuthnHint; - DUALSTRINGARRAY *psa; - } OXID_INFO; - - const unsigned long OBJREF_SIGNATURE = 0x574f454d; /* "MEOW" */ - const unsigned long OBJREF_STANDARD = 0x1; - const unsigned long OBJREF_HANDLER = 0x2; - const unsigned long OBJREF_CUSTOM = 0x4; - const unsigned long SORF_OXRES1 = 0x1; - const unsigned long SORF_OXRES2 = 0x20; - const unsigned long SORF_OXRES3 = 0x40; - const unsigned long SORF_OXRES4 = 0x80; - const unsigned long SORF_OXRES5 = 0x100; - const unsigned long SORF_OXRES6 = 0x200; - const unsigned long SORF_OXRES7 = 0x400; - const unsigned long SORF_OXRES8 = 0x800; - const unsigned long SORF_NULL = 0x0; - const unsigned long SORF_NOPING = 0x1000; - - typedef struct tagSTDOBJREF { - unsigned long flags; - unsigned long cPublicRefs; - OXID oxid; - OID oid; - IPID ipid; - } STDOBJREF; - - typedef struct tagOBJREF { - unsigned long signature; - unsigned long flags; - GUID iid; - [switch_is(flags)] union { - [case(OBJREF_STANDARD)] struct OR_STANDARD { - STDOBJREF std; - DUALSTRINGARRAY saResAddr; - } u_standard; - [case(OBJREF_HANDLER)] struct OR_HANDLER { - STDOBJREF std; - CLSID clsid; - DUALSTRINGARRAY saResAddr; - } u_handler; - [case(OBJREF_CUSTOM)] struct OR_CUSTOM { - CLSID clsid; - unsigned long cbExtension; - ULONG size; - [size_is(size), ref] byte *pData; - } u_custom; - } u_objref; - } OBJREF; - - typedef struct tagMInterfacePointer { - ULONG ulCntData; - [size_is(ulCntData)] BYTE abData[]; - } MInterfacePointer; - - typedef [unique] MInterfacePointer *PMInterfacePointer; - -} /* interface ObjectRpcBaseTypes */ - [ object, uuid(00000131-0000-0000-C000-000000000046) diff --git a/include/Makefile.in b/include/Makefile.in index 23a7d736dd5..49b174ed319 100644 --- a/include/Makefile.in +++ b/include/Makefile.in @@ -740,6 +740,7 @@ SOURCES = \ wine/fil_data.idl \ wine/itss.idl \ wine/library.h \ + wine/orpc.idl \ wine/svcctl.idl \ wine/winedxgi.idl \ winerror.h \ diff --git a/include/wine/orpc.idl b/include/wine/orpc.idl new file mode 100644 index 00000000000..c72a43ff2fe --- /dev/null +++ b/include/wine/orpc.idl @@ -0,0 +1,189 @@ +/* + * Copyright 2003 Ove Kåven, TransGaming Technologies + * + * 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 + */ + +import "unknwn.idl"; + +[ + uuid(99fcfe60-5260-101b-bbcb-00aa0021347a), + pointer_default(unique) +] +interface ObjectRpcBaseTypes +{ + typedef unsigned hyper ID; + typedef ID MID; + typedef ID OXID; + typedef ID OID; + typedef ID SETID; + typedef GUID IPID; + typedef GUID CID; + typedef REFGUID REFIPID; + + const unsigned short COM_MINOR_VERSION_1 = 1; + const unsigned short COM_MINOR_VERSION_2 = 2; + + const unsigned short COM_MAJOR_VERSION = 5; + const unsigned short COM_MINOR_VERSION = 3; + + typedef struct tagCOMVERSION + { + unsigned short MajorVersion; + unsigned short MinorVersion; + } COMVERSION; + + const unsigned long ORPCF_NULL = 0; + const unsigned long ORPCF_LOCAL = 1; + const unsigned long ORPCF_RESERVED1 = 2; + const unsigned long ORPCF_RESERVED2 = 4; + const unsigned long ORPCF_RESERVED3 = 8; + const unsigned long ORPCF_RESERVED4 = 16; + + typedef struct tagORPC_EXTENT + { + GUID id; + unsigned long size; + [size_is((size + 7) & ~7)] byte data[]; + } ORPC_EXTENT; + + typedef struct tagORPC_EXTENT_ARRAY + { + unsigned long size; + unsigned long reserved; + [size_is((size + 1) & ~1,), unique] ORPC_EXTENT **extent; + } ORPC_EXTENT_ARRAY; + + typedef struct tagORPCTHIS + { + COMVERSION version; + unsigned long flags; + unsigned long reserved1; + CID cid; + [unique] ORPC_EXTENT_ARRAY *extensions; + } ORPCTHIS; + + typedef struct tagORPCTHAT + { + unsigned long flags; + [unique] ORPC_EXTENT_ARRAY *extensions; + } ORPCTHAT; + + const unsigned short NCADG_IP_UDP = 0x08; + const unsigned short NCACN_IP_TCP = 0x07; + const unsigned short NCADG_IPX = 0x0E; + const unsigned short NCACN_SPX = 0x0C; + const unsigned short NCACN_NB_NB = 0x12; + const unsigned short NCACN_NB_IPX = 0x0D; + const unsigned short NCACN_DNET_NSP = 0x04; + const unsigned short NCACN_HTTP = 0x1F; + + typedef struct tagSTRINGBINDING + { + unsigned short wTowerId; + [string] WCHAR aNetworkAddr[]; + } STRINGBINDING; + + const unsigned short COM_C_AUTHZ_NONE = 0xffff; + + typedef struct tagSECURITYBINDING + { + unsigned short wAuthnSvc; + unsigned short wAuthzSvc; + [string] WCHAR aPrincName[]; + } SECURITYBINDING; + + typedef struct tagDUALSTRINGARRAY + { + unsigned short wNumEntries; + unsigned short wSecurityOffset; + [size_is(wNumEntries)] unsigned short aStringArray[]; + } DUALSTRINGARRAY; + + typedef struct tagOXID_INFO + { + DWORD dwTid; + DWORD dwPid; + IPID ipidRemUnknown; + DWORD dwAuthnHint; + DUALSTRINGARRAY *psa; + } OXID_INFO; + + const unsigned long OBJREF_SIGNATURE = 0x574f454d; /* "MEOW" */ + const unsigned long OBJREF_STANDARD = 0x1; + const unsigned long OBJREF_HANDLER = 0x2; + const unsigned long OBJREF_CUSTOM = 0x4; + const unsigned long SORF_OXRES1 = 0x1; + const unsigned long SORF_OXRES2 = 0x20; + const unsigned long SORF_OXRES3 = 0x40; + const unsigned long SORF_OXRES4 = 0x80; + const unsigned long SORF_OXRES5 = 0x100; + const unsigned long SORF_OXRES6 = 0x200; + const unsigned long SORF_OXRES7 = 0x400; + const unsigned long SORF_OXRES8 = 0x800; + const unsigned long SORF_NULL = 0x0; + const unsigned long SORF_NOPING = 0x1000; + + typedef struct tagSTDOBJREF + { + unsigned long flags; + unsigned long cPublicRefs; + OXID oxid; + OID oid; + IPID ipid; + } STDOBJREF; + + typedef struct tagOBJREF + { + unsigned long signature; + unsigned long flags; + GUID iid; + [switch_is(flags)] + union + { + [case(OBJREF_STANDARD)] + struct OR_STANDARD + { + STDOBJREF std; + DUALSTRINGARRAY saResAddr; + } u_standard; + + [case(OBJREF_HANDLER)] + struct OR_HANDLER + { + STDOBJREF std; + CLSID clsid; + DUALSTRINGARRAY saResAddr; + } u_handler; + + [case(OBJREF_CUSTOM)] + struct OR_CUSTOM + { + CLSID clsid; + unsigned long cbExtension; + ULONG size; + [size_is(size), ref] byte *pData; + } u_custom; + } u_objref; + } OBJREF; + + typedef struct tagMInterfacePointer + { + ULONG ulCntData; + [size_is(ulCntData)] BYTE abData[]; + } MInterfacePointer; + + typedef [unique] MInterfacePointer *PMInterfacePointer; +}