diff --git a/dll/win32/shell32/CShellLink.cpp b/dll/win32/shell32/CShellLink.cpp index f83c6a9654e..3175b21f34b 100644 --- a/dll/win32/shell32/CShellLink.cpp +++ b/dll/win32/shell32/CShellLink.cpp @@ -2595,9 +2595,10 @@ HRESULT CShellLink::DoOpen(LPCMINVOKECOMMANDINFO lpici) HRESULT hr; LPWSTR args = NULL; LPWSTR path = strdupW(m_sPath); + BOOL unicode = lpici->cbSize >= FIELD_OFFSET(CMINVOKECOMMANDINFOEX, ptInvoke) && + (lpici->fMask & CMIC_MASK_UNICODE); - if ( lpici->cbSize == sizeof(CMINVOKECOMMANDINFOEX) && - (lpici->fMask & CMIC_MASK_UNICODE) ) + if (unicode) { LPCMINVOKECOMMANDINFOEX iciex = (LPCMINVOKECOMMANDINFOEX)lpici; SIZE_T len = 2; diff --git a/modules/rosapps/lib/vfdlib/vfdshmenu.cpp b/modules/rosapps/lib/vfdlib/vfdshmenu.cpp index 005a6e352d7..35a67142659 100644 --- a/modules/rosapps/lib/vfdlib/vfdshmenu.cpp +++ b/modules/rosapps/lib/vfdlib/vfdshmenu.cpp @@ -339,12 +339,16 @@ STDMETHODIMP CVfdShExt::InvokeCommand( DWORD ret; CMINVOKECOMMANDINFOEX *excmi = (CMINVOKECOMMANDINFOEX *)lpcmi; +#ifdef __REACTOS__ + unicode = lpcmi->cbSize >= FIELD_OFFSET(CMINVOKECOMMANDINFOEX, ptInvoke) && + (lpcmi->fMask & CMIC_MASK_UNICODE); +#else if (lpcmi->cbSize >= sizeof(CMINVOKECOMMANDINFOEX) && (lpcmi->fMask & CMIC_MASK_UNICODE)) { unicode = TRUE; } - +#endif if (!unicode && HIWORD(lpcmi->lpVerb)) {