39#define NUM_STREAMS_COLS 2
102 IStream_AddRef( *stm );
109 ERR(
"Cannot modify primary key.\n");
122 if (prev) IStream_Release(prev);
154 IStream_Release(
new );
159 if (old) IStream_Release( old );
240 hr = IStorage_DestroyElement(
db->
storage, encname );
261 TRACE(
"(%p, %p, %p)\n",
view, rows, cols);
274 TRACE(
"(%p, %d, %p, %p, %p, %p)\n",
view,
n,
name,
type, temporary, table_name);
291 if (table_name) *table_name =
L"_Streams";
292 if (temporary) *temporary =
FALSE;
324 TRACE(
"%p %d %p\n",
view, eModifyMode, rec);
352 FIXME(
"%p %d %p - mode not implemented\n",
view, eModifyMode, rec );
462 hr = IEnumSTATSTG_Next( stgenum, 1, &
stat, &
count );
467 if (
stat.type != STGTY_STREAM || *
stat.pwcsName == 0x4840)
484 ERR(
"unable to open stream %#lx\n",
hr );
495 IEnumSTATSTG_Release( stgenum );
516 IStream_AddRef( *
ret );
531 IStream_Release( *
ret );
535 IStream_AddRef( *
ret );
550 if (!(sv =
calloc( 1,
sizeof(*sv) )))
571 hr = IStream_Stat(
src, &
stat, STATFLAG_NONAME );
574 hr = IStream_SetSize(
dst,
stat.cbSize );
587 WARN(
"failed to read stream: %#lx\n",
hr );
597 WARN(
"failed to write stream: %#lx\n",
hr );
601 if (!
stat.cbSize.QuadPart)
break;
620 if (!
wcscmp(
name,
L"\5SummaryInformation" ))
continue;
631 ERR(
"failed to write stream %s (hr = %#lx)\n",
debugstr_w(encname),
hr );
633 IStream_Release(
stream );
637 IStream_Release(
stream );
640 ERR(
"failed to commit stream %s (hr = %#lx)\n",
debugstr_w(encname),
hr );
647 ERR(
"failed to create stream %s (hr = %#lx)\n",
debugstr_w(encname),
hr );
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
#define ERROR_CALL_NOT_IMPLEMENTED
#define ERROR_INVALID_PARAMETER
#define ERROR_NO_MORE_ITEMS
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
GLuint GLuint GLsizei count
GLuint GLuint GLsizei GLenum type
GLdouble GLdouble GLdouble r
GLuint GLenum GLenum transform
GLenum GLuint GLenum GLsizei const GLchar * buf
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
VOID WINAPI CoTaskMemFree(LPVOID ptr)
int JSAMPARRAY int int num_rows
UINT MSI_RecordGetIStream(MSIRECORD *, UINT, IStream **)
BOOL msi_add_string(string_table *st, const WCHAR *data, int len, BOOL persistent)
WCHAR * encode_streamname(BOOL is_table, const WCHAR *in)
UINT msi_string2id(const string_table *st, const WCHAR *data, int len, UINT *id)
#define MAX_STREAM_NAME_LEN
const WCHAR * MSI_RecordGetString(const MSIRECORD *, UINT)
BOOL decode_streamname(LPCWSTR in, LPWSTR out)
const WCHAR * msi_string_lookup(const string_table *st, UINT id, int *len)
@ MSIMODIFY_INSERT_TEMPORARY
@ MSIMODIFY_VALIDATE_DELETE
@ MSIMODIFY_VALIDATE_FIELD
#define STGM_SHARE_EXCLUSIVE
_Check_return_ _CRTIMP int __cdecl wcscmp(_In_z_ const wchar_t *_Str1, _In_z_ const wchar_t *_Str2)
#define LIST_FOR_EACH_ENTRY(elem, list, type, field)
UINT STREAMS_CreateView(MSIDATABASE *db, MSIVIEW **view)
static const MSIVIEWOPS streams_ops
static UINT STREAMS_fetch_int(struct tagMSIVIEW *view, UINT row, UINT col, UINT *val)
static UINT STREAMS_modify(struct tagMSIVIEW *view, MSIMODIFY eModifyMode, MSIRECORD *rec, UINT row)
static UINT load_streams(MSIDATABASE *db)
static UINT STREAMS_set_row(struct tagMSIVIEW *view, UINT row, MSIRECORD *rec, UINT mask)
static UINT append_stream(MSIDATABASE *db, const WCHAR *name, IStream *stream)
static UINT STREAMS_delete_row(struct tagMSIVIEW *view, UINT row)
static UINT streams_find_row(struct streams_view *sv, MSIRECORD *rec, UINT *row)
static UINT STREAMS_fetch_stream(struct tagMSIVIEW *view, UINT row, UINT col, IStream **stm)
static UINT STREAMS_close(struct tagMSIVIEW *view)
UINT msi_commit_streams(MSIDATABASE *db)
static UINT STREAMS_set_string(struct tagMSIVIEW *view, UINT row, UINT col, const WCHAR *val, int len)
static UINT STREAMS_insert_row(struct tagMSIVIEW *view, MSIRECORD *rec, UINT row, BOOL temporary)
static UINT STREAMS_get_column_info(struct tagMSIVIEW *view, UINT n, LPCWSTR *name, UINT *type, BOOL *temporary, LPCWSTR *table_name)
static HRESULT write_stream(IStream *dst, IStream *src)
static UINT STREAMS_set_stream(MSIVIEW *view, UINT row, UINT col, IStream *stream)
static UINT STREAMS_delete(struct tagMSIVIEW *view)
static UINT streams_modify_update(struct tagMSIVIEW *view, MSIRECORD *rec)
static UINT STREAMS_execute(struct tagMSIVIEW *view, MSIRECORD *record)
static UINT STREAMS_get_dimensions(struct tagMSIVIEW *view, UINT *rows, UINT *cols)
static MSISTREAM * find_stream(MSIDATABASE *db, const WCHAR *name)
static BOOL streams_resize_table(MSIDATABASE *db, UINT size)
static UINT streams_modify_assign(struct tagMSIVIEW *view, MSIRECORD *rec)
UINT msi_get_stream(MSIDATABASE *db, const WCHAR *name, IStream **ret)
UINT num_streams_allocated
#define STG_E_FILEALREADYEXISTS
#define ERROR_FUNCTION_FAILED
#define ERROR_INVALID_DATA