diff options
author | Andras Timar <atimar@suse.com> | 2012-05-10 10:38:20 +0200 |
---|---|---|
committer | Andras Timar <atimar@suse.com> | 2012-05-10 10:46:15 +0200 |
commit | ce1ac0851fe2e975f3fb47178730b914608610cf (patch) | |
tree | 7b9e7dba20673db7724d4424209fbddec43d5505 /setup_native/source | |
parent | 0d79369ead281a2346b8c249497af174419ddd96 (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.cxx | 32 |
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: */ |