summaryrefslogtreecommitdiff
path: root/setup_native/source
diff options
context:
space:
mode:
authorAndras Timar <atimar@suse.com>2012-05-10 10:38:20 +0200
committerAndras Timar <atimar@suse.com>2012-05-10 10:46:15 +0200
commitce1ac0851fe2e975f3fb47178730b914608610cf (patch)
tree7b9e7dba20673db7724d4424209fbddec43d5505 /setup_native/source
parent0d79369ead281a2346b8c249497af174419ddd96 (diff)
error handling in SortTree custom action
Change-Id: I03a06d09e3e84b6cb13bd68e8be4caebb1b9f5ab
Diffstat (limited to 'setup_native/source')
-rw-r--r--setup_native/source/win32/customactions/sellang/sorttree.cxx32
1 files changed, 31 insertions, 1 deletions
diff --git a/setup_native/source/win32/customactions/sellang/sorttree.cxx b/setup_native/source/win32/customactions/sellang/sorttree.cxx
index 25c6c6d1d25c..41695e290d78 100644
--- a/setup_native/source/win32/customactions/sellang/sorttree.cxx
+++ b/setup_native/source/win32/customactions/sellang/sorttree.cxx
@@ -23,15 +23,45 @@ extern "C" UINT __stdcall SortTree(MSIHANDLE)
// Sort items (languages) in SelectionTree control, fdo#46355
HWND hwndMSI = FindWindow(TEXT("MsiDialogCloseClass"), NULL);
+ if (hwndMSI == NULL)
+ {
+ OutputDebugString("SortTree: MsiDialogCloseClass not found\n");
+ return ERROR_SUCCESS;
+ }
HWND hwndTV = FindWindowEx(hwndMSI, NULL, TEXT("SysTreeView32"), NULL);
+ if (hwndTV == NULL)
+ {
+ OutputDebugString("SortTree: SysTreeView32 not found\n");
+ return ERROR_SUCCESS;
+ }
HTREEITEM treeRoot = TreeView_GetRoot(hwndTV);
+ if (treeRoot == NULL)
+ {
+ OutputDebugString("SortTree: TreeView_GetRoot failed\n");
+ return ERROR_SUCCESS;
+ }
HTREEITEM optional = TreeView_GetNextSibling(hwndTV, treeRoot);
+ if (optional == NULL)
+ {
+ OutputDebugString("SortTree: Optional Components branch not found\n");
+ return ERROR_SUCCESS;
+ }
HTREEITEM dicts = TreeView_GetChild(hwndTV, optional);
+ if (dicts == NULL)
+ {
+ OutputDebugString("SortTree: Dictionaries branch not found\n");
+ return ERROR_SUCCESS;
+ }
TreeView_SortChildren(hwndTV, dicts, TRUE);
HTREEITEM langs = TreeView_GetNextSibling(hwndTV, optional);
+ if (langs == NULL)
+ {
+ OutputDebugString("SortTree: Additional UI Languages branch not found\n");
+ return ERROR_SUCCESS;
+ }
TreeView_SortChildren(hwndTV, langs, TRUE);
- return ERROR_SUCCESS;
+ return ERROR_SUCCESS;
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */