40 #define NUM_STORAGES_COLS 2 41 #define MAX_STORAGES_NAME_LEN 62 84 IStorage_AddRef(storage->
storage);
136 hr = IStream_Stat(stm, &
stat, STATFLAG_NONAME);
140 if (
stat.cbSize.QuadPart >> 32)
142 ERR(
"Storage is too large\n");
172 if (lockbytes) ILockBytes_Release(lockbytes);
197 IStream_Release(stm);
217 hr = IStorage_CopyTo(stg, 0,
NULL,
NULL, substg);
231 if (substg) IStorage_Release(substg);
232 IStorage_Release(stg);
233 IStream_Release(stm);
275 TRACE(
"(%p, %p, %p)\n",
view, rows, cols);
286 TRACE(
"(%p, %d, %p, %p, %p, %p)\n",
view,
n,
name,
type, temporary,
305 if (temporary) *temporary =
FALSE;
361 TRACE(
"%p %d %p\n",
view, eModifyMode, rec);
386 FIXME(
"%p %d %p - mode not implemented\n",
view, eModifyMode, rec );
490 hr = IEnumSTATSTG_Next(stgenum, 1, &
stat, &
size);
494 if (
stat.type != STGTY_STORAGE)
524 IEnumSTATSTG_Release(stgenum);
static UINT STORAGES_close(struct tagMSIVIEW *view)
#define ERROR_INVALID_PARAMETER
#define STGM_SHARE_DENY_NONE
struct tabSTORAGE STORAGE
static UINT STORAGES_get_column_info(struct tagMSIVIEW *view, UINT n, LPCWSTR *name, UINT *type, BOOL *temporary, LPCWSTR *table_name)
HRESULT WINAPI CreateILockBytesOnHGlobal(HGLOBAL global, BOOL delete_on_release, ILockBytes **ret)
static UINT STORAGES_fetch_stream(struct tagMSIVIEW *view, UINT row, UINT col, IStream **stm)
VOID WINAPI CoTaskMemFree(LPVOID ptr)
#define ERROR_NO_MORE_ITEMS
#define STGM_SHARE_EXCLUSIVE
static WCHAR * strdupW(const WCHAR *src)
GLdouble GLdouble GLdouble r
GLuint GLuint GLsizei count
static const WCHAR szData[]
static UINT STORAGES_get_row(struct tagMSIVIEW *view, UINT row, MSIRECORD **rec)
UINT MSI_RecordGetIStream(MSIRECORD *, UINT, IStream **) DECLSPEC_HIDDEN
struct tagMSISTORAGESVIEW MSISTORAGESVIEW
GLuint GLuint GLsizei GLenum type
BOOL msi_add_string(string_table *st, const WCHAR *data, int len, enum StringPersistence persistence) DECLSPEC_HIDDEN
static void * msi_realloc(void *mem, size_t len) __WINE_ALLOC_SIZE(2)
static void * msi_alloc_zero(size_t len) __WINE_ALLOC_SIZE(1)
static UINT STORAGES_insert_row(struct tagMSIVIEW *view, MSIRECORD *rec, UINT row, BOOL temporary)
static UINT storages_modify_assign(struct tagMSIVIEW *view, MSIRECORD *rec)
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
#define ERROR_FUNCTION_FAILED
static UINT STORAGES_delete(struct tagMSIVIEW *view)
#define NUM_STORAGES_COLS
static STORAGE * create_storage(MSISTORAGESVIEW *sv, LPCWSTR name, IStorage *stg)
const WCHAR * MSI_RecordGetString(const MSIRECORD *, UINT) DECLSPEC_HIDDEN
UINT msi_string2id(const string_table *st, const WCHAR *data, int len, UINT *id) DECLSPEC_HIDDEN
static const WCHAR szStorages[]
int JSAMPARRAY int int num_rows
HRESULT WINAPI StgOpenStorageOnILockBytes(ILockBytes *plkbyt, IStorage *pstgPriority, DWORD grfMode, SNB snbExclude, DWORD reserved, IStorage **ppstgOpen)
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
static BOOL storages_set_table_size(MSISTORAGESVIEW *sv, UINT size)
static UINT storages_find_row(MSISTORAGESVIEW *sv, MSIRECORD *rec, UINT *row)
static UINT STORAGES_find_matching_rows(struct tagMSIVIEW *view, UINT col, UINT val, UINT *row, MSIITERHANDLE *handle)
static UINT storages_modify_update(struct tagMSIVIEW *view, MSIRECORD *rec)
static HRESULT stream_to_storage(IStream *stm, IStorage **stg)
static UINT STORAGES_modify(struct tagMSIVIEW *view, MSIMODIFY eModifyMode, MSIRECORD *rec, UINT row)
static INT add_storages_to_table(MSISTORAGESVIEW *sv)
#define ERROR_INVALID_DATA
static UINT STORAGES_get_dimensions(struct tagMSIVIEW *view, UINT *rows, UINT *cols)
_CRTIMP int __cdecl stat(const char *_Filename, struct stat *_Stat)
static UINT STORAGES_delete_row(struct tagMSIVIEW *view, UINT row)
static UINT STORAGES_fetch_int(struct tagMSIVIEW *view, UINT row, UINT col, UINT *val)
#define MAX_STORAGES_NAME_LEN
enum tagMSIMODIFY MSIMODIFY
static UINT STORAGES_set_row(struct tagMSIVIEW *view, UINT row, MSIRECORD *rec, UINT mask)
static UINT STORAGES_execute(struct tagMSIVIEW *view, MSIRECORD *record)
static BOOL msi_free(void *mem)
static const WCHAR szName[]
WINE_DEFAULT_DEBUG_CHANNEL(msidb)
static void * msi_alloc(size_t len) __WINE_ALLOC_SIZE(1)
#define ERROR_CALL_NOT_IMPLEMENTED
static const MSIVIEWOPS storages_ops
UINT STORAGES_CreateView(MSIDATABASE *db, MSIVIEW **view)
_CRTIMP int __cdecl read(_In_ int _FileHandle, _Out_writes_bytes_(_MaxCharCount) void *_DstBuf, _In_ unsigned int _MaxCharCount)
struct png_info_def *typedef unsigned char **typedef struct png_info_def *typedef struct png_info_def *typedef struct png_info_def *typedef unsigned char ** row