38 #include "winemsi_s.h" 61 LPCWSTR col_name, haystack_table_name;
73 NULL, &haystack_table_name );
78 x |=
wcscmp( table_name, haystack_table_name );
177 for(
n = 0; (
max == 0) || (
n <
max);
n++ )
261 ret = remote_DatabaseOpenView(remote, szQuery, &remote_view);
293 ret =
view->ops->get_dimensions(
view, &row_count, &col_count);
300 for (
i = 1;
i <= col_count;
i++)
305 ERR(
"Error getting column type for %d\n",
i);
317 IStream_Release(stm);
320 WARN(
"failed to get stream\n");
328 ERR(
"Error fetching data for %d\n",
i);
333 ERR(
"Invalid type!\n");
355 UINT row_count = 0, col_count = 0,
r;
360 if ((
r =
view->ops->get_dimensions(
view, &row_count, &col_count)))
363 if (
row >= row_count)
427 ret = remote_ViewFetch(remote, &wire_rec);
463 if( !
view->ops->close )
474 TRACE(
"%lu\n", hView );
486 ret = remote_ViewClose(remote);
511 if( !
view->ops->execute )
515 return view->ops->execute(
view, rec );
524 TRACE(
"%lu, %lu\n", hView, hRec );
614 if( !
view->ops->get_dimensions )
648 TRACE(
"%lu, %d, %p\n", hView,
info, hRec );
667 r = remote_ViewGetColumnInfo(remote,
info, &wire_rec);
703 if ( !
query || !rec )
726 TRACE(
"%lu, %#x, %lu\n", hView, eModifyMode, hRecord );
744 r = remote_ViewModify(remote, eModifyMode,
794 r = remote_ViewGetError(remote, &remote_column);
845 r = remote_ViewGetError(remote, &remote_column);
892 WARN(
"failed to open substorage transform %#lx\n",
hr );
901 WARN(
"failed to open file transform %#lx\n",
hr );
906 hr = IStorage_Stat( stg, &
stat, STATFLAG_NONAME );
914 IStorage_Release( stg );
950 int iReserved1,
int iReserved2 )
952 FIXME(
"%lu, %lu, %s, %d, %d\n", hdb, hdbref,
debugstr_a(szTransformFile), iReserved1, iReserved2 );
957 int iReserved1,
int iReserved2 )
959 FIXME(
"%lu, %lu, %s, %d, %d\n", hdb, hdbref,
debugstr_w(szTransformFile), iReserved1, iReserved2 );
968 TRACE(
"%lu\n", hdb );
978 WARN(
"not allowed during a custom action!\n");
1064 TRACE(
"found %lu primary keys\n",
info.n );
1099 r = remote_DatabaseGetPrimaryKeys(remote,
table, &wire_rec);
1184 r = remote_DatabaseIsTablePersistent(remote, szTableName);
1269 *remote_refreshed =
NULL;
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 * u
void msiobj_addref(MSIOBJECTHDR *info)
const WCHAR * msi_string_lookup(const string_table *st, UINT id, int *len) DECLSPEC_HIDDEN
#define ERROR_INVALID_PARAMETER
struct wire_record * marshal_record(MSIHANDLE handle) DECLSPEC_HIDDEN
UINT WINAPI MsiViewExecute(MSIHANDLE hView, MSIHANDLE hRec)
MSIHANDLE msi_get_remote(MSIHANDLE handle)
#define LIST_FOR_EACH_SAFE(cursor, cursor2, list)
UINT copy_remote_record(const struct wire_record *rec, MSIHANDLE handle) DECLSPEC_HIDDEN
UINT MSI_RecordSetStringW(MSIRECORD *, UINT, LPCWSTR) DECLSPEC_HIDDEN
MSIDBERROR __cdecl s_remote_ViewGetError(MSIHANDLE view, LPWSTR *column)
void msiobj_lock(MSIOBJECTHDR *info)
MSICONDITION WINAPI MsiDatabaseIsTablePersistentW(MSIHANDLE hDatabase, const WCHAR *szTableName)
coclass MSXML2::XSLTemplate40 object
#define ERROR_NO_MORE_ITEMS
#define STGM_SHARE_EXCLUSIVE
UINT unmarshal_record(const struct wire_record *in, MSIHANDLE *out) DECLSPEC_HIDDEN
#define midl_user_allocate
UINT MSI_ViewGetColumnInfo(MSIQUERY *query, MSICOLINFO info, MSIRECORD **prec)
GLdouble GLdouble GLdouble r
UINT MSI_ViewExecute(MSIQUERY *query, MSIRECORD *rec)
static void MSI_CloseView(MSIOBJECTHDR *arg)
GLuint GLuint GLsizei count
UINT WINAPI MsiDatabaseGetPrimaryKeysW(MSIHANDLE hdb, const WCHAR *table, MSIHANDLE *phRec)
UINT MSI_ViewModify(MSIQUERY *query, MSIMODIFY mode, MSIRECORD *rec)
#define ERROR_INVALID_HANDLE
UINT MSI_IterateRecords(MSIQUERY *view, LPDWORD count, record_func func, LPVOID param)
UINT WINAPI MsiDatabaseApplyTransformA(MSIHANDLE hdb, const char *transform, int error_cond)
#define ERROR_NOT_ENOUGH_MEMORY
void enum_stream_names(IStorage *stg) DECLSPEC_HIDDEN
#define MSITYPE_IS_BINARY(type)
GLenum GLsizei GLenum GLenum const GLvoid * table
GLint GLint GLint GLint GLint x
static void msi_free(void *mem)
UINT msi_view_get_row(MSIDATABASE *db, MSIVIEW *view, UINT row, MSIRECORD **rec)
#define MSIHANDLETYPE_DATABASE
static _Check_return_opt_ int __cdecl vswprintf(_Out_writes_z_(_SizeInWords) wchar_t *_DstBuf, _In_ size_t _SizeInWords, _In_z_ _Printf_format_string_ const wchar_t *_Format, va_list _ArgList)
MSIHANDLE WINAPI MsiGetLastErrorRecord(void)
UINT __cdecl s_remote_ViewGetColumnInfo(MSIHANDLE view, MSICOLINFO info, struct wire_record **rec)
UINT WINAPI MsiViewModify(MSIHANDLE hView, MSIMODIFY eModifyMode, MSIHANDLE hRecord)
UINT msi_strncpyW(const WCHAR *str, int len, WCHAR *buf, DWORD *sz)
UINT msi_strncpyWtoA(const WCHAR *str, int lenW, char *buf, DWORD *sz, BOOL remote)
void msiobj_unlock(MSIOBJECTHDR *info)
BOOL TABLE_Exists(MSIDATABASE *db, LPCWSTR name) DECLSPEC_HIDDEN
UINT WINAPI MsiViewClose(MSIHANDLE hView)
void * alloc_msiobject(UINT type, UINT size, msihandledestructor destroy)
UINT MSI_DatabaseGetPrimaryKeys(MSIDATABASE *db, LPCWSTR table, MSIRECORD **prec)
UINT MSI_RecordSetInteger(MSIRECORD *, UINT, int) DECLSPEC_HIDDEN
namespace GUID const ADDRINFOEXW ADDRINFOEXW struct timeval OVERLAPPED LPLOOKUPSERVICE_COMPLETION_ROUTINE HANDLE * handle
#define ERROR_FUNCTION_FAILED
UINT __cdecl s_remote_ViewExecute(MSIHANDLE view, struct wire_record *remote_rec)
UINT WINAPI MsiDatabaseGenerateTransformA(MSIHANDLE hdb, MSIHANDLE hdbref, const char *szTransformFile, int iReserved1, int iReserved2)
UINT WINAPI MsiDatabaseOpenViewA(MSIHANDLE hdb, const char *szQuery, MSIHANDLE *phView)
#define MSI_OPEN_READONLY
LONG WINAPI rpc_filter(EXCEPTION_POINTERS *eptr)
void free_remote_record(struct wire_record *rec) DECLSPEC_HIDDEN
#define MSIHANDLETYPE_RECORD
MSIDBERROR WINAPI MsiViewGetErrorA(MSIHANDLE handle, char *buffer, DWORD *buflen)
UINT MSI_DatabaseApplyTransformW(MSIDATABASE *db, const WCHAR *transform, int error_cond)
const WCHAR * MSI_RecordGetString(const MSIRECORD *, UINT) DECLSPEC_HIDDEN
UINT msi_view_refresh_row(MSIDATABASE *db, MSIVIEW *view, UINT row, MSIRECORD *rec)
static UINT msi_primary_key_iterator(MSIRECORD *rec, LPVOID param)
MSICONDITION MSI_DatabaseIsTablePersistent(MSIDATABASE *db, LPCWSTR table) DECLSPEC_HIDDEN
#define MSITYPE_LOCALIZABLE
UINT WINAPI MsiDatabaseApplyTransformW(MSIHANDLE hdb, const WCHAR *transform, int error_cond)
UINT WINAPI MsiViewFetch(MSIHANDLE hView, MSIHANDLE *record)
HRESULT WINAPI StgOpenStorage(const OLECHAR *pwcsName, IStorage *pstgPriority, DWORD grfMode, SNB snbExclude, DWORD reserved, IStorage **ppstgOpen)
UINT msi_commit_streams(MSIDATABASE *db) DECLSPEC_HIDDEN
int msiobj_release(MSIOBJECTHDR *info)
#define MSIHANDLETYPE_VIEW
MSIRECORD * MSI_CreateRecord(UINT) DECLSPEC_HIDDEN
UINT WINAPIV MSI_OpenQuery(MSIDATABASE *db, MSIQUERY **view, LPCWSTR fmt,...)
int _cdecl swprintf(const WCHAR *,...)
UINT __cdecl s_remote_ViewModify(MSIHANDLE view, MSIMODIFY mode, struct wire_record *remote_rec, struct wire_record **remote_refreshed)
UINT WINAPI MsiDatabaseGenerateTransformW(MSIHANDLE hdb, MSIHANDLE hdbref, const WCHAR *szTransformFile, int iReserved1, int iReserved2)
UINT MSI_CommitTables(MSIDATABASE *db) DECLSPEC_HIDDEN
UINT WINAPI MsiCloseHandle(MSIHANDLE handle)
MSIRECORD *WINAPIV MSI_QueryGetRecord(MSIDATABASE *db, LPCWSTR fmt,...)
static UINT msi_set_record_type_string(MSIRECORD *rec, UINT field, UINT type, BOOL temporary)
UINT MSI_RecordSetIStream(MSIRECORD *, UINT, IStream *) DECLSPEC_HIDDEN
MSICONDITION WINAPI MsiDatabaseIsTablePersistentA(MSIHANDLE hDatabase, const char *szTableName)
int MSI_RecordGetInteger(MSIRECORD *, UINT) DECLSPEC_HIDDEN
#define ERROR_INVALID_TABLE
_Check_return_ _CRTIMP int __cdecl wcscmp(_In_z_ const wchar_t *_Str1, _In_z_ const wchar_t *_Str2)
_CRTIMP int __cdecl stat(const char *_Filename, struct stat *_Stat)
UINT VIEW_find_column(MSIVIEW *table, LPCWSTR name, LPCWSTR table_name, UINT *n)
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
UINT __cdecl s_remote_ViewFetch(MSIHANDLE view, struct wire_record **rec)
UINT MSI_ParseSQL(MSIDATABASE *db, LPCWSTR command, MSIVIEW **phview, struct list *mem) DECLSPEC_HIDDEN
UINT WINAPI MsiDatabaseCommit(MSIHANDLE hdb)
MSIHANDLE alloc_msihandle(MSIOBJECTHDR *obj)
WINE_DEFAULT_DEBUG_CHANNEL(msi)
UINT msi_record_set_string(MSIRECORD *, UINT, const WCHAR *, int) DECLSPEC_HIDDEN
UINT(* record_func)(MSIRECORD *, LPVOID)
BOOL WINAPI IsEqualGUID(REFGUID rguid1, REFGUID rguid2)
UINT WINAPI MsiViewGetColumnInfo(MSIHANDLE hView, MSICOLINFO info, MSIHANDLE *hRec)
UINT msi_table_apply_transform(MSIDATABASE *db, IStorage *stg, int err_cond) DECLSPEC_HIDDEN
UINT MSI_DatabaseOpenViewW(MSIDATABASE *db, const WCHAR *szQuery, MSIQUERY **pView)
UINT WINAPI MsiDatabaseOpenViewW(MSIHANDLE hdb, LPCWSTR szQuery, MSIHANDLE *phView)
__WINE_SERVER_LIST_INLINE void list_init(struct list *list)
static void * msi_alloc(size_t len) __WINE_ALLOC_SIZE(1)
static IOleDocumentView * view
#define ERROR_CALL_NOT_IMPLEMENTED
GLuint GLenum GLenum transform
UINT MSI_ViewFetch(MSIQUERY *query, MSIRECORD **prec)
UINT WINAPI MsiDatabaseGetPrimaryKeysA(MSIHANDLE hdb, const char *table, MSIHANDLE *phRec)
GLenum GLenum GLvoid GLvoid * column
GLuint GLuint GLsizei GLenum type
#define STGM_SHARE_DENY_WRITE
#define GetExceptionCode()
unsigned long long UINT64
void * msihandle2msiinfo(MSIHANDLE handle, UINT type)
MSIDBERROR WINAPI MsiViewGetErrorW(MSIHANDLE handle, WCHAR *buffer, DWORD *buflen)
static WCHAR * strdupAtoW(const char *str)
#define ERROR_BAD_QUERY_SYNTAX
UINT __cdecl s_remote_ViewClose(MSIHANDLE view)
MSIHANDLE alloc_msi_remote_handle(MSIHANDLE remote)
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 const GLchar * name
UINT MSI_ViewClose(MSIQUERY *query)