mirror of
https://github.com/samba-team/samba.git
synced 2025-01-12 09:18:10 +03:00
50d2bf0066
now able to use constructions like these:
[size_is(20)] int *x; -> Pointer to array of 20 ints
[size_is(20)] int x[]; -> Array of 20 ints
[size_is(20)] int *x[]; -> Array of 20 pointers to ints
[size_is(20,)] int *x[] -> Array of 20 pointers to ints
[size_is(,20)] int *x[]; -> Pointer to array of 20 ints
[size_is(,20)] int **x; -> Pointer to pointer to array of 20 ints
[size_is(20)] int x[][30]; -> 20 blocks of 30 ints
(This used to be commit ecf583da71
)
53 lines
1.3 KiB
Plaintext
53 lines
1.3 KiB
Plaintext
#include "idl_types.h"
|
|
|
|
/**
|
|
DCOM interfaces
|
|
http://www.grimes.demon.co.uk/DCOM/DCOMSpec.htm
|
|
*/
|
|
|
|
[
|
|
uuid("4d9f4ab8-7d1c-11cf-861e-0020af6e7c57"),
|
|
pointer_default(unique),
|
|
pointer_default_top(unique),
|
|
endpoint("ncalrpc:", "ncacn_ip_tcp:[135]", "ncacn_np:[\\pipe\\epmapper]"),
|
|
depends(dcom)
|
|
]
|
|
interface IRemoteActivation
|
|
{
|
|
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;
|
|
|
|
typedef struct {
|
|
MInterfacePointer *ip;
|
|
} pMInterfacePointer;
|
|
|
|
const uint32 MODE_GET_CLASS_OBJECT = 0xffffffff;
|
|
WERROR RemoteActivation (
|
|
[in] ORPCTHIS this,
|
|
[out] ORPCTHAT that,
|
|
[in] GUID Clsid,
|
|
[in] unistr *pwszObjectName,
|
|
[in] MInterfacePointer *pObjectStorage,
|
|
[in] uint32 ClientImpLevel,
|
|
[in] uint32 Mode,
|
|
[in,range(1,32768)] uint32 Interfaces,
|
|
[in,size_is(Interfaces)] GUID *pIIDs,
|
|
[in] uint16 num_protseqs,
|
|
[in, size_is(num_protseqs)] uint16 protseq[*],
|
|
[out] hyper pOxid,
|
|
[out] DUALSTRINGARRAY *pdsaOxidBindings,
|
|
[out] GUID ipidRemUnknown,
|
|
[out] uint32 AuthnHint,
|
|
[out] COMVERSION ServerVersion,
|
|
[out] WERROR hr,
|
|
[out,size_is(Interfaces)] pMInterfacePointer ifaces[],
|
|
[out,size_is(Interfaces)] WERROR results[]
|
|
);
|
|
}
|