From 237a00d9f99ba7392f5c856bd254c6018acb143e Mon Sep 17 00:00:00 2001 From: Lei Zhang Date: Mon, 13 Oct 2008 18:09:28 -0700 Subject: [PATCH 2/3] shlwapi: Refactor data return code in IQueryAssociations_fnGetString. --- dlls/shlwapi/assoc.c | 40 ++++++++++++++++++++++++---------------- 1 files changed, 24 insertions(+), 16 deletions(-) diff --git a/dlls/shlwapi/assoc.c b/dlls/shlwapi/assoc.c index 61ac84b..882b881 100644 --- a/dlls/shlwapi/assoc.c +++ b/dlls/shlwapi/assoc.c @@ -670,6 +670,29 @@ static HRESULT ASSOC_GetExecutable(IQueryAssociationsImpl *This, return S_OK; } +static HRESULT ASSOC_ReturnData(LPWSTR out, DWORD *outlen, LPCWSTR data, + DWORD datalen) +{ + assert(outlen); + + if (out) + { + if (*outlen < datalen) + { + *outlen = datalen; + return E_POINTER; + } + *outlen = datalen; + lstrcpynW(out, data, datalen); + return S_OK; + } + else + { + *outlen = datalen; + return S_FALSE; + } +} + /************************************************************************** * IQueryAssociations_GetString {SHLWAPI} * @@ -718,22 +741,7 @@ static HRESULT WINAPI IQueryAssociations_fnGetString( if (FAILED(hr)) return hr; len++; - if (pszOut) - { - if (*pcchOut < len) - { - *pcchOut = len; - return E_POINTER; - } - *pcchOut = len; - lstrcpynW(pszOut, path, len); - return S_OK; - } - else - { - *pcchOut = len; - return S_FALSE; - } + return ASSOC_ReturnData(pszOut, pcchOut, path, len); break; } -- 1.5.4.5