153 *phglobal =
This->supportHandle;
159 hres = ILockBytes_Stat(iface,&stbuf,STATFLAG_NONAME);
161 ERR(
"Cannot ILockBytes_Stat, %lx\n",
hres);
169 hres = ILockBytes_ReadAt(iface,
start,
GlobalLock(*phglobal), stbuf.cbSize.LowPart, &xread);
172 FIXME(
"%p->ReadAt failed with %lx\n",iface,
hres);
175 if (stbuf.cbSize.LowPart != xread) {
176 FIXME(
"Read size is not requested size %ld vs %ld?\n",stbuf.cbSize.LowPart, xread);
206 *ppvObject = &
This->ILockBytes_iface;
211 ILockBytes_AddRef(iface);
238 if (
This->deleteOnRelease)
241 This->supportHandle = 0;
267 ULONG bytesReadBuffer = 0;
268 ULONG bytesToReadFromBuffer;
275 pcbRead = &bytesReadBuffer;
280 if (ulOffset.
LowPart >
This->byteArraySize.LowPart)
287 bytesToReadFromBuffer =
min(
This->byteArraySize.LowPart - ulOffset.
LowPart,
cb);
295 (
char *) supportBuffer + ulOffset.
LowPart,
296 bytesToReadFromBuffer);
301 *pcbRead = bytesToReadFromBuffer;
418 if (
This->byteArraySize.LowPart == libNewSize.
LowPart)
482 memset(pstatstg, 0,
sizeof(STATSTG));
484 pstatstg->pwcsName =
NULL;
485 pstatstg->type = STGTY_LOCKBYTES;
486 pstatstg->cbSize =
This->byteArraySize;
#define InterlockedIncrement
#define InterlockedDecrement
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
static __inline const char * wine_dbgstr_longlong(ULONGLONG ll)
#define HeapFree(x, y, z)
GLenum GLsizei GLuint GLint * bytesWritten
HGLOBAL NTAPI GlobalFree(HGLOBAL hMem)
HGLOBAL NTAPI GlobalReAlloc(HGLOBAL hMem, SIZE_T dwBytes, UINT uFlags)
BOOL NTAPI GlobalUnlock(HGLOBAL hMem)
HGLOBAL NTAPI GlobalAlloc(UINT uFlags, SIZE_T dwBytes)
SIZE_T NTAPI GlobalSize(HGLOBAL hMem)
static ERESOURCE GlobalLock
static ULONG WINAPI HGLOBALLockBytesImpl_AddRef(ILockBytes *iface)
static HGLOBALLockBytesImpl * impl_from_ILockBytes(ILockBytes *iface)
static ULONG WINAPI HGLOBALLockBytesImpl_Release(ILockBytes *iface)
HRESULT WINAPI GetHGlobalFromILockBytes(ILockBytes *iface, HGLOBAL *phglobal)
static HRESULT WINAPI HGLOBALLockBytesImpl_WriteAt(ILockBytes *iface, ULARGE_INTEGER ulOffset, const void *pv, ULONG cb, ULONG *pcbWritten)
static HRESULT WINAPI HGLOBALLockBytesImpl_Stat(ILockBytes *iface, STATSTG *pstatstg, DWORD grfStatFlag)
static HRESULT WINAPI HGLOBALLockBytesImpl_ReadAt(ILockBytes *iface, ULARGE_INTEGER ulOffset, void *pv, ULONG cb, ULONG *pcbRead)
static HRESULT WINAPI HGLOBALLockBytesImpl_LockRegion(ILockBytes *iface, ULARGE_INTEGER libOffset, ULARGE_INTEGER cb, DWORD dwLockType)
static HRESULT WINAPI HGLOBALLockBytesImpl_UnlockRegion(ILockBytes *iface, ULARGE_INTEGER libOffset, ULARGE_INTEGER cb, DWORD dwLockType)
static HRESULT WINAPI HGLOBALLockBytesImpl_QueryInterface(ILockBytes *iface, REFIID riid, void **ppvObject)
static HRESULT WINAPI HGLOBALLockBytesImpl_Flush(ILockBytes *iface)
HRESULT WINAPI CreateILockBytesOnHGlobal(HGLOBAL global, BOOL delete_on_release, ILockBytes **ret)
static const ILockBytesVtbl HGLOBALLockBytesImpl_Vtbl
static HRESULT WINAPI HGLOBALLockBytesImpl_SetSize(ILockBytes *iface, ULARGE_INTEGER libNewSize)
#define memcpy(s1, s2, n)
#define IsEqualIID(riid1, riid2)
ILockBytes ILockBytes_iface
ULARGE_INTEGER byteArraySize
#define CONTAINING_RECORD(address, type, field)
#define STG_E_INVALIDFUNCTION