ole - header

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



please put it in dlls/ole32. I need this file for further merging the com 
stuff in.

-----
com definitions by ove

#ifndef __WINE_OLE_DCOM_H
#define __WINE_OLE_DCOM_H

#include "guiddef.h"
#include "rpcndr.h"

/* 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) */

typedef __uint64 ID;
typedef ID MID;
typedef ID OXID;
typedef ID OID;
typedef ID SETID;
typedef GUID IPID;
typedef GUID CID;

#define REFIPID const IPID* const

typedef struct tagCOMVERSION {
  unsigned short MajorVersion;
  unsigned short MinorVersion;
} COMVERSION;

/* described in http://www.microsoft.com/msj/0198/activex0198.htm */
typedef struct tagORPC_EXTENT {
  GUID id;
  unsigned long size;
  /* data follows */
} 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; */
  /* wire */ int has_extents;
} ORPCTHIS;

#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 tagORPCTHAT {
  unsigned long flags;
  /* ORPC_EXTENT_ARRAY* extensions; */
  /* wire */ int has_extents;
} ORPCTHAT;

typedef struct tagSTDOBJREF {
  unsigned long flags;
  unsigned long cPublicRefs;
  OXID oxid;
  OID oid;
  IPID ipid;
} STDOBJREF;

#define SORF_NULL   0x0000
#define SORF_OXRES1 0x0001
#define SORF_OXRES2 0x0020
#define SORF_OXRES3 0x0040
#define SORF_OXRES4 0x0080
#define SORF_OXRES5 0x0100
#define SORF_OXRES6 0x0200
#define SORF_OXRES7 0x0400
#define SORF_OXRES8 0x0800
#define SORF_NOPING 0x1000

typedef struct tagDUALSTRINGARRAY {
  unsigned short wNumEntries;
  unsigned short wSecurityOffset;
  /* null-terminated string arrays follow */
} DUALSTRINGARRAY;

typedef struct tagSTRINGBINDING {
  unsigned short wTowerId;
  unsigned short aNetworkAddr[1];
} STRINGBINDING;

#define NCADG_IP_UDP   0x08
#define NCACN_IP_TCP   0x07
#define NCADG_IPX      0x0E
#define NCACN_SPX      0x0C
#define NCACN_NB_NB    0x12
#define NCACN_NB_IPX   0x0D
#define NCACN_DNET_NSP 0x04
#define NCACN_HTTP     0x1F

typedef struct tagSECURITYBINDING {
  unsigned short wAuthnSvc;
  unsigned short wAuthzSvc;
  unsigned short aPrincName[1];
} SECURITYBINDING;

#define COM_C_AUTHZ_NONE 0xffff

struct OR_STANDARD {
  STDOBJREF std;
  DUALSTRINGARRAY saResAddr;
};

struct OR_HANDLER {
  STDOBJREF std;
  CLSID clsid;
  DUALSTRINGARRAY saResAddr;
};

struct OR_CUSTOM {
  CLSID clsid;
  unsigned long cbExtension;
  unsigned long size;
  /* data follows */
};

union OR_UNION {
  struct OR_STANDARD u_standard;
  struct OR_HANDLER u_handler;
  struct OR_CUSTOM u_custom;
};

typedef struct tagOBJREF {
  unsigned long signature;
  unsigned long flags;
  IID iid;
  /* union OR_UNION u_objref; */
} OBJREF;

#define OBJREF_SIGNATURE 0x574f454d /* "MEOW" */

#define OBJREF_STANDARD 1
#define OBJREF_HANDLER  2
#define OBJREF_CUSTOM   4

typedef struct tagMInterfacePointer {
  unsigned long size;
  /* data (OBJREF) follows */
} MInterfacePointer;

typedef struct tagREMQIRESULT {
  HRESULT hResult;
  STDOBJREF std;
} REMQIRESULT;

typedef struct tatREMINTERFACEREF {
  IPID ipid;
  unsigned long cPublicRefs;
  unsigned long cPrivateRefs;
} REMINTERFACEREF;

