diff options
Diffstat (limited to 'winsup/w32api/include/rpcproxy.h')
-rw-r--r-- | winsup/w32api/include/rpcproxy.h | 185 |
1 files changed, 0 insertions, 185 deletions
diff --git a/winsup/w32api/include/rpcproxy.h b/winsup/w32api/include/rpcproxy.h deleted file mode 100644 index fa968fc..0000000 --- a/winsup/w32api/include/rpcproxy.h +++ /dev/null @@ -1,185 +0,0 @@ -/* - -DREGISTER_PROXY_DLL Generates DllMain, DllRegisterServer, and DllUnregisterServer - -DPROXY_CLSID=clsid Specifies a class ID to be used by the proxy DLL. - -DPROXY_CLSID_IS={..} Specifies the class ID to be used by the proxy DLL. - -DNT35_STRICT No new features -*/ -#ifndef _RPCPROXY_H -#define _RPCPROXY_H -#ifdef __cplusplus -extern "C" { -#endif -#include <rpc.h> -#include <rpcndr.h> -#include <string.h> - -#define CStdStubBuffer_METHODS CStdStubBuffer_QueryInterface,CStdStubBuffer_AddRef,\ -CStdStubBuffer_Release,CStdStubBuffer_Connect,CStdStubBuffer_Disconnect,CStdStubBuffer_Invoke,\ -CStdStubBuffer_IsIIDSupported,CStdStubBuffer_CountRefs,CStdStubBuffer_DebugServerQueryInterface,\ -CStdStubBuffer_DebugServerRelease -#define IID_GENERIC_CHECK_IID(name,pIID,index) memcmp(pIID,name##_ProxyVtblList[index]->header.piid,16) -#define IID_BS_LOOKUP_SETUP int result, low=-1; -#define IID_BS_LOOKUP_INITIAL_TEST(name,sz,split) if ((result = name##_CHECK_IID(split))>0) { low=sz-split;} else if (!result) { low = split; goto found_label; } -#define IID_BS_LOOKUP_NEXT_TEST(name,split) if ((result = name##_CHECK_IID(low+split))>=0) { low=low+split; if (!result) goto found_label; } -#define IID_BS_LOOKUP_RETURN_RESULT(name,sz,index) low+=1; if ((low>=sz )||(result=name##_CHECK_IID(low))) goto not_found_label; found_label: (index)=low; return 1; not_found_label: return 0; -#define REGISTER_PROXY_DLL_ROUTINES(pProxyFileList, pClsID) \ -HINSTANCE hProxyDll = 0; \ -BOOL WINAPI DllMain(HINSTANCE hinstDLL,DWORD fdwReason,LPVOID lpvReserved) \ -{ \ -if(fdwReason == DLL_PROCESS_ATTACH) hProxyDll = hinstDLL; \ -return TRUE; \ -} \ -HRESULT STDAPICALLTYPE DllRegisterServer() \ -{\ -return NdrDllRegisterProxy(hProxyDll, pProxyFileList, pClsID); \ -}\ -HRESULT STDAPICALLTYPE DllUnregisterServer()\ -{\ -return NdrDllUnregisterProxy(hProxyDll, pProxyFileList, pClsID);\ -} -#ifdef PROXY_CLSID -#define CLSID_PSFACTORYBUFFER extern CLSID PROXY_CLSID; -#else -#ifdef PROXY_CLSID_IS -#define CLSID_PSFACTORYBUFFER const CLSID CLSID_PSFactoryBuffer = PROXY_CLSID_IS; -#define PROXY_CLSID CLSID_PSFactoryBuffer -#else -#define CLSID_PSFACTORYBUFFER -#endif -#endif -#ifndef PROXY_CLSID -#define GET_DLL_CLSID (aProxyFileList[0]->pStubVtblList[0] != 0 ? aProxyFileList[0]->pStubVtblList[0]->header.piid : 0) -#else -#define GET_DLL_CLSID &PROXY_CLSID -#endif -#define EXTERN_PROXY_FILE(name) EXTERN_C const ProxyFileInfo name##_ProxyFileInfo; -#define PROXYFILE_LIST_START const ProxyFileInfo * aProxyFileList[] = { -#define REFERENCE_PROXY_FILE(name) & name##_ProxyFileInfo -#define PROXYFILE_LIST_END 0 }; -#define DLLDATA_GETPROXYDLLINFO(pPFList,pClsid) \ -void RPC_ENTRY GetProxyDllInfo( const ProxyFileInfo*** pInfo, const CLSID ** pId ) \ -{ *pInfo = pPFList; *pId = pClsid; }; -#define DLLGETCLASSOBJECTROUTINE(pPFlist, pClsid,pFactory) HRESULT STDAPICALLTYPE DllGetClassObject(REFCLSID rclsid,REFIID riid,void **ppv) \ -{ return NdrDllGetClassObject(rclsid,riid,ppv,pPFlist,pClsid,pFactory ); } -#define DLLCANUNLOADNOW(pFactory) HRESULT STDAPICALLTYPE DllCanUnloadNow() \ -{ return NdrDllCanUnloadNow( pFactory ); } -#define DLLDUMMYPURECALL void __cdecl _purecall(void) { } -#define CSTDSTUBBUFFERRELEASE(pFactory) ULONG STDMETHODCALLTYPE CStdStubBuffer_Release(IRpcStubBuffer *This) \ -{ return NdrCStdStubBuffer_Release(This,(IPSFactoryBuffer *)pFactory); } -#ifdef PROXY_DELEGATION -#define CSTDSTUBBUFFER2RELEASE(pFactory) ULONG STDMETHODCALLTYPE CStdStubBuffer2_Release(IRpcStubBuffer *This) \ -{ return NdrCStdStubBuffer2_Release(This,(IPSFactoryBuffer *)pFactory); } -#else -#define CSTDSTUBBUFFER2RELEASE(pFactory) -#endif - -#ifdef REGISTER_PROXY_DLL -#define DLLREGISTRY_ROUTINES(pProxyFileList,pClsID ) REGISTER_PROXY_DLL_ROUTINES(pProxyFileList,pClsID) -#else -#define DLLREGISTRY_ROUTINES(pProxyFileList,pClsID) -#endif -#define DLLDATA_ROUTINES(pProxyFileList,pClsID) \ -CLSID_PSFACTORYBUFFER \ -CStdPSFactoryBuffer gPFactory = {0,0,0,0}; \ -DLLDATA_GETPROXYDLLINFO(pProxyFileList,pClsID) \ -DLLGETCLASSOBJECTROUTINE(pProxyFileList,pClsID,&gPFactory) \ -DLLCANUNLOADNOW(&gPFactory) \ -CSTDSTUBBUFFERRELEASE(&gPFactory) \ -CSTDSTUBBUFFER2RELEASE(&gPFactory) \ -DLLDUMMYPURECALL \ -DLLREGISTRY_ROUTINES(pProxyFileList, pClsID) - -#define DLLDATA_STANDARD_ROUTINES DLLDATA_ROUTINES( (const ProxyFileInfo**) pProxyFileList, &CLSID_PSFactoryBuffer) - -struct tagCInterfaceStubVtbl; -struct tagCInterfaceProxyVtbl; -typedef struct tagCInterfaceStubVtbl *PCInterfaceStubVtblList; -typedef struct tagCInterfaceProxyVtbl *PCInterfaceProxyVtblList; -typedef const char *PCInterfaceName; -typedef int __stdcall IIDLookupRtn(const IID*,int*); -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; - unsigned long Filler1; - unsigned long Filler2; - unsigned long Filler3; - unsigned long Filler4; -}ProxyFileInfo; -typedef ProxyFileInfo ExtendedProxyFileInfo; - -typedef struct tagCInterfaceProxyHeader { -#ifdef USE_STUBLESS_PROXY - const void *pStublessProxyInfo; -#endif - const IID *piid; -} CInterfaceProxyHeader; -typedef struct tagCInterfaceProxyVtbl { - CInterfaceProxyHeader header; - void *Vtbl[0]; -} CInterfaceProxyVtbl; -typedef void (__RPC_STUB *PRPC_STUB_FUNCTION)(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,DWORD*); -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; - IRpcStubBufferVtbl Vtbl; -} CInterfaceStubVtbl; -typedef struct tagCStdStubBuffer { - const struct IRpcStubBufferVtbl * lpVtbl; - long RefCount; - struct IUnknown *pvServerObject; -} CStdStubBuffer; -typedef struct tagCStdPSFactoryBuffer { - const IPSFactoryBufferVtbl *lpVtbl; - long RefCount; - const ProxyFileInfo ** pProxyFileList; - long Filler1; -} CStdPSFactoryBuffer; -void RPC_ENTRY NdrProxyInitialize(void*,PRPC_MESSAGE,PMIDL_STUB_MESSAGE,PMIDL_STUB_DESC,unsigned int); -void RPC_ENTRY NdrProxyGetBuffer(void*,PMIDL_STUB_MESSAGE); -void RPC_ENTRY NdrProxySendReceive(void*,MIDL_STUB_MESSAGE*); -void RPC_ENTRY NdrProxyFreeBuffer(void*,MIDL_STUB_MESSAGE*); -HRESULT RPC_ENTRY NdrProxyErrorHandler(DWORD); -void RPC_ENTRY NdrStubInitialize(PRPC_MESSAGE,PMIDL_STUB_MESSAGE,PMIDL_STUB_DESC,IRpcChannelBuffer*); -void __RPC_STUB NdrStubForwardingFunction(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,DWORD*); -void RPC_ENTRY NdrStubGetBuffer(IRpcStubBuffer*,IRpcChannelBuffer*,PMIDL_STUB_MESSAGE); -HRESULT RPC_ENTRY NdrStubErrorHandler(DWORD); -HRESULT STDMETHODCALLTYPE CStdStubBuffer_QueryInterface(IRpcStubBuffer*,REFIID,void**); -ULONG STDMETHODCALLTYPE CStdStubBuffer_AddRef(IRpcStubBuffer*); -ULONG STDMETHODCALLTYPE CStdStubBuffer_Release(IRpcStubBuffer*); -ULONG STDMETHODCALLTYPE NdrCStdStubBuffer_Release(IRpcStubBuffer*,IPSFactoryBuffer*); -HRESULT STDMETHODCALLTYPE CStdStubBuffer_Connect(IRpcStubBuffer*,IUnknown*); -void STDMETHODCALLTYPE CStdStubBuffer_Disconnect(IRpcStubBuffer*); -HRESULT STDMETHODCALLTYPE CStdStubBuffer_Invoke(IRpcStubBuffer*,RPCOLEMESSAGE*,IRpcChannelBuffer*); -IRpcStubBuffer* STDMETHODCALLTYPE CStdStubBuffer_IsIIDSupported(IRpcStubBuffer*,REFIID); -ULONG STDMETHODCALLTYPE CStdStubBuffer_CountRefs(IRpcStubBuffer*); -HRESULT STDMETHODCALLTYPE CStdStubBuffer_DebugServerQueryInterface(IRpcStubBuffer*,void**); -void STDMETHODCALLTYPE CStdStubBuffer_DebugServerRelease(IRpcStubBuffer*,void*); -HRESULT RPC_ENTRY NdrDllGetClassObject(REFCLSID,REFIID,void**,const ProxyFileInfo**,const CLSID*,CStdPSFactoryBuffer*); -HRESULT RPC_ENTRY NdrDllCanUnloadNow(CStdPSFactoryBuffer*); -#ifndef NT35_STRICT -HRESULT RPC_ENTRY NdrDllRegisterProxy(HMODULE,const ProxyFileInfo**,const CLSID*); -HRESULT RPC_ENTRY NdrDllUnregisterProxy(HMODULE,const ProxyFileInfo**,const CLSID*); -#define STUB_FORWARDING_FUNCTION NdrStubForwardingFunction -ULONG STDMETHODCALLTYPE -CStdStubBuffer2_Release(IRpcStubBuffer*); -ULONG STDMETHODCALLTYPE -NdrCStdStubBuffer2_Release(IRpcStubBuffer*,IPSFactoryBuffer*); -#define CStdStubBuffer_DELEGATING_METHODS 0, 0, CStdStubBuffer2_Release, 0, 0, 0, 0, 0, 0, 0 -#endif - -#ifdef __cplusplus -} -#endif -#endif - |