ReactOS 0.4.16-dev-112-g52265ae
delete.c File Reference
#include <stdarg.h>
#include "windef.h"
#include "winbase.h"
#include "winerror.h"
#include "wine/debug.h"
#include "msi.h"
#include "msiquery.h"
#include "objbase.h"
#include "objidl.h"
#include "msipriv.h"
#include "winnls.h"
#include "query.h"
Include dependency graph for delete.c:

Go to the source code of this file.

Classes

struct  delete_view
 

Functions

 WINE_DEFAULT_DEBUG_CHANNEL (msidb)
 
static UINT DELETE_fetch_int (struct tagMSIVIEW *view, UINT row, UINT col, UINT *val)
 
static UINT DELETE_fetch_stream (struct tagMSIVIEW *view, UINT row, UINT col, IStream **stm)
 
static UINT DELETE_execute (struct tagMSIVIEW *view, MSIRECORD *record)
 
static UINT DELETE_close (struct tagMSIVIEW *view)
 
static UINT DELETE_get_dimensions (struct tagMSIVIEW *view, UINT *rows, UINT *cols)
 
static UINT DELETE_get_column_info (struct tagMSIVIEW *view, UINT n, LPCWSTR *name, UINT *type, BOOL *temporary, LPCWSTR *table_name)
 
static UINT DELETE_modify (struct tagMSIVIEW *view, MSIMODIFY eModifyMode, MSIRECORD *rec, UINT row)
 
static UINT DELETE_delete (struct tagMSIVIEW *view)
 
UINT DELETE_CreateView (MSIDATABASE *db, MSIVIEW **view, MSIVIEW *table)
 

Variables

static const MSIVIEWOPS delete_ops
 

Function Documentation

◆ DELETE_close()

static UINT DELETE_close ( struct tagMSIVIEW view)
static

Definition at line 103 of file delete.c.

104{
105 struct delete_view *dv = (struct delete_view *)view;
106
107 TRACE("%p\n", dv );
108
109 if( !dv->table )
111
112 return dv->table->ops->close( dv->table );
113}
#define TRACE(s)
Definition: solgame.cpp:4
MSIVIEW * table
Definition: delete.c:55
UINT(* close)(struct tagMSIVIEW *view)
Definition: msipriv.h:298
const MSIVIEWOPS * ops
Definition: msipriv.h:355
#define ERROR_FUNCTION_FAILED
Definition: winerror.h:985

◆ DELETE_CreateView()

UINT DELETE_CreateView ( MSIDATABASE db,
MSIVIEW **  view,
MSIVIEW table 
)

Definition at line 190 of file delete.c.

191{
192 struct delete_view *dv = NULL;
193
194 TRACE("%p\n", dv );
195
196 dv = calloc( 1, sizeof *dv );
197 if( !dv )
199
200 /* fill the structure */
201 dv->view.ops = &delete_ops;
202 dv->db = db;
203 dv->table = table;
204
205 *view = &dv->view;
206
207 return ERROR_SUCCESS;
208}
#define ERROR_SUCCESS
Definition: deptool.c:10
#define NULL
Definition: types.h:112
static const MSIVIEWOPS delete_ops
Definition: delete.c:167
#define calloc
Definition: rosglue.h:14
MSIDATABASE * db
Definition: delete.c:54
MSIVIEW view
Definition: delete.c:53

◆ DELETE_delete()

static UINT DELETE_delete ( struct tagMSIVIEW view)
static

Definition at line 153 of file delete.c.

154{
155 struct delete_view *dv = (struct delete_view *)view;
156
157 TRACE("%p\n", dv );
158
159 if( dv->table )
160 dv->table->ops->delete( dv->table );
161
162 free( dv );
163
164 return ERROR_SUCCESS;
165}
#define free
Definition: debug_ros.c:5
UINT(* delete)(struct tagMSIVIEW *)
Definition: msipriv.h:324

◆ DELETE_execute()

static UINT DELETE_execute ( struct tagMSIVIEW view,
MSIRECORD record 
)
static

Definition at line 76 of file delete.c.

77{
78 struct delete_view *dv = (struct delete_view *)view;
79 UINT r, i, rows = 0, cols = 0;
80
81 TRACE("%p %p\n", dv, record);
82
83 if( !dv->table )
85
86 r = dv->table->ops->execute( dv->table, record );
87 if( r != ERROR_SUCCESS )
88 return r;
89
90 r = dv->table->ops->get_dimensions( dv->table, &rows, &cols );
91 if( r != ERROR_SUCCESS )
92 return r;
93
94 TRACE("deleting %d rows\n", rows);
95
96 /* blank out all the rows that match */
97 for ( i=0; i<rows; i++ )
98 dv->table->ops->delete_row( dv->table, i );
99
100 return ERROR_SUCCESS;
101}
GLdouble GLdouble GLdouble r
Definition: gl.h:2055
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
Definition: glfuncs.h:248
unsigned int UINT
Definition: ndis.h:50
UINT(* get_dimensions)(struct tagMSIVIEW *view, UINT *rows, UINT *cols)
Definition: msipriv.h:306
UINT(* execute)(struct tagMSIVIEW *view, MSIRECORD *record)
Definition: msipriv.h:293
UINT(* delete_row)(struct tagMSIVIEW *view, UINT row)
Definition: msipriv.h:288