DEFINE_OLEGUID(IID_IRemUnknown,         0x000000131, 0, 0);
typedef struct IRemUnknown IRemUnknown,*LPREMUNKNOWN;

#define ICOM_INTERFACE IRemUnknown
#define IRemUnknown_METHODS \
    ICOM_METHOD5(HRESULT,RemQueryInterface, REFIPID,ripid, ULONG,cRefs, USHORT,cIids, IID*,iids, REMQIRESULT*,ppQIResults ) \
    ICOM_METHOD3(HRESULT,RemAddRef,         USHORT,cInterfaceRefs, REMINTERFACEREF*,InterfaceRefs, HRESULT*,pResults) \
    ICOM_METHOD2(HRESULT,RemRelease,        USHORT,cInterfaceRefs, REMINTERFACEREF*,InterfaceRefs)
#define IRemUnknown_IMETHODS \
    IUnknown_IMETHODS \
    IRemUnknown_METHODS
ICOM_DEFINE(IRemUnknown,IUnknown)
#undef ICOM_INTERFACE

/*** IUnknown methods ***/
#define IRemUnknown_QueryInterface(p,a,b)          ICOM_CALL2(QueryInterface,p,a,b)
#define IRemUnknown_AddRef(p)                      ICOM_CALL (AddRef,p)
#define IRemUnknown_Release(p)                     ICOM_CALL (Release,p)
/*** IRemUnknown methods ***/
#define IRemUnknown_RemQueryInterface(p,a,b,c,d,e) ICOM_CALL5(RemQueryInterface,p,a,b,c,d,e)
#define IRemUnknown_RemAddRef(p,a,b,c)             ICOM_CALL3(RemAddRef,p,a,b,c)
#define IRemUnknown_RemRelease(p,a,b)              ICOM_CALL2(RemRelease,p,a,b)

DEFINE_OLEGUID(IID_IRemUnknown2,        0x00000013C, 0, 0);
typedef struct IRemUnknown2 IRemUnknown2,*LPREMUNKNOWN2;

#define ICOM_INTERFACE IRemUnknown2
#define IRemUnknown2_METHODS \
    ICOM_METHOD5(HRESULT,RemQueryInterface2, REFIPID,ripid, USHORT,cIids, IID*,iids, HRESULT*,pResults, MInterfacePointer**,ppMIF )
#define IRemUnknown2_IMETHODS \
    IRemUnknown_IMETHODS \
    IRemUnknown2_METHODS
ICOM_DEFINE(IRemUnknown2,IRemUnknown)
#undef ICOM_INTERFACE

/*** IUnknown methods ***/
#define IRemUnknown2_QueryInterface(p,a,b)           ICOM_CALL2(QueryInterface,p,a,b)
#define IRemUnknown2_AddRef(p)                       ICOM_CALL (AddRef,p)
#define IRemUnknown2_Release(p)                      ICOM_CALL (Release,p)
/*** IRemUnknown methods ***/
#define IRemUnknown2_RemQueryInterface(p,a,b,c,d,e)  ICOM_CALL5(RemQueryInterface,p,a,b,c,d,e)
#define IRemUnknown2_RemAddRef(p,a,b,c)              ICOM_CALL3(RemAddRef,p,a,b,c)
#define IRemUnknown2_RemRelease(p,a,b)               ICOM_CALL2(RemRelease,p,a,b)
/*** IRemUnknown2 methods ***/
#define IRemUnknown2_RemQueryInterface2(p,a,b,c,d,e) ICOM_CALL5(RemQueryInterface2,p,a,b,c,d,e)

/* 1B = std unmarshal clsid */

/* 132 = IObjServer */
/* 133 = ? */
/* 134 = IRundown */
/* 135 = IInterfaceFromWindowProp */
/* 136 = ISCMLocalActivator */
/* 140 = IClassActivator */
/* 141 = IDLLHost */

#endif /* __WINE_OLE_DCOM_H */

[Index of Archives]     [Gimp for Windows]     [Red Hat]     [Samba]     [Yosemite Camping]     [Graphics Cards]     [Wine Home]

  Powered by Linux