⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 orpc.idl

📁 samba最新软件
💻 IDL
字号:
#include "idl_types.h"/**  DCOM interfaces  http://www.ietf.org/internet-drafts/draft-brown-dcom-v1-spec-04.txt */import "misc.idl";[	pointer_default(unique)]interface ObjectRpcBaseTypes{	/* COM_MINOR_VERSION = 1 (NT4.0, SP1, SP2, DCOM95). */	/* - Initial Release */	/* - Must be used when talking to downlevel machines, including */	/* on Remote Activation calls. */	/* COM_MINOR_VERSION = 2 (NT4.0 SP3 and beyond). */	/* - Added ResolveOxid2 to IObjectExporter to retrieve the */	/* COM version number of the server. Passed to the NDR engine */	/* to fix fatal endian-ness flaw in the way OLEAUTOMATION marshals */	/* BSTRS. Previous way used trailing padding, which is not NDR */	/* compatible. See Bug# 69189. */	/* COM_MINOR_VERSION = 3 (NT4.0 SP4 and DCOM95 builds 1018 and beyond) */	/* - OLEAUT32 added two new types to the SAFEARRAY, but SAFEARRAY */	/* previously included the "default" keyword, which prevented */	/* downlevel NDR engines from correctly handling any extensions. */	/* Machines with version >=5.3 don't use "default" and will */	/* gracefully handle future extensions to SAFEARRAY. */	/* old constants (for convenience) */	/* current version */	const uint16 COM_MAJOR_VERSION = 5;	const uint16 COM_MINOR_VERSION = 1;	/* Body Extensions */	const string dcom_ext_debugging = "f1f19680-4d2a-11ce-a66a-0020af6e72f4";	const string dcom_ext_extended_error = "f1f19681-4d2a-11ce-a66a-0020af6e72f4";	/* Component Object Model version number */	typedef [public] struct 	{		uint16 MajorVersion; /* Major version number */		uint16 MinorVersion; /* Minor version number */	} COMVERSION;	/* enumeration of additional information present in the call packet. */	typedef bitmap {		ORPCF_NULL = 			0x00, /* no additional info in packet */		ORPCF_LOCAL = 			0x01, /* call is local to this machine */		ORPCF_RESERVED1 = 		0x02, /* reserved for local use */		ORPCF_RESERVED2 = 		0x04, /* reserved for local use */		ORPCF_RESERVED3 = 		0x08, /* reserved for local use */		ORPCF_RESERVED4 = 	    0x10  /* reserved for local use */	} ORPC_FLAGS;	/* Extension to implicit parameters. */	typedef [public] struct 	{ 			GUID id; /* Extension identifier. */		uint32 size; /* Extension size. */		[size_is(((size+7)&~7))] uint8 data[]; /* Extension data. */	} 	ORPC_EXTENT;	/* Array of extensions. */	typedef struct 	{		uint32 size; /* Num extents. */		uint32 reserved; /* Must be zero. */		[size_is(((size+1)&~1))] ORPC_EXTENT **extent; /* extents */	} ORPC_EXTENT_ARRAY;	/* implicit 'this' pointer which is the first [in] parameter on */	/* every ORPC call. */	typedef [public] struct 	{		COMVERSION version; /* COM version number */		uint32 flags; /* ORPCF flags for presence of other data */		uint32 reserved1; /* set to zero */		GUID cid; /* causality id of caller */		/* Extensions. */		[unique] ORPC_EXTENT_ARRAY *extensions;	} 	ORPCTHIS;	/* implicit 'that' pointer which is the first [out] parameter on */	/* every ORPC call. */	typedef [public] struct 	{		uint32 flags; /* ORPCF flags for presence of other data */		/* Extensions. */		[unique] ORPC_EXTENT_ARRAY *extensions;	} 	ORPCTHAT;	/* DUALSTRINGARRAYS are the return type for arrays of network addresses, */	/* arrays of endpoints and arrays of both used in many ORPC interfaces */	typedef [public,flag(NDR_NOALIGN)] struct 	{		uint16 wTowerId; /* Cannot be zero. */		nstring NetworkAddr; 	} 	STRINGBINDING;	typedef [public,nopush,nopull,noprint] struct 	{		STRINGBINDING **stringbindings;	} STRINGARRAY;	typedef [public,nopush,nopull,noprint] struct 	{		STRINGBINDING **stringbindings;		SECURITYBINDING **securitybindings;	} DUALSTRINGARRAY;	const uint16 COM_C_AUTHZ_NONE = 0xffff;	typedef [public,flag(NDR_NOALIGN)] struct 	{		uint16 wAuthnSvc; /* Cannot be zero. */		uint16 wAuthzSvc;		nstring PrincName; 	} 	SECURITYBINDING;	/* signature value for OBJREF (object reference, actually the */	/* marshaled form of a COM interface). 	 * MEOW apparently stands for "Microsoft Extended Object Wireformat"	 */	const uint32 OBJREF_SIGNATURE = 0x574f454d; /* 'MEOW' */	/* flag values for OBJREF */	typedef enum {		OBJREF_NULL = 0x0, /* NULL pointer */		OBJREF_STANDARD = 0x1, /* standard marshaled objref */		OBJREF_HANDLER = 0x2, /* handler marshaled objref */		OBJREF_CUSTOM = 0x4 /* custom marshaled objref */	} OBJREF_FLAGS;	/* Flag values for a STDOBJREF (standard part of an OBJREF). */	/* SORF_OXRES1 - SORF_OXRES8 are reserved for the object exporters */	/* use only, object importers must ignore them and must not enforce MBZ. */	typedef bitmap {		SORF_NULL   = 0x0000, /* convenient for initializing SORF */		SORF_OXRES1 = 0x0001, /* reserved for exporter */		SORF_OXRES2 = 0x0020, /* reserved for exporter */		SORF_OXRES3 = 0x0040, /* reserved for exporter */		SORF_OXRES4 = 0x0080, /* reserved for exporter */		SORF_OXRES5 = 0x0100, /* reserved for exporter */		SORF_OXRES6 = 0x0200, /* reserved for exporter */		SORF_OXRES7 = 0x0400, /* reserved for exporter */		SORF_OXRES8 = 0x0800, /* reserved for exporter */		SORF_NOPING = 0x1000  /* Pinging is not required  */	} STDOBJREF_FLAGS;	/* standard object reference */	typedef [public] struct 	{		uint32 flags; /* STDOBJREF flags (see above) */		uint32 cPublicRefs; /* count of references passed */		hyper oxid; /* oxid of server with this oid */		hyper oid; /* oid of object with this ipid */		GUID ipid; /* ipid of interface pointer to this object */	} 	STDOBJREF;	typedef struct	{		STDOBJREF std; /* standard objref */		STRINGARRAY saResAddr; /* resolver address */	} u_standard;	typedef struct	{		STDOBJREF std; /* standard objref */		GUID clsid; /* Clsid of handler code */		STRINGARRAY saResAddr; /* resolver address */	} u_handler;	typedef struct	{		GUID clsid; /* Clsid of unmarshaling code */		uint32 cbExtension; /* size of extension data */		uint32 size; /* size of data that follows */		uint8 pData[size]; /* extension + class specific data */	} u_custom;	typedef struct	{	} u_null;	typedef [nodiscriminant] union 	{		[case(OBJREF_NULL)] u_null u_null;		[case(OBJREF_STANDARD)] u_standard u_standard;		[case(OBJREF_HANDLER)] u_handler u_handler;		[case(OBJREF_CUSTOM)] u_custom u_custom;	} OBJREF_Types;	/* OBJREF is the format of a marshaled interface pointer. */	typedef [public,flag(NDR_LITTLE_ENDIAN)] struct 	{		uint32 signature;		uint32 flags; /* OBJREF flags (see above) */		GUID iid; /* interface identifier */		[switch_is(flags), switch_type(uint32)] OBJREF_Types u_objref;	} OBJREF;	/* wire representation of a marshalled interface pointer */	typedef [public] struct 	{		uint32 size;		[subcontext(4)] OBJREF obj;	} MInterfacePointer;	typedef [v1_enum,public] enum 	{		COM_OK 				= 0x00000000,		COM_OUTOFMEMORY 	= 0x80000002,		COM_INVALIDARG		= 0x80000003,		COM_NOINTERFACE		= 0x80000004,		COM_ACCESSDENIED	= 0x80070005,		COM_INVALID_OXID	= 0x80070776,		COM_INVALID_OID		= 0x80070777,		COM_INVALID_SET		= 0x80070778,		COM_UNEXPECTED		= 0x8000FFFF,		COM_CLSNOTFOUND		= 0x80040154	} COMRESULT;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -