ReactOS 0.4.16-dev-1946-g52006dd
ndr_ole.c File Reference
#include <stdarg.h>
#include <stdio.h>
#include <string.h>
#include "windef.h"
#include "winbase.h"
#include "winerror.h"
#include "objbase.h"
#include "ndr_misc.h"
#include "rpcndr.h"
#include "ndrtypes.h"
#include "rpcproxy.h"
#include "cpsf.h"
#include "wine/debug.h"
Include dependency graph for ndr_ole.c:

Go to the source code of this file.

Classes

struct  RpcStreamImpl
 

Macros

#define COBJMACROS
 

Typedefs

typedef struct RpcStreamImpl RpcStreamImpl
 

Functions

 WINE_DEFAULT_DEBUG_CHANNEL (ole)
 
static RpcStreamImplimpl_from_IStream (IStream *iface)
 
static HRESULT WINAPI RpcStream_QueryInterface (LPSTREAM iface, REFIID riid, LPVOID *obj)
 
static ULONG WINAPI RpcStream_AddRef (LPSTREAM iface)
 
static ULONG WINAPI RpcStream_Release (LPSTREAM iface)
 
static HRESULT WINAPI RpcStream_Read (LPSTREAM iface, void *pv, ULONG cb, ULONG *pcbRead)
 
static HRESULT WINAPI RpcStream_Write (LPSTREAM iface, const void *pv, ULONG cb, ULONG *pcbWritten)
 
static HRESULT WINAPI RpcStream_Seek (LPSTREAM iface, LARGE_INTEGER move, DWORD origin, ULARGE_INTEGER *newPos)
 
static HRESULT WINAPI RpcStream_SetSize (LPSTREAM iface, ULARGE_INTEGER newSize)
 
static HRESULT WINAPI RpcStream_CopyTo (IStream *iface, IStream *dest, ULARGE_INTEGER len, ULARGE_INTEGER *read, ULARGE_INTEGER *written)
 
static HRESULT WINAPI RpcStream_Commit (IStream *iface, DWORD flags)
 
static HRESULT WINAPI RpcStream_Revert (IStream *iface)
 
static HRESULT WINAPI RpcStream_LockRegion (IStream *iface, ULARGE_INTEGER offset, ULARGE_INTEGER len, DWORD locktype)
 
static HRESULT WINAPI RpcStream_UnlockRegion (IStream *iface, ULARGE_INTEGER offset, ULARGE_INTEGER len, DWORD locktype)
 
static HRESULT WINAPI RpcStream_Stat (IStream *iface, STATSTG *stat, DWORD flag)
 
static HRESULT WINAPI RpcStream_Clone (IStream *iface, IStream **cloned)
 
static HRESULT RpcStream_Create (PMIDL_STUB_MESSAGE pStubMsg, BOOL init, ULONG *size, IStream **stream)
 
static const IIDget_ip_iid (PMIDL_STUB_MESSAGE pStubMsg, unsigned char *pMemory, PFORMAT_STRING pFormat)
 
unsigned char *WINAPI NdrInterfacePointerMarshall (PMIDL_STUB_MESSAGE pStubMsg, unsigned char *pMemory, PFORMAT_STRING pFormat)
 
unsigned char *WINAPI NdrInterfacePointerUnmarshall (PMIDL_STUB_MESSAGE pStubMsg, unsigned char **ppMemory, PFORMAT_STRING pFormat, unsigned char fMustAlloc)
 
void WINAPI NdrInterfacePointerBufferSize (PMIDL_STUB_MESSAGE pStubMsg, unsigned char *pMemory, PFORMAT_STRING pFormat)
 
ULONG WINAPI NdrInterfacePointerMemorySize (PMIDL_STUB_MESSAGE pStubMsg, PFORMAT_STRING pFormat)
 
void WINAPI NdrInterfacePointerFree (PMIDL_STUB_MESSAGE pStubMsg, unsigned char *pMemory, PFORMAT_STRING pFormat)
 
void *WINAPI NdrOleAllocate (SIZE_T Size)
 
void WINAPI NdrOleFree (void *NodeToFree)
 
HRESULT create_proxy (REFIID iid, IUnknown *pUnkOuter, IRpcProxyBuffer **pproxy, void **ppv)
 
HRESULT create_stub (REFIID iid, IUnknown *pUnk, IRpcStubBuffer **ppstub)
 

Variables

static const IStreamVtbl RpcStream_Vtbl
 

Macro Definition Documentation

◆ COBJMACROS

#define COBJMACROS

Definition at line 28 of file ndr_ole.c.

Typedef Documentation

◆ RpcStreamImpl

Function Documentation

◆ create_proxy()

HRESULT create_proxy ( REFIID  iid,
IUnknown pUnkOuter,
IRpcProxyBuffer **  pproxy,
void **  ppv 
)

Definition at line 408 of file ndr_ole.c.

409{
410 CLSID clsid;
411 IPSFactoryBuffer *psfac;
412 HRESULT r;
413
414 r = CoGetPSClsid(iid, &clsid);
415 if(FAILED(r)) return r;
416
417 r = CoGetClassObject(&clsid, CLSCTX_INPROC_SERVER, NULL, &IID_IPSFactoryBuffer, (void **)&psfac);
418 if(FAILED(r)) return r;
419
420 r = IPSFactoryBuffer_CreateProxy(psfac, pUnkOuter, iid, pproxy, ppv);
421
422 IPSFactoryBuffer_Release(psfac);
423 return r;
424}
#define NULL
Definition: types.h:112
HRESULT WINAPI CoGetPSClsid(REFIID riid, CLSID *pclsid)
Definition: compobj.c:2690
HRESULT WINAPI DECLSPEC_HOTPATCH CoGetClassObject(REFCLSID rclsid, DWORD dwClsContext, COSERVERINFO *pServerInfo, REFIID iid, LPVOID *ppv)
Definition: compobj.c:3103
GLdouble GLdouble GLdouble r
Definition: gl.h:2055
REFIID LPVOID * ppv
Definition: atlbase.h:39
#define FAILED(hr)
Definition: intsafe.h:51
const CLSID * clsid
Definition: msctf.cpp:50

Referenced by StdProxy_Construct(), and typelib_proxy_init().

◆ create_stub()

HRESULT create_stub ( REFIID  iid,
IUnknown pUnk,
IRpcStubBuffer **  ppstub 
)

Definition at line 430 of file ndr_ole.c.

431{
432 CLSID clsid;
433 IPSFactoryBuffer *psfac;
434 HRESULT r;
435
436 r = CoGetPSClsid(iid, &clsid);
437 if(FAILED(r)) return r;
438
439 r = CoGetClassObject(&clsid, CLSCTX_INPROC_SERVER, NULL, &IID_IPSFactoryBuffer, (void **)&psfac);
440 if(FAILED(r)) return r;
441
442 r = IPSFactoryBuffer_CreateStub(psfac, iid, pUnk, ppstub);
443
444 IPSFactoryBuffer_Release(psfac);
445 return r;
446}
static void *static void *static LPDIRECTPLAY IUnknown * pUnk
Definition: dplayx.c:30

Referenced by CStdStubBuffer_Delegating_Construct(), test_Connect(), test_CreateStub(), test_delegating_Invoke(), test_Disconnect(), test_Release(), and typelib_stub_init().

◆ get_ip_iid()

static const IID * get_ip_iid ( PMIDL_STUB_MESSAGE  pStubMsg,
unsigned char pMemory,
PFORMAT_STRING  pFormat 
)
static

Definition at line 257 of file ndr_ole.c.

258{
259 const IID *riid;
260 if (!pFormat) return &IID_IUnknown;
261 TRACE("format=%02x %02x\n", pFormat[0], pFormat[1]);
262 if (pFormat[0] != FC_IP) FIXME("format=%d\n", pFormat[0]);
263 if (pFormat[1] == FC_CONSTANT_IID) {
264 riid = (const IID *)&pFormat[2];
265 } else {
266 ComputeConformance(pStubMsg, pMemory, pFormat+2, 0);
267 riid = (const IID *)pStubMsg->MaxCount;
268 }
269 if (!riid) riid = &IID_IUnknown;
270 TRACE("got %s\n", debugstr_guid(riid));
271 return riid;
272}
#define FIXME(fmt,...)
Definition: precomp.h:53
const GUID IID_IUnknown
FxMemoryObject * pMemory
REFIID riid
Definition: atlbase.h:39
#define debugstr_guid
Definition: kernel32.h:35
static PFORMAT_STRING ComputeConformance(PMIDL_STUB_MESSAGE pStubMsg, unsigned char *pMemory, PFORMAT_STRING pFormat, ULONG def)
Definition: ndr_misc.h:37
@ FC_CONSTANT_IID
Definition: ndrtypes.h:251
@ FC_IP
Definition: ndrtypes.h:189
#define TRACE(s)
Definition: solgame.cpp:4
ULONG_PTR MaxCount
Definition: rpcndr.h:204

Referenced by NdrInterfacePointerBufferSize(), and NdrInterfacePointerMarshall().

◆ impl_from_IStream()

static RpcStreamImpl * impl_from_IStream ( IStream iface)
inlinestatic

◆ NdrInterfacePointerBufferSize()

void WINAPI NdrInterfacePointerBufferSize ( PMIDL_STUB_MESSAGE  pStubMsg,
unsigned char pMemory,
PFORMAT_STRING  pFormat 
)

Definition at line 342 of file ndr_ole.c.

345{
346 const IID *riid = get_ip_iid(pStubMsg, pMemory, pFormat);
347 ULONG size = 0;
348
349 TRACE("(%p,%p,%p)\n", pStubMsg, pMemory, pFormat);
351 pStubMsg->dwDestContext, pStubMsg->pvDestContext,
352 MSHLFLAGS_NORMAL);
353 TRACE("size=%ld\n", size);
354 pStubMsg->BufferLength += sizeof(DWORD) + size;
355}
HRESULT WINAPI CoGetMarshalSizeMax(ULONG *pulSize, REFIID riid, IUnknown *pUnk, DWORD dwDestContext, void *pvDestContext, DWORD mshlFlags)
Definition: marshal.c:1800
GLsizeiptr size
Definition: glext.h:5919
static const IID * get_ip_iid(PMIDL_STUB_MESSAGE pStubMsg, unsigned char *pMemory, PFORMAT_STRING pFormat)
Definition: ndr_ole.c:257
#define DWORD
Definition: nt_native.h:44
void * pvDestContext
Definition: rpcndr.h:233
ULONG BufferLength
Definition: rpcndr.h:190
DWORD dwDestContext
Definition: rpcndr.h:232
uint32_t ULONG
Definition: typedefs.h:59

Referenced by test_iface_ptr().

◆ NdrInterfacePointerFree()

void WINAPI NdrInterfacePointerFree ( PMIDL_STUB_MESSAGE  pStubMsg,
unsigned char pMemory,
PFORMAT_STRING  pFormat 
)

Definition at line 379 of file ndr_ole.c.

382{
384 TRACE("(%p,%p,%p)\n", pStubMsg, pMemory, pFormat);
385 if (pUnk) IUnknown_Release(pUnk);
386}
static LPVOID LPUNKNOWN
Definition: dinput.c:53

Referenced by test_iface_ptr().

◆ NdrInterfacePointerMarshall()

unsigned char *WINAPI NdrInterfacePointerMarshall ( PMIDL_STUB_MESSAGE  pStubMsg,
unsigned char pMemory,
PFORMAT_STRING  pFormat 
)

Definition at line 277 of file ndr_ole.c.

