#include <stdarg.h>
#include "windef.h"
#include "winbase.h"
#include "winreg.h"
#include "wine/debug.h"
#include "msipriv.h"
Go to the source code of this file.
|
| WINE_DEFAULT_DEBUG_CHANNEL (msi) |
|
static BOOL | load_fusion_dlls (MSIPACKAGE *package) |
|
BOOL | msi_init_assembly_caches (MSIPACKAGE *package) |
|
void | msi_destroy_assembly_caches (MSIPACKAGE *package) |
|
static MSIRECORD * | get_assembly_record (MSIPACKAGE *package, const WCHAR *comp) |
|
static UINT | get_assembly_name_attribute (MSIRECORD *rec, LPVOID param) |
|
static WCHAR * | get_assembly_display_name (MSIDATABASE *db, const WCHAR *comp, MSIASSEMBLY *assembly) |
|
static BOOL | is_assembly_installed (IAssemblyCache *cache, const WCHAR *display_name) |
|
WCHAR * | msi_get_assembly_path (MSIPACKAGE *package, const WCHAR *displayname) |
|
IAssemblyEnum * | msi_create_assembly_enum (MSIPACKAGE *package, const WCHAR *displayname) |
|
static const WCHAR * | get_clr_version_str (enum clr_version version) |
|
MSIASSEMBLY * | msi_load_assembly (MSIPACKAGE *package, MSICOMPONENT *comp) |
|
static enum clr_version | get_clr_version (MSIPACKAGE *package, const WCHAR *filename) |
|
UINT | msi_install_assembly (MSIPACKAGE *package, MSICOMPONENT *comp) |
|
UINT | msi_uninstall_assembly (MSIPACKAGE *package, MSICOMPONENT *comp) |
|
static WCHAR * | build_local_assembly_path (const WCHAR *filename) |
|
static LONG | open_assemblies_key (UINT context, BOOL win32, HKEY *hkey) |
|
static LONG | open_local_assembly_key (UINT context, BOOL win32, const WCHAR *filename, HKEY *hkey) |
|
static LONG | delete_local_assembly_key (UINT context, BOOL win32, const WCHAR *filename) |
|
static LONG | open_global_assembly_key (UINT context, BOOL win32, HKEY *hkey) |
|
UINT | ACTION_MsiPublishAssemblies (MSIPACKAGE *package) |
|
UINT | ACTION_MsiUnpublishAssemblies (MSIPACKAGE *package) |
|
◆ COBJMACROS
◆ ACTION_MsiPublishAssemblies()
Definition at line 595 of file assembly.c.
641 WARN(
"failed to open local assembly key %ld\n",
res );
649 WARN(
"failed to open global assembly key %ld\n",
res );
656 WARN(
"failed to set assembly value %ld\n",
res );
UINT MSI_RecordSetStringW(MSIRECORD *, UINT, LPCWSTR) DECLSPEC_HIDDEN
INSTALLSTATE msi_get_component_action(MSIPACKAGE *package, MSICOMPONENT *comp)
#define LIST_FOR_EACH_ENTRY(elem, list, type, field)
#define ERROR_FUNCTION_FAILED
static LONG open_local_assembly_key(UINT context, BOOL win32, const WCHAR *filename, HKEY *hkey)
INT MSI_ProcessMessage(MSIPACKAGE *, INSTALLMESSAGE, MSIRECORD *) DECLSPEC_HIDDEN
MSIFILE * msi_get_loaded_file(MSIPACKAGE *package, const WCHAR *key)
LONG WINAPI RegSetValueExW(_In_ HKEY hKey, _In_ LPCWSTR lpValueName, _In_ DWORD Reserved, _In_ DWORD dwType, _In_ CONST BYTE *lpData, _In_ DWORD cbData)
int msiobj_release(MSIOBJECTHDR *info)
MSIRECORD * MSI_CreateRecord(UINT) DECLSPEC_HIDDEN
static LONG open_global_assembly_key(UINT context, BOOL win32, HKEY *hkey)
HRESULT WINAPI CLSIDFromString(LPCOLESTR idstr, LPCLSID id)
#define RegCloseKey(hKey)
UINT msi_schedule_action(MSIPACKAGE *package, UINT script, const WCHAR *action)
BOOL encode_base85_guid(GUID *, LPWSTR) DECLSPEC_HIDDEN
◆ ACTION_MsiUnpublishAssemblies()
Definition at line 668 of file assembly.c.
702 WARN(
"failed to delete local assembly key %ld\n",
res );
708 WARN(
"failed to delete global assembly key %ld\n",
res );
712 WARN(
"failed to delete global assembly value %ld\n",
res );
UINT MSI_RecordSetStringW(MSIRECORD *, UINT, LPCWSTR) DECLSPEC_HIDDEN
INSTALLSTATE msi_get_component_action(MSIPACKAGE *package, MSICOMPONENT *comp)
#define LIST_FOR_EACH_ENTRY(elem, list, type, field)
INT MSI_ProcessMessage(MSIPACKAGE *, INSTALLMESSAGE, MSIRECORD *) DECLSPEC_HIDDEN
MSIFILE * msi_get_loaded_file(MSIPACKAGE *package, const WCHAR *key)
int msiobj_release(MSIOBJECTHDR *info)
MSIRECORD * MSI_CreateRecord(UINT) DECLSPEC_HIDDEN
static LONG delete_local_assembly_key(UINT context, BOOL win32, const WCHAR *filename)
LONG WINAPI RegDeleteValueW(HKEY hKey, LPCWSTR lpValueName)
static LONG open_global_assembly_key(UINT context, BOOL win32, HKEY *hkey)
#define RegCloseKey(hKey)
UINT msi_schedule_action(MSIPACKAGE *package, UINT script, const WCHAR *action)
◆ build_local_assembly_path()
Definition at line 498 of file assembly.c.
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
static void * msi_alloc(size_t len) __WINE_ALLOC_SIZE(1)
Referenced by delete_local_assembly_key(), and open_local_assembly_key().
◆ delete_local_assembly_key()
Definition at line 555 of file assembly.c.
GLsizei const GLchar ** path
LONG WINAPI RegDeleteKeyW(_In_ HKEY hKey, _In_ LPCWSTR lpSubKey)
static void msi_free(void *mem)
static LONG open_assemblies_key(UINT context, BOOL win32, HKEY *hkey)
static WCHAR * build_local_assembly_path(const WCHAR *filename)
#define RegCloseKey(hKey)
Referenced by ACTION_MsiUnpublishAssemblies().
◆ get_assembly_display_name()
Definition at line 175 of file assembly.c.
183 r =
MSI_OpenQuery( db, &
view,
L"SELECT * FROM `MsiAssemblyName` WHERE `Component_` = '%s'", comp );
191 if (!
name.count)
goto done;
194 if (!
name.attrs)
goto done;
205 for (
i = 0;
i <
name.count;
i++)
GLdouble GLdouble GLdouble r
static void msi_free(void *mem)
UINT WINAPIV MSI_OpenQuery(MSIDATABASE *, MSIQUERY **, LPCWSTR,...) DECLSPEC_HIDDEN
int msiobj_release(MSIOBJECTHDR *info)
static UINT get_assembly_name_attribute(MSIRECORD *rec, LPVOID param)
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
static void * msi_alloc(size_t len) __WINE_ALLOC_SIZE(1)
static IOleDocumentView * view
LPWSTR WINAPI lstrcatW(LPWSTR lpString1, LPCWSTR lpString2)
UINT MSI_IterateRecords(MSIQUERY *, LPDWORD, record_func, LPVOID) DECLSPEC_HIDDEN
Referenced by msi_load_assembly().
◆ get_assembly_name_attribute()
Definition at line 160 of file assembly.c.
const WCHAR * MSI_RecordGetString(const MSIRECORD *, UINT) DECLSPEC_HIDDEN
int _cdecl swprintf(const WCHAR *,...)
static void * msi_alloc(size_t len) __WINE_ALLOC_SIZE(1)
Referenced by get_assembly_display_name().
◆ get_assembly_record()
Definition at line 124 of file assembly.c.
130 r =
MSI_OpenQuery( package->
db, &
view,
L"SELECT * FROM `MsiAssembly` WHERE `Component_` = '%s'", comp );
147 TRACE(
"component is a global assembly\n");
GLdouble GLdouble GLdouble r
UINT MSI_ViewExecute(MSIQUERY *, MSIRECORD *) DECLSPEC_HIDDEN
UINT WINAPIV MSI_OpenQuery(MSIDATABASE *, MSIQUERY **, LPCWSTR,...) DECLSPEC_HIDDEN
UINT MSI_ViewFetch(MSIQUERY *, MSIRECORD **) DECLSPEC_HIDDEN
const WCHAR * MSI_RecordGetString(const MSIRECORD *, UINT) DECLSPEC_HIDDEN
int msiobj_release(MSIOBJECTHDR *info)
static IOleDocumentView * view
Referenced by msi_load_assembly().
◆ get_clr_version()
Definition at line 386 of file assembly.c.
static void msi_free(void *mem)
static const WCHAR version[]
#define E_NOT_SUFFICIENT_BUFFER
_Check_return_ _CRTIMP int __cdecl wcscmp(_In_z_ const wchar_t *_Str1, _In_z_ const wchar_t *_Str2)
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
static void * msi_alloc(size_t len) __WINE_ALLOC_SIZE(1)
Referenced by msi_install_assembly().
◆ get_clr_version_str()
◆ is_assembly_installed()
Definition at line 222 of file assembly.c.
231 hr = IAssemblyCache_QueryAssemblyInfo(
cache, 0, display_name, &
info );
236 TRACE(
"QueryAssemblyInfo returned %#lx\n",
hr );
#define ASSEMBLYINFO_FLAG_INSTALLED
static struct _test_info info[]
#define E_NOT_SUFFICIENT_BUFFER
Referenced by msi_load_assembly().
◆ load_fusion_dlls()
Definition at line 33 of file assembly.c.
48 pLoadLibraryShim(
L"fusion.dll",
L"v1.0.3705",
NULL, &package->
hfusion10 );
49 pLoadLibraryShim(
L"fusion.dll",
L"v1.1.4322",
NULL, &package->
hfusion11 );
50 pLoadLibraryShim(
L"fusion.dll",
L"v2.0.50727",
NULL, &package->
hfusion20 );
51 pLoadLibraryShim(
L"fusion.dll",
L"v4.0.30319",
NULL, &package->
hfusion40 );
UINT WINAPI GetSystemDirectoryW(OUT LPWSTR lpBuffer, IN UINT uSize)
#define GetProcAddress(x, y)
Referenced by msi_init_assembly_caches().
◆ msi_create_assembly_enum()
Definition at line 265 of file assembly.c.
273 if (!package->pCreateAssemblyNameObject || !package->pCreateAssemblyEnum)
return NULL;
281 IAssemblyName_Release(
name );
286 IAssemblyName_Release(
name );
293 hr = package->pCreateAssemblyNameObject( &
name,
str, 0,
NULL );
298 IAssemblyName_Release(
name );
static void msi_free(void *mem)
#define E_NOT_SUFFICIENT_BUFFER
static void * msi_alloc(size_t len) __WINE_ALLOC_SIZE(1)
GLuint const GLchar * name
Referenced by patch_assembly().
◆ msi_destroy_assembly_caches()
Definition at line 92 of file assembly.c.
98 IAssemblyCache_Release( package->
cache_sxs );
105 IAssemblyCache_Release( package->
cache_net[
i] );
109 package->pGetFileVersion =
NULL;
110 package->pCreateAssemblyNameObject =
NULL;
111 package->pCreateAssemblyEnum =
NULL;
IAssemblyCache * cache_sxs
WCHAR DWORD const WCHAR void IUnknown IAssemblyName void *IAssemblyCache * cache_net[CLR_VERSION_MAX]
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
Referenced by MSI_FreePackage().
◆ msi_get_assembly_path()
Definition at line 240 of file assembly.c.
250 hr = IAssemblyCache_QueryAssemblyInfo(
cache, 0, displayname, &
info );
255 hr = IAssemblyCache_QueryAssemblyInfo(
cache, 0, displayname, &
info );
262 return info.pszCurrentAssemblyPathBuf;
static void msi_free(void *mem)
static struct _test_info info[]
WCHAR DWORD const WCHAR void IUnknown IAssemblyName void *IAssemblyCache * cache_net[CLR_VERSION_MAX]
#define E_NOT_SUFFICIENT_BUFFER
static void * msi_alloc(size_t len) __WINE_ALLOC_SIZE(1)
Referenced by patch_assembly().
◆ msi_init_assembly_caches()
Definition at line 56 of file assembly.c.
static BOOL load_fusion_dlls(MSIPACKAGE *package)
IAssemblyCache * cache_sxs
WCHAR DWORD const WCHAR void IUnknown IAssemblyName void *IAssemblyCache * cache_net[CLR_VERSION_MAX]
HRESULT WINAPI CreateAssemblyCache(IAssemblyCache **ppAsmCache, DWORD dwReserved)
#define GetProcAddress(x, y)
Referenced by MSI_OpenPackageW().
◆ msi_install_assembly()
Definition at line 411 of file assembly.c.
431 WARN(
"no manifest\n");
INTERNETFEATURELIST feature
MSIFEATURE * msi_get_loaded_feature(MSIPACKAGE *package, const WCHAR *Feature)
struct file_info manifest
#define ERROR_FUNCTION_FAILED
MSIFILE * msi_get_loaded_file(MSIPACKAGE *package, const WCHAR *key)
IAssemblyCache * cache_sxs
WCHAR DWORD const WCHAR void IUnknown IAssemblyName void *IAssemblyCache * cache_net[CLR_VERSION_MAX]
static enum clr_version get_clr_version(MSIPACKAGE *package, const WCHAR *filename)
static const CHAR manifest[]
Referenced by ACTION_InstallFiles(), and ACTION_PatchFiles().
◆ msi_load_assembly()
Definition at line 319 of file assembly.c.
340 TRACE(
"attributes %lu\n",
a->attributes );
344 WARN(
"can't get display name\n");
372 if (
a->clr_version[
i])
381 TRACE(
"assembly is %s\n",
a->installed ?
"installed" :
"not installed");
static const WCHAR * get_clr_version_str(enum clr_version version)
static WCHAR * get_assembly_display_name(MSIDATABASE *db, const WCHAR *comp, MSIASSEMBLY *assembly)
static void msi_free(void *mem)
static void * msi_alloc_zero(size_t len) __WINE_ALLOC_SIZE(1)
static MSIRECORD * get_assembly_record(MSIPACKAGE *package, const WCHAR *comp)
static BOOL is_assembly_installed(IAssemblyCache *cache, const WCHAR *display_name)
const WCHAR * MSI_RecordGetString(const MSIRECORD *, UINT) DECLSPEC_HIDDEN
IAssemblyCache * cache_sxs
WCHAR DWORD const WCHAR void IUnknown IAssemblyName void *IAssemblyCache * cache_net[CLR_VERSION_MAX]
int msiobj_release(MSIOBJECTHDR *info)
int MSI_RecordGetInteger(MSIRECORD *, UINT) DECLSPEC_HIDDEN
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
GLboolean GLboolean GLboolean GLboolean a
static LPWSTR strdupW(LPCWSTR src)
Referenced by load_component().
◆ msi_uninstall_assembly()
Definition at line 456 of file assembly.c.
477 if (
FAILED(
hr ))
WARN(
"failed to uninstall assembly %#lx\n",
hr );
489 if (
FAILED(
hr ))
WARN(
"failed to uninstall assembly %#lx\n",
hr );
INTERNETFEATURELIST feature
MSIFEATURE * msi_get_loaded_feature(MSIPACKAGE *package, const WCHAR *Feature)
IAssemblyCache * cache_sxs
WCHAR DWORD const WCHAR void IUnknown IAssemblyName void *IAssemblyCache * cache_net[CLR_VERSION_MAX]
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
Referenced by ACTION_RemoveFiles().
◆ open_assemblies_key()
Definition at line 515 of file assembly.c.
523 if (win32)
path =
L"Installer\\Win32Assemblies\\";
524 else path =
L"Installer\\Assemblies\\";
529 if (win32)
path =
L"Software\\Microsoft\\Installer\\Win32Assemblies\\";
530 else path =
L"Software\\Microsoft\\Installer\\Assemblies\\";
GLsizei const GLchar ** path
#define HKEY_CURRENT_USER
LONG WINAPI RegCreateKeyW(HKEY hKey, LPCWSTR lpSubKey, PHKEY phkResult)
#define HKEY_CLASSES_ROOT
Referenced by delete_local_assembly_key(), and open_local_assembly_key().
◆ open_global_assembly_key()
Definition at line 575 of file assembly.c.
583 if (win32)
path =
L"Installer\\Win32Assemblies\\Global";
584 else path =
L"Installer\\Assemblies\\Global";
589 if (win32)
path =
L"Software\\Microsoft\\Installer\\Win32Assemblies\\Global";
590 else path =
L"Software\\Microsoft\\Installer\\Assemblies\\Global";
GLsizei const GLchar ** path
#define HKEY_CURRENT_USER
LONG WINAPI RegCreateKeyW(HKEY hKey, LPCWSTR lpSubKey, PHKEY phkResult)
#define HKEY_CLASSES_ROOT
Referenced by ACTION_MsiPublishAssemblies(), and ACTION_MsiUnpublishAssemblies().
◆ open_local_assembly_key()
Definition at line 535 of file assembly.c.
GLsizei const GLchar ** path
static void msi_free(void *mem)
static LONG open_assemblies_key(UINT context, BOOL win32, HKEY *hkey)
LONG WINAPI RegCreateKeyW(HKEY hKey, LPCWSTR lpSubKey, PHKEY phkResult)
static WCHAR * build_local_assembly_path(const WCHAR *filename)
#define RegCloseKey(hKey)
Referenced by ACTION_MsiPublishAssemblies().
◆ WINE_DEFAULT_DEBUG_CHANNEL()
WINE_DEFAULT_DEBUG_CHANNEL |
( |
msi |
| ) |
|
◆ clr_version