Author: rharabien Date: Fri Nov 18 19:30:21 2011 New Revision: 54419
URL: http://svn.reactos.org/svn/reactos?rev=54419&view=rev Log: [SHELL32] - Remove "retrieve display name from control panel app" FIXME - it's already done + minor code improvements.
Modified: trunk/reactos/dll/win32/shell32/shfldr_cpanel.cpp
Modified: trunk/reactos/dll/win32/shell32/shfldr_cpanel.cpp URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/shfldr_cp... ============================================================================== --- trunk/reactos/dll/win32/shell32/shfldr_cpanel.cpp [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/shfldr_cpanel.cpp [iso-8859-1] Fri Nov 18 19:30:21 2011 @@ -566,11 +566,11 @@ */ HRESULT WINAPI CControlPanelFolder::GetDisplayNameOf(LPCITEMIDLIST pidl, DWORD dwFlags, LPSTRRET strRet) { - CHAR szPath[MAX_PATH]; - WCHAR wszPath[MAX_PATH+1]; /* +1 for potential backslash */ - PIDLCPanelStruct* pcpanel; - - *szPath = '\0'; + CHAR szName[MAX_PATH]; + WCHAR wszName[MAX_PATH+1]; /* +1 for potential backslash */ + PIDLCPanelStruct *pCPanel; + + *szName = '\0';
TRACE("(%p)->(pidl=%p,0x%08x,%p)\n", this, pidl, dwFlags, strRet); pdump(pidl); @@ -578,14 +578,13 @@ if (!pidl || !strRet) return E_INVALIDARG;
- pcpanel = _ILGetCPanelPointer(pidl); - - if (pcpanel) - { - lstrcpyA(szPath, pcpanel->szName+pcpanel->offsDispName); - - if (!(dwFlags & SHGDN_FORPARSING)) - FIXME("retrieve display name from control panel app\n"); + pCPanel = _ILGetCPanelPointer(pidl); + + if (pCPanel) + { + /* copy display name from pidl - it was retrived from applet before; + SHGDN_FORPARSING does not need special handling */ + lstrcpyA(szName, pCPanel->szName + pCPanel->offsDispName); } /* take names of special folders only if it's only this folder */ else if (_ILIsSpecialFolder(pidl)) @@ -594,7 +593,7 @@
if (bSimplePidl) { - _ILSimpleGetTextW(pidl, wszPath, MAX_PATH); /* append my own path */ + _ILSimpleGetTextW(pidl, wszName, MAX_PATH); /* append my own path */ } else { @@ -606,29 +605,29 @@ /* go deeper if needed */ int len = 0;
- PathAddBackslashW(wszPath); - len = wcslen(wszPath); - - if (!SUCCEEDED(SHELL32_GetDisplayNameOfChild(this, pidl, dwFlags, wszPath + len, MAX_PATH + 1 - len))) + PathAddBackslashW(wszName); + len = wcslen(wszName); + + if (!SUCCEEDED(SHELL32_GetDisplayNameOfChild(this, pidl, dwFlags, wszName + len, MAX_PATH + 1 - len))) return E_OUTOFMEMORY;
- if (!WideCharToMultiByte(CP_ACP, 0, wszPath, -1, szPath, MAX_PATH, NULL, NULL)) - wszPath[0] = '\0'; + if (!WideCharToMultiByte(CP_ACP, 0, wszName, -1, szName, MAX_PATH, NULL, NULL)) + wszName[0] = '\0'; } else { if (bSimplePidl) { - if (!WideCharToMultiByte(CP_ACP, 0, wszPath, -1, szPath, MAX_PATH, NULL, NULL)) - wszPath[0] = '\0'; + if (!WideCharToMultiByte(CP_ACP, 0, wszName, -1, szName, MAX_PATH, NULL, NULL)) + wszName[0] = '\0'; } } }
strRet->uType = STRRET_CSTR; - lstrcpynA(strRet->cStr, szPath, MAX_PATH); - - TRACE("--(%p)->(%s)\n", this, szPath); + lstrcpynA(strRet->cStr, szName, MAX_PATH); + + TRACE("--(%p)->(%s)\n", this, szName); return S_OK; }