280{
281 const IID *riid = get_ip_iid(pStubMsg, pMemory, pFormat);
283 HRESULT hr;
284
285 TRACE("(%p,%p,%p)\n", pStubMsg, pMemory, pFormat);
286 pStubMsg->MaxCount = 0;
287 if (pStubMsg->Buffer + sizeof(DWORD) <= (unsigned char *)pStubMsg->RpcMsg->Buffer + pStubMsg->BufferLength) {
288 hr = RpcStream_Create(pStubMsg, TRUE, NULL, &stream);
289 if (hr == S_OK) {
290 if (pMemory)
292 pStubMsg->dwDestContext, pStubMsg->pvDestContext,
293 MSHLFLAGS_NORMAL);
294 IStream_Release(stream);
295 }
296
297 if (FAILED(hr))
299 }
300 return NULL;
301}
#define TRUE
Definition: types.h:120
HRESULT WINAPI CoMarshalInterface(IStream *pStream, REFIID riid, IUnknown *pUnk, DWORD dwDestContext, void *pvDestContext, DWORD mshlFlags)
Definition: marshal.c:1876
unsigned long DWORD
Definition: ntddk_ex.h:95
#define S_OK
Definition: intsafe.h:52
static HRESULT RpcStream_Create(PMIDL_STUB_MESSAGE pStubMsg, BOOL init, ULONG *size, IStream **stream)
Definition: ndr_ole.c:236
interface IStream * LPSTREAM
Definition: objfwd.h:10
void DECLSPEC_NORETURN WINAPI RpcRaiseException(RPC_STATUS exception)
Definition: rpcrt4_main.c:213
HRESULT hr
Definition: shlfolder.c:183
unsigned char * Buffer
Definition: rpcndr.h:186
PRPC_MESSAGE RpcMsg
Definition: rpcndr.h:185
void * Buffer
Definition: rpcdcep.h:40
Definition: parse.h:23

Referenced by test_iface_ptr().

◆ NdrInterfacePointerMemorySize()

ULONG WINAPI NdrInterfacePointerMemorySize ( PMIDL_STUB_MESSAGE  pStubMsg,
PFORMAT_STRING  pFormat 
)

Definition at line 360 of file ndr_ole.c.

362{
363 ULONG size;
364
365 TRACE("(%p,%p)\n", pStubMsg, pFormat);
366
367 size = *(ULONG *)pStubMsg->Buffer;
368 pStubMsg->Buffer += 4;
369 pStubMsg->MemorySize += 4;
370
371 pStubMsg->Buffer += size;
372
373 return pStubMsg->MemorySize;
374}
ULONG MemorySize
Definition: rpcndr.h:191

◆ NdrInterfacePointerUnmarshall()

unsigned char *WINAPI NdrInterfacePointerUnmarshall ( PMIDL_STUB_MESSAGE  pStubMsg,
unsigned char **  ppMemory,
PFORMAT_STRING  pFormat,
unsigned char  fMustAlloc 
)

Definition at line 306 of file ndr_ole.c.

310{
311 IUnknown **unk = (IUnknown **)ppMemory;
313 HRESULT hr;
314
315 TRACE("(%p,%p,%p,%d)\n", pStubMsg, ppMemory, pFormat, fMustAlloc);
316
317 /* Avoid reference leaks for [in, out] pointers. */
318 if (pStubMsg->IsClient && *unk)
319 IUnknown_Release(*unk);
320
321 *unk = NULL;
322 if (pStubMsg->Buffer + sizeof(DWORD) < (unsigned char *)pStubMsg->RpcMsg->Buffer + pStubMsg->BufferLength) {
323 ULONG size;
324
325 hr = RpcStream_Create(pStubMsg, FALSE, &size, &stream);
326 if (hr == S_OK) {
327 if (size != 0)
328 hr = CoUnmarshalInterface(stream, &IID_NULL, (void **)unk);
329
330 IStream_Release(stream);
331 }
332
333 if (FAILED(hr))
335 }
336 return NULL;
337}
#define FALSE
Definition: types.h:117
HRESULT WINAPI CoUnmarshalInterface(IStream *pStream, REFIID riid, LPVOID *ppv)
Definition: marshal.c:1981
#define IID_NULL
Definition: guiddef.h:98
unsigned char IsClient
Definition: rpcndr.h:193

Referenced by test_iface_ptr().

