summaryrefslogtreecommitdiff
path: root/source4/librpc/idl/dcom.idl
diff options
context:
space:
mode:
authorJelmer Vernooij <jelmer@samba.org>2004-08-11 19:48:36 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 12:57:51 -0500
commit1d3b81e6c0c4c654c7395fe84b053cd77ef7d81a (patch)
tree3b193a8d482844dbdd05ae335882c800908bdd0f /source4/librpc/idl/dcom.idl
parentca72bdfecbea2e332821bc292b4bb34f6c96ac2e (diff)
downloadsamba-1d3b81e6c0c4c654c7395fe84b053cd77ef7d81a.tar.gz
samba-1d3b81e6c0c4c654c7395fe84b053cd77ef7d81a.tar.bz2
samba-1d3b81e6c0c4c654c7395fe84b053cd77ef7d81a.zip
r1736: - Pidl updates:
- Support for "object oriented" interfaces in pidl - Support for inherited interfaces in pidl - Simplification of the support for properties on an interface - Start on dcom rpc torture tests (This used to be commit 45c3d0036b8510102816f9cdff9210098259cc5f)
Diffstat (limited to 'source4/librpc/idl/dcom.idl')
-rw-r--r--source4/librpc/idl/dcom.idl55
1 files changed, 35 insertions, 20 deletions
diff --git a/source4/librpc/idl/dcom.idl b/source4/librpc/idl/dcom.idl
index 9d5acb6ebd..dee52243a4 100644
--- a/source4/librpc/idl/dcom.idl
+++ b/source4/librpc/idl/dcom.idl
@@ -10,27 +10,22 @@ interface ObjectRpcBaseTypes
{
WERROR stub();
- typedef [public] struct {
- uint32 upper;
- uint32 lower;
- } hyper;
-
//////////////////////////////////////////////////////////////
// Identifier Definitions
////////////////////////////////////////////////////////////
// Machine Identifier
-#define MID hyper
+#define MID HYPER_T
// Object Exporter Identifier
-#define OXID hyper
+#define OXID HYPER_T
// Object Identifer
-#define OID hyper
+#define OID HYPER_T
// Ping Set Identifier
-#define SETID hyper
+#define SETID HYPER_T
// Interface Pointer Identifier
#define IPID GUID
@@ -186,7 +181,7 @@ interface ObjectRpcBaseTypes
const uint32 SORF_NULL = 0x0; // convenient for initializing SORF
const uint32 SORF_NOPING = 0x1000;// Pinging is not required
// standard object reference
- typedef struct
+ typedef [public] struct
{
uint32 flags; // STDOBJREF flags (see above)
uint32 cPublicRefs; // count of references passed
@@ -241,6 +236,26 @@ interface ObjectRpcBaseTypes
} MInterfacePointer;
}
+
+[
+ object,
+ uuid(00000000-0000-0000-C000-000000000046)
+]
+interface IUnknown
+{
+ /*****************/
+ /* Function 0x00 */
+ HRESULT QueryInterface();
+
+ /*****************/
+ /* Function 0x01 */
+ uint32 AddRef();
+
+ /*****************/
+ /* Function 0x02 */
+ uint32 Release();
+}
+
//////////////////////////////////////////////////////////////////
// The remote version of Iunknown. This interface exists on every
@@ -252,9 +267,10 @@ interface ObjectRpcBaseTypes
//
[
uuid(00000131-0000-0000-C000-000000000046),
+ object,
version(0.0)
]
-interface IRemUnknown // : IUnknown
+interface IRemUnknown : IUnknown
{
typedef struct
{
@@ -262,7 +278,7 @@ interface IRemUnknown // : IUnknown
STDOBJREF std; // data for returned interface
}
REMQIRESULT;
-
+
HRESULT RemQueryInterface (
[in] IPID *ripid, // interface to QI on
[in] uint32 cRefs, // count of AddRefs requested
@@ -291,15 +307,18 @@ interface IRemUnknown // : IUnknown
);
}
+
+
// Derived from IRemUnknown, this interface supports Remote Query interface
// for objects that supply additional data beyond the STDOBJREF in their
// marshaled interface packets.
[
+object,
uuid(00000143-0000-0000-C000-000000000046),
version(0.0)
]
-interface IRemUnknown2 //: IRemUnknown
+interface IRemUnknown2 : IRemUnknown
{
HRESULT RemQueryInterface2 (
[in] IPID *ripid,
@@ -308,7 +327,6 @@ interface IRemUnknown2 //: IRemUnknown
[out, size_is(cIids)] HRESULT *phr
//FIXME [out, size_is(cIids)] MInterfacePointer **ppMIF
);
-
}
[ uuid(99fcfec4-5260-101b-bbcb-00aa0021347a),
@@ -339,7 +357,7 @@ interface IOXIDResolver
// Returns S_TRUE if the SetId is known by the object exporter,
// S_FALSE if not.
[idempotent] WERROR SimplePing (
- [in] policy_handle hRpc,
+ [in,ref] policy_handle *hRpc,
[in] SETID *pSetId // Must not be zero
);
@@ -364,13 +382,13 @@ interface IOXIDResolver
// can be used to validate the binding
// from the client.
[idempotent] WERROR ServerAlive (
- [in] policy_handle hRpc
+ [in,ref] policy_handle *hRpc
);
// 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] error_status_t ResolveOxid2 (
+ [idempotent] WERROR ResolveOxid2 (
[in] policy_handle hRpc,
[in] OXID *pOxid,
[in] uint16 cRequestedProtseqs,
@@ -452,13 +470,10 @@ interface ISystemActivator
/* Function 0x03 */
NTSTATUS isa_Unknown3();
-
// Binding strings and the OBJREF_SIGNATURE in this call
/*****************/
/* Function 0x04 */
NTSTATUS isa_Unknown4();
-
-
}
[