31#define NONAMELESSUNION
32#define NONAMELESSSTRUCT
124 *pLockBytes = &
This->ILockBytes_iface;
192 TRACE(
"(%p)-> %i %p %i %p\n",
This, ulOffset.
u.LowPart, pv,
cb, pcbRead);
211 if (!
ret || cbRead == 0)
217 bytes_left -= cbRead;
242 const BYTE *writePtr = pv;
247 TRACE(
"(%p)-> %i %p %i %p\n",
This, ulOffset.
u.LowPart, pv,
cb, pcbWritten);
273 *pcbWritten += cbWritten;
275 bytes_left -= cbWritten;
276 writePtr += cbWritten;
300 TRACE(
"new size %u\n", newSize.
u.LowPart);
331 TRACE(
"ofs %u count %u flags %x\n", libOffset.
u.LowPart,
cb.u.LowPart, dwLockType);
333 if (dwLockType & LOCK_WRITE)
336 if (dwLockType & (LOCK_EXCLUSIVE|LOCK_ONLYONCE))
340 ol.u.s.
Offset = libOffset.
u.LowPart;
354 TRACE(
"ofs %u count %u flags %x\n", libOffset.
u.LowPart,
cb.u.LowPart, dwLockType);
356 if (dwLockType & LOCK_WRITE)
360 ol.u.s.
Offset = libOffset.
u.LowPart;
369 STATSTG *pstatstg,
DWORD grfStatFlag)
373 if (!(STATFLAG_NONAME & grfStatFlag) &&
This->pwcsName)
381 pstatstg->pwcsName =
NULL;
383 pstatstg->type = STGTY_LOCKBYTES;
385 pstatstg->cbSize.u.LowPart =
GetFileSize(
This->hfile, &pstatstg->cbSize.u.HighPart);
388 pstatstg->grfLocksSupported = LOCK_EXCLUSIVE|LOCK_ONLYONCE|
WINE_LOCK_READ;
#define InterlockedIncrement
#define InterlockedDecrement
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
#define ReadFile(a, b, c, d, e)
#define INVALID_HANDLE_VALUE
#define ERROR_NOT_SUPPORTED
#define HeapFree(x, y, z)
#define ERROR_ACCESS_DENIED
BOOL WINAPI SetEndOfFile(HANDLE hFile)
DWORD WINAPI GetFileSize(HANDLE hFile, LPDWORD lpFileSizeHigh)
BOOL WINAPI SetFilePointerEx(HANDLE hFile, LARGE_INTEGER liDistanceToMove, PLARGE_INTEGER lpNewFilePointer, DWORD dwMoveMethod)
BOOL WINAPI UnlockFileEx(IN HANDLE hFile, IN DWORD dwReserved, IN DWORD nNumberOfBytesToUnLockLow, IN DWORD nNumberOfBytesToUnLockHigh, IN LPOVERLAPPED lpOverlapped)
BOOL WINAPI LockFileEx(IN HANDLE hFile, IN DWORD dwFlags, IN DWORD dwReserved, IN DWORD nNumberOfBytesToLockLow, IN DWORD nNumberOfBytesToLockHigh, IN LPOVERLAPPED lpOverlapped)
BOOL WINAPI WriteFile(IN HANDLE hFile, IN LPCVOID lpBuffer, IN DWORD nNumberOfBytesToWrite OPTIONAL, OUT LPDWORD lpNumberOfBytesWritten, IN LPOVERLAPPED lpOverlapped OPTIONAL)
DWORD WINAPI GetFullPathNameW(IN LPCWSTR lpFileName, IN DWORD nBufferLength, OUT LPWSTR lpBuffer, OUT LPWSTR *lpFilePart)
static ULONG WINAPI FileLockBytesImpl_Release(ILockBytes *iface)
static HRESULT WINAPI FileLockBytesImpl_UnlockRegion(ILockBytes *iface, ULARGE_INTEGER libOffset, ULARGE_INTEGER cb, DWORD dwLockType)
static HRESULT get_lock_error(void)
static ULONG WINAPI FileLockBytesImpl_AddRef(ILockBytes *iface)
static HRESULT WINAPI FileLockBytesImpl_WriteAt(ILockBytes *iface, ULARGE_INTEGER ulOffset, const void *pv, ULONG cb, ULONG *pcbWritten)
static HRESULT WINAPI FileLockBytesImpl_Flush(ILockBytes *iface)
static const ILockBytesVtbl FileLockBytesImpl_Vtbl
static HRESULT WINAPI FileLockBytesImpl_Stat(ILockBytes *iface, STATSTG *pstatstg, DWORD grfStatFlag)
static HRESULT WINAPI FileLockBytesImpl_ReadAt(ILockBytes *iface, ULARGE_INTEGER ulOffset, void *pv, ULONG cb, ULONG *pcbRead)
static HRESULT WINAPI FileLockBytesImpl_SetSize(ILockBytes *iface, ULARGE_INTEGER newSize)
static DWORD GetProtectMode(DWORD openFlags)
HRESULT FileLockBytesImpl_Construct(HANDLE hFile, DWORD openFlags, LPCWSTR pwcsName, ILockBytes **pLockBytes)
static FileLockBytesImpl * impl_from_ILockBytes(ILockBytes *iface)
static HRESULT WINAPI FileLockBytesImpl_LockRegion(ILockBytes *iface, ULARGE_INTEGER libOffset, ULARGE_INTEGER cb, DWORD dwLockType)
static HRESULT WINAPI FileLockBytesImpl_QueryInterface(ILockBytes *iface, REFIID riid, void **ppvObject)
LPVOID WINAPI CoTaskMemAlloc(SIZE_T size)
static HMODULE MODULEINFO DWORD cb
#define IsEqualIID(riid1, riid2)
#define STGM_ACCESS_MODE(stgm)
ILockBytes ILockBytes_iface
struct _ULARGE_INTEGER::@4191 u
#define CONTAINING_RECORD(address, type, field)
#define LOCKFILE_FAIL_IMMEDIATELY
DWORD WINAPI GetLastError(void)
#define LOCKFILE_EXCLUSIVE_LOCK
_In_ void _In_ PCCERT_CONTEXT _In_opt_ LPFILETIME _In_ DWORD _In_ DWORD _Outptr_opt_ void ** ppvObject
#define STG_E_LOCKVIOLATION
#define ERROR_LOCK_VIOLATION
#define STG_E_ACCESSDENIED
#define STG_E_INVALIDFUNCTION