◆ NdrOleAllocate()

void *WINAPI NdrOleAllocate ( SIZE_T  Size)

Definition at line 391 of file ndr_ole.c.

392{
393 return CoTaskMemAlloc(Size);
394}
LPVOID WINAPI CoTaskMemAlloc(SIZE_T size)
Definition: ifs.c:426
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_DEVICE_PROPERTY_DATA _In_ DEVPROPTYPE _In_ ULONG Size
Definition: wdfdevice.h:4539

Referenced by determine_pointer_marshalling_style(), init_stub_desc(), test_conf_complex_array(), test_conf_complex_struct(), test_conformant_array(), test_conformant_string(), test_iface_ptr(), test_ndr_simple_type(), test_nonconformant_string(), test_nontrivial_pointer_types(), test_pointer_marshal(), test_simple_struct_marshal(), and test_struct_align().

◆ NdrOleFree()

◆ RpcStream_AddRef()

static ULONG WINAPI RpcStream_AddRef ( LPSTREAM  iface)
static

Definition at line 79 of file ndr_ole.c.

80{
82 return InterlockedIncrement( &This->RefCount );
83}
#define InterlockedIncrement
Definition: armddk.h:53
static RpcStreamImpl * impl_from_IStream(IStream *iface)
Definition: ndr_ole.c:58

◆ RpcStream_Clone()

static HRESULT WINAPI RpcStream_Clone ( IStream iface,
IStream **  cloned 
)
static

Definition at line 211 of file ndr_ole.c.

212{
214 FIXME("(%p): stub\n", This);
215 return E_NOTIMPL;
216}
#define E_NOTIMPL
Definition: ddrawi.h:99

◆ RpcStream_Commit()

static HRESULT WINAPI RpcStream_Commit ( IStream iface,
DWORD  flags 
)
static

Definition at line 174 of file ndr_ole.c.

175{
177 FIXME("(%p)->(0x%08lx): stub\n", This, flags);
178 return E_NOTIMPL;
179}
GLbitfield flags
Definition: glext.h:7161

◆ RpcStream_CopyTo()

static HRESULT WINAPI RpcStream_CopyTo ( IStream iface,
IStream dest,
ULARGE_INTEGER  len,
ULARGE_INTEGER read,
ULARGE_INTEGER written 
)
static

Definition at line 166 of file ndr_ole.c.

168{
170 FIXME("(%p): stub\n", This);
171 return E_NOTIMPL;
172}

◆ RpcStream_Create()

static HRESULT RpcStream_Create ( PMIDL_STUB_MESSAGE  pStubMsg,
BOOL  init,
ULONG size,
IStream **  stream 
)
static

Definition at line 236 of file ndr_ole.c.

237{
239
240 *stream = NULL;
241 This = malloc(sizeof(RpcStreamImpl));
242 if (!This) return E_OUTOFMEMORY;
243 This->IStream_iface.lpVtbl = &RpcStream_Vtbl;
244 This->RefCount = 1;
245 This->pMsg = pStubMsg;
246 This->size = (LPDWORD)pStubMsg->Buffer;
247 This->data = pStubMsg->Buffer + sizeof(DWORD);
248 This->pos = 0;
249 if (init) *This->size = 0;
250 TRACE("init size=%ld\n", *This->size);
251
252 if (size) *size = *This->size;
253 *stream = &This->IStream_iface;
254 return S_OK;
255}
#define E_OUTOFMEMORY
Definition: ddrawi.h:100
#define malloc
Definition: debug_ros.c:4
static const IStreamVtbl RpcStream_Vtbl
Definition: ndr_ole.c:218
#define LPDWORD
Definition: nt_native.h:46
static int init
Definition: wintirpc.c:33

Referenced by NdrInterfacePointerMarshall(), and NdrInterfacePointerUnmarshall().

◆ RpcStream_LockRegion()

static HRESULT WINAPI RpcStream_LockRegion ( IStream iface,
ULARGE_INTEGER  offset,
ULARGE_INTEGER  len,
DWORD  locktype 
)
static

