{
} u_null;
- typedef union
+ typedef [nodiscriminant] union
{
[case(OBJREF_NULL)] u_null u_null;
[case(OBJREF_STANDARD)] u_standard u_standard;
// wire representation of a marshalled interface pointer
typedef [public] struct
{
- [subcontext(4)] OBJREF abData; // data (OBJREF)
+ uint32 size;
+ [size_is(size)] uint8 data[];
} MInterfacePointer;
}
object
] interface IClassActivator : IUnknown
{
- void RemoteGetClassObject([in] GUID classid,
+ void RemoteGetClassObject([in] GUID clsid,
[in] uint32 context,
[in] LCID locale,
[in] GUID iid/*FIXME,
]
interface ISystemActivator : IClassActivator
{
- void ISystemActivatorRemoteCreateInstance(
- [in] GUID classid,
- [in] OBJREF obj,
- [out] MInterfacePointer res
- );
+ void ISystemActivatorRemoteCreateInstance();
}
]
interface IRemoteActivation
{
- typedef [public] struct {
- MInterfacePointer *ppInterfaceData;
- } ppInterfaceDataArray;
-
- typedef [public] struct {
- DUALSTRINGARRAY *dualstringarray;
- } REF_DUALSTRINGARRAY;
-
typedef struct {
/* Looks very much like a protocol tower to me, but it appears
to be aligned differently then it is in epmapper -jelmer
const uint32 MODE_GET_CLASS_OBJECT = 0xffffffff;
HRESULT RemoteActivation (
+ [in] ORPCTHIS ORPCthis,
+ [out] ORPCTHAT ORPCthat,
[in] GUID Clsid,
[in, unique] unistr *pwszObjectName,
[in, unique] MInterfacePointer *pObjectStorage,
[in, unique,size_is(Interfaces)] GUID *pIIDs,
[in] uint16 num_protseqs,
[in, size_is(num_protseqs)] floor_tmp protseq[],
- [out] GUID pOxid,
+ [out] HYPER_T pOxid,
[out] DUALSTRINGARRAY *pdsaOxidBindings,
[out] IPID ipidRemUnknown,
[out] uint32 pAuthnHint,
[out] COMVERSION pServerVersion,
- [out] HRESULT *phr,
- [out,size_is(Interfaces)] ppInterfaceDataArray *ppInterfaceData,
- [out,size_is(Interfaces)] HRESULT *pResults
+ [out] HRESULT phr,
+ [out,size_is(Interfaces)] MInterfacePointer ifaces[],
+ [out,size_is(Interfaces)] HRESULT results[]
);
}