VirtualBox

Ignore:
Timestamp:
Feb 19, 2025 10:53:35 AM (4 weeks ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
167628
Message:

Host installer/win: Added routines for handling CustomActionData to the common InstallHelper.dll code. Required as a prerequisite for using shared (sessison / system) CustomActionData by the installer, to better support elevated driver installs on modern Windows OSes (>= 10). bugref:10762

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Installer/win/InstallHelper/VBoxCommon.h

    r108071 r108285  
    3636#endif
    3737
     38/** Struct for keeping a single "CustomActionData" key=value item. */
     39typedef struct VBOXMSICUSTOMACTIONDATAENTRY
     40{
     41    /** Key (name) of the item. */
     42    char *pszKey;
     43    /** Value of the item. Always a string but can represent other stuff. Use with care. */
     44    char *pszVal;
     45} VBOXMSICUSTOMACTIONDATAENTRY;
     46/** Pointer to a struct for keeping a single "CustomActionData" key=value item. */
     47typedef VBOXMSICUSTOMACTIONDATAENTRY *PVBOXMSICUSTOMACTIONDATAENTRY;
     48
     49/** Struct for keeping "CustomActionData" entries. */
     50typedef struct VBOXMSICUSTOMACTIONDATA
     51{
     52    /** Array of CustomActionData entries. */
     53    PVBOXMSICUSTOMACTIONDATAENTRY paEntries;
     54    /** Number of entries in \a paEntries. */
     55    size_t                        cEntries;
     56} VBOXMSICUSTOMACTIONDATA;
     57/** Pointer to a struct for keeping "CustomActionData" entries. */
     58typedef VBOXMSICUSTOMACTIONDATA *PVBOXMSICUSTOMACTIONDATA;
     59
     60/** Default separator for custom action data key=value pairs. */
     61#define VBOX_MSI_CUSTOMACTIONDATA_SEP_STR "##"
     62
     63void VBoxMsiCustomActionDataFree(PVBOXMSICUSTOMACTIONDATA pData);
     64int  VBoxMsiCustomActionDataQueryEx(MSIHANDLE hMsi, const char *pszSep, PVBOXMSICUSTOMACTIONDATA *ppData);
     65int  VBoxMsiCustomActionDataQuery(MSIHANDLE hMsi, PVBOXMSICUSTOMACTIONDATA *ppData);
     66const char *VBoxMsiCustomActionDataFind(PVBOXMSICUSTOMACTIONDATA pHaystack, const char *pszNeedle);
     67
    3868int  VBoxMsiQueryProp(MSIHANDLE hMsi, const WCHAR *pwszName, WCHAR *pwszVal, DWORD cwVal);
    3969int  VBoxMsiQueryPropEx(MSIHANDLE hMsi, const WCHAR *pwszName, WCHAR *pwszVal, DWORD *pcwVal);
     
    4171int  VBoxMsiQueryPropInt32(MSIHANDLE hMsi, const char *pszName, DWORD *pdwValue);
    4272UINT VBoxMsiSetProp(MSIHANDLE hMsi, const WCHAR *pwszName, const WCHAR *pwszValue);
    43 int VBoxMsiSetPropUtf8(MSIHANDLE hMsi, const char *pszName, const char *pszValue);
     73int  VBoxMsiSetPropUtf8(MSIHANDLE hMsi, const char *pszName, const char *pszValue);
    4474UINT VBoxMsiSetPropDWORD(MSIHANDLE hMsi, const WCHAR *pwszName, DWORD dwVal);
    45 int VBoxMsiRegQueryDWORDW(MSIHANDLE hMsi, HKEY hKey, LPCWSTR pwszName, DWORD *pdwValue);
    46 int VBoxMsiRegQueryDWORD(MSIHANDLE hMsi, HKEY hKey, const char *pszName, DWORD *pdwValue);
     75int  VBoxMsiRegQueryDWORDW(MSIHANDLE hMsi, HKEY hKey, LPCWSTR pwszName, DWORD *pdwValue);
     76int  VBoxMsiRegQueryDWORD(MSIHANDLE hMsi, HKEY hKey, const char *pszName, DWORD *pdwValue);
    4777
    4878#endif /* !VBOX_INCLUDED_SRC_InstallHelper_VBoxCommon_h */
Note: See TracChangeset for help on using the changeset viewer.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette