Module: wine Branch: refs/heads/master Commit: a3c03fea58c6e56707d947fdc575cd2b20acd847 URL: http://source.winehq.org/git/?p=wine.git;a=commit;h=a3c03fea58c6e56707d947fd...
Author: Mike McCormack mike@codeweavers.com Date: Fri Jul 14 15:19:32 2006 +0900
msi: Add some registry reading macro functions.
---
dlls/msi/msipriv.h | 3 +++ dlls/msi/registry.c | 26 ++++++++++++++++++++++++++ 2 files changed, 29 insertions(+), 0 deletions(-)
diff --git a/dlls/msi/msipriv.h b/dlls/msi/msipriv.h index 3f69910..999b4ca 100644 --- a/dlls/msi/msipriv.h +++ b/dlls/msi/msipriv.h @@ -415,6 +415,9 @@ extern UINT MSIREG_OpenUserComponentsKey extern UINT MSIREG_OpenUpgradeCodesKey(LPCWSTR szProduct, HKEY* key, BOOL create); extern UINT MSIREG_OpenUserUpgradeCodesKey(LPCWSTR szProduct, HKEY* key, BOOL create);
+extern LPWSTR msi_reg_get_val_str( HKEY hkey, LPCWSTR name ); +extern BOOL msi_reg_get_val_dword( HKEY hkey, LPCWSTR name, DWORD *val); + extern DWORD msi_version_str_to_dword(LPCWSTR p); extern LPWSTR msi_version_dword_to_str(DWORD version);
diff --git a/dlls/msi/registry.c b/dlls/msi/registry.c index c7a7e8a..7c6eca1 100644 --- a/dlls/msi/registry.c +++ b/dlls/msi/registry.c @@ -369,6 +369,32 @@ LONG msi_reg_set_subkey_val( HKEY hkey, return r; }
+LPWSTR msi_reg_get_val_str( HKEY hkey, LPCWSTR name ) +{ + DWORD len = 0; + LPWSTR val; + LONG r; + + r = RegQueryValueExW(hkey, name, NULL, NULL, NULL, &len); + if (r != ERROR_SUCCESS) + return NULL; + + len += sizeof (WCHAR); + val = msi_alloc( len ); + if (!val) + return NULL; + val[0] = 0; + RegQueryValueExW(hkey, name, NULL, NULL, (LPBYTE) val, &len); + return val; +} + +BOOL msi_reg_get_val_dword( HKEY hkey, LPCWSTR name, DWORD *val) +{ + DWORD type, len = sizeof (DWORD); + LONG r = RegQueryValueExW(hkey, name, NULL, &type, (LPBYTE) val, &len); + return r == ERROR_SUCCESS && type == REG_DWORD; +} + UINT MSIREG_OpenUninstallKey(LPCWSTR szProduct, HKEY* key, BOOL create) { UINT rc;