Signed-off-by: Nikolay Sivov nsivov@codeweavers.com --- dlls/shell32/assoc.c | 2 +- dlls/shell32/autocomplete.c | 2 +- dlls/shell32/brsfolder.c | 6 ++---- dlls/shell32/classes.c | 2 +- dlls/shell32/control.c | 34 +++++++++++++---------------- dlls/shell32/dde.c | 2 +- dlls/shell32/dialogs.c | 4 ++-- dlls/shell32/recyclebin.c | 18 ++++++---------- dlls/shell32/shell32_main.c | 6 +++--- dlls/shell32/shell32_main.h | 2 ++ dlls/shell32/shelldispatch.c | 2 +- dlls/shell32/shelllink.c | 13 +++++------- dlls/shell32/shellole.c | 4 ++-- dlls/shell32/shellord.c | 8 +++---- dlls/shell32/shellpath.c | 47 ++++++++++++++++++++++------------------- dlls/shell32/shfldr_desktop.c | 16 ++++++-------- dlls/shell32/shfldr_fs.c | 10 ++++----- dlls/shell32/shfldr_netplaces.c | 9 +++----- dlls/shell32/shfldr_unixfs.c | 10 ++++----- dlls/shell32/shlexec.c | 16 +++++++------- dlls/shell32/shlfileop.c | 11 +++++----- dlls/shell32/shlmenu.c | 2 +- dlls/shell32/shlview.c | 2 +- dlls/shell32/systray.c | 11 +++++----- dlls/shell32/xdg.c | 6 ++---- 25 files changed, 114 insertions(+), 131 deletions(-)
diff --git a/dlls/shell32/assoc.c b/dlls/shell32/assoc.c index a9eb70e933..d3f20c225b 100644 --- a/dlls/shell32/assoc.c +++ b/dlls/shell32/assoc.c @@ -676,7 +676,7 @@ get_friendly_name_fail: case ASSOCSTR_SHELLEXTENSION: { static const WCHAR shellexW[] = {'S','h','e','l','l','E','x','\',0}; - WCHAR keypath[sizeof(shellexW) / sizeof(shellexW[0]) + 39], guid[39]; + WCHAR keypath[ARRAY_SIZE(shellexW) + 39], guid[39]; CLSID clsid; HKEY hkey; DWORD size; diff --git a/dlls/shell32/autocomplete.c b/dlls/shell32/autocomplete.c index b411c1b675..99ce23d040 100644 --- a/dlls/shell32/autocomplete.c +++ b/dlls/shell32/autocomplete.c @@ -123,7 +123,7 @@ static LRESULT APIENTRY ACEditSubclassProc(HWND hwnd, UINT uMsg, WPARAM wParam, { int len;
- GetWindowTextW( hwnd, hwndText, sizeof(hwndText)/sizeof(WCHAR)); + GetWindowTextW(hwnd, hwndText, ARRAY_SIZE(hwndText));
switch(wParam) { case VK_RETURN: diff --git a/dlls/shell32/brsfolder.c b/dlls/shell32/brsfolder.c index fc7b5b6b74..daddf1e9ec 100644 --- a/dlls/shell32/brsfolder.c +++ b/dlls/shell32/brsfolder.c @@ -82,8 +82,6 @@ static const LAYOUT_INFO g_layout_info[] = {IDCANCEL, BF_BOTTOM|BF_RIGHT} };
-#define LAYOUT_INFO_COUNT (sizeof(g_layout_info)/sizeof(g_layout_info[0])) - #define SUPPORTEDFLAGS (BIF_STATUSTEXT | \ BIF_BROWSEFORCOMPUTER | \ BIF_RETURNFSANCESTORS | \ @@ -667,7 +665,7 @@ static BOOL BrsFolder_OnCreate( HWND hWnd, browse_info *info ) { RECT rcWnd;
- info->layout = LayoutInit(hWnd, g_layout_info, LAYOUT_INFO_COUNT); + info->layout = LayoutInit(hWnd, g_layout_info, ARRAY_SIZE(g_layout_info));
/* TODO: Windows allows shrinking the windows a bit */ GetWindowRect(hWnd, &rcWnd); @@ -1012,7 +1010,7 @@ static INT_PTR CALLBACK BrsFolderDlgProc( HWND hWnd, UINT msg, WPARAM wParam,
case WM_SIZE: if (info->layout) /* new style dialogs */ - LayoutUpdate(hWnd, info->layout, g_layout_info, LAYOUT_INFO_COUNT); + LayoutUpdate(hWnd, info->layout, g_layout_info, ARRAY_SIZE(g_layout_info)); return 0;
case BFFM_SETSTATUSTEXTA: diff --git a/dlls/shell32/classes.c b/dlls/shell32/classes.c index 316abd53f5..653b55179e 100644 --- a/dlls/shell32/classes.c +++ b/dlls/shell32/classes.c @@ -187,7 +187,7 @@ BOOL HCR_GetExecuteCommandW( HKEY hkeyClass, LPCWSTR szClass, LPCWSTR szVerb, LP return FALSE; ret = FALSE;
- if (HCR_GetDefaultVerbW(hkeyClass, szVerb, sTempVerb, sizeof(sTempVerb)/sizeof(sTempVerb[0]))) + if (HCR_GetDefaultVerbW(hkeyClass, szVerb, sTempVerb, ARRAY_SIZE(sTempVerb))) { WCHAR sTemp[MAX_PATH]; lstrcpyW(sTemp, swShell); diff --git a/dlls/shell32/control.c b/dlls/shell32/control.c index 66fbf17954..6b86214bd8 100644 --- a/dlls/shell32/control.c +++ b/dlls/shell32/control.c @@ -124,10 +124,10 @@ CPlApplet* Control_LoadApplet(HWND hWnd, LPCWSTR cmd, CPanel* panel) applet->info[i].icon = LoadIconW(applet->hModule, MAKEINTRESOURCEW(info.idIcon)); if (info.idName != CPL_DYNAMIC_RES) LoadStringW(applet->hModule, info.idName, - applet->info[i].name, sizeof(applet->info[i].name) / sizeof(WCHAR)); + applet->info[i].name, ARRAY_SIZE(applet->info[i].name)); if (info.idInfo != CPL_DYNAMIC_RES) LoadStringW(applet->hModule, info.idInfo, - applet->info[i].info, sizeof(applet->info[i].info) / sizeof(WCHAR)); + applet->info[i].info, ARRAY_SIZE(applet->info[i].info));
/* some broken control panels seem to return incorrect values in CPL_INQUIRE, but proper data in CPL_NEWINQUIRE. if we get an empty string or a null @@ -159,18 +159,16 @@ CPlApplet* Control_LoadApplet(HWND hWnd, LPCWSTR cmd, CPanel* panel) memcpy(applet->info[i].info, newinfo.szInfo, sizeof(newinfo.szInfo)); memcpy(applet->info[i].helpfile, newinfo.szHelpFile, sizeof(newinfo.szHelpFile)); } else { + NEWCPLINFOA *infoA = (NEWCPLINFOA *)&newinfo; + if (info.idName == CPL_DYNAMIC_RES) - MultiByteToWideChar(CP_ACP, 0, ((LPNEWCPLINFOA)&newinfo)->szName, - sizeof(((LPNEWCPLINFOA)&newinfo)->szName) / sizeof(CHAR), - applet->info[i].name, sizeof(applet->info[i].name) / sizeof(WCHAR)); + MultiByteToWideChar(CP_ACP, 0, infoA->szName, ARRAY_SIZE(infoA->szName), + applet->info[i].name, ARRAY_SIZE(applet->info[i].name)); if (info.idInfo == CPL_DYNAMIC_RES) - MultiByteToWideChar(CP_ACP, 0, ((LPNEWCPLINFOA)&newinfo)->szInfo, - sizeof(((LPNEWCPLINFOA)&newinfo)->szInfo) / sizeof(CHAR), - applet->info[i].info, sizeof(applet->info[i].info) / sizeof(WCHAR)); - MultiByteToWideChar(CP_ACP, 0, ((LPNEWCPLINFOA)&newinfo)->szHelpFile, - sizeof(((LPNEWCPLINFOA)&newinfo)->szHelpFile) / sizeof(CHAR), - applet->info[i].helpfile, - sizeof(applet->info[i].helpfile) / sizeof(WCHAR)); + MultiByteToWideChar(CP_ACP, 0, infoA->szInfo, ARRAY_SIZE(infoA->szInfo), + applet->info[i].info, ARRAY_SIZE(applet->info[i].info)); + MultiByteToWideChar(CP_ACP, 0, infoA->szHelpFile, ARRAY_SIZE(infoA->szHelpFile), + applet->info[i].helpfile, ARRAY_SIZE(applet->info[i].helpfile)); } } } @@ -229,7 +227,7 @@ static BOOL Control_CreateListView (CPanel *panel) /* Name column */ lvc.iSubItem = 0; lvc.cx = (ws.right - ws.left) / 3; - LoadStringW(shell32_hInstance, IDS_CPANEL_NAME, buf, sizeof(buf) / sizeof(buf[0])); + LoadStringW(shell32_hInstance, IDS_CPANEL_NAME, buf, ARRAY_SIZE(buf));
if (ListView_InsertColumnW(panel->hWndListView, 0, &lvc) == -1) return FALSE; @@ -237,8 +235,7 @@ static BOOL Control_CreateListView (CPanel *panel) /* Description column */ lvc.iSubItem = 1; lvc.cx = ((ws.right - ws.left) / 3) * 2; - LoadStringW(shell32_hInstance, IDS_CPANEL_DESCRIPTION, buf, sizeof(buf) / - sizeof(buf[0])); + LoadStringW(shell32_hInstance, IDS_CPANEL_DESCRIPTION, buf, ARRAY_SIZE(buf));
if (ListView_InsertColumnW(panel->hWndListView, 1, &lvc) == -1) return FALSE; @@ -300,7 +297,7 @@ static void Control_WndProc_Create(HWND hWnd, const CREATESTRUCTW* cs) mii.cbSize = sizeof(MENUITEMINFOW); mii.fMask = MIIM_ID | MIIM_STRING | MIIM_DATA; mii.dwTypeData = applet->info[i].name; - mii.cch = sizeof(applet->info[i].name) / sizeof(WCHAR); + mii.cch = ARRAY_SIZE(applet->info[i].name); mii.wID = IDM_CPANEL_APPLET_BASE + menucount; mii.dwItemData = (ULONG_PTR)item;
@@ -475,8 +472,7 @@ static LRESULT WINAPI Control_WndProc(HWND hWnd, UINT wMsg, HICON icon = LoadImageW(shell32_hInstance, MAKEINTRESOURCEW(IDI_SHELL_CONTROL_PANEL), IMAGE_ICON, 48, 48, LR_SHARED);
- LoadStringW(shell32_hInstance, IDS_CPANEL_TITLE, appName, - sizeof(appName) / sizeof(appName[0])); + LoadStringW(shell32_hInstance, IDS_CPANEL_TITLE, appName, ARRAY_SIZE(appName)); ShellAboutW(hWnd, appName, NULL, icon);
return 0; @@ -616,7 +612,7 @@ static void Control_DoInterface(CPanel* panel, HWND hWnd, HINSTANCE hInst) MSG msg; WCHAR appName[MAX_STRING_LEN];
- LoadStringW(shell32_hInstance, IDS_CPANEL_TITLE, appName, sizeof(appName) / sizeof(appName[0])); + LoadStringW(shell32_hInstance, IDS_CPANEL_TITLE, appName, ARRAY_SIZE(appName));
wc.cbSize = sizeof(wc); wc.style = CS_HREDRAW|CS_VREDRAW; diff --git a/dlls/shell32/dde.c b/dlls/shell32/dde.c index 0283a45760..c54fe7854f 100644 --- a/dlls/shell32/dde.c +++ b/dlls/shell32/dde.c @@ -50,7 +50,7 @@ static DWORD dwDDEInst; static const char *debugstr_hsz( HSZ hsz ) { WCHAR buffer[256]; - if (!DdeQueryStringW( dwDDEInst, hsz, buffer, sizeof(buffer)/sizeof(WCHAR), CP_WINUNICODE )) + if (!DdeQueryStringW( dwDDEInst, hsz, buffer, ARRAY_SIZE(buffer), CP_WINUNICODE )) return "<unknown>"; return debugstr_w( buffer ); } diff --git a/dlls/shell32/dialogs.c b/dlls/shell32/dialogs.c index 48321364d0..c6d8e95e96 100644 --- a/dlls/shell32/dialogs.c +++ b/dlls/shell32/dialogs.c @@ -499,8 +499,8 @@ static BOOL ConfirmDialog(HWND hWndOwner, UINT PromptId, UINT TitleId) WCHAR Prompt[256]; WCHAR Title[256];
- LoadStringW(shell32_hInstance, PromptId, Prompt, sizeof(Prompt) / sizeof(WCHAR)); - LoadStringW(shell32_hInstance, TitleId, Title, sizeof(Title) / sizeof(WCHAR)); + LoadStringW(shell32_hInstance, PromptId, Prompt, ARRAY_SIZE(Prompt)); + LoadStringW(shell32_hInstance, TitleId, Title, ARRAY_SIZE(Title)); return MessageBoxW(hWndOwner, Prompt, Title, MB_YESNO|MB_ICONQUESTION) == IDYES; }
diff --git a/dlls/shell32/recyclebin.c b/dlls/shell32/recyclebin.c index 5d4725e425..0d80e6376d 100644 --- a/dlls/shell32/recyclebin.c +++ b/dlls/shell32/recyclebin.c @@ -200,13 +200,10 @@ static void DoRestore(RecycleBinMenu *This) WCHAR message[100]; WCHAR caption[50]; if(_ILIsFolder(ILFindLastID(dest_pidl))) - LoadStringW(shell32_hInstance,IDS_RECYCLEBIN_OVERWRITEFOLDER, - message,sizeof(message)/sizeof(WCHAR)); + LoadStringW(shell32_hInstance, IDS_RECYCLEBIN_OVERWRITEFOLDER, message, ARRAY_SIZE(message)); else - LoadStringW(shell32_hInstance,IDS_RECYCLEBIN_OVERWRITEFILE, - message,sizeof(message)/sizeof(WCHAR)); - LoadStringW(shell32_hInstance,IDS_RECYCLEBIN_OVERWRITE_CAPTION, - caption,sizeof(caption)/sizeof(WCHAR)); + LoadStringW(shell32_hInstance, IDS_RECYCLEBIN_OVERWRITEFILE, message, ARRAY_SIZE(message)); + LoadStringW(shell32_hInstance, IDS_RECYCLEBIN_OVERWRITE_CAPTION, caption, ARRAY_SIZE(caption));
if(ShellMessageBoxW(shell32_hInstance,GetActiveWindow(),message, caption,MB_YESNO|MB_ICONEXCLAMATION, @@ -788,22 +785,19 @@ static HRESULT erase_items(HWND parent,const LPCITEMIDLIST * apidl, UINT cidl, B WIN32_FIND_DATAW data; TRASH_UnpackItemID(&((*apidl)->mkid),&data); lstrcpynW(arg,data.cFileName,MAX_PATH); - LoadStringW(shell32_hInstance,IDS_RECYCLEBIN_ERASEITEM,message, - sizeof(message)/sizeof(WCHAR)); + LoadStringW(shell32_hInstance, IDS_RECYCLEBIN_ERASEITEM, message, ARRAY_SIZE(message)); break; } default: { static const WCHAR format[]={'%','u','\0'}; - LoadStringW(shell32_hInstance,IDS_RECYCLEBIN_ERASEMULTIPLE, - message,sizeof(message)/sizeof(WCHAR)); + LoadStringW(shell32_hInstance, IDS_RECYCLEBIN_ERASEMULTIPLE, message, ARRAY_SIZE(message)); sprintfW(arg,format,cidl); break; }
} - LoadStringW(shell32_hInstance,IDS_RECYCLEBIN_ERASE_CAPTION,caption, - sizeof(caption)/sizeof(WCHAR)); + LoadStringW(shell32_hInstance, IDS_RECYCLEBIN_ERASE_CAPTION, caption, ARRAY_SIZE(caption)); if(ShellMessageBoxW(shell32_hInstance,parent,message,caption, MB_YESNO|MB_ICONEXCLAMATION,arg)!=IDYES) return ret; diff --git a/dlls/shell32/shell32_main.c b/dlls/shell32/shell32_main.c index dd0f6e71de..525eba4544 100644 --- a/dlls/shell32/shell32_main.c +++ b/dlls/shell32/shell32_main.c @@ -1075,15 +1075,15 @@ static INT_PTR CALLBACK AboutDlgProc( HWND hWnd, UINT msg, WPARAM wParam, if (info) { SendDlgItemMessageW(hWnd, stc1, STM_SETICON,(WPARAM)info->hIcon, 0); - GetWindowTextW( hWnd, template, sizeof(template)/sizeof(WCHAR) ); + GetWindowTextW( hWnd, template, ARRAY_SIZE(template) ); sprintfW( buffer, template, info->szApp ); SetWindowTextW( hWnd, buffer ); SetWindowTextW( GetDlgItem(hWnd, IDC_ABOUT_STATIC_TEXT1), info->szApp ); SetWindowTextW( GetDlgItem(hWnd, IDC_ABOUT_STATIC_TEXT2), info->szOtherStuff ); GetWindowTextW( GetDlgItem(hWnd, IDC_ABOUT_STATIC_TEXT3), - template, sizeof(template)/sizeof(WCHAR) ); + template, ARRAY_SIZE(template) ); MultiByteToWideChar( CP_UTF8, 0, wine_get_build_id(), -1, - version, sizeof(version)/sizeof(WCHAR) ); + version, ARRAY_SIZE(template) ); sprintfW( buffer, template, version ); SetWindowTextW( GetDlgItem(hWnd, IDC_ABOUT_STATIC_TEXT3), buffer ); hWndCtl = GetDlgItem(hWnd, IDC_ABOUT_LISTBOX); diff --git a/dlls/shell32/shell32_main.h b/dlls/shell32/shell32_main.h index 11a96309e8..d1b0e01cf1 100644 --- a/dlls/shell32/shell32_main.h +++ b/dlls/shell32/shell32_main.h @@ -39,6 +39,8 @@ #include "wine/unicode.h" #include "wine/list.h"
+#define ARRAY_SIZE(array) (sizeof(array) / sizeof((array)[0])) + /******************************************* * global SHELL32.DLL variables */ diff --git a/dlls/shell32/shelldispatch.c b/dlls/shell32/shelldispatch.c index 66635547ed..2835fad712 100644 --- a/dlls/shell32/shelldispatch.c +++ b/dlls/shell32/shelldispatch.c @@ -155,7 +155,7 @@ void release_typelib(void) if (!typelib) return;
- for (i = 0; i < sizeof(typeinfos)/sizeof(*typeinfos); i++) + for (i = 0; i < ARRAY_SIZE(typeinfos); i++) if (typeinfos[i]) ITypeInfo_Release(typeinfos[i]);
diff --git a/dlls/shell32/shelllink.c b/dlls/shell32/shelllink.c index ba04c8e288..e6774719b9 100644 --- a/dlls/shell32/shelllink.c +++ b/dlls/shell32/shelllink.c @@ -307,7 +307,7 @@ BOOL run_winemenubuilder( const WCHAR *args ) WCHAR app[MAX_PATH]; void *redir;
- GetSystemDirectoryW( app, MAX_PATH - sizeof(menubuilder)/sizeof(WCHAR) ); + GetSystemDirectoryW( app, MAX_PATH - ARRAY_SIZE(menubuilder) ); strcatW( app, menubuilder );
len = (strlenW( app ) + strlenW( args ) + 1) * sizeof(WCHAR); @@ -588,7 +588,7 @@ static HRESULT Stream_ReadChunk( IStream* stm, LPVOID *data )
static BOOL Stream_LoadVolume( LOCAL_VOLUME_INFO *vol, volume_info *volume ) { - const int label_sz = sizeof volume->label/sizeof volume->label[0]; + const int label_sz = ARRAY_SIZE(volume->label); LPSTR label; int len;
@@ -782,14 +782,11 @@ static HRESULT WINAPI IPersistStream_fnLoad( if (TRACE_ON(shell)) { WCHAR sTemp[MAX_PATH]; - GetDateFormatW(LOCALE_USER_DEFAULT,DATE_SHORTDATE, &This->time1, - NULL, sTemp, sizeof(sTemp)/sizeof(*sTemp)); + GetDateFormatW(LOCALE_USER_DEFAULT, DATE_SHORTDATE, &This->time1, NULL, sTemp, ARRAY_SIZE(sTemp)); TRACE("-- time1: %s\n", debugstr_w(sTemp) ); - GetDateFormatW(LOCALE_USER_DEFAULT,DATE_SHORTDATE, &This->time2, - NULL, sTemp, sizeof(sTemp)/sizeof(*sTemp)); + GetDateFormatW(LOCALE_USER_DEFAULT, DATE_SHORTDATE, &This->time2, NULL, sTemp, ARRAY_SIZE(sTemp)); TRACE("-- time2: %s\n", debugstr_w(sTemp) ); - GetDateFormatW(LOCALE_USER_DEFAULT,DATE_SHORTDATE, &This->time3, - NULL, sTemp, sizeof(sTemp)/sizeof(*sTemp)); + GetDateFormatW(LOCALE_USER_DEFAULT, DATE_SHORTDATE, &This->time3, NULL, sTemp, ARRAY_SIZE(sTemp)); TRACE("-- time3: %s\n", debugstr_w(sTemp) ); }
diff --git a/dlls/shell32/shellole.c b/dlls/shell32/shellole.c index c79242199b..3fe96801aa 100644 --- a/dlls/shell32/shellole.c +++ b/dlls/shell32/shellole.c @@ -150,7 +150,7 @@ HRESULT WINAPI SHCoCreateInstance( }
/* we look up the dll path in the registry */ - SHStringFromGUIDW(myclsid, sClassID, sizeof(sClassID)/sizeof(WCHAR)); + SHStringFromGUIDW(myclsid, sClassID, ARRAY_SIZE(sClassID)); lstrcpyW(sKeyName, sCLSID); lstrcatW(sKeyName, sClassID); lstrcatW(sKeyName, sInProcServer32); @@ -258,7 +258,7 @@ DWORD WINAPI SHCLSIDFromStringA (LPCSTR clsid, CLSID *id) { WCHAR buffer[40]; TRACE("(%p(%s) %p)\n", clsid, clsid, id); - if (!MultiByteToWideChar( CP_ACP, 0, clsid, -1, buffer, sizeof(buffer)/sizeof(WCHAR) )) + if (!MultiByteToWideChar( CP_ACP, 0, clsid, -1, buffer, ARRAY_SIZE(buffer) )) return CO_E_CLASSSTRING; return CLSIDFromString( buffer, id ); } diff --git a/dlls/shell32/shellord.c b/dlls/shell32/shellord.c index 6bf29a1fbd..058e57e5b5 100644 --- a/dlls/shell32/shellord.c +++ b/dlls/shell32/shellord.c @@ -433,12 +433,12 @@ int WINAPIV ShellMessageBoxW( hInstance,hWnd,lpText,lpCaption,uType);
if (IS_INTRESOURCE(lpCaption)) - LoadStringW(hInstance, LOWORD(lpCaption), szTitle, sizeof(szTitle)/sizeof(szTitle[0])); + LoadStringW(hInstance, LOWORD(lpCaption), szTitle, ARRAY_SIZE(szTitle)); else pszTitle = lpCaption;
if (IS_INTRESOURCE(lpText)) - LoadStringW(hInstance, LOWORD(lpText), szText, sizeof(szText)/sizeof(szText[0])); + LoadStringW(hInstance, LOWORD(lpText), szText, ARRAY_SIZE(szText)); else pszText = lpText;
@@ -1774,7 +1774,7 @@ HPSXA WINAPI SHCreatePropSheetExtArrayEx(HKEY hKey, LPCWSTR pszSubKey, UINT max_ dwIndex = 0; do { - dwHandlerLen = sizeof(szHandler) / sizeof(szHandler[0]); + dwHandlerLen = ARRAY_SIZE(szHandler); lRet = RegEnumKeyExW(hkPropSheetHandlers, dwIndex++, szHandler, &dwHandlerLen, NULL, NULL, NULL, NULL); if (lRet != ERROR_SUCCESS) { @@ -1793,7 +1793,7 @@ HPSXA WINAPI SHCreatePropSheetExtArrayEx(HKEY hKey, LPCWSTR pszSubKey, UINT max_ if (SHGetValueW(hkPropSheetHandlers, szHandler, NULL, NULL, szClsidHandler, &dwClsidSize) == ERROR_SUCCESS) { /* Force a NULL-termination and convert the string */ - szClsidHandler[(sizeof(szClsidHandler) / sizeof(szClsidHandler[0])) - 1] = 0; + szClsidHandler[ARRAY_SIZE(szClsidHandler) - 1] = 0; lRet = SHCLSIDFromStringW(szClsidHandler, &clsid); } } diff --git a/dlls/shell32/shellpath.c b/dlls/shell32/shellpath.c index fdd9c4087a..e14f533bb9 100644 --- a/dlls/shell32/shellpath.c +++ b/dlls/shell32/shellpath.c @@ -3421,8 +3421,9 @@ static HRESULT _SHGetDefaultValue(BYTE folder, LPWSTR pszPath)
TRACE("0x%02x,%p\n", folder, pszPath);
- if (folder >= sizeof(CSIDL_Data) / sizeof(CSIDL_Data[0])) + if (folder >= ARRAY_SIZE(CSIDL_Data)) return E_INVALIDARG; + if (!pszPath) return E_INVALIDARG;
@@ -3508,7 +3509,7 @@ static HRESULT _SHGetCurrentVersionPath(DWORD dwFlags, BYTE folder,
TRACE("0x%08x,0x%02x,%p\n", dwFlags, folder, pszPath);
- if (folder >= sizeof(CSIDL_Data) / sizeof(CSIDL_Data[0])) + if (folder >= ARRAY_SIZE(CSIDL_Data)) return E_INVALIDARG; if (CSIDL_Data[folder].type != CSIDL_Type_CurrVer) return E_INVALIDARG; @@ -3612,7 +3613,7 @@ static HRESULT _SHGetUserProfilePath(HANDLE hToken, DWORD dwFlags, BYTE folder,
TRACE("%p,0x%08x,0x%02x,%p\n", hToken, dwFlags, folder, pszPath);
- if (folder >= sizeof(CSIDL_Data) / sizeof(CSIDL_Data[0])) + if (folder >= ARRAY_SIZE(CSIDL_Data)) return E_INVALIDARG; if (CSIDL_Data[folder].type != CSIDL_Type_User) return E_INVALIDARG; @@ -3684,7 +3685,7 @@ static HRESULT _SHGetAllUsersProfilePath(DWORD dwFlags, BYTE folder,
TRACE("0x%08x,0x%02x,%p\n", dwFlags, folder, pszPath);
- if (folder >= sizeof(CSIDL_Data) / sizeof(CSIDL_Data[0])) + if (folder >= ARRAY_SIZE(CSIDL_Data)) return E_INVALIDARG; if (CSIDL_Data[folder].type != CSIDL_Type_AllUsers && CSIDL_Data[folder].type != CSIDL_Type_ProgramData) return E_INVALIDARG; @@ -3997,7 +3998,7 @@ HRESULT WINAPI SHGetFolderPathAndSubDirW( if (pszPath) *pszPath = '\0';
- if (folder >= sizeof(CSIDL_Data) / sizeof(CSIDL_Data[0])) + if (folder >= ARRAY_SIZE(CSIDL_Data)) return E_INVALIDARG; if ((SHGFP_TYPE_CURRENT != dwFlags) && (SHGFP_TYPE_DEFAULT != dwFlags)) return E_INVALIDARG; @@ -4293,7 +4294,7 @@ static HRESULT _SHRegisterUserShellFolders(BOOL bDefault) }
hr = _SHRegisterFolders(hRootKey, hToken, pUserShellFolderPath, - pShellFolderPath, folders, sizeof(folders) / sizeof(folders[0])); + pShellFolderPath, folders, ARRAY_SIZE(folders)); TRACE("returning 0x%08x\n", hr); return hr; } @@ -4318,7 +4319,7 @@ static HRESULT _SHRegisterCommonShellFolders(void)
TRACE("\n"); hr = _SHRegisterFolders(HKEY_LOCAL_MACHINE, NULL, szSHUserFolders, - szSHFolders, folders, sizeof(folders) / sizeof(folders[0])); + szSHFolders, folders, ARRAY_SIZE(folders)); TRACE("returning 0x%08x\n", hr); return hr; } @@ -4411,7 +4412,7 @@ static void _SHCreateSymbolicLinks(void) const WCHAR* MyOSXStuffW[] = { PicturesW, MoviesW, MusicW }; int acsidlMyStuff[] = { CSIDL_MYPICTURES, CSIDL_MYVIDEO, CSIDL_MYMUSIC }; static const char * const xdg_dirs[] = { "PICTURES", "VIDEOS", "MUSIC", "DOCUMENTS", "DESKTOP" }; - static const unsigned int num = sizeof(xdg_dirs) / sizeof(xdg_dirs[0]); + static const unsigned int num = ARRAY_SIZE(xdg_dirs); WCHAR wszTempPath[MAX_PATH]; char szPersonalTarget[FILENAME_MAX], *pszPersonal; char szMyStuffTarget[FILENAME_MAX], *pszMyStuff; @@ -4446,7 +4447,7 @@ static void _SHCreateSymbolicLinks(void) * 'My Videos' and 'My Music' subfolders or fail silently if * they already exist. */ - for (i = 0; i < sizeof(aidsMyStuff)/sizeof(*aidsMyStuff); i++) + for (i = 0; i < ARRAY_SIZE(aidsMyStuff); i++) { strcpy(szMyStuffTarget, szPersonalTarget); if (_SHAppendToUnixPath(szMyStuffTarget, MAKEINTRESOURCEW(aidsMyStuff[i]))) @@ -4486,7 +4487,7 @@ static void _SHCreateSymbolicLinks(void) * in '%USERPROFILE%\My Documents' or fail silently if they already exist. */ pszHome = NULL; strcpy(szPersonalTarget, pszPersonal); - for (i = 0; i < sizeof(aidsMyStuff)/sizeof(aidsMyStuff[0]); i++) { + for (i = 0; i < ARRAY_SIZE(aidsMyStuff); i++) { strcpy(szMyStuffTarget, szPersonalTarget); if (_SHAppendToUnixPath(szMyStuffTarget, MAKEINTRESOURCEW(aidsMyStuff[i]))) mkdir(szMyStuffTarget, 0777); @@ -4494,7 +4495,7 @@ static void _SHCreateSymbolicLinks(void) }
/* Create symbolic links for 'My Pictures', 'My Videos' and 'My Music'. */ - for (i=0; i < sizeof(aidsMyStuff)/sizeof(aidsMyStuff[0]); i++) + for (i=0; i < ARRAY_SIZE(aidsMyStuff); i++) { /* Create the current 'My Whatever' folder and get its unix path. */ hr = SHGetFolderPathW(NULL, acsidlMyStuff[i]|CSIDL_FLAG_CREATE, NULL, @@ -4655,11 +4656,11 @@ static HRESULT set_folder_attributes(void) };
unsigned int i; - WCHAR buffer[39 + (sizeof(clsidW) + sizeof(shellfolderW)) / sizeof(WCHAR)]; + WCHAR buffer[39 + ARRAY_SIZE(clsidW) + ARRAY_SIZE(shellfolderW)]; LONG res; HKEY hkey;
- for (i = 0; i < sizeof(folders)/sizeof(folders[0]); i++) + for (i = 0; i < ARRAY_SIZE(folders); i++) { strcpyW( buffer, clsidW ); StringFromGUID2( folders[i].clsid, buffer + strlenW(buffer), 39 ); @@ -4855,7 +4856,7 @@ HRESULT WINAPI SHGetSpecialFolderLocation( static int csidl_from_id( const KNOWNFOLDERID *id ) { int i; - for (i = 0; i < sizeof(CSIDL_Data) / sizeof(CSIDL_Data[0]); i++) + for (i = 0; i < ARRAY_SIZE(CSIDL_Data); i++) if (IsEqualGUID( CSIDL_Data[i].id, id )) return i; return -1; } @@ -5049,7 +5050,7 @@ static HRESULT get_known_folder_registry_path( TRACE("(%s, %s, %p)\n", debugstr_guid(rfid), debugstr_w(lpStringGuid), lpPath);
if(rfid) - StringFromGUID2(rfid, sGuid, sizeof(sGuid)/sizeof(sGuid[0])); + StringFromGUID2(rfid, sGuid, ARRAY_SIZE(sGuid)); else lstrcpyW(sGuid, lpStringGuid);
@@ -5178,7 +5179,7 @@ static HRESULT redirect_known_folder(
if(SUCCEEDED(hr)) { - StringFromGUID2(rfid, sGuid, sizeof(sGuid)/sizeof(sGuid[0])); + StringFromGUID2(rfid, sGuid, ARRAY_SIZE(sGuid));
hr = HRESULT_FROM_WIN32(RegSetValueExW(hKey, sGuid, 0, REG_SZ, (LPBYTE)pszTargetPath, (lstrlenW(pszTargetPath)+1)*sizeof(WCHAR)));
@@ -5479,7 +5480,7 @@ static HRESULT get_known_folder_path_by_id( /* if this is registry-registered known folder, get path from registry */ if(lpRegistryPath) { - StringFromGUID2(folderId, sGuid, sizeof(sGuid)/sizeof(sGuid[0])); + StringFromGUID2(folderId, sGuid, ARRAY_SIZE(sGuid));
hr = get_known_folder_path(sGuid, lpRegistryPath, ppszPath); } @@ -5709,7 +5710,7 @@ static HRESULT WINAPI foldermanager_FolderIdFromCsidl( { TRACE("%d, %p\n", nCsidl, pfid);
- if (nCsidl >= sizeof(CSIDL_Data) / sizeof(CSIDL_Data[0])) + if (nCsidl >= ARRAY_SIZE(CSIDL_Data)) return E_INVALIDARG; *pfid = *CSIDL_Data[nCsidl].id; return S_OK; @@ -5879,7 +5880,7 @@ static HRESULT register_folder(const KNOWNFOLDERID *rfid, const KNOWNFOLDER_DEFI if(SUCCEEDED(hr) && !IsEqualGUID(&pKFD->fidParent, &GUID_NULL)) { WCHAR sParentGuid[39]; - StringFromGUID2(&pKFD->fidParent, sParentGuid, sizeof(sParentGuid)/sizeof(sParentGuid[0])); + StringFromGUID2(&pKFD->fidParent, sParentGuid, ARRAY_SIZE(sParentGuid));
/* this known folder has parent folder */ hr = HRESULT_FROM_WIN32(RegSetValueExW(hKey, szParentFolder, 0, REG_SZ, (LPBYTE)sParentGuid, sizeof(sParentGuid))); @@ -5985,7 +5986,7 @@ static HRESULT foldermanager_create( void **ppv ) fm->refs = 1; fm->num_ids = 0;
- for (i = 0; i < sizeof(CSIDL_Data) / sizeof(CSIDL_Data[0]); i++) + for (i = 0; i < ARRAY_SIZE(CSIDL_Data); i++) { if (!IsEqualGUID( CSIDL_Data[i].id, &GUID_NULL )) fm->num_ids++; } @@ -5995,7 +5996,7 @@ static HRESULT foldermanager_create( void **ppv ) heap_free( fm ); return E_OUTOFMEMORY; } - for (i = j = 0; i < sizeof(CSIDL_Data) / sizeof(CSIDL_Data[0]); i++) + for (i = j = 0; i < ARRAY_SIZE(CSIDL_Data); i++) { if (!IsEqualGUID( CSIDL_Data[i].id, &GUID_NULL )) { @@ -6091,7 +6092,9 @@ HRESULT WINAPI SHGetKnownFolderItem(REFKNOWNFOLDERID rfid, KNOWN_FOLDER_FLAG fla static void register_system_knownfolders(void) { int i; - for(i = 0; i < sizeof(CSIDL_Data) / sizeof(CSIDL_Data[0]); ++i){ + + for (i = 0; i < ARRAY_SIZE(CSIDL_Data); ++i) + { const CSIDL_DATA *folder = &CSIDL_Data[i]; if(folder->pszName){ KNOWNFOLDER_DEFINITION kfd; diff --git a/dlls/shell32/shfldr_desktop.c b/dlls/shell32/shfldr_desktop.c index 880291c8ef..d0b97c69e6 100644 --- a/dlls/shell32/shfldr_desktop.c +++ b/dlls/shell32/shfldr_desktop.c @@ -94,8 +94,6 @@ static const shvheader desktop_header[] = { &FMTID_Storage, PID_STG_ATTRIBUTES, IDS_SHV_COLUMN5, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_RIGHT, 5 }, };
-#define DESKTOPSHELLVIEWCOLUMNS sizeof(desktop_header)/sizeof(shvheader) - /************************************************************************** * ISF_Desktop_fnQueryInterface * @@ -289,14 +287,14 @@ static void add_shell_namespace_extensions(IEnumIDListImpl *list, HKEY root) static const WCHAR clsidfmtW[] = {'C','L','S','I','D','\','%','s','\', 'S','h','e','l','l','F','o','l','d','e','r',0}; static const WCHAR attributesW[] = {'A','t','t','r','i','b','u','t','e','s',0}; - WCHAR guid[39], clsidkeyW[sizeof(clsidfmtW)/sizeof(*clsidfmtW) + 39]; + WCHAR guid[39], clsidkeyW[ARRAY_SIZE(clsidfmtW) + 39]; DWORD size, i = 0; HKEY hkey;
if (RegOpenKeyExW(root, Desktop_NameSpaceW, 0, KEY_READ, &hkey)) return;
- size = sizeof(guid)/sizeof(guid[0]); + size = ARRAY_SIZE(guid); while (!RegEnumKeyExW(hkey, i++, guid, &size, 0, NULL, NULL, NULL)) { DWORD attributes, value_size = sizeof(attributes); @@ -308,7 +306,7 @@ static void add_shell_namespace_extensions(IEnumIDListImpl *list, HKEY root)
if (!(attributes & SFGAO_NONENUMERATED)) AddToEnumList(list, _ILCreateGuidFromStrW(guid)); - size = sizeof(guid)/sizeof(guid[0]); + size = ARRAY_SIZE(guid); }
RegCloseKey(hkey); @@ -784,8 +782,8 @@ static HRESULT WINAPI ISF_Desktop_fnGetDefaultColumnState (
TRACE ("(%p)->(%d %p)\n", This, iColumn, pcsFlags);
- if (!pcsFlags || iColumn >= DESKTOPSHELLVIEWCOLUMNS) - return E_INVALIDARG; + if (!pcsFlags || iColumn >= ARRAY_SIZE(desktop_header)) + return E_INVALIDARG;
*pcsFlags = desktop_header[iColumn].pcsFlags;
@@ -809,7 +807,7 @@ static HRESULT WINAPI ISF_Desktop_fnGetDetailsOf (IShellFolder2 * iface,
TRACE ("(%p)->(%p %i %p)\n", This, pidl, iColumn, psd);
- if (!psd || iColumn >= DESKTOPSHELLVIEWCOLUMNS) + if (!psd || iColumn >= ARRAY_SIZE(desktop_header)) return E_INVALIDARG;
if (!pidl) @@ -846,7 +844,7 @@ static HRESULT WINAPI ISF_Desktop_fnMapColumnToSCID(IShellFolder2 *iface, UINT c
TRACE("(%p)->(%u %p)\n", This, column, scid);
- if (column >= DESKTOPSHELLVIEWCOLUMNS) + if (column >= ARRAY_SIZE(desktop_header)) return E_INVALIDARG;
return shellfolder_map_column_to_scid(desktop_header, column, scid); diff --git a/dlls/shell32/shfldr_fs.c b/dlls/shell32/shfldr_fs.c index 1e7d1f2629..66150f4ce8 100644 --- a/dlls/shell32/shfldr_fs.c +++ b/dlls/shell32/shfldr_fs.c @@ -1089,8 +1089,8 @@ ISFHelper_fnGetUniqueName (ISFHelper * iface, LPWSTR pwszName, UINT uLen)
TRACE ("(%p)(%p %u)\n", This, pwszName, uLen);
- LoadStringW(shell32_hInstance, IDS_NEWFOLDER, wszNewFolder, sizeof(wszNewFolder)/sizeof(WCHAR)); - if (uLen < sizeof(wszNewFolder)/sizeof(WCHAR) + 3) + LoadStringW(shell32_hInstance, IDS_NEWFOLDER, wszNewFolder, ARRAY_SIZE(wszNewFolder)); + if (uLen < ARRAY_SIZE(wszNewFolder) + 3) return E_POINTER;
lstrcpynW (pwszName, wszNewFolder, uLen); @@ -1180,10 +1180,8 @@ ISFHelper_fnAddFolder (ISFHelper * iface, HWND hwnd, LPCWSTR pwszName, WCHAR wszCaption[256];
/* Cannot Create folder because of permissions */ - LoadStringW (shell32_hInstance, IDS_CREATEFOLDER_DENIED, wszTempText, - sizeof (wszTempText)/sizeof (wszTempText[0])); - LoadStringW (shell32_hInstance, IDS_CREATEFOLDER_CAPTION, wszCaption, - sizeof (wszCaption)/sizeof (wszCaption[0])); + LoadStringW (shell32_hInstance, IDS_CREATEFOLDER_DENIED, wszTempText, ARRAY_SIZE(wszTempText)); + LoadStringW (shell32_hInstance, IDS_CREATEFOLDER_CAPTION, wszCaption, ARRAY_SIZE(wszCaption)); sprintfW (wszText, wszTempText, wszNewDir); MessageBoxW (hwnd, wszText, wszCaption, MB_OK | MB_ICONEXCLAMATION); } diff --git a/dlls/shell32/shfldr_netplaces.c b/dlls/shell32/shfldr_netplaces.c index 471abd879e..71b21c5e73 100644 --- a/dlls/shell32/shfldr_netplaces.c +++ b/dlls/shell32/shfldr_netplaces.c @@ -79,8 +79,6 @@ static const shvheader networkplaces_header[] = { NULL, 0, IDS_SHV_COLUMN9, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_RIGHT, 10 }, };
-#define NETWORKPLACESSHELLVIEWCOLUMNS sizeof(networkplaces_header)/sizeof(shvheader) - /************************************************************************** * ISF_NetworkPlaces_Constructor */ @@ -199,8 +197,7 @@ static HRESULT WINAPI ISF_NetworkPlaces_fnParseDisplayName (IShellFolder2 * ifac
szNext = GetNextElementW (lpszDisplayName, szElement, MAX_PATH); len = strlenW(szElement); - if (len == sizeof(wszEntireNetwork)/sizeof(wszEntireNetwork[0]) && - !strncmpiW(szElement, wszEntireNetwork, sizeof(wszEntireNetwork)/sizeof(wszEntireNetwork[0]))) + if (len == ARRAY_SIZE(wszEntireNetwork) && !strncmpiW(szElement, wszEntireNetwork, ARRAY_SIZE(wszEntireNetwork))) { pidlTemp = _ILCreateEntireNetwork(); if (pidlTemp) @@ -534,7 +531,7 @@ static HRESULT WINAPI ISF_NetworkPlaces_fnGetDefaultColumnState (
TRACE ("(%p)->(%d %p)\n", This, iColumn, pcsFlags);
- if (!pcsFlags || iColumn >= NETWORKPLACESSHELLVIEWCOLUMNS) + if (!pcsFlags || iColumn >= ARRAY_SIZE(networkplaces_header)) return E_INVALIDARG;
*pcsFlags = networkplaces_header[iColumn].pcsFlags; @@ -567,7 +564,7 @@ static HRESULT WINAPI ISF_NetworkPlaces_fnMapColumnToSCID (IShellFolder2 *iface,
TRACE("(%p)->(%u %p)\n", This, column, scid);
- if (column >= NETWORKPLACESSHELLVIEWCOLUMNS) + if (column >= ARRAY_SIZE(networkplaces_header)) return E_INVALIDARG;
return shellfolder_map_column_to_scid(networkplaces_header, column, scid); diff --git a/dlls/shell32/shfldr_unixfs.c b/dlls/shell32/shfldr_unixfs.c index cde815a99d..732a103b50 100644 --- a/dlls/shell32/shfldr_unixfs.c +++ b/dlls/shell32/shfldr_unixfs.c @@ -1362,7 +1362,7 @@ static HRESULT WINAPI ShellFolder2_SetNameOf(IShellFolder2* iface, HWND hwnd, return E_INVALIDARG;
/* check for invalid characters in lpcwszName. */ - for (i=0; i < sizeof(awcInvalidChars)/sizeof(*awcInvalidChars); i++) + for (i=0; i < ARRAY_SIZE(awcInvalidChars); i++) if (StrChrW(lpcwszName, awcInvalidChars[i])) return HRESULT_FROM_WIN32(ERROR_CANCELLED);
@@ -1862,9 +1862,9 @@ static HRESULT WINAPI SFHelper_GetUniqueName(ISFHelper* iface, LPWSTR pwszName,
TRACE("(%p)->(%p %u)\n", This, pwszName, uLen);
- LoadStringW(shell32_hInstance, IDS_NEWFOLDER, wszNewFolder, sizeof(wszNewFolder)/sizeof(WCHAR)); + LoadStringW(shell32_hInstance, IDS_NEWFOLDER, wszNewFolder, ARRAY_SIZE(wszNewFolder));
- if (uLen < sizeof(wszNewFolder)/sizeof(WCHAR)+3) + if (uLen < ARRAY_SIZE(wszNewFolder) + 3) return E_INVALIDARG;
hr = IShellFolder2_EnumObjects(&This->IShellFolder2_iface, 0, @@ -1913,9 +1913,9 @@ static HRESULT WINAPI SFHelper_AddFolder(ISFHelper* iface, HWND hwnd, LPCWSTR pw char szMessage[256 + FILENAME_MAX]; char szCaption[256];
- LoadStringA(shell32_hInstance, IDS_CREATEFOLDER_DENIED, szCaption, sizeof(szCaption)); + LoadStringA(shell32_hInstance, IDS_CREATEFOLDER_DENIED, szCaption, ARRAY_SIZE(szCaption)); sprintf(szMessage, szCaption, szNewDir); - LoadStringA(shell32_hInstance, IDS_CREATEFOLDER_CAPTION, szCaption, sizeof(szCaption)); + LoadStringA(shell32_hInstance, IDS_CREATEFOLDER_CAPTION, szCaption, ARRAY_SIZE(szCaption)); MessageBoxA(hwnd, szMessage, szCaption, MB_OK | MB_ICONEXCLAMATION);
return E_FAIL; diff --git a/dlls/shell32/shlexec.c b/dlls/shell32/shlexec.c index 2055d21d30..d77e213c6d 100644 --- a/dlls/shell32/shlexec.c +++ b/dlls/shell32/shlexec.c @@ -158,7 +158,7 @@ static BOOL SHELL_ArgifyW(WCHAR* out, int len, const WCHAR* fmt, const WCHAR* lp if (!done || (*fmt == '1')) { /*FIXME Is the call to SearchPathW() really needed? We already have separated out the parameter string in args. */ - if (SearchPathW(NULL, lpFile, wszExe, sizeof(xlpFile)/sizeof(WCHAR), xlpFile, NULL)) + if (SearchPathW(NULL, lpFile, wszExe, ARRAY_SIZE(xlpFile), xlpFile, NULL)) cmd = xlpFile; else cmd = lpFile; @@ -202,7 +202,7 @@ static BOOL SHELL_ArgifyW(WCHAR* out, int len, const WCHAR* fmt, const WCHAR* lp HGLOBAL hmem = SHAllocShared(pidl, ILGetSize(pidl), 0); pv = SHLockShared(hmem, 0); chars = sprintfW(buf, wszILPtr, pv); - if (chars >= sizeof(buf)/sizeof(WCHAR)) + if (chars >= ARRAY_SIZE(buf)) ERR("pidl format buffer too small!\n"); used += chars; if (used < len) @@ -502,7 +502,7 @@ static UINT SHELL_FindExecutableByVerb(LPCWSTR lpVerb, LPWSTR key, LPWSTR classn
if (RegOpenKeyExW(HKEY_CLASSES_ROOT, classname, 0, 0x02000000, &hkeyClass)) return SE_ERR_NOASSOC; - if (!HCR_GetDefaultVerbW(hkeyClass, lpVerb, verb, sizeof(verb)/sizeof(verb[0]))) + if (!HCR_GetDefaultVerbW(hkeyClass, lpVerb, verb, ARRAY_SIZE(verb))) return SE_ERR_NOASSOC; RegCloseKey(hkeyClass);
@@ -603,13 +603,13 @@ static UINT SHELL_FindExecutable(LPCWSTR lpPath, LPCWSTR lpFile, LPCWSTR lpVerb, return 33; }
- if (SearchPathW(lpPath, lpFile, wszExe, sizeof(xlpFile)/sizeof(WCHAR), xlpFile, NULL)) + if (SearchPathW(lpPath, lpFile, wszExe, ARRAY_SIZE(xlpFile), xlpFile, NULL)) { TRACE("SearchPathW returned non-zero\n"); lpFile = xlpFile; /* The file was found in the application-supplied default directory (or the system search path) */ } - else if (lpPath && SearchPathW(NULL, lpFile, wszExe, sizeof(xlpFile)/sizeof(WCHAR), xlpFile, NULL)) + else if (lpPath && SearchPathW(NULL, lpFile, wszExe, ARRAY_SIZE(xlpFile), xlpFile, NULL)) { TRACE("SearchPathW returned non-zero\n"); lpFile = xlpFile; @@ -652,7 +652,7 @@ static UINT SHELL_FindExecutable(LPCWSTR lpPath, LPCWSTR lpFile, LPCWSTR lpVerb, /* See if it's a program - if GetProfileString fails, we skip this * section. Actually, if GetProfileString fails, we've probably * got a lot more to worry about than running a program... */ - if (GetProfileStringW(wWindows, wPrograms, wExtensions, wBuffer, sizeof(wBuffer)/sizeof(WCHAR)) > 0) + if (GetProfileStringW(wWindows, wPrograms, wExtensions, wBuffer, ARRAY_SIZE(wBuffer)) > 0) { CharLowerW(wBuffer); tok = wBuffer; @@ -684,7 +684,7 @@ static UINT SHELL_FindExecutable(LPCWSTR lpPath, LPCWSTR lpFile, LPCWSTR lpVerb, &classnamelen) == ERROR_SUCCESS) { classnamelen /= sizeof(WCHAR); - if (classnamelen == sizeof(classname)/sizeof(WCHAR)) + if (classnamelen == ARRAY_SIZE(classname)) classnamelen--; classname[classnamelen] = '\0'; TRACE("File type: %s\n", debugstr_w(classname)); @@ -734,7 +734,7 @@ static UINT SHELL_FindExecutable(LPCWSTR lpPath, LPCWSTR lpFile, LPCWSTR lpVerb,
/* Toss the leading dot */ extension++; - if (GetProfileStringW(wExtensions, extension, wszEmpty, command, sizeof(command)/sizeof(WCHAR)) > 0) + if (GetProfileStringW(wExtensions, extension, wszEmpty, command, ARRAY_SIZE(command)) > 0) { if (strlenW(command) != 0) { diff --git a/dlls/shell32/shlfileop.c b/dlls/shell32/shlfileop.c index 315f5a7453..02e7a1ba38 100644 --- a/dlls/shell32/shlfileop.c +++ b/dlls/shell32/shlfileop.c @@ -288,12 +288,13 @@ static BOOL SHELL_ConfirmDialogW(HWND hWnd, int nKindOfDialog, LPCWSTR szDir, FI
if (!SHELL_ConfirmIDs(nKindOfDialog, &ids)) return FALSE;
- LoadStringW(shell32_hInstance, ids.caption_resource_id, szCaption, sizeof(szCaption)/sizeof(WCHAR)); - LoadStringW(shell32_hInstance, ids.text_resource_id, szText, sizeof(szText)/sizeof(WCHAR)); + LoadStringW(shell32_hInstance, ids.caption_resource_id, szCaption, ARRAY_SIZE(szCaption)); + LoadStringW(shell32_hInstance, ids.text_resource_id, szText, ARRAY_SIZE(szText)); + + args[0] = (DWORD_PTR)szDir; + FormatMessageW(FORMAT_MESSAGE_FROM_STRING|FORMAT_MESSAGE_ARGUMENT_ARRAY, + szText, 0, 0, szBuffer, ARRAY_SIZE(szBuffer), (__ms_va_list*)args);
- args[0] = (DWORD_PTR)szDir; - FormatMessageW(FORMAT_MESSAGE_FROM_STRING|FORMAT_MESSAGE_ARGUMENT_ARRAY, - szText, 0, 0, szBuffer, sizeof(szBuffer)/sizeof(szBuffer[0]), (__ms_va_list*)args); hIcon = LoadIconW(ids.hIconInstance, (LPWSTR)MAKEINTRESOURCE(ids.icon_resource_id));
ret = SHELL_ConfirmMsgBox(hWnd, szBuffer, szCaption, hIcon, op && op->bManyItems); diff --git a/dlls/shell32/shlmenu.c b/dlls/shell32/shlmenu.c index 1c262e74b0..4047c714d3 100644 --- a/dlls/shell32/shlmenu.c +++ b/dlls/shell32/shlmenu.c @@ -905,7 +905,7 @@ UINT WINAPI Shell_MergeMenus (HMENU hmDst, HMENU hmSrc, UINT uInsert, UINT uIDAd miiSrc.fType = MFT_STRING; miiSrc.dwTypeData = szName; miiSrc.dwItemData = 0; - miiSrc.cch = sizeof(szName)/sizeof(WCHAR); + miiSrc.cch = ARRAY_SIZE(szName);
if (!GetMenuItemInfoW(hmSrc, nItem, TRUE, &miiSrc)) { diff --git a/dlls/shell32/shlview.c b/dlls/shell32/shlview.c index ecc23cb727..c0c027fbd3 100644 --- a/dlls/shell32/shlview.c +++ b/dlls/shell32/shlview.c @@ -426,7 +426,7 @@ static void ShellView_InitList(IShellViewImpl *This)
lvColumn.fmt = sd.fmt; lvColumn.cx = MulDiv(sd.cxChar, tm.tmAveCharWidth * 3, 2); /* chars->pixel */ - StrRetToStrNW(nameW, sizeof(nameW)/sizeof(WCHAR), &sd.str, NULL); + StrRetToStrNW(nameW, ARRAY_SIZE(nameW), &sd.str, NULL); SendMessageW(This->hWndList, LVM_INSERTCOLUMNW, This->columns, (LPARAM)&lvColumn); }
diff --git a/dlls/shell32/systray.c b/dlls/shell32/systray.c index 7c5704505a..3a17cf3daa 100644 --- a/dlls/shell32/systray.c +++ b/dlls/shell32/systray.c @@ -30,6 +30,7 @@ #include "winnls.h" #include "winuser.h" #include "shellapi.h" +#include "shell32_main.h"
#include "wine/debug.h" #include "wine/heap.h" @@ -94,7 +95,7 @@ BOOL WINAPI Shell_NotifyIconA(DWORD dwMessage, PNOTIFYICONDATAA pnid)
/* szTip */ if (pnid->uFlags & NIF_TIP) - MultiByteToWideChar(CP_ACP, 0, pnid->szTip, -1, nidW.szTip, sizeof(nidW.szTip)/sizeof(WCHAR)); + MultiByteToWideChar(CP_ACP, 0, pnid->szTip, -1, nidW.szTip, ARRAY_SIZE(nidW.szTip));
if (cbSize >= NOTIFYICONDATAA_V2_SIZE) { @@ -104,8 +105,8 @@ BOOL WINAPI Shell_NotifyIconA(DWORD dwMessage, PNOTIFYICONDATAA pnid) /* szInfo, szInfoTitle */ if (pnid->uFlags & NIF_INFO) { - MultiByteToWideChar(CP_ACP, 0, pnid->szInfo, -1, nidW.szInfo, sizeof(nidW.szInfo)/sizeof(WCHAR)); - MultiByteToWideChar(CP_ACP, 0, pnid->szInfoTitle, -1, nidW.szInfoTitle, sizeof(nidW.szInfoTitle)/sizeof(WCHAR)); + MultiByteToWideChar(CP_ACP, 0, pnid->szInfo, -1, nidW.szInfo, ARRAY_SIZE(nidW.szInfo)); + MultiByteToWideChar(CP_ACP, 0, pnid->szInfoTitle, -1, nidW.szInfoTitle, ARRAY_SIZE(nidW.szInfoTitle)); }
nidW.u.uTimeout = pnid->u.uTimeout; @@ -228,8 +229,8 @@ noicon: } if (data->uFlags & NIF_INFO) { - lstrcpynW( data->szInfo, nid->szInfo, sizeof(data->szInfo)/sizeof(WCHAR) ); - lstrcpynW( data->szInfoTitle, nid->szInfoTitle, sizeof(data->szInfoTitle)/sizeof(WCHAR) ); + lstrcpynW( data->szInfo, nid->szInfo, ARRAY_SIZE(data->szInfo) ); + lstrcpynW( data->szInfoTitle, nid->szInfoTitle, ARRAY_SIZE(data->szInfoTitle)); data->u.uTimeout = nid->u.uTimeout; data->dwInfoFlags = nid->dwInfoFlags; } diff --git a/dlls/shell32/xdg.c b/dlls/shell32/xdg.c index 3f1d317b72..622ef34623 100644 --- a/dlls/shell32/xdg.c +++ b/dlls/shell32/xdg.c @@ -99,10 +99,8 @@ static const std_path paths[] = { {"XDG_CACHE_HOME", "$HOME/.cache"} };
-#define PATHS_COUNT (sizeof(paths)/sizeof(paths[0])) - /* will be filled with paths as they are computed */ -static const char *path_values[PATHS_COUNT] = { +static const char *path_values[ARRAY_SIZE(paths)] = { NULL, NULL, NULL, @@ -161,7 +159,7 @@ static char *load_path(int path_id) */ static const char *XDG_GetPath(int path_id) { - if (path_id >= PATHS_COUNT || path_id < 0) + if (path_id >= ARRAY_SIZE(paths) || path_id < 0) { ERR("Invalid path_id %d\n", path_id); return NULL;