Module: wine Branch: master Commit: 58797fc54ce82886a2780a9f7cf6628a63573838 URL: http://source.winehq.org/git/wine.git/?a=commit;h=58797fc54ce82886a2780a9f7c...
Author: Lei Zhang thestig@google.com Date: Mon Oct 13 18:09:28 2008 -0700
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; }