From ce1ac0851fe2e975f3fb47178730b914608610cf Mon Sep 17 00:00:00 2001 From: Andras Timar Date: Thu, 10 May 2012 10:38:20 +0200 Subject: error handling in SortTree custom action Change-Id: I03a06d09e3e84b6cb13bd68e8be4caebb1b9f5ab --- .../win32/customactions/sellang/sorttree.cxx | 32 +++++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) 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: */ -- cgit