[RPCRT4] Sync with Wine Staging 4.0. CORE-15682
[reactos.git] / dll / win32 / rpcrt4 / cpsf.h
index 964fb45..3cfbf77 100644 (file)
 #ifndef __WINE_CPSF_H
 #define __WINE_CPSF_H
 
+typedef struct
+{
+    IRpcProxyBuffer IRpcProxyBuffer_iface;
+    void **PVtbl;
+    LONG RefCount;
+    const IID *piid;
+    IUnknown *pUnkOuter;
+    /* offset of base_object from PVtbl must match assembly thunks; see
+     * fill_delegated_proxy_table() */
+    IUnknown *base_object;
+    IRpcProxyBuffer *base_proxy;
+    PCInterfaceName name;
+    IPSFactoryBuffer *pPSFactory;
+    IRpcChannelBuffer *pChannel;
+} StdProxyImpl;
+
+typedef struct
+{
+    IUnknownVtbl *base_obj;
+    IRpcStubBuffer *base_stub;
+    CStdStubBuffer stub_buffer;
+} cstdstubbuffer_delegating_t;
+
 HRESULT StdProxy_Construct(REFIID riid, LPUNKNOWN pUnkOuter, const ProxyFileInfo *ProxyInfo,
                            int Index, LPPSFACTORYBUFFER pPSFactory, LPRPCPROXYBUFFER *ppProxy,
                            LPVOID *ppvObj) DECLSPEC_HIDDEN;
+HRESULT WINAPI StdProxy_QueryInterface(IRpcProxyBuffer *iface, REFIID iid, void **obj) DECLSPEC_HIDDEN;
+ULONG WINAPI StdProxy_AddRef(IRpcProxyBuffer *iface) DECLSPEC_HIDDEN;
+HRESULT WINAPI StdProxy_Connect(IRpcProxyBuffer *iface, IRpcChannelBuffer *channel) DECLSPEC_HIDDEN;
+void WINAPI StdProxy_Disconnect(IRpcProxyBuffer *iface) DECLSPEC_HIDDEN;
 
 HRESULT CStdStubBuffer_Construct(REFIID riid, LPUNKNOWN pUnkServer, PCInterfaceName name,
                                  CInterfaceStubVtbl *vtbl, LPPSFACTORYBUFFER pPSFactory,
@@ -41,5 +68,8 @@ extern const IRpcStubBufferVtbl CStdStubBuffer_Delegating_Vtbl DECLSPEC_HIDDEN;
 BOOL fill_delegated_proxy_table(IUnknownVtbl *vtbl, DWORD num) DECLSPEC_HIDDEN;
 HRESULT create_proxy(REFIID iid, IUnknown *pUnkOuter, IRpcProxyBuffer **pproxy, void **ppv) DECLSPEC_HIDDEN;
 HRESULT create_stub(REFIID iid, IUnknown *pUnk, IRpcStubBuffer **ppstub) DECLSPEC_HIDDEN;
+BOOL fill_stubless_table(IUnknownVtbl *vtbl, DWORD num) DECLSPEC_HIDDEN;
+IUnknownVtbl *get_delegating_vtbl(DWORD num_methods) DECLSPEC_HIDDEN;
+void release_delegating_vtbl(IUnknownVtbl *vtbl) DECLSPEC_HIDDEN;
 
 #endif  /* __WINE_CPSF_H */