diff options
Diffstat (limited to 'src/libs/dutil/WixToolset.DUtil/monutil.cpp')
-rw-r--r-- | src/libs/dutil/WixToolset.DUtil/monutil.cpp | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/src/libs/dutil/WixToolset.DUtil/monutil.cpp b/src/libs/dutil/WixToolset.DUtil/monutil.cpp index 10954164..d7bcfa52 100644 --- a/src/libs/dutil/WixToolset.DUtil/monutil.cpp +++ b/src/libs/dutil/WixToolset.DUtil/monutil.cpp | |||
@@ -17,6 +17,7 @@ | |||
17 | #define MonExitOnWin32Error(e, x, s, ...) ExitOnWin32ErrorSource(DUTIL_SOURCE_MONUTIL, e, x, s, __VA_ARGS__) | 17 | #define MonExitOnWin32Error(e, x, s, ...) ExitOnWin32ErrorSource(DUTIL_SOURCE_MONUTIL, e, x, s, __VA_ARGS__) |
18 | #define MonExitOnGdipFailure(g, x, s, ...) ExitOnGdipFailureSource(DUTIL_SOURCE_MONUTIL, g, x, s, __VA_ARGS__) | 18 | #define MonExitOnGdipFailure(g, x, s, ...) ExitOnGdipFailureSource(DUTIL_SOURCE_MONUTIL, g, x, s, __VA_ARGS__) |
19 | #define MonExitOnWaitObjectFailure(x, b, s, ...) ExitOnWaitObjectFailureSource(DUTIL_SOURCE_MONUTIL, x, b, s, __VA_ARGS__) | 19 | #define MonExitOnWaitObjectFailure(x, b, s, ...) ExitOnWaitObjectFailureSource(DUTIL_SOURCE_MONUTIL, x, b, s, __VA_ARGS__) |
20 | #define MonExitOnPathFailure(x, b, s, ...) ExitOnPathFailureSource(DUTIL_SOURCE_MONUTIL, x, b, s, __VA_ARGS__) | ||
20 | 21 | ||
21 | const int MON_THREAD_GROWTH = 5; | 22 | const int MON_THREAD_GROWTH = 5; |
22 | const int MON_ARRAY_GROWTH = 40; | 23 | const int MON_ARRAY_GROWTH = 40; |
@@ -982,6 +983,7 @@ static HRESULT InitiateWait( | |||
982 | DWORD dwIndex = 0; | 983 | DWORD dwIndex = 0; |
983 | HKEY hk = NULL; | 984 | HKEY hk = NULL; |
984 | HANDLE hTemp = INVALID_HANDLE_VALUE; | 985 | HANDLE hTemp = INVALID_HANDLE_VALUE; |
986 | BOOL fExists = FALSE; | ||
985 | 987 | ||
986 | if (pRequest->hNotify) | 988 | if (pRequest->hNotify) |
987 | { | 989 | { |
@@ -1025,11 +1027,12 @@ static HRESULT InitiateWait( | |||
1025 | case MON_REGKEY: | 1027 | case MON_REGKEY: |
1026 | ReleaseRegKey(pRequest->regkey.hkSubKey); | 1028 | ReleaseRegKey(pRequest->regkey.hkSubKey); |
1027 | hr = RegOpen(pRequest->regkey.hkRoot, pRequest->rgsczPathHierarchy[dwIndex], KEY_NOTIFY | GetRegKeyBitness(pRequest), &pRequest->regkey.hkSubKey); | 1029 | hr = RegOpen(pRequest->regkey.hkRoot, pRequest->rgsczPathHierarchy[dwIndex], KEY_NOTIFY | GetRegKeyBitness(pRequest), &pRequest->regkey.hkSubKey); |
1028 | if (E_FILENOTFOUND == hr || E_PATHNOTFOUND == hr) | 1030 | MonExitOnPathFailure(hr, fExists, "Failed to open regkey %ls", pRequest->rgsczPathHierarchy[dwIndex]); |
1031 | |||
1032 | if (!fExists) | ||
1029 | { | 1033 | { |
1030 | continue; | 1034 | continue; |
1031 | } | 1035 | } |
1032 | MonExitOnFailure(hr, "Failed to open regkey %ls", pRequest->rgsczPathHierarchy[dwIndex]); | ||
1033 | 1036 | ||
1034 | er = ::RegNotifyChangeKeyValue(pRequest->regkey.hkSubKey, GetRecursiveFlag(pRequest, dwIndex), REG_NOTIFY_CHANGE_NAME | REG_NOTIFY_CHANGE_LAST_SET | REG_NOTIFY_CHANGE_SECURITY, *pHandle, TRUE); | 1037 | er = ::RegNotifyChangeKeyValue(pRequest->regkey.hkSubKey, GetRecursiveFlag(pRequest, dwIndex), REG_NOTIFY_CHANGE_NAME | REG_NOTIFY_CHANGE_LAST_SET | REG_NOTIFY_CHANGE_SECURITY, *pHandle, TRUE); |
1035 | ReleaseRegKey(hk); | 1038 | ReleaseRegKey(hk); |
@@ -1038,12 +1041,9 @@ static HRESULT InitiateWait( | |||
1038 | { | 1041 | { |
1039 | continue; | 1042 | continue; |
1040 | } | 1043 | } |
1041 | else | 1044 | MonExitOnFailure(hr, "Failed to wait on subkey %ls", pRequest->rgsczPathHierarchy[dwIndex]); |
1042 | { | ||
1043 | MonExitOnWin32Error(er, hr, "Failed to wait on subkey %ls", pRequest->rgsczPathHierarchy[dwIndex]); | ||
1044 | 1045 | ||
1045 | fHandleFound = TRUE; | 1046 | fHandleFound = TRUE; |
1046 | } | ||
1047 | 1047 | ||
1048 | break; | 1048 | break; |
1049 | default: | 1049 | default: |