ReactOS  0.4.15-dev-5112-g22d8c0f
utils.h File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  _msi_table
 

Macros

#define ADD_TABLE(x)   {#x".idt", x##_dat, sizeof(x##_dat)}
 
#define create_database(name, tables, num_tables)
 
#define create_database_template(name, tables, num_tables, version, template)
 
#define create_file(name, size)   create_file_data(name, name, size)
 
#define create_pf(file, is_file)   create_pf_data(file, file, is_file)
 

Typedefs

typedef struct _msi_table msi_table
 

Functions

BOOL get_system_dirs (void)
 
BOOL get_user_dirs (void)
 
void create_database_wordcount (const char *name, const msi_table *tables, int num_tables, int version, int wordcount, const char *template, const char *packagecode)
 
void create_cab_file (const char *name, DWORD max_size, const char *files)
 
void create_file_data (const char *name, const char *data, DWORD size)
 
void create_pf_data (const char *file, const char *data, BOOL is_file)
 
void delete_cab_files (void)
 
BOOL delete_pf (const char *rel_path, BOOL is_file)
 
BOOL file_exists (const char *file)
 
BOOL pf_exists (const char *file)
 
BOOL is_process_limited (void)
 
UINT run_query (MSIHANDLE hdb, MSIHANDLE hrec, const char *query)
 

Variables

char PROG_FILES_DIR [MAX_PATH]
 
char PROG_FILES_DIR_NATIVE [MAX_PATH]
 
char COMMON_FILES_DIR [MAX_PATH]
 
char APP_DATA_DIR [MAX_PATH]
 
char WINDOWS_DIR [MAX_PATH]
 
char CURR_DIR [MAX_PATH]
 

Macro Definition Documentation

◆ ADD_TABLE

#define ADD_TABLE (   x)    {#x".idt", x##_dat, sizeof(x##_dat)}

Definition at line 36 of file utils.h.

◆ create_database

#define create_database (   name,
  tables,
  num_tables 
)
Value:
create_database_wordcount(name, tables, num_tables, 100, 0, ";1033", \
"{004757CA-5092-49C2-AD20-28E1CE0DF5F2}");
struct nls_table * tables
Definition: nls_base.c:22
void create_database_wordcount(const char *name, const msi_table *tables, int num_tables, int version, int wordcount, const char *template, const char *packagecode)
Definition: name.c:38

Definition at line 42 of file utils.h.

◆ create_database_template

#define create_database_template (   name,
  tables,
  num_tables,
  version,
  template 
)
Value:
create_database_wordcount(name, tables, num_tables, version, 0, template, \
"{004757CA-5092-49C2-AD20-28E1CE0DF5F2}");
struct nls_table * tables
Definition: nls_base.c:22
static const WCHAR version[]
Definition: asmname.c:66
void create_database_wordcount(const char *name, const msi_table *tables, int num_tables, int version, int wordcount, const char *template, const char *packagecode)
Definition: name.c:38

Definition at line 46 of file utils.h.

◆ create_file

#define create_file (   name,
  size 
)    create_file_data(name, name, size)

Definition at line 52 of file utils.h.

◆ create_pf

#define create_pf (   file,
  is_file 
)    create_pf_data(file, file, is_file)

Definition at line 54 of file utils.h.

Typedef Documentation

◆ msi_table

Function Documentation

◆ create_cab_file()

void create_cab_file ( const char name,
DWORD  max_size,
const char files 
)

Definition at line 2373 of file install.c.

2374 {
2375  CCAB cabParams;
2376  LPCSTR ptr;
2377  HFCI hfci;
2378  ERF erf;
2379  BOOL res;
2380 
2381  set_cab_parameters(&cabParams, name, max_size);
2382 
2385  get_temp_file, &cabParams, NULL);
2386 
2387  ok(hfci != NULL, "Failed to create an FCI context\n");
2388 
2389  ptr = files;
2390  while (*ptr)
2391  {
2392  res = add_file(hfci, ptr, tcompTYPE_MSZIP);
2393  ok(res, "Failed to add file: %s\n", ptr);
2394  ptr += lstrlenA(ptr) + 1;
2395  }
2396 
2398  ok(res, "Failed to flush the cabinet\n");
2399 
2400  res = FCIDestroy(hfci);
2401  ok(res, "Failed to destroy the cabinet\n");
2402 }
BOOL __cdecl FCIFlushCabinet(HFCI hfci, BOOL fGetNextCab, PFNFCIGETNEXTCABINET pfnfcignc, PFNFCISTATUS pfnfcis)
Definition: fci.c:1675
HFCI __cdecl FCICreate(PERF perf, PFNFCIFILEPLACED pfnfiledest, PFNFCIALLOC pfnalloc, PFNFCIFREE pfnfree, PFNFCIOPEN pfnopen, PFNFCIREAD pfnread, PFNFCIWRITE pfnwrite, PFNFCICLOSE pfnclose, PFNFCISEEK pfnseek, PFNFCIDELETE pfndelete, PFNFCIGETTEMPFILE pfnfcigtf, PCCAB pccab, void *pv)
Definition: fci.c:998
BOOL __cdecl FCIDestroy(HFCI hfci)
Definition: fci.c:1709
static BOOL add_file(HFCI hfci, const char *file, TCOMP compress)
Definition: install.c:2345
static int CDECL fci_close(INT_PTR hf, int *err, void *pv)
Definition: install.c:2200
Definition: fci.h:144
#define tcompTYPE_MSZIP
Definition: fci.h:65
#define FALSE
Definition: types.h:117
unsigned int BOOL
Definition: ntddk_ex.h:94
static UINT CDECL fci_read(INT_PTR hf, void *memory, UINT cb, int *err, void *pv)
Definition: install.c:2176
Definition: fci.h:44
static PVOID ptr
Definition: dispmode.c:27
static INT max_size
Definition: history.c:51
const char * LPCSTR
Definition: xmlstorage.h:183
static void *CDECL mem_alloc(ULONG cb)
Definition: install.c:2126
static void set_cab_parameters(PCCAB pCabParams, const CHAR *name, DWORD max_size)
Definition: install.c:2360
static BOOL CDECL get_next_cabinet(PCCAB pccab, ULONG cbPrevCab, void *pv)
Definition: install.c:2136
double __cdecl erf(double)
static UINT CDECL fci_write(INT_PTR hf, void *memory, UINT cb, int *err, void *pv)
Definition: install.c:2188
static INT_PTR CDECL fci_open(char *pszFile, int oflag, int pmode, int *err, void *pv)
Definition: install.c:2153
static void CDECL mem_free(void *memory)
Definition: install.c:2131
int WINAPI lstrlenA(LPCSTR lpString)
Definition: lstring.c:145
static int CDECL fci_delete(char *pszFile, int *err, void *pv)
Definition: install.c:2219
#define ok(value,...)
Definition: atltest.h:57
#define NULL
Definition: types.h:112
static LONG CDECL progress(UINT typeStatus, ULONG cb1, ULONG cb2, void *pv)
Definition: install.c:2142
Definition: name.c:38
GLuint res
Definition: glext.h:9613
static BOOL CDECL get_temp_file(char *pszTempName, int cbTempName, void *pv)
Definition: install.c:2301
static LONG CDECL fci_seek(INT_PTR hf, LONG dist, int seektype, int *err, void *pv)
Definition: install.c:2208
static int CDECL file_placed(PCCAB pccab, char *pszFile, LONG cbFile, BOOL fContinuation, void *pv)
Definition: install.c:2147

Referenced by create_cc_test_files(), create_test_files(), test_adminimage(), test_cabisextracted(), test_caborder(), test_file_in_use_cab(), test_missingcab(), test_mixedmedia(), and test_readonlyfile_cab().

◆ create_database_wordcount()

void create_database_wordcount ( const char name,
const msi_table tables,
int  num_tables,
int  version,
int  wordcount,
const char template,
const char packagecode 
)

◆ create_file_data()

void create_file_data ( const char name,
const char data,
DWORD  size 
)

◆ create_pf_data()

void create_pf_data ( const char file,
const char data,
BOOL  is_file 
)

◆ delete_cab_files()

void delete_cab_files ( void  )

Definition at line 3097 of file install.c.

3098 {
3099  SHFILEOPSTRUCTA shfl;
3100  CHAR path[MAX_PATH+10];
3101 
3103  lstrcatA(path, "\\*.cab");
3104  path[strlen(path) + 1] = '\0';
3105 
3106  shfl.hwnd = NULL;
3107  shfl.wFunc = FO_DELETE;
3108  shfl.pFrom = path;
3109  shfl.pTo = NULL;
3111 
3112  SHFileOperationA(&shfl);
3113 }
ACPI_SIZE strlen(const char *String)
Definition: utclib.c:269
GLsizei const GLchar ** path
Definition: glext.h:7234
FILEOP_FLAGS fFlags
Definition: shellapi.h:347
#define FOF_SILENT
Definition: shellapi.h:140
char CHAR
Definition: xmlstorage.h:175
char CURR_DIR[MAX_PATH]
Definition: install.c:65
#define FOF_NOCONFIRMATION
Definition: shellapi.h:142
LPSTR WINAPI lstrcatA(LPSTR lpString1, LPCSTR lpString2)
Definition: lstring.c:123
#define FOF_NORECURSION
Definition: shlfileop.c:38
#define FOF_FILESONLY
Definition: shellapi.h:145
#define MAX_PATH
Definition: compat.h:34
LPSTR WINAPI lstrcpyA(LPSTR lpString1, LPCSTR lpString2)
Definition: lstring.c:100
#define NULL
Definition: types.h:112
int WINAPI SHFileOperationA(LPSHFILEOPSTRUCTA lpFileOp)
Definition: shlfileop.cpp:1069
#define FO_DELETE
Definition: shellapi.h:135

Referenced by test_cabisextracted(), test_caborder(), test_continuouscabs(), test_file_in_use_cab(), test_lastusedsource(), test_readonlyfile_cab(), test_samesequence(), and test_uiLevelFlags().

◆ delete_pf()

BOOL delete_pf ( const char rel_path,
BOOL  is_file 
)

Definition at line 2499 of file install.c.

2500 {
2501  CHAR path[MAX_PATH];
2502 
2504  lstrcatA(path, "\\");
2505  lstrcatA(path, rel_path);
2506 
2507  if (is_file)
2508  return DeleteFileA(path);
2509  else
2510  return RemoveDirectoryA(path);
2511 }
char PROG_FILES_DIR[MAX_PATH]
Definition: install.c:66
char CHAR
Definition: xmlstorage.h:175
BOOL WINAPI DeleteFileA(IN LPCSTR lpFileName)
Definition: delete.c:24
LPSTR WINAPI lstrcatA(LPSTR lpString1, LPCSTR lpString2)
Definition: lstring.c:123
#define MAX_PATH
Definition: compat.h:34
LPSTR WINAPI lstrcpyA(LPSTR lpString1, LPCSTR lpString2)
Definition: lstring.c:100
BOOL WINAPI RemoveDirectoryA(IN LPCSTR lpPathName)
Definition: dir.c:714

Referenced by delete_pf_files(), test_admin(), test_adminimage(), test_adminprops(), test_cabisextracted(), test_caborder(), test_continuouscabs(), test_currentworkingdir(), test_customaction51(), test_feature_override(), test_file_in_use(), test_file_in_use_cab(), test_installstate(), test_missingcab(), test_missingcomponent(), test_mixedmedia(), test_package_validation(), test_preselected(), test_propcase(), test_readonlyfile(), test_readonlyfile_cab(), test_samesequence(), test_shortcut(), test_sourcedirprop(), test_sourcefolder(), test_sourcepath(), test_transformprop(), test_uiLevelFlags(), test_upgrade_code(), and test_wow64().

◆ file_exists()

BOOL file_exists ( const char file)

Definition at line 3615 of file install.c.

3616 {
3618 }
DWORD WINAPI GetFileAttributesA(LPCSTR lpFileName)
Definition: fileinfo.c:636
#define INVALID_FILE_ATTRIBUTES
Definition: vfdcmd.c:23
Definition: fci.c:126

Referenced by pf_exists(), and test_icon_table().

◆ get_system_dirs()

BOOL get_system_dirs ( void  )

Definition at line 2423 of file install.c.

2424 {
2425  HKEY hkey;
2426  DWORD type, size;
2427 
2428  if (RegOpenKeyExA(HKEY_LOCAL_MACHINE, "Software\\Microsoft\\Windows\\CurrentVersion",
2429  0, KEY_QUERY_VALUE | KEY_WOW64_64KEY, &hkey))
2430  return FALSE;
2431 
2432  size = MAX_PATH;
2433  if (RegQueryValueExA(hkey, "ProgramFilesDir (x86)", 0, &type, (LPBYTE)PROG_FILES_DIR, &size) &&
2434  RegQueryValueExA(hkey, "ProgramFilesDir", 0, &type, (LPBYTE)PROG_FILES_DIR, &size)) {
2435  RegCloseKey(hkey);
2436  return FALSE;
2437  }
2438 
2439  size = MAX_PATH;
2440  if (RegQueryValueExA(hkey, "CommonFilesDir (x86)", 0, &type, (LPBYTE)COMMON_FILES_DIR, &size) &&
2441  RegQueryValueExA(hkey, "CommonFilesDir", 0, &type, (LPBYTE)COMMON_FILES_DIR, &size)) {
2442  RegCloseKey(hkey);
2443  return FALSE;
2444  }
2445 
2446  size = MAX_PATH;
2447  if (RegQueryValueExA(hkey, "ProgramFilesDir", 0, &type, (LPBYTE)PROG_FILES_DIR_NATIVE, &size)) {
2448  RegCloseKey(hkey);
2449  return FALSE;
2450  }
2451 
2452  RegCloseKey(hkey);
2453 
2455  return FALSE;
2456 
2457  return TRUE;
2458 }
DWORD size
Definition: install.c:3757
LONG WINAPI RegQueryValueExA(_In_ HKEY hkeyorg, _In_ LPCSTR name, _In_ LPDWORD reserved, _Out_opt_ LPDWORD type, _Out_opt_ LPBYTE data, _Inout_opt_ LPDWORD count)
Definition: reg.c:4027
#define TRUE
Definition: types.h:120
char PROG_FILES_DIR[MAX_PATH]
Definition: install.c:66
LONG WINAPI RegOpenKeyExA(_In_ HKEY hKey, _In_ LPCSTR lpSubKey, _In_ DWORD ulOptions, _In_ REGSAM samDesired, _Out_ PHKEY phkResult)
Definition: reg.c:3321
unsigned char * LPBYTE
Definition: typedefs.h:53
#define FALSE
Definition: types.h:117
#define KEY_WOW64_64KEY
Definition: cmtypes.h:46
GLsizeiptr size
Definition: glext.h:5919
#define MAX_PATH
Definition: compat.h:34
unsigned long DWORD
Definition: ntddk_ex.h:95
char PROG_FILES_DIR_NATIVE[MAX_PATH]
Definition: install.c:67
char COMMON_FILES_DIR[MAX_PATH]
Definition: install.c:68
#define KEY_QUERY_VALUE
Definition: nt_native.h:1016
UINT WINAPI GetWindowsDirectoryA(OUT LPSTR lpBuffer, IN UINT uSize)
Definition: path.c:2337
char WINDOWS_DIR[MAX_PATH]
Definition: install.c:70
GLuint GLuint GLsizei GLenum type
Definition: gl.h:1545
#define RegCloseKey(hKey)
Definition: registry.h:47
#define HKEY_LOCAL_MACHINE
Definition: winreg.h:12

Referenced by START_TEST().

◆ get_user_dirs()

BOOL get_user_dirs ( void  )

Definition at line 2404 of file install.c.