◆ DELETE_fetch_int()

static UINT DELETE_fetch_int ( struct tagMSIVIEW view,
UINT  row,
UINT  col,
UINT val 
)
static

Definition at line 58 of file delete.c.

59{
60 struct delete_view *dv = (struct delete_view *)view;
61
62 TRACE("%p %d %d %p\n", dv, row, col, val );
63
65}
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
Definition: typeof.h:78
GLuint GLfloat * val
Definition: glext.h:7180

◆ DELETE_fetch_stream()

static UINT DELETE_fetch_stream ( struct tagMSIVIEW view,
UINT  row,
UINT  col,
IStream **  stm 
)
static

Definition at line 67 of file delete.c.

68{
69 struct delete_view *dv = (struct delete_view *)view;
70
71 TRACE("%p %d %d %p\n", dv, row, col, stm );
72
74}

◆ DELETE_get_column_info()

static UINT DELETE_get_column_info ( struct tagMSIVIEW view,
UINT  n,
LPCWSTR name,
UINT type,
BOOL temporary,
LPCWSTR table_name 
)
static

Definition at line 129 of file delete.c.

131{
132 struct delete_view *dv = (struct delete_view *)view;
133
134 TRACE("%p %d %p %p %p %p\n", dv, n, name, type, temporary, table_name );
135
136 if( !dv->table )
138
139 return dv->table->ops->get_column_info( dv->table, n, name,
140 type, temporary, table_name);
141}
GLuint GLuint GLsizei GLenum type
Definition: gl.h:1545
GLdouble n
Definition: glext.h:7729
Definition: name.c:39
UINT(* get_column_info)(struct tagMSIVIEW *view, UINT n, LPCWSTR *name, UINT *type, BOOL *temporary, LPCWSTR *table_name)
Definition: msipriv.h:313

◆ DELETE_get_dimensions()

static UINT DELETE_get_dimensions ( struct tagMSIVIEW view,
UINT rows,
UINT cols 
)
static

Definition at line 115 of file delete.c.

116{
117 struct delete_view *dv = (struct delete_view *)view;
118
119 TRACE("%p %p %p\n", dv, rows, cols );
120
121 if( !dv->table )
123
124 *rows = 0;
125
126 return dv->table->ops->get_dimensions( dv->table, NULL, cols );
127}

◆ DELETE_modify()

static UINT DELETE_modify ( struct tagMSIVIEW view,
MSIMODIFY  eModifyMode,
MSIRECORD rec,
UINT  row 
)
static

Definition at line 143 of file delete.c.

145{
146 struct delete_view *dv = (struct delete_view *)view;
147
148 TRACE("%p %d %p\n", dv, eModifyMode, rec );
149
151}

◆ WINE_DEFAULT_DEBUG_CHANNEL()

WINE_DEFAULT_DEBUG_CHANNEL ( msidb  )

Variable Documentation

◆ delete_ops

const MSIVIEWOPS delete_ops
static
Initial value:
=
{
}
static UINT DELETE_execute(struct tagMSIVIEW *view, MSIRECORD *record)
Definition: delete.c:76
static UINT DELETE_fetch_stream(struct tagMSIVIEW *view, UINT row, UINT col, IStream **stm)
Definition: delete.c:67
static UINT DELETE_close(struct tagMSIVIEW *view)
Definition: delete.c:103
static UINT DELETE_modify(struct tagMSIVIEW *view, MSIMODIFY eModifyMode, MSIRECORD *rec, UINT row)
Definition: delete.c:143
static UINT DELETE_fetch_int(struct tagMSIVIEW *view, UINT row, UINT col, UINT *val)
Definition: delete.c:58
static UINT DELETE_delete(struct tagMSIVIEW *view)
Definition: delete.c:153
static UINT DELETE_get_dimensions(struct tagMSIVIEW *view, UINT *rows, UINT *cols)
Definition: delete.c:115
static UINT DELETE_get_column_info(struct tagMSIVIEW *view, UINT n, LPCWSTR *name, UINT *type, BOOL *temporary, LPCWSTR *table_name)
Definition: delete.c:129

Definition at line 167 of file delete.c.

Referenced by DELETE_CreateView().