<div style="line-height:1.7;color:#000000;font-size:14px;font-family:Arial"><div><div>From 65f06c86553e0c31aeef167637ef65af0f1c8754 Mon Sep 17 00:00:00 2001</div><div>From: Xu Wenlong <myxuan475@126.com></div><div>Date: Wed, 29 Mar 2017 15:32:55 +0800</div><div>Subject: shell32: Solve the problem about 'OK' button is always gray when call SHBrowseForFolder with flags including both BIF_BROWSEFORCOMPUTER and BIF_RETURNONLYFSDIRS</div><div>To: wine-patches <wine-patches@winehq.org></div><div>Reply-To: wine-devel <wine-devel@winehq.org></div><div><br></div><div>Signed-off-by: Xu Wenlong <myxuan475@126.com></div><div>---</div><div> dlls/shell32/brsfolder.c       | 10 +++++++---</div><div> dlls/shell32/tests/brsfolder.c |  5 +++++</div><div> 2 files changed, 12 insertions(+), 3 deletions(-)</div><div><br></div><div>diff --git a/dlls/shell32/brsfolder.c b/dlls/shell32/brsfolder.c</div><div>index 4040407..1728b1f 100644</div><div>--- a/dlls/shell32/brsfolder.c</div><div>+++ b/dlls/shell32/brsfolder.c</div><div>@@ -476,9 +476,13 @@ static void BrsFolder_CheckValidSelection( browse_info *info, LPTV_ITEMDATA lptv</div><div>     DWORD dwAttributes;</div><div>     HRESULT r;</div><div> </div><div>-    if ((lpBrowseInfo->ulFlags & BIF_BROWSEFORCOMPUTER) &&</div><div>-        !PIDLIsType(pidl, PT_COMP))</div><div>-        bEnabled = FALSE;</div><div>+    if (!(lpBrowseInfo->ulFlags & BIF_RETURNONLYFSDIRS))</div><div>+    {</div><div>+        if ((lpBrowseInfo->ulFlags & BIF_BROWSEFORCOMPUTER) &&</div><div>+            !PIDLIsType(pidl, PT_COMP))</div><div>+            bEnabled = FALSE;</div><div>+    }</div><div>+</div><div>     if (lpBrowseInfo->ulFlags & BIF_RETURNFSANCESTORS)</div><div>     {</div><div>         dwAttributes = SFGAO_FILESYSANCESTOR | SFGAO_FILESYSTEM;</div><div>diff --git a/dlls/shell32/tests/brsfolder.c b/dlls/shell32/tests/brsfolder.c</div><div>index bf29d11..fecca81 100644</div><div>--- a/dlls/shell32/tests/brsfolder.c</div><div>+++ b/dlls/shell32/tests/brsfolder.c</div><div>@@ -351,6 +351,11 @@ static void test_selection(void)</div><div>     pidl = SHBrowseForFolderA(&bi);</div><div>     CoTaskMemFree(pidl);</div><div> </div><div>+    /* test with flag */</div><div>+    bi.ulFlags = BIF_BROWSEFORCOMPUTER | BIF_RETURNONLYFSDIRS;</div><div>+    pidl = SHBrowseForFolderA(&bi);</div><div>+    CoTaskMemFree(pidl);</div><div>+</div><div>     IShellFolder_Release(desktop_object);</div><div> </div><div>     CoUninitialize();</div><div>-- </div><div>2.8.1</div></div><div><br></div></div><br><br><span title="neteasefooter"><p> </p></span>