summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJelmer Vernooij <jelmer@samba.org>2004-09-28 22:04:35 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 12:59:29 -0500
commit0aef534de9bab566e88458499d0f656615273462 (patch)
treeda74d094faff33a53cb9b518b2779c007c5b3ac3
parent096d2d68de721774a4c0493863ba47cd240ff35e (diff)
downloadsamba-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.idl13
-rw-r--r--source4/librpc/idl/remact.idl18
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[]
);
}