106 IEnumSTATSTG_AddRef(iface);
154 TRACE(
"%p %u %p %p\n",
This, celt, rgelt, pceltFetched );
158 while( (
n<celt) &&
cur)
162 memset( rgelt, 0,
sizeof *rgelt );
173 if( rgelt->pwcsName[
len-2] ==
'/' )
175 rgelt->pwcsName[
len-2] = 0;
176 rgelt->type = STGTY_STORAGE;
179 rgelt->type = STGTY_STREAM;
182 rgelt->cbSize.QuadPart =
cur->ui.length;
210 while( (
n<celt) &&
cur)
266 TRACE(
" -> %p\n", stgenum );
283 IStorage_AddRef(iface);
350 if( pwcsName[0] ==
'/' || pwcsName[0] ==
'\\' )
353 while( (
path <=
p ) && ( *
p ==
'/' ) )
372 WARN(
"Could not resolve object\n");
412 pstgPriority, grfMode, snbExclude,
reserved, ppstg);
422 if( pwcsName[0] ==
'/' || pwcsName[0] ==
'\\' )
425 while( (
path <=
p ) && ( *
p ==
'/' ) )
450 const IID* rgiidExclude,
462 LPCOLESTR pwcsNewName,
471 DWORD grfCommitFlags)
547 LPCOLESTR pwcsOldName,
548 LPCOLESTR pwcsNewName)
634 const WCHAR* pwcsName,
642 static const WCHAR szRoot[] = {
'/', 0 };
666 IStream_AddRef(iface);
691 IStorage_Release( &
This->stg->IStorage_iface );
744 case STREAM_SEEK_CUR:
747 case STREAM_SEEK_SET:
750 case STREAM_SEEK_END:
755 if( ( newpos < 0 ) || ( newpos >
This->ui.length ) )
759 if( plibNewPosition )
786 DWORD grfCommitFlags)
826 TRACE(
"%p %p %d\n",
This, pstatstg, grfStatFlag);
828 memset( pstatstg, 0,
sizeof *pstatstg );
829 if( !( grfStatFlag & STATFLAG_NONAME ) )
831 FIXME(
"copy the name\n");
833 pstatstg->type = STGTY_STREAM;
834 pstatstg->cbSize.QuadPart =
This->ui.length;
836 pstatstg->clsid = CLSID_ITStorage;
882 TRACE(
" -> %p\n", stm );
#define InterlockedIncrement
#define InterlockedDecrement
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
LONGINT64 chm_retrieve_object(struct chmFile *h, struct chmUnitInfo *ui, unsigned char *buf, LONGUINT64 addr, LONGINT64 len)
int chm_resolve_object(struct chmFile *h, const WCHAR *objPath, struct chmUnitInfo *ui)
struct chmFile * chm_dup(struct chmFile *oldHandle)
BOOL chm_enumerate_dir(struct chmFile *h, const WCHAR *prefix, int what, CHM_ENUMERATOR e, void *context)
struct chmFile * chm_openW(const WCHAR *filename)
void chm_close(struct chmFile *h)
#define CHM_ENUMERATOR_CONTINUE
#define CHM_RESOLVE_SUCCESS
#define CHM_ENUMERATE_ALL
static __inline const char * wine_dbgstr_longlong(ULONGLONG ll)
#define HeapFree(x, y, z)
GLuint GLuint GLsizei count
GLdouble GLdouble GLdouble r
GLfloat GLfloat GLfloat GLfloat h
LPVOID WINAPI CoTaskMemAlloc(SIZE_T size)
struct _ITSS_IStorageImpl ITSS_IStorageImpl
static HRESULT WINAPI ITSS_IEnumSTATSTG_Reset(IEnumSTATSTG *iface)
static HRESULT WINAPI ITSS_IStorageImpl_CreateStorage(IStorage *iface, LPCOLESTR pwcsName, DWORD grfMode, DWORD dwStgFmt, DWORD reserved2, IStorage **ppstg)
static HRESULT WINAPI ITSS_IStorageImpl_CopyTo(IStorage *iface, DWORD ciidExclude, const IID *rgiidExclude, SNB snbExclude, IStorage *pstgDest)
static HRESULT WINAPI ITSS_IStorageImpl_RenameElement(IStorage *iface, LPCOLESTR pwcsOldName, LPCOLESTR pwcsNewName)
static HRESULT WINAPI ITSS_IEnumSTATSTG_QueryInterface(IEnumSTATSTG *iface, REFIID riid, void **ppvObject)
static HRESULT WINAPI ITSS_IStream_Seek(IStream *iface, LARGE_INTEGER dlibMove, DWORD dwOrigin, ULARGE_INTEGER *plibNewPosition)
static HRESULT WINAPI ITSS_IStorageImpl_Commit(IStorage *iface, DWORD grfCommitFlags)
static HRESULT WINAPI ITSS_IEnumSTATSTG_Clone(IEnumSTATSTG *iface, IEnumSTATSTG **ppenum)
static HRESULT WINAPI ITSS_IStorageImpl_SetClass(IStorage *iface, REFCLSID clsid)
static HRESULT WINAPI ITSS_IEnumSTATSTG_Next(IEnumSTATSTG *iface, ULONG celt, STATSTG *rgelt, ULONG *pceltFetched)
static ITSS_IStorageImpl * impl_from_IStorage(IStorage *iface)
static HRESULT WINAPI ITSS_IStorageImpl_Revert(IStorage *iface)
static const IEnumSTATSTGVtbl IEnumSTATSTG_vtbl
static IStream_Impl * impl_from_IStream(IStream *iface)
static HRESULT WINAPI ITSS_IStream_Commit(IStream *iface, DWORD grfCommitFlags)
static ULONG WINAPI ITSS_IEnumSTATSTG_Release(IEnumSTATSTG *iface)
static HRESULT ITSS_create_chm_storage(struct chmFile *chmfile, const WCHAR *dir, IStorage **ppstgOpen)
struct _IEnumSTATSTG_Impl IEnumSTATSTG_Impl
static HRESULT WINAPI ITSS_IStorageImpl_EnumElements(IStorage *iface, DWORD reserved1, void *reserved2, DWORD reserved3, IEnumSTATSTG **ppenum)
static HRESULT WINAPI ITSS_IStream_Clone(IStream *iface, IStream **ppstm)
static HRESULT WINAPI ITSS_IStorageImpl_QueryInterface(IStorage *iface, REFIID riid, void **ppvObject)
static HRESULT WINAPI ITSS_IStream_Stat(IStream *iface, STATSTG *pstatstg, DWORD grfStatFlag)
static HRESULT WINAPI ITSS_IStorageImpl_SetElementTimes(IStorage *iface, LPCOLESTR pwcsName, const FILETIME *pctime, const FILETIME *patime, const FILETIME *pmtime)
static ULONG WINAPI ITSS_IEnumSTATSTG_AddRef(IEnumSTATSTG *iface)
static IEnumSTATSTG_Impl * impl_from_IEnumSTATSTG(IEnumSTATSTG *iface)
static HRESULT WINAPI ITSS_IStream_QueryInterface(IStream *iface, REFIID riid, void **ppvObject)
static HRESULT WINAPI ITSS_IStorageImpl_CreateStream(IStorage *iface, LPCOLESTR pwcsName, DWORD grfMode, DWORD reserved1, DWORD reserved2, IStream **ppstm)
HRESULT ITSS_StgOpenStorage(const WCHAR *pwcsName, IStorage *pstgPriority, DWORD grfMode, SNB snbExclude, DWORD reserved, IStorage **ppstgOpen)
static IStream_Impl * ITSS_create_stream(ITSS_IStorageImpl *stg, struct chmUnitInfo *ui)
static HRESULT WINAPI ITSS_IStorageImpl_MoveElementTo(IStorage *iface, LPCOLESTR pwcsName, IStorage *pstgDest, LPCOLESTR pwcsNewName, DWORD grfFlags)
static const IStreamVtbl ITSS_IStream_vtbl
static HRESULT WINAPI ITSS_IStorageImpl_SetStateBits(IStorage *iface, DWORD grfStateBits, DWORD grfMask)
static IEnumSTATSTG_Impl * ITSS_create_enum(void)
static HRESULT WINAPI ITSS_IStorageImpl_OpenStream(IStorage *iface, LPCOLESTR pwcsName, void *reserved1, DWORD grfMode, DWORD reserved2, IStream **ppstm)
static ULONG WINAPI ITSS_IStream_Release(IStream *iface)
static HRESULT WINAPI ITSS_IEnumSTATSTG_Skip(IEnumSTATSTG *iface, ULONG celt)
static ULONG WINAPI ITSS_IStorageImpl_AddRef(IStorage *iface)
static HRESULT WINAPI ITSS_IStorageImpl_OpenStorage(IStorage *iface, LPCOLESTR pwcsName, IStorage *pstgPriority, DWORD grfMode, SNB snbExclude, DWORD reserved, IStorage **ppstg)
static HRESULT WINAPI ITSS_IStorageImpl_Stat(IStorage *iface, STATSTG *pstatstg, DWORD grfStatFlag)
static HRESULT WINAPI ITSS_IStream_SetSize(IStream *iface, ULARGE_INTEGER libNewSize)
static HRESULT WINAPI ITSS_IStream_UnlockRegion(IStream *iface, ULARGE_INTEGER libOffset, ULARGE_INTEGER cb, DWORD dwLockType)
static int ITSS_chm_enumerator(struct chmFile *h, struct chmUnitInfo *ui, void *context)
static HRESULT WINAPI ITSS_IStream_LockRegion(IStream *iface, ULARGE_INTEGER libOffset, ULARGE_INTEGER cb, DWORD dwLockType)
static const IStorageVtbl ITSS_IStorageImpl_Vtbl
static HRESULT WINAPI ITSS_IStream_Write(IStream *iface, const void *pv, ULONG cb, ULONG *pcbWritten)
static HRESULT WINAPI ITSS_IStorageImpl_DestroyElement(IStorage *iface, LPCOLESTR pwcsName)
static ULONG WINAPI ITSS_IStorageImpl_Release(IStorage *iface)
static HRESULT WINAPI ITSS_IStream_Revert(IStream *iface)
static ULONG WINAPI ITSS_IStream_AddRef(IStream *iface)
static HRESULT WINAPI ITSS_IStream_Read(IStream *iface, void *pv, ULONG cb, ULONG *pcbRead)
struct _IStream_Impl IStream_Impl
static HRESULT WINAPI ITSS_IStream_CopyTo(IStream *iface, IStream *pstm, ULARGE_INTEGER cb, ULARGE_INTEGER *pcbRead, ULARGE_INTEGER *pcbWritten)
static void ITSS_LockModule(void)
static void ITSS_UnlockModule(void)
LPWSTR WINAPI lstrcatW(LPWSTR lpString1, LPCWSTR lpString2)
static HMODULE MODULEINFO DWORD cb
const GUID IID_IEnumSTATSTG
#define IsEqualGUID(rguid1, rguid2)
struct enum_info * current
IEnumSTATSTG IEnumSTATSTG_iface
WCHAR path[CHM_MAX_PATHLEN+1]
#define FIELD_OFFSET(t, f)
#define CONTAINING_RECORD(address, type, field)
_In_ void _In_ PCCERT_CONTEXT _In_opt_ LPFILETIME _In_ DWORD _In_ DWORD _Outptr_opt_ void ** ppvObject
#define STG_E_INVALIDPOINTER
#define STG_E_FILENOTFOUND