Added some RPC definitions.
This commit is contained in:
parent
b60c4ce0f0
commit
0dac972db1
|
@ -101,6 +101,7 @@ INSTALLED_INCLUDES = \
|
|||
rpcdcep.h \
|
||||
rpcndr.h \
|
||||
rpcnterr.h \
|
||||
rpcproxy.h \
|
||||
servprov.h \
|
||||
setupapi.h \
|
||||
shellapi.h \
|
||||
|
|
|
@ -15,6 +15,27 @@ typedef RPC_BINDING_HANDLE handle_t;
|
|||
#define rpc_binding_handle_t RPC_BINDING_HANDLE
|
||||
#define RPC_MGR_EPV void
|
||||
|
||||
typedef struct _RPC_BINDING_VECTOR
|
||||
{
|
||||
unsigned long Count;
|
||||
RPC_BINDING_HANDLE BindingH[1];
|
||||
} RPC_BINDING_VECTOR;
|
||||
#define rpc_binding_vector_t RPC_BINDING_VECTOR
|
||||
|
||||
typedef struct _UUID_VECTOR
|
||||
{
|
||||
unsigned long Count;
|
||||
UUID *Uuid[1];
|
||||
} UUID_VECTOR;
|
||||
#define uuid_vector_t UUID_VECTOR
|
||||
|
||||
typedef struct _RPC_IF_ID
|
||||
{
|
||||
UUID Uuid;
|
||||
unsigned short VersMajor;
|
||||
unsigned short VersMinor;
|
||||
} RPC_IF_ID;
|
||||
|
||||
#define RPC_C_BINDING_INFINITE_TIMEOUT 10
|
||||
#define RPC_C_BINDING_MIN_TIMEOUT 0
|
||||
#define RPC_C_BINDING_DEFAULT_TIMEOUT 5
|
||||
|
@ -42,7 +63,7 @@ typedef RPC_BINDING_HANDLE handle_t;
|
|||
|
||||
|
||||
typedef RPC_STATUS RPC_ENTRY RPC_IF_CALLBACK_FN( RPC_IF_HANDLE InterfaceUuid, LPVOID Context );
|
||||
typedef void (__RPC_USER * RPC_AUTH_KEY_RETRIEVAL_FN)( LPVOID Arg, LPWSTR ServerPrincName,
|
||||
typedef void __RPC_USER (* RPC_AUTH_KEY_RETRIEVAL_FN)( LPVOID Arg, LPWSTR ServerPrincName,
|
||||
ULONG KeyVer, LPVOID* Key, RPC_STATUS* status );
|
||||
|
||||
typedef struct _RPC_POLICY
|
||||
|
@ -53,6 +74,33 @@ typedef struct _RPC_POLICY
|
|||
} RPC_POLICY, *PRPC_POLICY;
|
||||
|
||||
|
||||
RPCRTAPI RPC_STATUS RPC_ENTRY
|
||||
RpcBindingCopy( RPC_BINDING_HANDLE SourceBinding, RPC_BINDING_HANDLE* DestinationBinding );
|
||||
|
||||
RPCRTAPI RPC_STATUS RPC_ENTRY
|
||||
RpcBindingFree( RPC_BINDING_HANDLE Binding );
|
||||
|
||||
RPCRTAPI RPC_STATUS RPC_ENTRY
|
||||
RpcBindingFromStringBindingA( LPSTR StringBinding, RPC_BINDING_HANDLE* Binding );
|
||||
RPCRTAPI RPC_STATUS RPC_ENTRY
|
||||
RpcBindingFromStringBindingW( LPWSTR StringBinding, RPC_BINDING_HANDLE* Binding );
|
||||
#define RpcBindingFromStringBinding WINELIB_NAME_AW(RpcBindingFromStringBinding)
|
||||
|
||||
RPCRTAPI RPC_STATUS RPC_ENTRY
|
||||
RpcBindingToStringBindingA( RPC_BINDING_HANDLE Binding, LPSTR* StringBinding );
|
||||
RPCRTAPI RPC_STATUS RPC_ENTRY
|
||||
RpcBindingToStringBindingW( RPC_BINDING_HANDLE Binding, LPWSTR* StringBinding );
|
||||
#define RpcBindingFromStringBinding WINELIB_NAME_AW(RpcBindingFromStringBinding)
|
||||
|
||||
RPCRTAPI RPC_STATUS RPC_ENTRY
|
||||
RpcBindingVectorFree( RPC_BINDING_VECTOR** BindingVector );
|
||||
|
||||
RPCRTAPI RPC_STATUS RPC_ENTRY
|
||||
RpcServerInqBindings( RPC_BINDING_VECTOR** BindingVector );
|
||||
|
||||
RPCRTAPI RPC_STATUS RPC_ENTRY
|
||||
RpcServerListen( UINT MinimumCallThreads, UINT MaxCalls, UINT DontWait );
|
||||
|
||||
RPCRTAPI RPC_STATUS RPC_ENTRY
|
||||
RpcServerRegisterIf( RPC_IF_HANDLE IfSpec, UUID* MgrTypeUuid, RPC_MGR_EPV* MgrEpv );
|
||||
|
||||
|
@ -68,6 +116,7 @@ RPCRTAPI RPC_STATUS RPC_ENTRY
|
|||
RpcServerUseProtseqEpA( LPSTR Protseq, UINT MaxCalls, LPSTR Endpoint, LPVOID SecurityDescriptor );
|
||||
RPCRTAPI RPC_STATUS RPC_ENTRY
|
||||
RpcServerUseProtseqEpW( LPWSTR Protseq, UINT MaxCalls, LPWSTR Endpoint, LPVOID SecurityDescriptor );
|
||||
#define RpcServerUseProtseqEp WINELIB_NAME_AW(RpcServerUseProtseqEp)
|
||||
|
||||
RPCRTAPI RPC_STATUS RPC_ENTRY
|
||||
RpcServerUseProtseqEpExA( LPSTR Protseq, UINT MaxCalls, LPSTR Endpoint, LPVOID SecurityDescriptor,
|
||||
|
@ -75,8 +124,6 @@ RPCRTAPI RPC_STATUS RPC_ENTRY
|
|||
RPCRTAPI RPC_STATUS RPC_ENTRY
|
||||
RpcServerUseProtseqEpExW( LPWSTR Protseq, UINT MaxCalls, LPWSTR Endpoint, LPVOID SecurityDescriptor,
|
||||
PRPC_POLICY Policy );
|
||||
|
||||
#define RpcServerUseProtseqEp WINELIB_NAME_AW(RpcServerUseProtseqEp)
|
||||
#define RpcServerUseProtseqEpEx WINELIB_NAME_AW(RpcServerUseProtseqEpEx)
|
||||
|
||||
RPCRTAPI RPC_STATUS RPC_ENTRY
|
||||
|
@ -85,7 +132,6 @@ RPCRTAPI RPC_STATUS RPC_ENTRY
|
|||
RPCRTAPI RPC_STATUS RPC_ENTRY
|
||||
RpcServerRegisterAuthInfoW( LPWSTR ServerPrincName, ULONG AuthnSvc, RPC_AUTH_KEY_RETRIEVAL_FN GetKeyFn,
|
||||
LPVOID Arg );
|
||||
|
||||
#define RpcServerRegisterAuthInfo WINELIB_NAME_AW(RpcServerRegisterAuthInfo)
|
||||
|
||||
RPCRTAPI RPC_STATUS RPC_ENTRY
|
||||
|
@ -97,18 +143,25 @@ RPCRTAPI RPC_STATUS RPC_ENTRY
|
|||
RPCRTAPI RPC_STATUS RPC_ENTRY
|
||||
RpcStringBindingComposeW( LPWSTR ObjUuid, LPWSTR Protseq, LPWSTR NetworkAddr, LPWSTR Endpoint,
|
||||
LPWSTR Options, LPWSTR* StringBinding );
|
||||
|
||||
#define RpcStringBindingCompose WINELIB_NAME_AW(RpcStringBindingCompose)
|
||||
|
||||
RPCRTAPI RPC_STATUS RPC_ENTRY
|
||||
RpcBindingFromStringBindingA( LPSTR StringBinding, RPC_BINDING_HANDLE* Binding );
|
||||
RpcStringFreeA(unsigned char** String);
|
||||
RPCRTAPI RPC_STATUS RPC_ENTRY
|
||||
RpcBindingFromStringBindingW( LPWSTR StringBinding, RPC_BINDING_HANDLE* Binding );
|
||||
RpcStringFreeW(unsigned short** String);
|
||||
#define RpcStringFree WINELIB_NAME_AW(RpcStringFree)
|
||||
|
||||
#define RpcBindingFromStringBinding WINELIB_NAME_AW(RpcBindingFromStringBinding)
|
||||
RPCRTAPI RPC_STATUS RPC_ENTRY
|
||||
UuidCreate( UUID* Uuid );
|
||||
|
||||
RPCRTAPI RPC_STATUS RPC_ENTRY
|
||||
UuidToStringA( UUID* Uuid, unsigned char** StringUuid );
|
||||
RPCRTAPI RPC_STATUS RPC_ENTRY
|
||||
UuidToStringW( UUID* Uuid, unsigned short** StringUuid );
|
||||
#define UuidToString WINELIB_NAME_AW(UuidToString)
|
||||
|
||||
RPCRTAPI unsigned short RPC_ENTRY
|
||||
UuidHash(UUID *, RPC_STATUS*);
|
||||
UuidHash(UUID* Uuid, RPC_STATUS* Status_ );
|
||||
|
||||
#include "rpcdcep.h"
|
||||
|
||||
|
|
228
include/rpcndr.h
228
include/rpcndr.h
|
@ -7,8 +7,236 @@
|
|||
#endif // __RPCNDR_H_VERSION__
|
||||
|
||||
typedef unsigned char byte;
|
||||
typedef __int64 hyper;
|
||||
typedef __uint64 MIDL_uhyper;
|
||||
/* 'boolean' tend to conflict, let's call it _wine_boolean */
|
||||
typedef unsigned char _wine_boolean;
|
||||
/* typedef _wine_boolean boolean; */
|
||||
|
||||
typedef struct
|
||||
{
|
||||
void *pad[2];
|
||||
void *userContext;
|
||||
} *NDR_SCONTEXT;
|
||||
|
||||
#define NDRSContextValue(hContext) (&(hContext)->userContext)
|
||||
#define cbNDRContext 20
|
||||
|
||||
typedef void __RPC_USER (*NDR_RUNDOWN)(void *context);
|
||||
typedef void __RPC_USER (*NDR_NOTIFY_ROUTINE)(void);
|
||||
typedef void __RPC_USER (*NDR_NOTIFY2_ROUTINE)(_wine_boolean flag);
|
||||
|
||||
#define DECLSPEC_UUID(x)
|
||||
#define MIDL_INTERFACE(x) struct
|
||||
|
||||
struct _MIDL_STUB_MESSAGE;
|
||||
struct _MIDL_STUB_DESC;
|
||||
struct _FULL_PTR_XLAT_TABLES;
|
||||
|
||||
typedef void __RPC_USER (*EXPR_EVAL)(struct _MIDL_STUB_MESSAGE *);
|
||||
typedef const unsigned char *PFORMAT_STRING;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
long Dimension;
|
||||
unsigned long *BufferConformanceMark;
|
||||
unsigned long *BufferVarianceMark;
|
||||
unsigned long *MaxCountArray;
|
||||
unsigned long *OffsetArray;
|
||||
unsigned long *ActualCountArray;
|
||||
} ARRAY_INFO, *PARRAY_INFO;
|
||||
|
||||
typedef struct _NDR_PIPE_DESC *PNDR_PIPE_DESC;
|
||||
typedef struct _NDR_PIPE_MESSAGE *PNDR_PIPE_MESSAGE;
|
||||
typedef struct _NDR_ASYNC_MESSAGE *PNDR_ASYNC_MESSAGE;
|
||||
typedef struct _NDR_CORRELATION_INFO *PNDR_CORRELATION_INFO;
|
||||
|
||||
typedef struct _MIDL_STUB_MESSAGE
|
||||
{
|
||||
PRPC_MESSAGE RpcMsg;
|
||||
unsigned char *Buffer;
|
||||
unsigned char *BufferStart;
|
||||
unsigned char *BufferEnd;
|
||||
unsigned char *BufferMark;
|
||||
unsigned long BufferLength;
|
||||
unsigned long MemorySize;
|
||||
unsigned char *Memory;
|
||||
int IsClient;
|
||||
int ReuseBuffer;
|
||||
unsigned char *AllocAllNodesMemory;
|
||||
unsigned char *AllocAllNodesMemoryEnd;
|
||||
int IgnoreEmbeddedPointers;
|
||||
unsigned char *PointerBufferMark;
|
||||
unsigned char fBufferValid;
|
||||
unsigned char uFlags;
|
||||
ULONG_PTR MaxCount;
|
||||
unsigned long Offset;
|
||||
unsigned long ActualCount;
|
||||
void * __RPC_API (*pfnAllocate)(size_t);
|
||||
void __RPC_API (*pfnFree)(void *);
|
||||
unsigned char *StackTop;
|
||||
unsigned char *pPresentedType;
|
||||
unsigned char *pTransmitType;
|
||||
handle_t SavedHandle;
|
||||
const struct _MIDL_STUB_DESC *StubDesc;
|
||||
struct _FULL_PTR_XLAT_TABLES *FullPtrXlatTables;
|
||||
unsigned long FullPtrRefId;
|
||||
unsigned long ulUnused1;
|
||||
int fInDontFree:1;
|
||||
int fDontCallFreeInst:1;
|
||||
int fInOnlyParam:1;
|
||||
int fHasReturn:1;
|
||||
int fHasExtensions:1;
|
||||
int fHasNewCorrDesc:1;
|
||||
int fUnused:10;
|
||||
unsigned long dwDestContext;
|
||||
void *pvDestContext;
|
||||
NDR_SCONTEXT *SavedContextHandles;
|
||||
long ParamNumber;
|
||||
struct IRpcChannelBuffer *pRpcChannelBuffer;
|
||||
PARRAY_INFO pArrayInfo;
|
||||
unsigned long *SizePtrCountArray;
|
||||
unsigned long *SizePtrOffsetArray;
|
||||
unsigned long *SizePtrLengthArray;
|
||||
void *pArgQueue;
|
||||
unsigned long dwStubPhase;
|
||||
PNDR_PIPE_DESC pPipeDesc;
|
||||
PNDR_ASYNC_MESSAGE pAsyncMsg;
|
||||
PNDR_CORRELATION_INFO pCorrInfo;
|
||||
unsigned char *pCorrMemory;
|
||||
void *pMemoryList;
|
||||
ULONG_PTR w2kReserved[5];
|
||||
} MIDL_STUB_MESSAGE, *PMIDL_STUB_MESSAGE;
|
||||
|
||||
typedef struct _GENERIC_BINDING_ROUTINE_PAIR GENERIC_BINDING_ROUTINE_PAIR, *PGENERIC_BINDING_ROUTINE_PAIR;
|
||||
|
||||
typedef struct __GENERIC_BINDING_INFO GENERIC_BINDING_INFO, *PGENERIC_BINDING_INFO;
|
||||
|
||||
typedef struct _XMIT_ROUTINE_QUINTUPLE XMIT_ROUTINE_QUINTUPLE, *PXMIT_ROUTINE_QUINTUPLE;
|
||||
|
||||
typedef struct _USER_MARSHAL_ROUTINE_QUADRUPLE USER_MARSHAL_ROUTINE_QUADRUPLE;
|
||||
|
||||
typedef struct _MALLOC_FREE_STRUCT MALLOC_FREE_STRUCT;
|
||||
|
||||
typedef struct _COMM_FAULT_OFFSETS COMM_FAULT_OFFSETS;
|
||||
|
||||
typedef struct _MIDL_STUB_DESC
|
||||
{
|
||||
void *RpcInterfaceInformation;
|
||||
void * __RPC_API (*pfnAllocate)(size_t);
|
||||
void __RPC_API (*pfnFree)(void *);
|
||||
union {
|
||||
handle_t *pAutoHandle;
|
||||
handle_t *pPrimitiveHandle;
|
||||
PGENERIC_BINDING_INFO pGenericBindingInfo;
|
||||
} IMPLICIT_HANDLE_INFO;
|
||||
const NDR_RUNDOWN *apfnNdrRundownRoutines;
|
||||
const GENERIC_BINDING_ROUTINE_PAIR *aGenericBindingRoutinePairs;
|
||||
const EXPR_EVAL *apfnExprEval;
|
||||
const XMIT_ROUTINE_QUINTUPLE *aXmitQuintuple;
|
||||
const unsigned char *pFormatTypes;
|
||||
int fCheckBounds;
|
||||
unsigned long Version;
|
||||
MALLOC_FREE_STRUCT *pMallocFreeStruct;
|
||||
long MIDLVersion;
|
||||
const COMM_FAULT_OFFSETS *CommFaultOffsets;
|
||||
const USER_MARSHAL_ROUTINE_QUADRUPLE *aUserMarshalQuadruple;
|
||||
const NDR_NOTIFY_ROUTINE *NotifyRoutineTable;
|
||||
ULONG_PTR mFlags;
|
||||
ULONG_PTR Reserved3;
|
||||
ULONG_PTR Reserved4;
|
||||
ULONG_PTR Reserved5;
|
||||
} MIDL_STUB_DESC;
|
||||
typedef const MIDL_STUB_DESC *PMIDL_STUB_DESC;
|
||||
|
||||
typedef struct _MIDL_FORMAT_STRING
|
||||
{
|
||||
short Pad;
|
||||
#if defined(__GNUC__)
|
||||
unsigned char Format[0];
|
||||
#else
|
||||
unsigned char Format[1];
|
||||
#endif
|
||||
} MIDL_FORMAT_STRING;
|
||||
|
||||
typedef void __RPC_API (*STUB_THUNK)( PMIDL_STUB_MESSAGE );
|
||||
|
||||
typedef long __RPC_API (*SERVER_ROUTINE)();
|
||||
|
||||
typedef struct _MIDL_SERVER_INFO_
|
||||
{
|
||||
PMIDL_STUB_DESC pStubDesc;
|
||||
const SERVER_ROUTINE *DispatchTable;
|
||||
PFORMAT_STRING ProcString;
|
||||
const unsigned short *FmtStringOffset;
|
||||
const STUB_THUNK *ThunkTable;
|
||||
PFORMAT_STRING LocalFormatTypes;
|
||||
PFORMAT_STRING LocalProcString;
|
||||
const unsigned short *LocalFmtStringOffset;
|
||||
} MIDL_SERVER_INFO, *PMIDL_SERVER_INFO;
|
||||
|
||||
typedef enum {
|
||||
STUB_UNMARSHAL,
|
||||
STUB_CALL_SERVER,
|
||||
STUB_MARSHAL,
|
||||
STUB_CALL_SERVER_NO_HRESULT
|
||||
} STUB_PHASE;
|
||||
|
||||
typedef enum {
|
||||
PROXY_CALCSIZE,
|
||||
PROXY_GETBUFFER,
|
||||
PROXY_MARSHAL,
|
||||
PROXY_SENDRECEIVE,
|
||||
PROXY_UNMARSHAL
|
||||
} PROXY_PHASE;
|
||||
|
||||
struct IRpcStubBuffer;
|
||||
|
||||
RPCRTAPI void RPC_ENTRY
|
||||
NdrSimpleTypeMarshall( PMIDL_STUB_MESSAGE pStubMsg, unsigned char* pMemory, unsigned char FormatChar );
|
||||
RPCRTAPI void RPC_ENTRY
|
||||
NdrSimpleTypeUnmarshall( PMIDL_STUB_MESSAGE pStubMsg, unsigned char* pMemory, unsigned char FormatChar );
|
||||
|
||||
/* while MS declares each prototype separately, I prefer to use macros for this kind of thing instead */
|
||||
#define TYPE_MARSHAL(type) \
|
||||
RPCRTAPI unsigned char* RPC_ENTRY \
|
||||
Ndr##type##Marshall( PMIDL_STUB_MESSAGE pStubMsg, unsigned char* pMemory, PFORMAT_STRING pFormat ); \
|
||||
RPCRTAPI unsigned char* RPC_ENTRY \
|
||||
Ndr##type##Unmarshall( PMIDL_STUB_MESSAGE pStubMsg, unsigned char** ppMemory, PFORMAT_STRING pFormat, unsigned char fMustAlloc ); \
|
||||
RPCRTAPI void RPC_ENTRY \
|
||||
Ndr##type##BufferSize( PMIDL_STUB_MESSAGE pStubMsg, unsigned char* pMemory, PFORMAT_STRING pFormat ); \
|
||||
RPCRTAPI unsigned long RPC_ENTRY \
|
||||
Ndr##type##MemorySize( PMIDL_STUB_MESSAGE pStubMsg, PFORMAT_STRING pFormat ); \
|
||||
RPCRTAPI void RPC_ENTRY \
|
||||
Ndr##type##Free( PMIDL_STUB_MESSAGE pStubMsg, unsigned char* pMemory, PFORMAT_STRING pFormat );
|
||||
|
||||
TYPE_MARSHAL(Pointer)
|
||||
TYPE_MARSHAL(SimpleStruct)
|
||||
TYPE_MARSHAL(ConformantStruct)
|
||||
TYPE_MARSHAL(ConformantVaryingStruct)
|
||||
TYPE_MARSHAL(ComplexStruct)
|
||||
TYPE_MARSHAL(FixedArray)
|
||||
TYPE_MARSHAL(ConformantArray)
|
||||
TYPE_MARSHAL(ConformantVaryingArray)
|
||||
TYPE_MARSHAL(VaryingArray)
|
||||
TYPE_MARSHAL(ComplexArray)
|
||||
TYPE_MARSHAL(EncapsulatedUnion)
|
||||
TYPE_MARSHAL(NonEncapsulatedUnion)
|
||||
TYPE_MARSHAL(ByteCountPointer)
|
||||
TYPE_MARSHAL(XmitOrRepAs)
|
||||
TYPE_MARSHAL(UserMarshal)
|
||||
TYPE_MARSHAL(InterfacePointer)
|
||||
|
||||
#undef TYPE_MARSHAL
|
||||
|
||||
RPCRTAPI void RPC_ENTRY
|
||||
NdrConvert2( PMIDL_STUB_MESSAGE pStubMsg, PFORMAT_STRING pFormat, long NumberParams );
|
||||
RPCRTAPI void RPC_ENTRY
|
||||
NdrConvert( PMIDL_STUB_MESSAGE pStubMsg, PFORMAT_STRING pFormat );
|
||||
|
||||
RPCRTAPI void* RPC_ENTRY
|
||||
NdrOleAllocate( size_t Size );
|
||||
RPCRTAPI void RPC_ENTRY
|
||||
NdrOleFree( void* NodeToFree );
|
||||
|
||||
#endif /*__WINE_RPCNDR_H */
|
||||
|
|
|
@ -0,0 +1,159 @@
|
|||
#ifndef __WINE_RPCPROXY_H
|
||||
#define __WINE_RPCPROXY_H
|
||||
|
||||
#include "basetsd.h"
|
||||
#include "guiddef.h"
|
||||
|
||||
typedef struct tagCInterfaceStubVtbl *PCInterfaceStubVtblList;
|
||||
typedef struct tagCInterfaceProxyVtbl *PCInterfaceProxyVtblList;
|
||||
typedef const char *PCInterfaceName;
|
||||
typedef int __stdcall IIDLookupRtn( const IID *pIID, int *pIndex );
|
||||
typedef IIDLookupRtn *PIIDLookup;
|
||||
|
||||
typedef struct tagProxyFileInfo
|
||||
{
|
||||
const PCInterfaceProxyVtblList *pProxyVtblList;
|
||||
const PCInterfaceStubVtblList *pStubVtblList;
|
||||
const PCInterfaceName *pNamesArray;
|
||||
const IID **pDelegatedIIDs;
|
||||
const PIIDLookup pIIDLookupRtn;
|
||||
unsigned short TableSize;
|
||||
unsigned short TableVersion;
|
||||
const IID **pAsyncIIDLookup;
|
||||
LONG_PTR Filler2;
|
||||
LONG_PTR Filler3;
|
||||
LONG_PTR Filler4;
|
||||
} ProxyFileInfo;
|
||||
|
||||
typedef ProxyFileInfo ExtendedProxyFileInfo;
|
||||
|
||||
#include "rpc.h"
|
||||
#include "rpcndr.h"
|
||||
|
||||
typedef struct tagCInterfaceProxyHeader
|
||||
{
|
||||
#ifdef USE_STUBLESS_PROXY
|
||||
const void *pStublessProxyInfo;
|
||||
#endif
|
||||
const IID *piid;
|
||||
} CInterfaceProxyHeader;
|
||||
|
||||
#define CINTERFACE_PROXY_VTABLE(n) \
|
||||
struct \
|
||||
{ \
|
||||
CInterfaceProxyHeader header; \
|
||||
void *Vtbl[n]; \
|
||||
}
|
||||
|
||||
typedef struct tagCInterfaceProxyVtbl
|
||||
{
|
||||
CInterfaceProxyHeader header;
|
||||
#if defined(__GNUC__)
|
||||
void *Vtbl[0];
|
||||
#else
|
||||
void *Vtbl[1];
|
||||
#endif
|
||||
} CInterfaceProxyVtbl;
|
||||
|
||||
typedef void (__RPC_STUB *PRPC_STUB_FUNCTION)(
|
||||
IRpcStubBuffer *This,
|
||||
IRpcChannelBuffer *_pRpcChannelBuffer,
|
||||
PRPC_MESSAGE _pRpcMessage,
|
||||
DWORD *pdwStubPhase);
|
||||
|
||||
typedef struct tagCInterfaceStubHeader
|
||||
{
|
||||
const IID *piid;
|
||||
const MIDL_SERVER_INFO *pServerInfo;
|
||||
unsigned long DispatchTableCount;
|
||||
const PRPC_STUB_FUNCTION *pDispatchTable;
|
||||
} CInterfaceStubHeader;
|
||||
|
||||
typedef struct tagCInterfaceStubVtbl
|
||||
{
|
||||
CInterfaceStubHeader header;
|
||||
ICOM_VTABLE(IRpcStubBuffer) Vtbl;
|
||||
} CInterfaceStubVtbl;
|
||||
|
||||
typedef struct tagCStdStubBuffer
|
||||
{
|
||||
const ICOM_VTABLE(IRpcStubBuffer) *lpVtbl;
|
||||
long RefCount;
|
||||
struct IUnknown *pvServerObject;
|
||||
const struct ICallFactoryVtbl *pCallFactoryVtbl;
|
||||
const IID *pAsyncIID;
|
||||
struct IPSFactoryBuffer *pPSFactory;
|
||||
} CStdStubBuffer;
|
||||
|
||||
typedef struct tagCStdPSFactoryBuffer
|
||||
{
|
||||
const IPSFactoryBufferVtbl *lpVtbl;
|
||||
long RefCount;
|
||||
const ProxyFileInfo **pProxyFileList;
|
||||
long Filler1;
|
||||
} CStdPSFactoryBuffer;
|
||||
|
||||
HRESULT WINAPI
|
||||
CStdStubBuffer_QueryInterface( IRpcStubBuffer *This, REFIID riid, void **ppvObject );
|
||||
ULONG WINAPI
|
||||
CStdStubBuffer_AddRef( IRpcStubBuffer *This );
|
||||
ULONG WINAPI
|
||||
CStdStubBuffer_Release( IRpcStubBuffer *This );
|
||||
ULONG WINAPI
|
||||
NdrCStdStubBuffer_Release( IRpcStubBuffer *This, IPSFactoryBuffer *pPSF );
|
||||
HRESULT WINAPI
|
||||
CStdStubBuffer_Connect( IRpcStubBuffer *This, IUnknown *pUnkServer );
|
||||
void WINAPI
|
||||
CStdStubBuffer_Disconnect( IRpcStubBuffer *This );
|
||||
HRESULT WINAPI
|
||||
CStdStubBuffer_Invoke( IRpcStubBuffer *This, RPCOLEMESSAGE *pRpcMsg, IRpcChannelBuffer *pRpcChannelBuffer );
|
||||
IRpcStubBuffer * WINAPI
|
||||
CStdStubBuffer_IsIIDSupported( IRpcStubBuffer *This, REFIID riid );
|
||||
ULONG WINAPI
|
||||
CStdStubBuffer_CountRefs( IRpcStubBuffer *This );
|
||||
HRESULT WINAPI
|
||||
CStdStubBuffer_DebugServerQueryInterface( IRpcStubBuffer *This, void **ppv );
|
||||
void WINAPI
|
||||
CStdStubBuffer_DebugServerRelease( IRpcStubBuffer *This, void *pv );
|
||||
|
||||
#define CStdStubBuffer_METHODS \
|
||||
ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE \
|
||||
CStdStubBuffer_QueryInterface, \
|
||||
CStdStubBuffer_AddRef, \
|
||||
CStdStubBuffer_Release, \
|
||||
CStdStubBuffer_Connect, \
|
||||
CStdStubBuffer_Disconnect, \
|
||||
CStdStubBuffer_Invoke, \
|
||||
CStdStubBuffer_IsIIDSupported, \
|
||||
CStdStubBuffer_CountRefs, \
|
||||
CStdStubBuffer_DebugServerQueryInterface, \
|
||||
CStdStubBuffer_DebugServerRelease
|
||||
|
||||
RPCRTAPI HRESULT RPC_ENTRY
|
||||
NdrDllGetClassObject( REFCLSID rclsid, REFIID riid, void **ppv, const ProxyFileInfo **pProxyFileList,
|
||||
const CLSID *pclsid, CStdPSFactoryBuffer *pPSFactoryBuffer );
|
||||
RPCRTAPI HRESULT RPC_ENTRY
|
||||
NdrDllCanUnloadNow( CStdPSFactoryBuffer *pPSFactoryBuffer );
|
||||
|
||||
RPCRTAPI HRESULT RPC_ENTRY
|
||||
NdrDllRegisterProxy( HMODULE hDll, const ProxyFileInfo **pProxyFileList, const CLSID *pclsid );
|
||||
RPCRTAPI HRESULT RPC_ENTRY
|
||||
NdrDllUnregisterProxy( HMODULE hDll, const ProxyFileInfo **pProxyFileList, const CLSID *pclsid );
|
||||
|
||||
#define CSTDSTUBBUFFERRELEASE(pFactory) \
|
||||
ULONG WINAPI CStdStubBuffer_Release(IRpcStubBuffer *This) \
|
||||
{ return NdrCStdStubBuffer_Release(This, (IPSFactoryBuffer *)pFactory); }
|
||||
|
||||
#if defined(__WINE__) && defined(__WINE_WINE_OBJ_OLEAUT_H)
|
||||
/* see http://msdn.microsoft.com/library/en-us/dnmsj99/html/com0199.asp?frame=true */
|
||||
|
||||
RPCRTAPI HRESULT RPC_ENTRY
|
||||
CreateProxyFromTypeInfo( LPTYPEINFO pTypeInfo, LPUNKNOWN pUnkOuter, REFIID riid,
|
||||
LPRPCPROXYBUFFER *ppProxy, LPVOID *ppv );
|
||||
RPCRTAPI HRESULT RPC_ENTRY
|
||||
CreateStubFromTypeInfo( LPTYPEINFO pTypeInfo, REFIID riid, LPUNKNOWN pUnkServer,
|
||||
LPRPCSTUBBUFFER *ppStub );
|
||||
|
||||
#endif
|
||||
|
||||
#endif /*__WINE_RPCDCE_H */
|
Loading…
Reference in New Issue