DCOM IDL file based on the DCOM specification.
This commit is contained in:
parent
c707e23675
commit
95f7c6c8d9
|
@ -0,0 +1,493 @@
|
|||
/*** Autogenerated by WIDL 0.1 from dcom.idl - Do not edit ***/
|
||||
#include "rpc.h"
|
||||
#include "rpcndr.h"
|
||||
|
||||
#ifndef __WIDL_DCOM_H
|
||||
#define __WIDL_DCOM_H
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
#include "unknwn.h"
|
||||
typedef MIDL_uhyper ID;
|
||||
|
||||
typedef ID MID;
|
||||
|
||||
typedef ID OXID;
|
||||
|
||||
typedef ID OID;
|
||||
|
||||
typedef ID SETID;
|
||||
|
||||
typedef GUID IPID;
|
||||
|
||||
typedef GUID CID;
|
||||
|
||||
typedef REFGUID REFIPID;
|
||||
|
||||
#define COM_MINOR_VERSION_1 (1)
|
||||
|
||||
#define COM_MINOR_VERSION_2 (2)
|
||||
|
||||
#define COM_MAJOR_VERSION (5)
|
||||
|
||||
#define COM_MINOR_VERSION (3)
|
||||
|
||||
typedef struct tagCOMVERSION {
|
||||
unsigned short MajorVersion;
|
||||
unsigned short MinorVersion;
|
||||
} COMVERSION;
|
||||
|
||||
#define ORPCF_NULL (0)
|
||||
|
||||
#define ORPCF_LOCAL (1)
|
||||
|
||||
#define ORPCF_RESERVED1 (2)
|
||||
|
||||
#define ORPCF_RESERVED2 (4)
|
||||
|
||||
#define ORPCF_RESERVED3 (8)
|
||||
|
||||
#define ORPCF_RESERVED4 (16)
|
||||
|
||||
typedef struct tagORPC_EXTENT {
|
||||
GUID id;
|
||||
unsigned long size;
|
||||
byte data[1];
|
||||
} ORPC_EXTENT;
|
||||
|
||||
typedef struct tagORPC_EXTENT_ARRAY {
|
||||
unsigned long size;
|
||||
unsigned long reserved;
|
||||
ORPC_EXTENT **extent;
|
||||
} ORPC_EXTENT_ARRAY;
|
||||
|
||||
typedef struct tagORPCTHIS {
|
||||
COMVERSION version;
|
||||
unsigned long flags;
|
||||
unsigned long reserved1;
|
||||
CID cid;
|
||||
ORPC_EXTENT_ARRAY *extensions;
|
||||
} ORPCTHIS;
|
||||
|
||||
typedef struct tagORPCTHAT {
|
||||
unsigned long flags;
|
||||
ORPC_EXTENT_ARRAY *extensions;
|
||||
} ORPCTHAT;
|
||||
|
||||
#define NCADG_IP_UDP (0x8)
|
||||
|
||||
#define NCACN_IP_TCP (0x7)
|
||||
|
||||
#define NCADG_IPX (0xe)
|
||||
|
||||
#define NCACN_SPX (0xc)
|
||||
|
||||
#define NCACN_NB_NB (0x12)
|
||||
|
||||
#define NCACN_NB_IPX (0xd)
|
||||
|
||||
#define NCACN_DNET_NSP (0x4)
|
||||
|
||||
#define NCACN_HTTP (0x1f)
|
||||
|
||||
typedef struct tagSTRINGBINDING {
|
||||
unsigned short wTowerId;
|
||||
unsigned short aNetworkAddr[1];
|
||||
} STRINGBINDING;
|
||||
|
||||
#define COM_C_AUTHZ_NONE (0xffff)
|
||||
|
||||
typedef struct tagSECURITYBINDING {
|
||||
unsigned short wAuthnSvc;
|
||||
unsigned short wAuthzSvc;
|
||||
unsigned short aPrincName[1];
|
||||
} SECURITYBINDING;
|
||||
|
||||
typedef struct tagDUALSTRINGARRAY {
|
||||
unsigned short wNumEntries;
|
||||
unsigned short wSecurityOffset;
|
||||
unsigned short aStringArray[1];
|
||||
} DUALSTRINGARRAY;
|
||||
|
||||
#define OBJREF_SIGNATURE (0x574f454d)
|
||||
|
||||
#define OBJREF_STANDARD (0x1)
|
||||
|
||||
#define OBJREF_HANDLER (0x2)
|
||||
|
||||
#define OBJREF_CUSTOM (0x4)
|
||||
|
||||
#define SORF_OXRES1 (0x1)
|
||||
|
||||
#define SORF_OXRES2 (0x20)
|
||||
|
||||
#define SORF_OXRES3 (0x40)
|
||||
|
||||
#define SORF_OXRES4 (0x80)
|
||||
|
||||
#define SORF_OXRES5 (0x100)
|
||||
|
||||
#define SORF_OXRES6 (0x200)
|
||||
|
||||
#define SORF_OXRES7 (0x400)
|
||||
|
||||
#define SORF_OXRES8 (0x800)
|
||||
|
||||
#define SORF_NULL (0x0)
|
||||
|
||||
#define SORF_NOPING (0x1000)
|
||||
|
||||
typedef struct tagSTDOBJREF {
|
||||
unsigned long flags;
|
||||
unsigned long cPublicRefs;
|
||||
OXID oxid;
|
||||
OID oid;
|
||||
IPID ipid;
|
||||
} STDOBJREF;
|
||||
|
||||
typedef struct tagOBJREF {
|
||||
unsigned long signature;
|
||||
unsigned long flags;
|
||||
GUID iid;
|
||||
union {
|
||||
struct OR_STANDARD {
|
||||
STDOBJREF std;
|
||||
DUALSTRINGARRAY saResAddr;
|
||||
} u_standard;
|
||||
struct OR_HANDLER {
|
||||
STDOBJREF std;
|
||||
CLSID clsid;
|
||||
DUALSTRINGARRAY saResAddr;
|
||||
} u_handler;
|
||||
struct OR_CUSTOM {
|
||||
CLSID clsid;
|
||||
unsigned long cbExtension;
|
||||
unsigned long size;
|
||||
byte *pData;
|
||||
} u_custom;
|
||||
} u_objref;
|
||||
} OBJREF;
|
||||
|
||||
typedef struct tagMInterfacePointer {
|
||||
ULONG ulCntData;
|
||||
BYTE abData[1];
|
||||
} MInterfacePointer;
|
||||
|
||||
typedef MInterfacePointer *PMInterfacePointer;
|
||||
|
||||
typedef struct IRemUnknown IRemUnknown;
|
||||
typedef IRemUnknown *LPREMUNKNOWN;
|
||||
|
||||
typedef struct tagREMQIRESULT {
|
||||
HRESULT hResult;
|
||||
STDOBJREF std;
|
||||
} REMQIRESULT;
|
||||
|
||||
typedef struct tagREMINTERFACEREF {
|
||||
IPID ipid;
|
||||
unsigned long cPublicRefs;
|
||||
unsigned long cPrivateRefs;
|
||||
} REMINTERFACEREF;
|
||||
|
||||
/*****************************************************************************
|
||||
* IRemUnknown interface
|
||||
*/
|
||||
DEFINE_GUID(IID_IRemUnknown, 0x00000131, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
|
||||
#if defined(__cplusplus) && !defined(CINTERFACE)
|
||||
struct IRemUnknown : public IUnknown
|
||||
{
|
||||
virtual HRESULT STDMETHODCALLTYPE RemQueryInterface(
|
||||
REFIPID ripid,
|
||||
unsigned long cRefs,
|
||||
unsigned short cIids,
|
||||
IID* iids,
|
||||
REMQIRESULT** ppQIResults) = 0;
|
||||
|
||||
virtual HRESULT STDMETHODCALLTYPE RemAddRef(
|
||||
unsigned short cInterfaceRefs,
|
||||
REMINTERFACEREF* InterfaceRefs,
|
||||
HRESULT* pResults) = 0;
|
||||
|
||||
virtual HRESULT STDMETHODCALLTYPE RemRelease(
|
||||
unsigned short cInterfaceRefs,
|
||||
REMINTERFACEREF* InterfaceRefs) = 0;
|
||||
|
||||
};
|
||||
#else
|
||||
typedef struct IRemUnknownVtbl IRemUnknownVtbl;
|
||||
struct IRemUnknown {
|
||||
const IRemUnknownVtbl* lpVtbl;
|
||||
};
|
||||
struct IRemUnknownVtbl {
|
||||
ICOM_MSVTABLE_COMPAT_FIELDS
|
||||
|
||||
/*** IUnknown methods ***/
|
||||
HRESULT (STDMETHODCALLTYPE *QueryInterface)(
|
||||
IRemUnknown* This,
|
||||
REFIID riid,
|
||||
void** ppvObject);
|
||||
|
||||
ULONG (STDMETHODCALLTYPE *AddRef)(
|
||||
IRemUnknown* This);
|
||||
|
||||
ULONG (STDMETHODCALLTYPE *Release)(
|
||||
IRemUnknown* This);
|
||||
|
||||
/*** IRemUnknown methods ***/
|
||||
HRESULT (STDMETHODCALLTYPE *RemQueryInterface)(
|
||||
IRemUnknown* This,
|
||||
REFIPID ripid,
|
||||
unsigned long cRefs,
|
||||
unsigned short cIids,
|
||||
IID* iids,
|
||||
REMQIRESULT** ppQIResults);
|
||||
|
||||
HRESULT (STDMETHODCALLTYPE *RemAddRef)(
|
||||
IRemUnknown* This,
|
||||
unsigned short cInterfaceRefs,
|
||||
REMINTERFACEREF* InterfaceRefs,
|
||||
HRESULT* pResults);
|
||||
|
||||
HRESULT (STDMETHODCALLTYPE *RemRelease)(
|
||||
IRemUnknown* This,
|
||||
unsigned short cInterfaceRefs,
|
||||
REMINTERFACEREF* InterfaceRefs);
|
||||
|
||||
};
|
||||
|
||||
/*** IUnknown methods ***/
|
||||
#define IRemUnknown_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
|
||||
#define IRemUnknown_AddRef(p) (p)->lpVtbl->AddRef(p)
|
||||
#define IRemUnknown_Release(p) (p)->lpVtbl->Release(p)
|
||||
/*** IRemUnknown methods ***/
|
||||
#define IRemUnknown_RemQueryInterface(p,a,b,c,d,e) (p)->lpVtbl->RemQueryInterface(p,a,b,c,d,e)
|
||||
#define IRemUnknown_RemAddRef(p,a,b,c) (p)->lpVtbl->RemAddRef(p,a,b,c)
|
||||
#define IRemUnknown_RemRelease(p,a,b) (p)->lpVtbl->RemRelease(p,a,b)
|
||||
|
||||
#endif
|
||||
|
||||
#define IRemUnknown_METHODS \
|
||||
ICOM_MSVTABLE_COMPAT_FIELDS \
|
||||
/*** IUnknown methods ***/ \
|
||||
STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
|
||||
STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
|
||||
STDMETHOD_(ULONG,Release)(THIS) PURE; \
|
||||
/*** IRemUnknown methods ***/ \
|
||||
STDMETHOD_(HRESULT,RemQueryInterface)(THIS_ REFIPID ripid, unsigned long cRefs, unsigned short cIids, IID* iids, REMQIRESULT** ppQIResults) PURE; \
|
||||
STDMETHOD_(HRESULT,RemAddRef)(THIS_ unsigned short cInterfaceRefs, REMINTERFACEREF* InterfaceRefs, HRESULT* pResults) PURE; \
|
||||
STDMETHOD_(HRESULT,RemRelease)(THIS_ unsigned short cInterfaceRefs, REMINTERFACEREF* InterfaceRefs) PURE;
|
||||
|
||||
HRESULT CALLBACK IRemUnknown_RemQueryInterface_Proxy(
|
||||
IRemUnknown* This,
|
||||
REFIPID ripid,
|
||||
unsigned long cRefs,
|
||||
unsigned short cIids,
|
||||
IID* iids,
|
||||
REMQIRESULT** ppQIResults);
|
||||
void __RPC_STUB IRemUnknown_RemQueryInterface_Stub(
|
||||
struct IRpcStubBuffer* This,
|
||||
struct IRpcChannelBuffer* pRpcChannelBuffer,
|
||||
PRPC_MESSAGE pRpcMessage,
|
||||
DWORD* pdwStubPhase);
|
||||
HRESULT CALLBACK IRemUnknown_RemAddRef_Proxy(
|
||||
IRemUnknown* This,
|
||||
unsigned short cInterfaceRefs,
|
||||
REMINTERFACEREF* InterfaceRefs,
|
||||
HRESULT* pResults);
|
||||
void __RPC_STUB IRemUnknown_RemAddRef_Stub(
|
||||
struct IRpcStubBuffer* This,
|
||||
struct IRpcChannelBuffer* pRpcChannelBuffer,
|
||||
PRPC_MESSAGE pRpcMessage,
|
||||
DWORD* pdwStubPhase);
|
||||
HRESULT CALLBACK IRemUnknown_RemRelease_Proxy(
|
||||
IRemUnknown* This,
|
||||
unsigned short cInterfaceRefs,
|
||||
REMINTERFACEREF* InterfaceRefs);
|
||||
void __RPC_STUB IRemUnknown_RemRelease_Stub(
|
||||
struct IRpcStubBuffer* This,
|
||||
struct IRpcChannelBuffer* pRpcChannelBuffer,
|
||||
PRPC_MESSAGE pRpcMessage,
|
||||
DWORD* pdwStubPhase);
|
||||
|
||||
typedef struct IRemUnknown2 IRemUnknown2;
|
||||
typedef IRemUnknown2 *LPREMUNKNOWN2;
|
||||
|
||||
/*****************************************************************************
|
||||
* IRemUnknown2 interface
|
||||
*/
|
||||
DEFINE_GUID(IID_IRemUnknown2, 0x00000142, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
|
||||
#if defined(__cplusplus) && !defined(CINTERFACE)
|
||||
struct IRemUnknown2 : public IRemUnknown
|
||||
{
|
||||
virtual HRESULT STDMETHODCALLTYPE RemQueryInterface2(
|
||||
REFIPID ripid,
|
||||
unsigned short cIids,
|
||||
IID* iids,
|
||||
HRESULT* phr,
|
||||
MInterfacePointer** ppMIF) = 0;
|
||||
|
||||
};
|
||||
#else
|
||||
typedef struct IRemUnknown2Vtbl IRemUnknown2Vtbl;
|
||||
struct IRemUnknown2 {
|
||||
const IRemUnknown2Vtbl* lpVtbl;
|
||||
};
|
||||
struct IRemUnknown2Vtbl {
|
||||
ICOM_MSVTABLE_COMPAT_FIELDS
|
||||
|
||||
/*** IUnknown methods ***/
|
||||
HRESULT (STDMETHODCALLTYPE *QueryInterface)(
|
||||
IRemUnknown2* This,
|
||||
REFIID riid,
|
||||
void** ppvObject);
|
||||
|
||||
ULONG (STDMETHODCALLTYPE *AddRef)(
|
||||
IRemUnknown2* This);
|
||||
|
||||
ULONG (STDMETHODCALLTYPE *Release)(
|
||||
IRemUnknown2* This);
|
||||
|
||||
/*** IRemUnknown methods ***/
|
||||
HRESULT (STDMETHODCALLTYPE *RemQueryInterface)(
|
||||
IRemUnknown2* This,
|
||||
REFIPID ripid,
|
||||
unsigned long cRefs,
|
||||
unsigned short cIids,
|
||||
IID* iids,
|
||||
REMQIRESULT** ppQIResults);
|
||||
|
||||
HRESULT (STDMETHODCALLTYPE *RemAddRef)(
|
||||
IRemUnknown2* This,
|
||||
unsigned short cInterfaceRefs,
|
||||
REMINTERFACEREF* InterfaceRefs,
|
||||
HRESULT* pResults);
|
||||
|
||||
HRESULT (STDMETHODCALLTYPE *RemRelease)(
|
||||
IRemUnknown2* This,
|
||||
unsigned short cInterfaceRefs,
|
||||
REMINTERFACEREF* InterfaceRefs);
|
||||
|
||||
/*** IRemUnknown2 methods ***/
|
||||
HRESULT (STDMETHODCALLTYPE *RemQueryInterface2)(
|
||||
IRemUnknown2* This,
|
||||
REFIPID ripid,
|
||||
unsigned short cIids,
|
||||
IID* iids,
|
||||
HRESULT* phr,
|
||||
MInterfacePointer** ppMIF);
|
||||
|
||||
};
|
||||
|
||||
/*** IUnknown methods ***/
|
||||
#define IRemUnknown2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
|
||||
#define IRemUnknown2_AddRef(p) (p)->lpVtbl->AddRef(p)
|
||||
#define IRemUnknown2_Release(p) (p)->lpVtbl->Release(p)
|
||||
/*** IRemUnknown methods ***/
|
||||
#define IRemUnknown2_RemQueryInterface(p,a,b,c,d,e) (p)->lpVtbl->RemQueryInterface(p,a,b,c,d,e)
|
||||
#define IRemUnknown2_RemAddRef(p,a,b,c) (p)->lpVtbl->RemAddRef(p,a,b,c)
|
||||
#define IRemUnknown2_RemRelease(p,a,b) (p)->lpVtbl->RemRelease(p,a,b)
|
||||
/*** IRemUnknown2 methods ***/
|
||||
#define IRemUnknown2_RemQueryInterface2(p,a,b,c,d,e) (p)->lpVtbl->RemQueryInterface2(p,a,b,c,d,e)
|
||||
|
||||
#endif
|
||||
|
||||
#define IRemUnknown2_METHODS \
|
||||
ICOM_MSVTABLE_COMPAT_FIELDS \
|
||||
/*** IUnknown methods ***/ \
|
||||
STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
|
||||
STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
|
||||
STDMETHOD_(ULONG,Release)(THIS) PURE; \
|
||||
/*** IRemUnknown methods ***/ \
|
||||
STDMETHOD_(HRESULT,RemQueryInterface)(THIS_ REFIPID ripid, unsigned long cRefs, unsigned short cIids, IID* iids, REMQIRESULT** ppQIResults) PURE; \
|
||||
STDMETHOD_(HRESULT,RemAddRef)(THIS_ unsigned short cInterfaceRefs, REMINTERFACEREF* InterfaceRefs, HRESULT* pResults) PURE; \
|
||||
STDMETHOD_(HRESULT,RemRelease)(THIS_ unsigned short cInterfaceRefs, REMINTERFACEREF* InterfaceRefs) PURE; \
|
||||
/*** IRemUnknown2 methods ***/ \
|
||||
STDMETHOD_(HRESULT,RemQueryInterface2)(THIS_ REFIPID ripid, unsigned short cIids, IID* iids, HRESULT* phr, MInterfacePointer** ppMIF) PURE;
|
||||
|
||||
HRESULT CALLBACK IRemUnknown2_RemQueryInterface2_Proxy(
|
||||
IRemUnknown2* This,
|
||||
REFIPID ripid,
|
||||
unsigned short cIids,
|
||||
IID* iids,
|
||||
HRESULT* phr,
|
||||
MInterfacePointer** ppMIF);
|
||||
void __RPC_STUB IRemUnknown2_RemQueryInterface2_Stub(
|
||||
struct IRpcStubBuffer* This,
|
||||
struct IRpcChannelBuffer* pRpcChannelBuffer,
|
||||
PRPC_MESSAGE pRpcMessage,
|
||||
DWORD* pdwStubPhase);
|
||||
|
||||
#if 0
|
||||
/*****************************************************************************
|
||||
* IOXIDResolver interface (v0.0)
|
||||
*/
|
||||
DEFINE_GUID(IID_IOXIDResolver, 0x99fcfec4, 0x5260, 0x101b, 0xbb,0xcb, 0x00,0xaa,0x00,0x21,0x34,0x7a);
|
||||
extern RPC_IF_HANDLE IOXIDResolver_v0_0_c_ifspec;
|
||||
extern RPC_IF_HANDLE IOXIDResolver_v0_0_s_ifspec;
|
||||
error_status_t ResolveOxid(
|
||||
handle_t hRpc,
|
||||
OXID* pOxid,
|
||||
unsigned short cRequestedProtseqs,
|
||||
unsigned short arRequestedProtseqs[],
|
||||
DUALSTRINGARRAY** ppdsaOxidBindings,
|
||||
IPID* pipidRemUnknown,
|
||||
DWORD* pAuthnHint);
|
||||
error_status_t SimplePing(
|
||||
handle_t hRpc,
|
||||
SETID* pSetId);
|
||||
error_status_t ComplexPing(
|
||||
handle_t hRpc,
|
||||
SETID* pSetId,
|
||||
unsigned short SequenceNum,
|
||||
unsigned short cAddToSet,
|
||||
unsigned short cDelFromSet,
|
||||
OID AddToSet[],
|
||||
OID DelFromSet[],
|
||||
unsigned short* pPingBackoffFactor);
|
||||
error_status_t ServerAlive(
|
||||
handle_t hRpc);
|
||||
error_status_t ResolveOxid2(
|
||||
handle_t hRpc,
|
||||
OXID* pOxid,
|
||||
unsigned short cRequestedProtseqs,
|
||||
unsigned short arRequestedProtseqs[],
|
||||
DUALSTRINGARRAY** ppdsaOxidBindings,
|
||||
IPID* pipidRemUnknown,
|
||||
DWORD* pAuthnHint,
|
||||
COMVERSION* pComVersion);
|
||||
|
||||
#define MODE_GET_CLASS_OBJECT (0x7fffffff)
|
||||
|
||||
/*****************************************************************************
|
||||
* IRemoteActivation interface (v0.0)
|
||||
*/
|
||||
DEFINE_GUID(IID_IRemoteActivation, 0x4d9f4ab8, 0x7d1c, 0x11cf, 0x86,0x1e, 0x00,0x20,0xaf,0x6e,0x7c,0x57);
|
||||
extern RPC_IF_HANDLE IRemoteActivation_v0_0_c_ifspec;
|
||||
extern RPC_IF_HANDLE IRemoteActivation_v0_0_s_ifspec;
|
||||
HRESULT RemoteActivation(
|
||||
handle_t hRpc,
|
||||
ORPCTHIS* ORPCthis,
|
||||
ORPCTHAT* ORPCthat,
|
||||
GUID* Clsid,
|
||||
WCHAR* pwszObjectName,
|
||||
MInterfacePointer* pObjectStorage,
|
||||
DWORD ClientImpLevel,
|
||||
DWORD Mode,
|
||||
DWORD Interfaces,
|
||||
IID* pIIDs,
|
||||
unsigned short cRequestedProtseqs,
|
||||
unsigned short RequestedProtseqs[],
|
||||
OXID* pOxid,
|
||||
DUALSTRINGARRAY** ppdsaOxidBindings,
|
||||
IPID* pipidRemUnknown,
|
||||
DWORD* pAuthnHint,
|
||||
COMVERSION* pServerVersion,
|
||||
HRESULT* phr,
|
||||
MInterfacePointer** ppInterfaceData,
|
||||
HRESULT* pResults);
|
||||
|
||||
#endif
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
#endif /* __WIDL_DCOM_H */
|
|
@ -0,0 +1,292 @@
|
|||
/*
|
||||
* Copyright 2003 Ove Kåven, TransGaming Technologies
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
/* see http://www.microsoft.com/msj/0398/dcom.htm */
|
||||
/* and the official DCOM specification
|
||||
* (there's a copy at http://www.grimes.demon.co.uk/DCOM/DCOMSpec.htm) */
|
||||
|
||||
import "unknwn.idl";
|
||||
|
||||
[
|
||||
uuid(99fcfe60-5260-101b-bbcb-00aa0021347a),
|
||||
pointer_default(unique)
|
||||
]
|
||||
interface ObjectRpcBaseTypes
|
||||
{
|
||||
typedef unsigned hyper ID;
|
||||
typedef ID MID;
|
||||
typedef ID OXID;
|
||||
typedef ID OID;
|
||||
typedef ID SETID;
|
||||
typedef GUID IPID;
|
||||
typedef GUID CID;
|
||||
typedef REFGUID REFIPID;
|
||||
|
||||
const unsigned short COM_MINOR_VERSION_1 = 1;
|
||||
const unsigned short COM_MINOR_VERSION_2 = 2;
|
||||
|
||||
const unsigned short COM_MAJOR_VERSION = 5;
|
||||
const unsigned short COM_MINOR_VERSION = 3;
|
||||
|
||||
typedef struct tagCOMVERSION {
|
||||
unsigned short MajorVersion;
|
||||
unsigned short MinorVersion;
|
||||
} COMVERSION;
|
||||
|
||||
const unsigned long ORPCF_NULL = 0;
|
||||
const unsigned long ORPCF_LOCAL = 1;
|
||||
const unsigned long ORPCF_RESERVED1 = 2;
|
||||
const unsigned long ORPCF_RESERVED2 = 4;
|
||||
const unsigned long ORPCF_RESERVED3 = 8;
|
||||
const unsigned long ORPCF_RESERVED4 = 16;
|
||||
|
||||
typedef struct tagORPC_EXTENT {
|
||||
GUID id;
|
||||
unsigned long size;
|
||||
[size_is((size+7)&~7)] byte data[];
|
||||
} ORPC_EXTENT;
|
||||
|
||||
typedef struct tagORPC_EXTENT_ARRAY {
|
||||
unsigned long size;
|
||||
unsigned long reserved;
|
||||
[size_is((size+1)&~1,), unique] ORPC_EXTENT **extent;
|
||||
} ORPC_EXTENT_ARRAY;
|
||||
|
||||
typedef struct tagORPCTHIS {
|
||||
COMVERSION version;
|
||||
unsigned long flags;
|
||||
unsigned long reserved1;
|
||||
CID cid;
|
||||
[unique] ORPC_EXTENT_ARRAY *extensions;
|
||||
} ORPCTHIS;
|
||||
|
||||
typedef struct tagORPCTHAT {
|
||||
unsigned long flags;
|
||||
[unique] ORPC_EXTENT_ARRAY *extensions;
|
||||
} ORPCTHAT;
|
||||
|
||||
const unsigned short NCADG_IP_UDP = 0x08;
|
||||
const unsigned short NCACN_IP_TCP = 0x07;
|
||||
const unsigned short NCADG_IPX = 0x0E;
|
||||
const unsigned short NCACN_SPX = 0x0C;
|
||||
const unsigned short NCACN_NB_NB = 0x12;
|
||||
const unsigned short NCACN_NB_IPX = 0x0D;
|
||||
const unsigned short NCACN_DNET_NSP = 0x04;
|
||||
const unsigned short NCACN_HTTP = 0x1F;
|
||||
|
||||
typedef struct tagSTRINGBINDING {
|
||||
unsigned short wTowerId;
|
||||
[string] unsigned short aNetworkAddr[];
|
||||
} STRINGBINDING;
|
||||
|
||||
const unsigned short COM_C_AUTHZ_NONE = 0xffff;
|
||||
|
||||
typedef struct tagSECURITYBINDING {
|
||||
unsigned short wAuthnSvc;
|
||||
unsigned short wAuthzSvc;
|
||||
[string] unsigned short aPrincName[];
|
||||
} SECURITYBINDING;
|
||||
|
||||
typedef struct tagDUALSTRINGARRAY {
|
||||
unsigned short wNumEntries;
|
||||
unsigned short wSecurityOffset;
|
||||
[size_is(wNumEntries)] unsigned short aStringArray[];
|
||||
} DUALSTRINGARRAY;
|
||||
|
||||
const unsigned long OBJREF_SIGNATURE = 0x574f454d; /* "MEOW" */
|
||||
const unsigned long OBJREF_STANDARD = 0x1;
|
||||
const unsigned long OBJREF_HANDLER = 0x2;
|
||||
const unsigned long OBJREF_CUSTOM = 0x4;
|
||||
const unsigned long SORF_OXRES1 = 0x1;
|
||||
const unsigned long SORF_OXRES2 = 0x20;
|
||||
const unsigned long SORF_OXRES3 = 0x40;
|
||||
const unsigned long SORF_OXRES4 = 0x80;
|
||||
const unsigned long SORF_OXRES5 = 0x100;
|
||||
const unsigned long SORF_OXRES6 = 0x200;
|
||||
const unsigned long SORF_OXRES7 = 0x400;
|
||||
const unsigned long SORF_OXRES8 = 0x800;
|
||||
const unsigned long SORF_NULL = 0x0;
|
||||
const unsigned long SORF_NOPING = 0x1000;
|
||||
|
||||
typedef struct tagSTDOBJREF {
|
||||
unsigned long flags;
|
||||
unsigned long cPublicRefs;
|
||||
OXID oxid;
|
||||
OID oid;
|
||||
IPID ipid;
|
||||
} STDOBJREF;
|
||||
|
||||
typedef struct tagOBJREF {
|
||||
unsigned long signature;
|
||||
unsigned long flags;
|
||||
GUID iid;
|
||||
[switch_is(flags)] union {
|
||||
[case(OBJREF_STANDARD)] struct OR_STANDARD {
|
||||
STDOBJREF std;
|
||||
DUALSTRINGARRAY saResAddr;
|
||||
} u_standard;
|
||||
[case(OBJREF_HANDLER)] struct OR_HANDLER {
|
||||
STDOBJREF std;
|
||||
CLSID clsid;
|
||||
DUALSTRINGARRAY saResAddr;
|
||||
} u_handler;
|
||||
[case(OBJREF_CUSTOM)] struct OR_CUSTOM {
|
||||
CLSID clsid;
|
||||
unsigned long cbExtension;
|
||||
unsigned long size;
|
||||
[size_is(size), ref] byte *pData;
|
||||
} u_custom;
|
||||
} u_objref;
|
||||
} OBJREF;
|
||||
|
||||
typedef struct tagMInterfacePointer {
|
||||
ULONG ulCntData;
|
||||
[size_is(ulCntData)] BYTE abData[];
|
||||
} MInterfacePointer;
|
||||
|
||||
typedef [unique] MInterfacePointer *PMInterfacePointer;
|
||||
|
||||
} /* interface ObjectRpcBaseTypes */
|
||||
|
||||
[
|
||||
object,
|
||||
uuid(00000131-0000-0000-C000-000000000046)
|
||||
]
|
||||
interface IRemUnknown : IUnknown
|
||||
{
|
||||
typedef [unique] IRemUnknown *LPREMUNKNOWN;
|
||||
|
||||
typedef struct tagREMQIRESULT {
|
||||
HRESULT hResult;
|
||||
STDOBJREF std;
|
||||
} REMQIRESULT;
|
||||
|
||||
typedef struct tagREMINTERFACEREF {
|
||||
IPID ipid;
|
||||
unsigned long cPublicRefs;
|
||||
unsigned long cPrivateRefs;
|
||||
} REMINTERFACEREF;
|
||||
|
||||
HRESULT RemQueryInterface(
|
||||
[in] REFIPID ripid,
|
||||
[in] unsigned long cRefs,
|
||||
[in] unsigned short cIids,
|
||||
[in, size_is(cIids)] IID *iids,
|
||||
[out, size_is(,cIids)] REMQIRESULT **ppQIResults);
|
||||
|
||||
HRESULT RemAddRef(
|
||||
[in] unsigned short cInterfaceRefs,
|
||||
[in, size_is(cInterfaceRefs)] REMINTERFACEREF* InterfaceRefs,
|
||||
[out, size_is(cInterfaceRefs)] HRESULT *pResults);
|
||||
|
||||
HRESULT RemRelease(
|
||||
[in] unsigned short cInterfaceRefs,
|
||||
[in, size_is(cInterfaceRefs)] REMINTERFACEREF* InterfaceRefs);
|
||||
}
|
||||
|
||||
[
|
||||
object,
|
||||
uuid(00000142-0000-0000-C000-000000000046)
|
||||
]
|
||||
interface IRemUnknown2 : IRemUnknown
|
||||
{
|
||||
typedef [unique] IRemUnknown2 *LPREMUNKNOWN2;
|
||||
|
||||
HRESULT RemQueryInterface2(
|
||||
[in] REFIPID ripid,
|
||||
[in] unsigned short cIids,
|
||||
[in, size_is(cIids)] IID *iids,
|
||||
[out, size_is(cIids)] HRESULT *phr,
|
||||
[out, size_is(cIids)] MInterfacePointer **ppMIF);
|
||||
}
|
||||
|
||||
cpp_quote("#if 0")
|
||||
[
|
||||
uuid(99fcfec4-5260-101b-bbcb-00aa0021347a),
|
||||
pointer_default(unique)
|
||||
]
|
||||
interface IOXIDResolver
|
||||
{
|
||||
[idempotent] error_status_t ResolveOxid(
|
||||
[in] handle_t hRpc,
|
||||
[in] OXID *pOxid,
|
||||
[in] unsigned short cRequestedProtseqs,
|
||||
[in, ref, size_is(cRequestedProtseqs)] unsigned short arRequestedProtseqs[],
|
||||
[out, ref] DUALSTRINGARRAY **ppdsaOxidBindings,
|
||||
[out, ref] IPID *pipidRemUnknown,
|
||||
[out, ref] DWORD *pAuthnHint);
|
||||
|
||||
[idempotent] error_status_t SimplePing(
|
||||
[in] handle_t hRpc,
|
||||
[in] SETID *pSetId);
|
||||
|
||||
[idempotent] error_status_t ComplexPing(
|
||||
[in] handle_t hRpc,
|
||||
[in, out] SETID *pSetId,
|
||||
[in] unsigned short SequenceNum,
|
||||
[in] unsigned short cAddToSet,
|
||||
[in] unsigned short cDelFromSet,
|
||||
[in, unique, size_is(cAddToSet)] OID AddToSet[],
|
||||
[in, unique, size_is(cDelFromSet)] OID DelFromSet[],
|
||||
[out] unsigned short *pPingBackoffFactor);
|
||||
|
||||
[idempotent] error_status_t ServerAlive(
|
||||
[in] handle_t hRpc);
|
||||
|
||||
[idempotent] error_status_t ResolveOxid2(
|
||||
[in] handle_t hRpc,
|
||||
[in] OXID *pOxid,
|
||||
[in] unsigned short cRequestedProtseqs,
|
||||
[in, ref, size_is(cRequestedProtseqs)] unsigned short arRequestedProtseqs[],
|
||||
[out, ref] DUALSTRINGARRAY **ppdsaOxidBindings,
|
||||
[out, ref] IPID *pipidRemUnknown,
|
||||
[out, ref] DWORD *pAuthnHint,
|
||||
[out, ref] COMVERSION *pComVersion);
|
||||
}
|
||||
|
||||
[
|
||||
uuid(4d9f4ab8-7d1c-11cf-861e-0020af6e7c57),
|
||||
pointer_default(unique)
|
||||
]
|
||||
interface IRemoteActivation
|
||||
{
|
||||
const unsigned long MODE_GET_CLASS_OBJECT = 0xffffffff;
|
||||
|
||||
HRESULT RemoteActivation(
|
||||
[in] handle_t hRpc,
|
||||
[in] ORPCTHIS *ORPCthis,
|
||||
[out] ORPCTHAT *ORPCthat,
|
||||
[in] GUID *Clsid,
|
||||
[in, string, unique] WCHAR *pwszObjectName,
|
||||
[in, unique] MInterfacePointer *pObjectStorage,
|
||||
[in] DWORD ClientImpLevel,
|
||||
[in] DWORD Mode,
|
||||
[in] DWORD Interfaces,
|
||||
[in, unique, size_is(Interfaces)] IID *pIIDs,
|
||||
[in] unsigned short cRequestedProtseqs,
|
||||
[in, size_is(cRequestedProtseqs)] unsigned short RequestedProtseqs[],
|
||||
[out] OXID *pOxid,
|
||||
[out] DUALSTRINGARRAY **ppdsaOxidBindings,
|
||||
[out] IPID *pipidRemUnknown,
|
||||
[out] DWORD *pAuthnHint,
|
||||
[out] COMVERSION *pServerVersion,
|
||||
[out] HRESULT *phr,
|
||||
[out,size_is(Interfaces)] MInterfacePointer **ppInterfaceData,
|
||||
[out,size_is(Interfaces)] HRESULT *pResults);
|
||||
}
|
||||
cpp_quote("#endif")
|
Loading…
Reference in New Issue