diff options
author | Jelmer Vernooij <jelmer@samba.org> | 2004-09-28 22:04:35 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 12:59:29 -0500 |
commit | 0aef534de9bab566e88458499d0f656615273462 (patch) | |
tree | da74d094faff33a53cb9b518b2779c007c5b3ac3 | |
parent | 096d2d68de721774a4c0493863ba47cd240ff35e (diff) | |
download | samba-0aef534de9bab566e88458499d0f656615273462.tar.gz samba-0aef534de9bab566e88458499d0f656615273462.tar.bz2 samba-0aef534de9bab566e88458499d0f656615273462.zip |
r2740: Finish the RemoteActivation interface. Torture tests will follow
after pidl has been fixed (to be able to use input variables
inside size_is() for output variables)
(This used to be commit ea0b0bfea97067118dab634efefd3115b7a0fd85)
-rw-r--r-- | source4/librpc/idl/dcom.idl | 13 | ||||
-rw-r--r-- | source4/librpc/idl/remact.idl | 18 |
2 files changed, 11 insertions, 20 deletions
diff --git a/source4/librpc/idl/dcom.idl b/source4/librpc/idl/dcom.idl index ab9bf683fb..cbe3e88b1b 100644 --- a/source4/librpc/idl/dcom.idl +++ b/source4/librpc/idl/dcom.idl @@ -242,7 +242,7 @@ interface ObjectRpcBaseTypes { } u_null; - typedef union + typedef [nodiscriminant] union { [case(OBJREF_NULL)] u_null u_null; [case(OBJREF_STANDARD)] u_standard u_standard; @@ -262,7 +262,8 @@ interface ObjectRpcBaseTypes // wire representation of a marshalled interface pointer typedef [public] struct { - [subcontext(4)] OBJREF abData; // data (OBJREF) + uint32 size; + [size_is(size)] uint8 data[]; } MInterfacePointer; } @@ -365,7 +366,7 @@ interface IRemUnknown : IUnknown object ] interface IClassActivator : IUnknown { - void RemoteGetClassObject([in] GUID classid, + void RemoteGetClassObject([in] GUID clsid, [in] uint32 context, [in] LCID locale, [in] GUID iid/*FIXME, @@ -380,11 +381,7 @@ interface IRemUnknown : IUnknown ] interface ISystemActivator : IClassActivator { - void ISystemActivatorRemoteCreateInstance( - [in] GUID classid, - [in] OBJREF obj, - [out] MInterfacePointer res - ); + void ISystemActivatorRemoteCreateInstance(); } diff --git a/source4/librpc/idl/remact.idl b/source4/librpc/idl/remact.idl index 02223f0c11..756f9a45be 100644 --- a/source4/librpc/idl/remact.idl +++ b/source4/librpc/idl/remact.idl @@ -14,14 +14,6 @@ ] interface IRemoteActivation { - typedef [public] struct { - MInterfacePointer *ppInterfaceData; - } ppInterfaceDataArray; - - typedef [public] struct { - DUALSTRINGARRAY *dualstringarray; - } REF_DUALSTRINGARRAY; - typedef struct { /* Looks very much like a protocol tower to me, but it appears to be aligned differently then it is in epmapper -jelmer @@ -31,6 +23,8 @@ interface IRemoteActivation const uint32 MODE_GET_CLASS_OBJECT = 0xffffffff; HRESULT RemoteActivation ( + [in] ORPCTHIS ORPCthis, + [out] ORPCTHAT ORPCthat, [in] GUID Clsid, [in, unique] unistr *pwszObjectName, [in, unique] MInterfacePointer *pObjectStorage, @@ -40,13 +34,13 @@ interface IRemoteActivation [in, unique,size_is(Interfaces)] GUID *pIIDs, [in] uint16 num_protseqs, [in, size_is(num_protseqs)] floor_tmp protseq[], - [out] GUID pOxid, + [out] HYPER_T pOxid, [out] DUALSTRINGARRAY *pdsaOxidBindings, [out] IPID ipidRemUnknown, [out] uint32 pAuthnHint, [out] COMVERSION pServerVersion, - [out] HRESULT *phr, - [out,size_is(Interfaces)] ppInterfaceDataArray *ppInterfaceData, - [out,size_is(Interfaces)] HRESULT *pResults + [out] HRESULT phr, + [out,size_is(Interfaces)] MInterfacePointer ifaces[], + [out,size_is(Interfaces)] HRESULT results[] ); } |