X-Git-Url: https://git.reactos.org/?p=reactos.git;a=blobdiff_plain;f=dll%2Fwin32%2Fshell32%2Fdialogs%2Fdrive.cpp;h=3afbe80d8ce587bc381788d4738d250d0cd61d26;hp=a5919f027f0f95f5f0e1911ed2407b0a414fc174;hb=87d276f05d673e53a413269099eeb1e7882ec825;hpb=d85023c9c976ec002dcde33514252678d2be79f8 diff --git a/dll/win32/shell32/dialogs/drive.cpp b/dll/win32/shell32/dialogs/drive.cpp index a5919f027f0..3afbe80d8ce 100644 --- a/dll/win32/shell32/dialogs/drive.cpp +++ b/dll/win32/shell32/dialogs/drive.cpp @@ -2,6 +2,7 @@ * Shell Library Functions * * Copyright 2005 Johannes Anderwald + * Copyright 2017 Katayama Hirofumi MZ * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -127,7 +128,7 @@ typedef struct _DRIVE_PROP_PAGE UINT DriveType; } DRIVE_PROP_PAGE; -BOOL +HRESULT SH_ShowDriveProperties(WCHAR *pwszDrive, LPCITEMIDLIST pidlFolder, PCUITEMID_CHILD_ARRAY apidl) { HPSXA hpsx = NULL; @@ -145,7 +146,7 @@ SH_ShowDriveProperties(WCHAR *pwszDrive, LPCITEMIDLIST pidlFolder, PCUITEMID_CHI LPITEMIDLIST completePidl = ILCombine(pidlFolder, apidl[0]); if (!completePidl) - return FALSE; + return E_OUTOFMEMORY; if (ILGetDisplayNameExW(NULL, completePidl, wszName, ILGDN_NORMAL)) { @@ -179,16 +180,19 @@ SH_ShowDriveProperties(WCHAR *pwszDrive, LPCITEMIDLIST pidlFolder, PCUITEMID_CHI SHAddFromPropSheetExtArray(hpsx, (LPFNADDPROPSHEETPAGE)AddPropSheetPageCallback, (LPARAM)&psh); } - HWND hwnd = (HWND)PropertySheetW(&psh); + // NOTE: Currently property sheet is modal. If we make it modeless, then it returns HWND. + INT_PTR ret = PropertySheetW(&psh); if (hpsx) SHDestroyPropSheetExtArray(hpsx); if (pDrvDefExt) pDrvDefExt->Release(); - if (!hwnd) - return FALSE; - return TRUE; + if (ret > 0) + return S_OK; + if (ret == 0) + return S_FALSE; + return E_FAIL; } static VOID