2405 {
2406  HKEY hkey;
2407  DWORD type, size;
2408 
2410  "Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Shell Folders", &hkey))
2411  return FALSE;
2412 
2413  size = MAX_PATH;
2414  if(RegQueryValueExA(hkey, "AppData", 0, &type, (LPBYTE)APP_DATA_DIR, &size)){
2415  RegCloseKey(hkey);
2416  return FALSE;
2417  }
2418 
2419  RegCloseKey(hkey);
2420  return TRUE;
2421 }
DWORD size
Definition: install.c:3757
LONG WINAPI RegOpenKeyA(HKEY hKey, LPCSTR lpSubKey, PHKEY phkResult)
Definition: reg.c:3257
LONG WINAPI RegQueryValueExA(_In_ HKEY hkeyorg, _In_ LPCSTR name, _In_ LPDWORD reserved, _Out_opt_ LPDWORD type, _Out_opt_ LPBYTE data, _Inout_opt_ LPDWORD count)
Definition: reg.c:4027
#define TRUE
Definition: types.h:120
#define HKEY_CURRENT_USER
Definition: winreg.h:11
unsigned char * LPBYTE
Definition: typedefs.h:53
#define FALSE
Definition: types.h:117
GLsizeiptr size
Definition: glext.h:5919
char APP_DATA_DIR[MAX_PATH]
Definition: install.c:69
#define MAX_PATH
Definition: compat.h:34
unsigned long DWORD
Definition: ntddk_ex.h:95
GLuint GLuint GLsizei GLenum type
Definition: gl.h:1545
#define RegCloseKey(hKey)
Definition: registry.h:47

Referenced by START_TEST().

◆ is_process_limited()

BOOL is_process_limited ( void  )

Definition at line 2254 of file install.c.

2255 {
2257  PSID Group = NULL;
2258  BOOL IsInGroup;
2259  HANDLE token;
2260 
2262  DOMAIN_ALIAS_RID_ADMINS, 0, 0, 0, 0, 0, 0, &Group) ||
2263  !CheckTokenMembership(NULL, Group, &IsInGroup))
2264  {
2265  trace("Could not check if the current user is an administrator\n");
2266  FreeSid(Group);
2267  return FALSE;
2268  }
2269  FreeSid(Group);
2270 
2271  if (!IsInGroup)
2272  {
2273  /* Only administrators have enough privileges for these tests */
2274  return TRUE;
2275  }
2276 
2278  {
2279  BOOL ret;
2281  DWORD size;
2282 
2284  CloseHandle(token);
2285  return (ret && type == TokenElevationTypeLimited);
2286  }
2287  return FALSE;
2288 }
DWORD size
Definition: install.c:3757
enum _TOKEN_ELEVATION_TYPE TOKEN_ELEVATION_TYPE
#define CloseHandle
Definition: compat.h:598
#define TRUE
Definition: types.h:120
_In_opt_ PSID Group
Definition: rtlfuncs.h:1632
BOOL WINAPI CheckTokenMembership(IN HANDLE ExistingTokenHandle, IN PSID SidToCheck, OUT PBOOL IsMember)
Definition: token.c:21
#define FALSE
Definition: types.h:117
unsigned int BOOL
Definition: ntddk_ex.h:94
PVOID WINAPI FreeSid(PSID pSid)
Definition: security.c:700
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 token
Definition: glfuncs.h:210
#define SECURITY_NT_AUTHORITY
Definition: setypes.h:554
GLsizeiptr size
Definition: glext.h:5919
#define trace
Definition: atltest.h:70
#define SECURITY_BUILTIN_DOMAIN_RID
Definition: setypes.h:581
#define TOKEN_QUERY
Definition: setypes.h:924
unsigned long DWORD
Definition: ntddk_ex.h:95
int ret
static SID_IDENTIFIER_AUTHORITY NtAuthority
Definition: security.c:40
#define GetCurrentProcess()
Definition: compat.h:618
#define NULL
Definition: types.h:112
BOOL WINAPI OpenProcessToken(HANDLE ProcessHandle, DWORD DesiredAccess, PHANDLE TokenHandle)
Definition: security.c:296
BOOL WINAPI GetTokenInformation(HANDLE TokenHandle, TOKEN_INFORMATION_CLASS TokenInformationClass, LPVOID TokenInformation, DWORD TokenInformationLength, PDWORD ReturnLength)
Definition: security.c:413
GLuint GLuint GLsizei GLenum type
Definition: gl.h:1545
#define DOMAIN_ALIAS_RID_ADMINS
Definition: setypes.h:652
BOOL WINAPI AllocateAndInitializeSid(PSID_IDENTIFIER_AUTHORITY pIdentifierAuthority, BYTE nSubAuthorityCount, DWORD nSubAuthority0, DWORD nSubAuthority1, DWORD nSubAuthority2, DWORD nSubAuthority3, DWORD nSubAuthority4, DWORD nSubAuthority5, DWORD nSubAuthority6, DWORD nSubAuthority7, PSID *pSid)
Definition: security.c:676

