ReactOS 0.4.16-dev-1946-g52006dd
cpsf.h
Go to the documentation of this file.
1/*
2 * COM proxy definitions
3 *
4 * Copyright 2001 Ove Kåven, TransGaming Technologies
5 *
6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Lesser General Public
8 * License as published by the Free Software Foundation; either
9 * version 2.1 of the License, or (at your option) any later version.
10 *
11 * This library is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * Lesser General Public License for more details.
15 *
16 * You should have received a copy of the GNU Lesser General Public
17 * License along with this library; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
19 */
20
21#ifndef __WINE_CPSF_H
22#define __WINE_CPSF_H
23
24typedef struct
25{
27 void **PVtbl;
29 const IID *piid;
31 /* offset of base_object from PVtbl must match assembly thunks; see
32 * fill_delegated_proxy_table() */
39
40typedef struct
41{
46
47HRESULT StdProxy_Construct(REFIID riid, LPUNKNOWN pUnkOuter, const ProxyFileInfo *ProxyInfo,
48 int Index, LPPSFACTORYBUFFER pPSFactory, LPRPCPROXYBUFFER *ppProxy,
49 LPVOID *ppvObj);
54
56 CInterfaceStubVtbl *vtbl, LPPSFACTORYBUFFER pPSFactory,
57 LPRPCSTUBBUFFER *ppStub);
58
60 CInterfaceStubVtbl *vtbl, REFIID delegating_iid,
61 LPPSFACTORYBUFFER pPSFactory, LPRPCSTUBBUFFER *ppStub);
62
64
65extern const IRpcStubBufferVtbl CStdStubBuffer_Vtbl;
66extern const IRpcStubBufferVtbl CStdStubBuffer_Delegating_Vtbl;
67
68BOOL fill_delegated_proxy_table(IUnknownVtbl *vtbl, DWORD num);
69HRESULT create_proxy(REFIID iid, IUnknown *pUnkOuter, IRpcProxyBuffer **pproxy, void **ppv);
71BOOL fill_stubless_table(IUnknownVtbl *vtbl, DWORD num);
72const IUnknownVtbl *get_delegating_vtbl(DWORD num_methods);
73
74#define NB_THUNK_ENTRIES 1024
75
77{
78 IUnknownVtbl vtbl;
79 const void *methods[NB_THUNK_ENTRIES - 3];
80};
81
82extern const struct delegating_vtbl delegating_vtbl;
83
84#endif /* __WINE_CPSF_H */
HRESULT WINAPI StdProxy_QueryInterface(IRpcProxyBuffer *iface, REFIID iid, void **obj)
Definition: cproxy.c:137
const MIDL_SERVER_INFO * CStdStubBuffer_GetServerInfo(IRpcStubBuffer *iface)
Definition: cstub.c:411
#define NB_THUNK_ENTRIES
Definition: cpsf.h:74
HRESULT CStdStubBuffer_Construct(REFIID riid, LPUNKNOWN pUnkServer, PCInterfaceName name, CInterfaceStubVtbl *vtbl, LPPSFACTORYBUFFER pPSFactory, LPRPCSTUBBUFFER *ppStub)
Definition: cstub.c:66
const IRpcStubBufferVtbl CStdStubBuffer_Delegating_Vtbl
Definition: cstub.c:397
HRESULT create_stub(REFIID iid, IUnknown *pUnk, IRpcStubBuffer **ppstub)
Definition: ndr_ole.c:430
BOOL fill_delegated_proxy_table(IUnknownVtbl *vtbl, DWORD num)
Definition: cstub.c:106
HRESULT CStdStubBuffer_Delegating_Construct(REFIID riid, LPUNKNOWN pUnkServer, PCInterfaceName name, CInterfaceStubVtbl *vtbl, REFIID delegating_iid, LPPSFACTORYBUFFER pPSFactory, LPRPCSTUBBUFFER *ppStub)
Definition: cstub.c:134
HRESULT create_proxy(REFIID iid, IUnknown *pUnkOuter, IRpcProxyBuffer **pproxy, void **ppv)
Definition: ndr_ole.c:408
const IUnknownVtbl * get_delegating_vtbl(DWORD num_methods)
Definition: cstub.c:124
HRESULT WINAPI StdProxy_Connect(IRpcProxyBuffer *iface, IRpcChannelBuffer *channel)
Definition: cproxy.c:188
void WINAPI StdProxy_Disconnect(IRpcProxyBuffer *iface)
Definition: cproxy.c:199
const IRpcStubBufferVtbl CStdStubBuffer_Vtbl
Definition: cstub.c:348
BOOL fill_stubless_table(IUnknownVtbl *vtbl, DWORD num)
Definition: cproxy.c:56
HRESULT StdProxy_Construct(REFIID riid, LPUNKNOWN pUnkOuter, const ProxyFileInfo *ProxyInfo, int Index, LPPSFACTORYBUFFER pPSFactory, LPRPCPROXYBUFFER *ppProxy, LPVOID *ppvObj)
Definition: cproxy.c:73
ULONG WINAPI StdProxy_AddRef(IRpcProxyBuffer *iface)
Definition: cproxy.c:158
static LPVOID LPUNKNOWN
Definition: dinput.c:53
static void *static void *static LPDIRECTPLAY IUnknown * pUnk
Definition: dplayx.c:30
unsigned int BOOL
Definition: ntddk_ex.h:94
unsigned long DWORD
Definition: ntddk_ex.h:95
GLuint GLuint num
Definition: glext.h:9618
REFIID riid
Definition: atlbase.h:39
REFIID LPVOID * ppv
Definition: atlbase.h:39
interface IRpcStubBuffer * LPRPCSTUBBUFFER
Definition: objfwd.h:41
interface IRpcProxyBuffer * LPRPCPROXYBUFFER
Definition: objfwd.h:40
long LONG
Definition: pedump.c:60
#define REFIID
Definition: guiddef.h:118
const char * PCInterfaceName
Definition: rpcproxy.h:41
PCInterfaceName name
Definition: cpsf.h:35
const IID * piid
Definition: cpsf.h:29
LONG RefCount
Definition: cpsf.h:28
IUnknown * pUnkOuter
Definition: cpsf.h:30
IPSFactoryBuffer * pPSFactory
Definition: cpsf.h:36
IRpcProxyBuffer * base_proxy
Definition: cpsf.h:34
IRpcChannelBuffer * pChannel
Definition: cpsf.h:37
IUnknown * base_object
Definition: cpsf.h:33
void ** PVtbl
Definition: cpsf.h:27
IRpcProxyBuffer IRpcProxyBuffer_iface
Definition: cpsf.h:26
CStdStubBuffer stub_buffer
Definition: cpsf.h:44
IRpcStubBuffer * base_stub
Definition: cpsf.h:43
IUnknownVtbl vtbl
Definition: cpsf.h:78
const void * methods[NB_THUNK_ENTRIES - 3]
Definition: cpsf.h:79
Definition: name.c:39
uint32_t ULONG
Definition: typedefs.h:59
_In_ WDFCOLLECTION _In_ ULONG Index
#define WINAPI
Definition: msvc.h:6