Definition at line 188 of file ndr_ole.c.

190{
192 FIXME("(%p): stub\n", This);
193 return E_NOTIMPL;
194}

◆ RpcStream_QueryInterface()

static HRESULT WINAPI RpcStream_QueryInterface ( LPSTREAM  iface,
REFIID  riid,
LPVOID obj 
)
static

Definition at line 63 of file ndr_ole.c.

66{
68 IsEqualGUID(&IID_ISequentialStream, riid) ||
69 IsEqualGUID(&IID_IStream, riid)) {
70 *obj = iface;
71 IStream_AddRef(iface);
72 return S_OK;
73 }
74
75 *obj = NULL;
76 return E_NOINTERFACE;
77}
#define IsEqualGUID(rguid1, rguid2)
Definition: guiddef.h:147
#define E_NOINTERFACE
Definition: winerror.h:3479

◆ RpcStream_Read()

static HRESULT WINAPI RpcStream_Read ( LPSTREAM  iface,
void pv,
ULONG  cb,
ULONG pcbRead 
)
static

Definition at line 97 of file ndr_ole.c.

101{
103 HRESULT hr = S_OK;
104 if (This->pos + cb > *This->size)
105 {
106 cb = *This->size - This->pos;
107 hr = S_FALSE;
108 }
109 if (cb) {
110 memcpy(pv, This->data + This->pos, cb);
111 This->pos += cb;
112 }
113 if (pcbRead) *pcbRead = cb;
114 return hr;
115}
#define memcpy(s1, s2, n)
Definition: mkisofs.h:878
static HMODULE MODULEINFO DWORD cb
Definition: module.c:33
#define S_FALSE
Definition: winerror.h:3451

◆ RpcStream_Release()

static ULONG WINAPI RpcStream_Release ( LPSTREAM  iface)
static

Definition at line 85 of file ndr_ole.c.

86{
88 ULONG ref = InterlockedDecrement( &This->RefCount );
89 if (!ref) {
90 TRACE("size=%ld\n", *This->size);
91 This->pMsg->Buffer = This->data + *This->size;
92 free(This);
93 }
94 return ref;
95}
#define InterlockedDecrement
Definition: armddk.h:52
#define free
Definition: debug_ros.c:5
Definition: send.c:48

◆ RpcStream_Revert()

static HRESULT WINAPI RpcStream_Revert ( IStream iface)
static

Definition at line 181 of file ndr_ole.c.

182{
184 FIXME("(%p): stub\n", This);
185 return E_NOTIMPL;
186}

◆ RpcStream_Seek()

static HRESULT WINAPI RpcStream_Seek ( LPSTREAM  iface,
LARGE_INTEGER  move,
DWORD  origin,
ULARGE_INTEGER newPos 
)
static

Definition at line 132 of file ndr_ole.c.

136{
138 switch (origin) {
139 case STREAM_SEEK_SET:
140 This->pos = move.LowPart;
141 break;
142 case STREAM_SEEK_CUR:
143 This->pos = This->pos + move.LowPart;
144 break;
145 case STREAM_SEEK_END:
146 This->pos = *This->size + move.LowPart;
147 break;
148 default:
150 }
151 if (newPos) {
152 newPos->u.LowPart = This->pos;
153 newPos->u.HighPart = 0;
154 }
155 return S_OK;
156}
voidpf uLong int origin
Definition: ioapi.h:144
struct _ULARGE_INTEGER::@4434 u
ULONG LowPart
Definition: typedefs.h:106
#define STG_E_INVALIDFUNCTION
Definition: winerror.h:3659

◆ RpcStream_SetSize()

static HRESULT WINAPI RpcStream_SetSize ( LPSTREAM  iface,
ULARGE_INTEGER  newSize 
)
static

Definition at line 158 of file ndr_ole.c.

160{
162 *This->size = newSize.LowPart;
163 return S_OK;
164}
$ULONG LowPart
Definition: ntbasedef.h:581

◆ RpcStream_Stat()

