summaryrefslogtreecommitdiff
path: root/source4/librpc/idl/dcom.idl
diff options
context:
space:
mode:
Diffstat (limited to 'source4/librpc/idl/dcom.idl')
-rw-r--r--source4/librpc/idl/dcom.idl63
1 files changed, 40 insertions, 23 deletions
diff --git a/source4/librpc/idl/dcom.idl b/source4/librpc/idl/dcom.idl
index 88db432abc..5afeca1e96 100644
--- a/source4/librpc/idl/dcom.idl
+++ b/source4/librpc/idl/dcom.idl
@@ -11,7 +11,7 @@
[
uuid(18f70770-8e64-11cf-9af1-0020af6e72f4),
version(0.0)
-] interface dcom_Uknown
+] interface dcom_Unknown
{
void dcomu_UseProtSeq();
void dcomu_GetCustomProtseqInfo();
@@ -88,6 +88,16 @@ interface ObjectRpcBaseTypes
uint16 MinorVersion; // Minor version number
} COMVERSION;
+ typedef [public] struct
+ {
+ uint32 reserved1;
+ uint32 reserved2;
+ } COSERVERINFO;
+
+ typedef [public] struct
+ {
+ uint32 FIXME;
+ } MULTI_QI;
// enumeration of additional information present in the call packet.
// Should be an enum but DCE IDL does not support sparse enumerators.
@@ -258,12 +268,15 @@ interface ObjectRpcBaseTypes
[
object,
- uuid(00000000-0000-0000-C000-000000000046)
+ uuid(00000000-0000-0000-C000-000000000046),
+ helpstring("Base interface for most COM interfaces")
]
interface IUnknown
{
/*****************/
/* Function 0x00 */
+ /* Returns the interface with the specified IID
+ if implemented by this object */
HRESULT QueryInterface([in] IID *riid
/*FIXME, [out] void **data*/);
@@ -294,7 +307,7 @@ interface IUnknown
//////////////////////////////////////////////////////////////////
-// The remote version of Iunknown. This interface exists on every
+// The remote version of IUnknown. This interface exists on every
// OXID (whether an OXID represents either a thread or a process is
// implementation specific). It is used by clients to query for new
// interfaces, get additional references (for marshaling), and release
@@ -304,7 +317,8 @@ interface IUnknown
[
uuid(00000131-0000-0000-C000-000000000046),
object,
- version(0.0)
+ version(0.0),
+ helpstring("Remote version of IUnknown")
]
interface IRemUnknown : IUnknown
{
@@ -349,9 +363,9 @@ interface IRemUnknown : IUnknown
// for objects that supply additional data beyond the STDOBJREF in their
// marshaled interface packets.
[
-object,
-uuid(00000143-0000-0000-C000-000000000046),
-version(0.0)
+ object,
+ uuid(00000143-0000-0000-C000-000000000046),
+ version(0.0)
]
interface IRemUnknown2 : IRemUnknown
@@ -365,7 +379,9 @@ interface IRemUnknown2 : IRemUnknown
);
}
-[ uuid(99fcfec4-5260-101b-bbcb-00aa0021347a),
+[
+ uuid(99fcfec4-5260-101b-bbcb-00aa0021347a),
+ helpstring("Object Exporter ID Resolver"),
pointer_default(unique)
]
interface IOXIDResolver
@@ -378,7 +394,6 @@ interface IOXIDResolver
} ppdsaOxidBindingsArray;
[idempotent] WERROR ResolveOxid (
- [in,ref] policy_handle *hRpc,
[in] OXID *pOxid,
[in] uint16 cRequestedProtseqs,
[in, size_is(cRequestedProtseqs)] uint16 arRequestedProtseqs[],
@@ -393,7 +408,6 @@ interface IOXIDResolver
// Returns S_TRUE if the SetId is known by the object exporter,
// S_FALSE if not.
[idempotent] WERROR SimplePing (
- [in,ref] policy_handle *hRpc,
[in] SETID *pSetId // Must not be zero
);
@@ -401,7 +415,6 @@ interface IOXIDResolver
// whole set can subsequently be pinged using SimplePing,
// thus reducing network traffic.
[idempotent] WERROR ComplexPing (
- [in,ref] policy_handle *hRpc,
[in, out] SETID *pSetId, // In of 0 on first call for new set.
[in] uint16 SequenceNum,
[in] uint16 cAddToSet,
@@ -417,15 +430,13 @@ interface IOXIDResolver
// bindings have more then one TCP/IP binding) This call
// can be used to validate the binding
// from the client.
- [idempotent] WERROR ServerAlive (
- [in,ref] policy_handle *hRpc
- );
+ [idempotent] WERROR ServerAlive ();
+
// Method to get the protocol sequences, string bindings,
// RemoteUnknown IPID and COM version for an object server
// given its OXID. Supported by DCOM
// version 5.2 and above.
[idempotent] WERROR ResolveOxid2 (
- [in,ref] policy_handle *hRpc,
[in] OXID *pOxid,
[in] uint16 cRequestedProtseqs,
[in, size_is(cRequestedProtseqs)]
@@ -445,8 +456,9 @@ interface IOXIDResolver
}
[
-uuid(4d9f4ab8-7d1c-11cf-861e-0020af6e7c57),
+ uuid(4d9f4ab8-7d1c-11cf-861e-0020af6e7c57),
version(0.0),
+ object,
pointer_default(unique)
]
interface IRemoteActivation
@@ -459,24 +471,29 @@ interface IRemoteActivation
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
+ */
+ uint8 FIXME[12];
+ } floor_tmp;
+
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,
[in] uint32 ClientImpLevel,
[in] uint32 Mode,
[in] uint32 Interfaces,
- [in,unique,size_is(Interfaces)] IID *pIIDs,
- [in] uint16 cRequestedProtseqs,
- [in, size_is(cRequestedProtseqs)] uint16 RequestedProtseqs[],
+ [in, unique,size_is(Interfaces)] IID *pIIDs,
+ [in] uint16 num_protseqs,
+ [in, size_is(num_protseqs)] floor_tmp protseq[],
[out] OXID pOxid,
[out] DUALSTRINGARRAY *pdsaOxidBindings,
[out] IPID ipidRemUnknown,
- [out] uint32 *pAuthnHint,
- [out] COMVERSION *pServerVersion,
+ [out] uint32 pAuthnHint,
+ [out] COMVERSION pServerVersion,
[out] HRESULT *phr,
[out,size_is(Interfaces)] ppInterfaceDataArray *ppInterfaceData,
[out,size_is(Interfaces)] HRESULT *pResults