43#define FORMAT_NULL 0x0001
44#define FORMAT_LITERAL 0x0002
45#define FORMAT_NUMBER 0x0004
46#define FORMAT_LBRACK 0x0010
47#define FORMAT_LBRACE 0x0020
48#define FORMAT_RBRACK 0x0011
49#define FORMAT_RBRACE 0x0021
50#define FORMAT_ESCAPE 0x0040
51#define FORMAT_PROPNULL 0x0080
52#define FORMAT_ERROR 0x1000
53#define FORMAT_FAIL 0x2000
55#define left_type(x) (x & 0xF0)
309 else if (ch ==
'%' || ch ==
'#' || ch ==
'!' || ch ==
'$')
367 return ((
x >=
'0') && (
x <=
'9'));
384 x !=
'[' &&
x !=
']' &&
x !=
'{' &&
x !=
'}');
465 ERR(
"Got unknown character %c(%x)\n", ch, ch);
543 ret->propfound = propfound;
544 ret->nonprop = nonprop;
551 int *oldsize,
int *
type,
int *
len )
562 *oldsize =
node->len;
567 *oldsize +=
node->len;
583 if (!
format->groupfailed && (*oldsize == 2 ||
584 (
format->propfailed && !*nonprop)))
595 else if (*propfound && !*nonprop &&
621 int *oldsize,
int *
type,
int *
len )
632 *oldsize =
node->len;
638 *oldsize +=
node->len;
692 &nonprop, &oldsize, &
type, &
len );
696 &nonprop, &oldsize, &
type, &
len );
742 if (*
data ==
'[' && *(
data - 1) !=
'\\')
744 else if (*
data ==
']')
855 if (!record_deformated)
861 for (
i = 1;
i <= field_count;
i++)
906 TRACE(
"%lu, %lu, %p, %p\n", hInstall, hRecord, szResult, sz );
912 package = msihandle2msiinfo( hInstall, MSIHANDLETYPE_PACKAGE );
969 package = msihandle2msiinfo(hinst, MSIHANDLETYPE_PACKAGE);
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
static WCHAR * strdupW(const WCHAR *src)
static void list_remove(struct list_entry *entry)
static int list_empty(struct list_entry *head)
static void list_add_head(struct list_entry *head, struct list_entry *entry)
static void list_init(struct list_entry *head)
#define ERROR_INVALID_PARAMETER
#define GetEnvironmentVariableW(x, y, z)
#define ERROR_INVALID_HANDLE
DWORD WINAPI GetShortPathNameW(IN LPCWSTR lpszLongPath, OUT LPWSTR lpszShortPath, IN DWORD cchBuffer)
MSICOMPONENT * msi_get_loaded_component(MSIPACKAGE *package, const WCHAR *Component)
MSIFILE * msi_get_loaded_file(MSIPACKAGE *package, const WCHAR *key)
LONG WINAPI rpc_filter(EXCEPTION_POINTERS *eptr)
MSIHANDLE msi_get_remote(MSIHANDLE handle)
int msiobj_release(MSIOBJECTHDR *info)
void * msihandle2msiinfo(MSIHANDLE handle, UINT type)
UINT msi_strncpyW(const WCHAR *str, int len, WCHAR *buf, DWORD *sz)
WCHAR * msi_resolve_source_folder(MSIPACKAGE *package, const WCHAR *name, MSIFOLDER **folder)
UINT msi_strncpyWtoA(const WCHAR *str, int lenW, char *buf, DWORD *sz, BOOL remote)
const WCHAR * msi_get_target_folder(MSIPACKAGE *package, const WCHAR *name)
GLint GLint GLint GLint GLint x
GLuint GLuint GLsizei GLenum type
GLuint GLuint GLsizei count
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
GLint GLint GLsizei GLsizei GLsizei GLint GLenum format
GLdouble GLdouble GLdouble r
GLdouble GLdouble GLdouble GLdouble top
GLenum GLuint GLenum GLsizei const GLchar * buf
GLboolean GLenum GLenum GLvoid * values
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
_Check_return_ long __cdecl wcstol(_In_z_ const wchar_t *_Str, _Out_opt_ _Deref_post_z_ wchar_t **_EndPtr, _In_ int _Radix)
LPWSTR WINAPI lstrcatW(LPWSTR lpString1, LPCWSTR lpString2)
#define memcpy(s1, s2, n)
static JOBOBJECTINFOCLASS LPVOID DWORD LPDWORD ret_len
static void * msi_realloc(void *mem, size_t len) __WINE_ALLOC_SIZE(2)
WCHAR * msi_dup_record_field(MSIRECORD *row, INT index) DECLSPEC_HIDDEN
static void * msi_alloc_zero(size_t len) __WINE_ALLOC_SIZE(1)
UINT MSI_RecordGetStringW(MSIRECORD *, UINT, LPWSTR, LPDWORD) DECLSPEC_HIDDEN
#define MSIHANDLETYPE_RECORD
static void msi_free(void *mem)
UINT msi_get_property(MSIDATABASE *, LPCWSTR, LPWSTR, LPDWORD) DECLSPEC_HIDDEN
const WCHAR * MSI_RecordGetString(const MSIRECORD *, UINT) DECLSPEC_HIDDEN
UINT MSI_RecordGetFieldCount(const MSIRECORD *rec) DECLSPEC_HIDDEN
static void * msi_alloc(size_t len) __WINE_ALLOC_SIZE(1)
MSIRECORD * MSI_CreateRecord(UINT) DECLSPEC_HIDDEN
MSIRECORD * MSI_CloneRecord(MSIRECORD *) DECLSPEC_HIDDEN
void dump_record(MSIRECORD *) DECLSPEC_HIDDEN
BOOL MSI_RecordIsNull(MSIRECORD *, UINT) DECLSPEC_HIDDEN
UINT MSI_RecordSetStringW(MSIRECORD *, UINT, LPCWSTR) DECLSPEC_HIDDEN
INT replace(TCHAR source[MAX_PATH], TCHAR dest[MAX_PATH], DWORD dwFlags, BOOL *doMore)
#define LIST_FOR_EACH_ENTRY(elem, list, type, field)
#define GetExceptionCode()