static HRESULT WINAPI RpcStream_Stat ( IStream iface,
STATSTG *  stat,
DWORD  flag 
)
static

Definition at line 204 of file ndr_ole.c.

205{
207 FIXME("(%p): stub\n", This);
208 return E_NOTIMPL;
209}

◆ RpcStream_UnlockRegion()

static HRESULT WINAPI RpcStream_UnlockRegion ( IStream iface,
ULARGE_INTEGER  offset,
ULARGE_INTEGER  len,
DWORD  locktype 
)
static

Definition at line 196 of file ndr_ole.c.

198{
200 FIXME("(%p): stub\n", This);
201 return E_NOTIMPL;
202}

◆ RpcStream_Write()

static HRESULT WINAPI RpcStream_Write ( LPSTREAM  iface,
const void pv,
ULONG  cb,
ULONG pcbWritten 
)
static

Definition at line 117 of file ndr_ole.c.

121{
123 if (This->data + cb > (unsigned char *)This->pMsg->RpcMsg->Buffer + This->pMsg->BufferLength)
124 return STG_E_MEDIUMFULL;
125 memcpy(This->data + This->pos, pv, cb);
126 This->pos += cb;
127 if (This->pos > *This->size) *This->size = This->pos;
128 if (pcbWritten) *pcbWritten = cb;
129 return S_OK;
130}
#define STG_E_MEDIUMFULL
Definition: winerror.h:3676

◆ WINE_DEFAULT_DEBUG_CHANNEL()

WINE_DEFAULT_DEBUG_CHANNEL ( ole  )

Variable Documentation

◆ RpcStream_Vtbl

const IStreamVtbl RpcStream_Vtbl
static
Initial value:
=
{
}
static HRESULT WINAPI RpcStream_Clone(IStream *iface, IStream **cloned)
Definition: ndr_ole.c:211
static ULONG WINAPI RpcStream_Release(LPSTREAM iface)
Definition: ndr_ole.c:85
static HRESULT WINAPI RpcStream_Revert(IStream *iface)
Definition: ndr_ole.c:181
static HRESULT WINAPI RpcStream_Read(LPSTREAM iface, void *pv, ULONG cb, ULONG *pcbRead)
Definition: ndr_ole.c:97
static HRESULT WINAPI RpcStream_UnlockRegion(IStream *iface, ULARGE_INTEGER offset, ULARGE_INTEGER len, DWORD locktype)
Definition: ndr_ole.c:196
static HRESULT WINAPI RpcStream_SetSize(LPSTREAM iface, ULARGE_INTEGER newSize)
Definition: ndr_ole.c:158
static HRESULT WINAPI RpcStream_Stat(IStream *iface, STATSTG *stat, DWORD flag)
Definition: ndr_ole.c:204
static HRESULT WINAPI RpcStream_Seek(LPSTREAM iface, LARGE_INTEGER move, DWORD origin, ULARGE_INTEGER *newPos)
Definition: ndr_ole.c:132
static HRESULT WINAPI RpcStream_QueryInterface(LPSTREAM iface, REFIID riid, LPVOID *obj)
Definition: ndr_ole.c:63
static HRESULT WINAPI RpcStream_Commit(IStream *iface, DWORD flags)
Definition: ndr_ole.c:174
static HRESULT WINAPI RpcStream_LockRegion(IStream *iface, ULARGE_INTEGER offset, ULARGE_INTEGER len, DWORD locktype)
Definition: ndr_ole.c:188
static ULONG WINAPI RpcStream_AddRef(LPSTREAM iface)
Definition: ndr_ole.c:79
static HRESULT WINAPI RpcStream_Write(LPSTREAM iface, const void *pv, ULONG cb, ULONG *pcbWritten)
Definition: ndr_ole.c:117
static HRESULT WINAPI RpcStream_CopyTo(IStream *iface, IStream *dest, ULARGE_INTEGER len, ULARGE_INTEGER *read, ULARGE_INTEGER *written)
Definition: ndr_ole.c:166

Definition at line 218 of file ndr_ole.c.

Referenced by RpcStream_Create().