Go to the source code of this file.
|
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, LPRPCSTUBBUFFER *ppStub) DECLSPEC_HIDDEN |
|
HRESULT | CStdStubBuffer_Delegating_Construct (REFIID riid, LPUNKNOWN pUnkServer, PCInterfaceName name, CInterfaceStubVtbl *vtbl, REFIID delegating_iid, LPPSFACTORYBUFFER pPSFactory, LPRPCSTUBBUFFER *ppStub) DECLSPEC_HIDDEN |
|
const MIDL_SERVER_INFO * | CStdStubBuffer_GetServerInfo (IRpcStubBuffer *iface) 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 |
|
◆ create_proxy()
Definition at line 442 of file ndr_ole.c.
443{
447
449
450 r = COM_GetPSClsid( iid, &
clsid );
452
453 r = COM_GetClassObject( &
clsid, CLSCTX_INPROC_SERVER,
NULL, &IID_IPSFactoryBuffer, (
void**)&psfac );
455
456 r = IPSFactoryBuffer_CreateProxy(psfac, pUnkOuter, iid, pproxy,
ppv);
457
458 IPSFactoryBuffer_Release(psfac);
460}
GLdouble GLdouble GLdouble r
static HMODULE LoadCOM(void)
Referenced by StdProxy_Construct(), and typelib_proxy_init().
◆ create_stub()
Definition at line 466 of file ndr_ole.c.
467{
471
473
474 r = COM_GetPSClsid( iid, &
clsid );
476
477 r = COM_GetClassObject( &
clsid, CLSCTX_INPROC_SERVER,
NULL, &IID_IPSFactoryBuffer, (
void**)&psfac );
479
480 r = IPSFactoryBuffer_CreateStub(psfac, iid,
pUnk, ppstub);
481
482 IPSFactoryBuffer_Release(psfac);
484}
static void *static void *static LPDIRECTPLAY IUnknown * pUnk
Referenced by CStdStubBuffer_Delegating_Construct(), test_Connect(), test_CreateStub(), test_delegating_Invoke(), test_Disconnect(), test_Release(), and typelib_stub_init().
◆ CStdStubBuffer_Construct()
Definition at line 55 of file cstub.c.
61{
65 TRACE(
"(%p,%p,%p,%p) %s\n", pUnkServer, vtbl, pPSFactory, ppStub,
name);
68
70 ERR(
"IID mismatch during stub creation\n");
72 }
73
74 r = IUnknown_QueryInterface(pUnkServer,
riid, (
void**)&pvServer);
77
80 IUnknown_Release(pvServer);
82 }
83
86 This->pvServerObject = pvServer;
87 This->pPSFactory = pPSFactory;
89
90 IPSFactoryBuffer_AddRef(pPSFactory);
92}
interface IRpcStubBuffer * LPRPCSTUBBUFFER
#define IsEqualGUID(rguid1, rguid2)
CInterfaceStubHeader header
Referenced by CStdPSFactory_CreateStub().
◆ CStdStubBuffer_Delegating_Construct()
Definition at line 340 of file cstub.c.
347{
351
352 TRACE(
"(%p,%p,%p,%p) %s\n", pUnkServer, vtbl, pPSFactory, ppStub,
name);
355
357 {
358 ERR(
"IID mismatch during stub creation\n");
360 }
361
362 r = IUnknown_QueryInterface(pUnkServer,
riid, (
void**)&pvServer);
364
367 {
368 IUnknown_Release(pvServer);
370 }
371
375 {
378 IUnknown_Release(pvServer);
380 }
381
382 This->stub_buffer.lpVtbl = &vtbl->
Vtbl;
383 This->stub_buffer.RefCount = 1;
384 This->stub_buffer.pvServerObject = pvServer;
385 This->stub_buffer.pPSFactory = pPSFactory;
387
388 IPSFactoryBuffer_AddRef(pPSFactory);
390}
HRESULT create_stub(REFIID iid, IUnknown *pUnk, IRpcStubBuffer **ppstub) DECLSPEC_HIDDEN
#define HeapFree(x, y, z)
void release_delegating_vtbl(IUnknownVtbl *vtbl)
IUnknownVtbl * get_delegating_vtbl(DWORD num_methods)
Referenced by CStdPSFactory_CreateStub().
◆ CStdStubBuffer_GetServerInfo()
◆ fill_delegated_proxy_table()
BOOL fill_delegated_proxy_table |
( |
IUnknownVtbl * |
vtbl, |
|
|
DWORD |
num |
|
) |
| |
Definition at line 266 of file cstub.c.
267{
268 const void **
entry = (
const void **)(vtbl + 1);
270
272 {
273 FIXME(
"%u methods not supported\n",
num );
275 }
280 {
285 }
287}
ULONG WINAPI IUnknown_AddRef_Proxy(LPUNKNOWN iface)
ULONG WINAPI IUnknown_Release_Proxy(LPUNKNOWN iface)
HRESULT WINAPI IUnknown_QueryInterface_Proxy(LPUNKNOWN iface, REFIID riid, LPVOID *ppvObj)
static const vtbl_method_t * method_blocks[MAX_BLOCKS]
static const vtbl_method_t * allocate_block(unsigned int num)
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint GLint GLint j
static unsigned int block
Referenced by CreateProxyFromTypeInfo(), and init_psfactory().
◆ fill_stubless_table()
BOOL fill_stubless_table |
( |
IUnknownVtbl * |
vtbl, |
|
|
DWORD |
num |
|
) |
| |
Definition at line 285 of file cproxy.c.
286{
287 const void **
entry = (
const void **)(vtbl + 1);
289
291 {
292 FIXME(
"%u methods not supported\n",
num );
294 }
296 {
301 }
303}
static const struct thunk * allocate_block(unsigned int num)
static const struct thunk * method_blocks[MAX_BLOCKS]
Referenced by StdProxy_Construct(), and typelib_proxy_init().
◆ get_delegating_vtbl()
IUnknownVtbl * get_delegating_vtbl |
( |
DWORD |
num_methods | ) |
|
Definition at line 289 of file cstub.c.
290{
292
293 if (num_methods < 256) num_methods = 256;
294
296
298 {
302 {
305 }
306
308 table->size = num_methods;
310
312 {
313 TRACE(
"freeing old table\n");
315 }
317 }
318
323}
static CRITICAL_SECTION delegating_vtbl_section
static BOOL fill_delegated_stub_table(IUnknownVtbl *vtbl, DWORD num)
static ref_counted_vtbl * current_vtbl
#define FIELD_OFFSET(t, f)
void WINAPI LeaveCriticalSection(LPCRITICAL_SECTION)
void WINAPI EnterCriticalSection(LPCRITICAL_SECTION)
Referenced by CStdStubBuffer_Delegating_Construct(), and typelib_stub_init().
◆ release_delegating_vtbl()
void release_delegating_vtbl |
( |
IUnknownVtbl * |
vtbl | ) |
|
◆ StdProxy_AddRef()
Definition at line 390 of file cproxy.c.
391{
394
396}
#define InterlockedIncrement
static StdProxyImpl * impl_from_IRpcProxyBuffer(IRpcProxyBuffer *iface)
◆ StdProxy_Connect()
Definition at line 420 of file cproxy.c.
421{
423 TRACE(
"(%p)->Connect(%p)\n",
This,pChannel);
424
425 This->pChannel = pChannel;
426 IRpcChannelBuffer_AddRef(pChannel);
427 if (
This->base_proxy) IRpcProxyBuffer_Connect(
This->base_proxy, pChannel );
429}
◆ StdProxy_Construct()
Definition at line 305 of file cproxy.c.
312{
316
317 TRACE(
"(%p,%p,%p,%p,%p) %s\n", pUnkOuter, vtbl, pPSFactory, ppProxy, ppvObj,
name);
318
319
325 }
326
328 ERR(
"IID mismatch during proxy creation\n");
330 }
331
334
338
343 This->pUnkOuter = pUnkOuter;
345 This->pPSFactory = pPSFactory;
347
349 {
351 &
This->base_proxy, (
void **)&
This->base_object );
353 {
356 }
357 }
358
359 *ppProxy = &
This->IRpcProxyBuffer_iface;
360 *ppvObj = &
This->PVtbl;
361 IUnknown_AddRef((
IUnknown *)*ppvObj);
362 IPSFactoryBuffer_AddRef(pPSFactory);
363
364 TRACE(
"iid=%s this %p proxy %p obj %p vtbl %p base proxy %p base obj %p\n",
367}
BOOL fill_stubless_table(IUnknownVtbl *vtbl, DWORD num)
static const IRpcProxyBufferVtbl StdProxy_Vtbl
HRESULT create_proxy(REFIID iid, IUnknown *pUnkOuter, IRpcProxyBuffer **pproxy, void **ppv) DECLSPEC_HIDDEN
GLuint GLuint GLsizei count
const char * PCInterfaceName
CInterfaceProxyHeader header
unsigned short TableVersion
const IID ** pDelegatedIIDs
const PCInterfaceStubVtblList * pStubVtblList
const PCInterfaceProxyVtblList * pProxyVtblList
const PCInterfaceName * pNamesArray
_In_ WDFCOLLECTION _In_ ULONG Index
Referenced by CStdPSFactory_CreateProxy().
◆ StdProxy_Disconnect()
Definition at line 431 of file cproxy.c.
432{
435
436 if (
This->base_proxy) IRpcProxyBuffer_Disconnect(
This->base_proxy );
437
438 IRpcChannelBuffer_Release(
This->pChannel);
440}
◆ StdProxy_QueryInterface()
Definition at line 369 of file cproxy.c.
370{
373
379 }
380
382 *
obj = &
This->IRpcProxyBuffer_iface;
385 }
386
388}
◆ DECLSPEC_HIDDEN