2004-09-28 23:20:00 +04:00
#include "idl_types.h"
/**
DCOM interfaces
http://www.grimes.demon.co.uk/DCOM/DCOMSpec.htm
*/
[
2004-10-27 08:48:41 +04:00
uuid("4d9f4ab8-7d1c-11cf-861e-0020af6e7c57"),
2004-11-01 13:30:34 +03:00
pointer_default(unique),
r6973: Merge new version of pidl into the main SAMBA_4_0 branch.
The main difference in this new version is the extra data structure generated
between the IDL data structure and the NDR parser:
IDL -> NDR -> { ndr_parser, ndr_header, eparser, etc }
This makes the ndr_parser.pm internals much more sane.
Other changes include:
- Remove unnecessary calls with NDR_BUFFERS (for example, GUID doesn't have any buffers, just scalars) as well as some (unnecessary) nested setting of flags.
- Parse array loops in the C code rather then calling ndr_pull_array(). This allows us to have, for example, arrays of pointers or arrays of pointers to arrays, etc..
- Use if() {} rather then if () goto foo; everywhere
- NDR_IN no longer implies LIBNDR_FLAG_REF_ALLOC
- By default, top level pointers are now "ref" (as is the default in
most other IDL compilers). This can be overridden using the
default_pointer_top() property.
- initial work on new ethereal parser generators by Alan DeKok and me
- pidl now writes errors in the standard format used by compilers, which
is parsable by most editors
- ability to warn about the fact that pidl extension(s) have been used,
useful for making sure IDL files work with other IDL compilers.
oh, and there's probably some other things I can't think of right now..
(This used to be commit 13cf227615f6b9e0e5fa62e59197024410254f01)
2005-05-25 17:50:27 +04:00
pointer_default_top(unique),
2004-11-04 04:25:56 +03:00
endpoint("ncalrpc:", "ncacn_ip_tcp:[135]", "ncacn_np:[\\pipe\\epmapper]"),
2004-11-01 13:30:34 +03:00
depends(dcom)
2004-09-28 23:20:00 +04:00
]
interface IRemoteActivation
{
2004-10-31 21:37:59 +03:00
typedef enum
{
RPC_C_IMP_LEVEL_DEFAULT = 0,
RPC_C_IMP_LEVEL_ANONYMOUS = 1,
RPC_C_IMP_LEVEL_IDENTIFY = 2,
RPC_C_IMP_LEVEL_IMPERSONATE = 3,
RPC_C_IMP_LEVEL_DELEGATE = 4
} imp_levels;
2005-03-07 05:14:38 +03:00
typedef struct {
MInterfacePointer *ip;
} pMInterfacePointer;
2004-09-28 23:20:00 +04:00
const uint32 MODE_GET_CLASS_OBJECT = 0xffffffff;
2004-10-31 21:37:59 +03:00
WERROR RemoteActivation (
[in] ORPCTHIS this,
[out] ORPCTHAT that,
2004-09-28 23:20:00 +04:00
[in] GUID Clsid,
2005-03-05 21:34:18 +03:00
[in] unistr *pwszObjectName,
[in] MInterfacePointer *pObjectStorage,
2004-09-28 23:20:00 +04:00
[in] uint32 ClientImpLevel,
[in] uint32 Mode,
2004-11-04 04:09:43 +03:00
[in,range(1,32768)] uint32 Interfaces,
2005-05-27 19:49:15 +04:00
[in,size_is(Interfaces)] GUID *pIIDs,
2004-09-28 23:20:00 +04:00
[in] uint16 num_protseqs,
2005-03-06 18:57:08 +03:00
[in, size_is(num_protseqs)] uint16 protseq[*],
2005-01-27 09:33:07 +03:00
[out] hyper pOxid,
2004-09-28 23:20:00 +04:00
[out] DUALSTRINGARRAY *pdsaOxidBindings,
2004-11-09 03:30:44 +03:00
[out] GUID ipidRemUnknown,
2004-10-31 21:37:59 +03:00
[out] uint32 AuthnHint,
[out] COMVERSION ServerVersion,
2004-11-01 15:40:43 +03:00
[out] WERROR hr,
2005-03-07 05:14:38 +03:00
[out,size_is(Interfaces)] pMInterfacePointer ifaces[],
2004-11-01 15:40:43 +03:00
[out,size_is(Interfaces)] WERROR results[]
2004-09-28 23:20:00 +04:00
);
}