Referenced by test_adminimage(), test_adminprops(), test_allusers_prop(), test_cabisextracted(), test_continuouscabs(), test_currentworkingdir(), test_customaction51(), test_feature_override(), test_feature_tree(), test_file_in_use(), test_file_in_use_cab(), test_icon_table(), test_installed_prop(), test_installstate(), test_missingcab(), test_missingcomponent(), test_mixed_package(), test_mixedmedia(), test_MsiInstallProduct(), test_package_validation(), test_preselected(), test_propcase(), test_readonlyfile(), test_readonlyfile_cab(), test_remove_upgrade_code(), test_setdirproperty(), test_shared_component(), test_shortcut(), test_source_resolution(), test_sourcedirprop(), test_sourcefolder(), test_transformprop(), test_upgrade_code(), test_volume_props(), and test_wow64().

◆ pf_exists()

BOOL pf_exists ( const char file)

Definition at line 3620 of file install.c.

3621 {
3622  CHAR path[MAX_PATH];
3623 
3625  lstrcatA(path, "\\");
3626  lstrcatA(path, file);
3627 
3628  return file_exists(path);
3629 }
BOOL file_exists(const char *file)
Definition: install.c:3615
char PROG_FILES_DIR[MAX_PATH]
Definition: install.c:66
char CHAR
Definition: xmlstorage.h:175
LPSTR WINAPI lstrcatA(LPSTR lpString1, LPCSTR lpString2)
Definition: lstring.c:123
#define MAX_PATH
Definition: compat.h:34
LPSTR WINAPI lstrcpyA(LPSTR lpString1, LPCSTR lpString2)
Definition: lstring.c:100
Definition: fci.c:126

Referenced by test_feature_override(), test_missingcomponent(), test_shared_component(), and test_upgrade_code().

◆ run_query()

UINT run_query ( MSIHANDLE  hdb,
MSIHANDLE  hrec,
const char query 
)

Definition at line 3653 of file install.c.

3654 {
3655  MSIHANDLE hview = 0;
3656  UINT r;
3657 
3658  r = MsiDatabaseOpenViewA(hdb, query, &hview);
3659  if(r != ERROR_SUCCESS)
3660  return r;
3661 
3662  r = MsiViewExecute(hview, hrec);
3663  if(r == ERROR_SUCCESS)
3664  r = MsiViewClose(hview);
3665  MsiCloseHandle(hview);
3666  return r;
3667 }
UINT WINAPI MsiViewExecute(MSIHANDLE hView, MSIHANDLE hRec)
Definition: msiquery.c:518
#define ERROR_SUCCESS
Definition: deptool.c:10
GLdouble GLdouble GLdouble r
Definition: gl.h:2055
UINT WINAPI MsiViewClose(MSIHANDLE hView)
Definition: msiquery.c:469
UINT WINAPI MsiDatabaseOpenViewA(MSIHANDLE hdb, const char *szQuery, MSIHANDLE *phView)
Definition: msiquery.c:88
unsigned long MSIHANDLE
Definition: winemsi.idl:24
UINT WINAPI MsiCloseHandle(MSIHANDLE handle)
Definition: handle.c:269
unsigned int UINT
Definition: ndis.h:50

Referenced by add_custom_dll(), generate_transform(), test_customaction1(), and test_icon_table().

Variable Documentation

◆ APP_DATA_DIR

char APP_DATA_DIR[MAX_PATH]

Definition at line 69 of file install.c.

Referenced by get_user_dirs(), and test_icon_table().

◆ COMMON_FILES_DIR

char COMMON_FILES_DIR[MAX_PATH]

Definition at line 68 of file install.c.

Referenced by delete_cf(), and get_system_dirs().

◆ CURR_DIR

◆ PROG_FILES_DIR

◆ PROG_FILES_DIR_NATIVE

char PROG_FILES_DIR_NATIVE[MAX_PATH]

Definition at line 67 of file install.c.

Referenced by delete_pf_native(), and get_system_dirs().

◆ WINDOWS_DIR

char WINDOWS_DIR[MAX_PATH]

Definition at line 70 of file install.c.

Referenced by get_system_dirs(), and test_icon_table().