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