RPC header patch
Ove Kaaven
ovek at arcticnet.no
Sat Oct 13 17:23:58 CDT 2001
Log:
Ove Kaaven <ovek at transgaming.com>
Added some RPC definitions.
Index: include/rpcdce.h
===================================================================
RCS file: /home/wine/wine/include/rpcdce.h,v
retrieving revision 1.3
diff -u -r1.3 rpcdce.h
--- include/rpcdce.h 2001/09/07 15:25:51 1.3
+++ include/rpcdce.h 2001/10/13 21:00:23
@@ -15,6 +15,27 @@
#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_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
@@ -54,6 +75,33 @@
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 );
RPCRTAPI RPC_STATUS RPC_ENTRY
@@ -68,6 +116,7 @@
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
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
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
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"
Index: include/rpcndr.h
===================================================================
RCS file: /home/wine/wine/include/rpcndr.h,v
retrieving revision 1.1
diff -u -r1.1 rpcndr.h
--- include/rpcndr.h 2000/11/08 05:06:10 1.1
+++ include/rpcndr.h 2001/10/13 21:00:23
@@ -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 */
--- /dev/null Fri Jun 15 16:01:01 2001
+++ include/rpcproxy.h Fri Oct 12 04:54:09 2001
@@ -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 */
More information about the wine-patches
mailing list