542 if (comp ==
ext->Component)
635 TRACE(
"Loading all the class info and related tables\n");
668 if (
appid->RemoteServerName)
671 if (
appid->LocalServer)
674 if (
appid->ServiceParameters)
677 if (
appid->DllSurrogate)
680 if (
appid->ActivateAtStorage)
683 if (
appid->RunAsInteractiveUser)
694 HKEY hkey, hkey2, hkey3;
727 TRACE(
"component is disabled\n");
739 TRACE(
"feature %s not scheduled for installation, skipping registration of class %s\n",
893 TRACE(
"component is disabled\n");
904 TRACE(
"feature %s not scheduled for removal, skipping unregistration of class %s\n",
914 WARN(
"failed to delete class key %ld\n",
res);
923 WARN(
"failed to delete appid key %ld\n",
res);
938 WARN(
"failed to delete file type %ld\n",
res);
956 return progid->Class->clsid;
1114 TRACE(
"failed to delete progid key %ld\n",
res);
1222 if (!
ext->Component)
1225 if (!
ext->Component->Enabled)
1227 TRACE(
"component is disabled\n");
1243 TRACE(
"feature %s not scheduled for installation, skipping registration of extension %s\n",
1259 WARN(
"failed to create extension key %ld\n",
res);
1265 if (
ext->ProgID ||
ext->ProgIDText)
1293 ext, verb, &Sequence);
1326 if (!
ext->Component)
1329 if (!
ext->Component->Enabled)
1331 TRACE(
"component is disabled\n");
1342 TRACE(
"feature %s not scheduled for removal, skipping unregistration of extension %s\n",
1358 WARN(
"failed to delete extension key %ld\n",
res);
1361 if (
ext->ProgID ||
ext->ProgIDText)
1379 WARN(
"failed to delete shell key %ld\n",
res);
1424 lstrlenW(
L"MIME\\Database\\Content Type\\" ) + 1) *
sizeof(
WCHAR) );
1426 if (extension &&
key)
1481 lstrcpyW( mime_key,
L"MIME\\Database\\Content Type\\" );
1485 WARN(
"failed to delete MIME key %ld\n",
res);
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
static WCHAR * strdupW(const WCHAR *src)
static int list_empty(struct list_entry *head)
static void list_add_tail(struct list_entry *head, struct list_entry *entry)
static void list_init(struct list_entry *head)
#define RegCloseKey(hKey)
LSTATUS WINAPI RegDeleteTreeW(_In_ HKEY, _In_opt_ LPCWSTR)
LONG WINAPI RegCreateKeyExW(_In_ HKEY hKey, _In_ LPCWSTR lpSubKey, _In_ DWORD Reserved, _In_opt_ LPWSTR lpClass, _In_ DWORD dwOptions, _In_ REGSAM samDesired, _In_opt_ LPSECURITY_ATTRIBUTES lpSecurityAttributes, _Out_ PHKEY phkResult, _Out_opt_ LPDWORD lpdwDisposition)
LONG WINAPI RegOpenKeyW(HKEY hKey, LPCWSTR lpSubKey, PHKEY phkResult)
LONG WINAPI RegDeleteKeyW(_In_ HKEY hKey, _In_ LPCWSTR lpSubKey)
LONG WINAPI RegCreateKeyW(HKEY hKey, LPCWSTR lpSubKey, PHKEY phkResult)
static const WCHAR *const ext[]
MSIFEATURE * msi_get_loaded_feature(MSIPACKAGE *package, const WCHAR *Feature)
WCHAR * msi_create_component_advertise_string(MSIPACKAGE *package, MSICOMPONENT *component, const WCHAR *feature)
MSICOMPONENT * msi_get_loaded_component(MSIPACKAGE *package, const WCHAR *Component)
WCHAR * msi_build_icon_path(MSIPACKAGE *package, const WCHAR *icon_name)
WCHAR *WINAPIV msi_build_directory_name(DWORD count,...)
INSTALLSTATE msi_get_feature_action(MSIPACKAGE *package, MSIFEATURE *feature)
MSIFILE * msi_get_loaded_file(MSIPACKAGE *package, const WCHAR *key)
UINT msi_schedule_action(MSIPACKAGE *package, UINT script, const WCHAR *action)
void msi_reduce_to_long_filename(WCHAR *filename)
int msiobj_release(MSIOBJECTHDR *info)
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
GLdouble GLdouble GLdouble r
GLuint GLint GLboolean GLint GLenum access
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
LPWSTR WINAPI lstrcatW(LPWSTR lpString1, LPCWSTR lpString2)
INTERNETFEATURELIST feature
static LPCWSTR get_clsid_of_progid(const MSIPROGID *progid)
UINT ACTION_UnregisterMIMEInfo(MSIPACKAGE *package)
UINT ACTION_UnregisterExtensionInfo(MSIPACKAGE *package)
static const MSICLASS * get_progid_class(const MSIPROGID *progid)
static MSICLASS * load_given_class(MSIPACKAGE *package, LPCWSTR classid)
static UINT load_all_classes(MSIPACKAGE *package)
static UINT register_verb(MSIPACKAGE *package, LPCWSTR progid, MSICOMPONENT *component, const MSIEXTENSION *extension, MSIVERB *verb, INT *Sequence)
static MSIMIME * load_given_mime(MSIPACKAGE *package, LPCWSTR mime)
UINT ACTION_RegisterMIMEInfo(MSIPACKAGE *package)
static MSIEXTENSION * load_given_extension(MSIPACKAGE *package, LPCWSTR extension)
static UINT iterate_all_classes(MSIRECORD *rec, LPVOID param)
static UINT load_all_verbs(MSIPACKAGE *package)
static MSIAPPID * load_appid(MSIPACKAGE *package, MSIRECORD *row)
UINT ACTION_RegisterExtensionInfo(MSIPACKAGE *package)
UINT ACTION_UnregisterClassInfo(MSIPACKAGE *package)
static UINT iterate_all_extensions(MSIRECORD *rec, LPVOID param)
static MSIPROGID * load_given_progid(MSIPACKAGE *package, LPCWSTR progid)
static UINT load_all_mimes(MSIPACKAGE *package)
UINT ACTION_RegisterClassInfo(MSIPACKAGE *package)
static BOOL has_extensions(const MSIPACKAGE *package, const MSIPROGID *progid)
static BOOL has_class_installed(const MSIPROGID *progid)
static UINT iterate_all_mimes(MSIRECORD *rec, LPVOID param)
static UINT load_all_progids(MSIPACKAGE *package)
static BOOL has_one_extension_installed(const MSIPACKAGE *package, const MSIPROGID *progid)
static BOOL has_all_extensions_removed(const MSIPACKAGE *package, const MSIPROGID *progid)
static UINT register_progid(const MSIPROGID *progid)
UINT ACTION_UnregisterProgIdInfo(MSIPACKAGE *package)
static UINT iterate_all_progids(MSIRECORD *rec, LPVOID param)
UINT ACTION_RegisterProgIdInfo(MSIPACKAGE *package)
static MSIEXTENSION * load_extension(MSIPACKAGE *package, MSIRECORD *row)
static BOOL has_class_removed(const MSIPROGID *progid)
static MSICLASS * load_class(MSIPACKAGE *package, MSIRECORD *row)
static MSIAPPID * load_given_appid(MSIPACKAGE *package, LPCWSTR name)
static MSIPROGID * load_progid(MSIPACKAGE *package, MSIRECORD *row)
static MSIMIME * load_mime(MSIPACKAGE *package, MSIRECORD *row)
static UINT load_classes_and_such(MSIPACKAGE *package)
static UINT load_all_extensions(MSIPACKAGE *package)
static UINT register_appid(const MSIAPPID *appid, LPCWSTR app)
static UINT iterate_load_verb(MSIRECORD *row, LPVOID param)
@ INSTALLMESSAGE_ACTIONDATA
@ INSTALLSTATE_ADVERTISED
WCHAR * msi_dup_record_field(MSIRECORD *row, INT index) DECLSPEC_HIDDEN
MSIRECORD *WINAPIV MSI_QueryGetRecord(MSIDATABASE *db, LPCWSTR query,...) DECLSPEC_HIDDEN
static void * msi_alloc_zero(size_t len) __WINE_ALLOC_SIZE(1)
UINT MSI_IterateRecords(MSIQUERY *, LPDWORD, record_func, LPVOID) DECLSPEC_HIDDEN
static void msi_free(void *mem)
int MSI_RecordGetInteger(MSIRECORD *, UINT) DECLSPEC_HIDDEN
const WCHAR * MSI_RecordGetString(const MSIRECORD *, UINT) DECLSPEC_HIDDEN
INT MSI_ProcessMessage(MSIPACKAGE *, INSTALLMESSAGE, MSIRECORD *) DECLSPEC_HIDDEN
static void * msi_alloc(size_t len) __WINE_ALLOC_SIZE(1)
MSIRECORD * MSI_CreateRecord(UINT) DECLSPEC_HIDDEN
LONG msi_reg_set_val_multi_str(HKEY hkey, LPCWSTR name, LPCWSTR value) DECLSPEC_HIDDEN
BOOL MSI_RecordIsNull(MSIRECORD *, UINT) DECLSPEC_HIDDEN
LONG msi_reg_set_subkey_val(HKEY hkey, LPCWSTR path, LPCWSTR name, LPCWSTR val) DECLSPEC_HIDDEN
LONG msi_reg_set_val_str(HKEY hkey, LPCWSTR name, LPCWSTR value) DECLSPEC_HIDDEN
UINT MSI_DatabaseOpenViewW(MSIDATABASE *, LPCWSTR, MSIQUERY **) DECLSPEC_HIDDEN
UINT MSI_RecordSetStringW(MSIRECORD *, UINT, LPCWSTR) DECLSPEC_HIDDEN
_Check_return_ _CRTIMP int __cdecl wcscmp(_In_z_ const wchar_t *_Str1, _In_z_ const wchar_t *_Str2)
#define LIST_FOR_EACH_ENTRY(elem, list, type, field)
LPWSTR DefInprocHandler32
#define ERROR_FUNCTION_FAILED
#define HKEY_CLASSES_ROOT