diff --git a/dlls/comdlg32/cdlg32.c b/dlls/comdlg32/cdlg32.c index e794f94d8b1..a00da2dda76 100644 --- a/dlls/comdlg32/cdlg32.c +++ b/dlls/comdlg32/cdlg32.c @@ -32,6 +32,7 @@ #include "commdlg.h" #include "cderr.h" #include "wine/debug.h" +#include "wine/heap.h" WINE_DEFAULT_DEBUG_CHANNEL(commdlg); @@ -128,16 +129,17 @@ BOOL WINAPI DllMain(HINSTANCE hInstance, DWORD Reason, LPVOID Reserved) * Success: Pointer to a heap block * Failure: null */ -LPVOID COMDLG32_AllocMem( - int size /* [in] Block size to allocate */ -) { - LPVOID ptr = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, size); - if(!ptr) - { - COMDLG32_SetCommDlgExtendedError(CDERR_MEMALLOCFAILURE); - return NULL; - } - return ptr; +void *COMDLG32_AllocMem(int size) +{ + void *ptr = heap_alloc_zero(size); + + if (!ptr) + { + COMDLG32_SetCommDlgExtendedError(CDERR_MEMALLOCFAILURE); + return NULL; + } + + return ptr; } diff --git a/dlls/comdlg32/colordlg.c b/dlls/comdlg32/colordlg.c index bead9ba38c5..a717e847c74 100644 --- a/dlls/comdlg32/colordlg.c +++ b/dlls/comdlg32/colordlg.c @@ -31,10 +31,12 @@ #include "winuser.h" #include "commdlg.h" #include "dlgs.h" -#include "wine/debug.h" #include "cderr.h" #include "cdlg.h" +#include "wine/debug.h" +#include "wine/heap.h" + WINE_DEFAULT_DEBUG_CHANNEL(commdlg); static INT_PTR CALLBACK ColorDlgProc( HWND hWnd, UINT wMsg, WPARAM wParam, LPARAM lParam ); @@ -858,7 +860,7 @@ static LRESULT CC_WMInitDialog( HWND hDlg, WPARAM wParam, LPARAM lParam ) return FALSE; } - lpp = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(struct CCPRIVATE) ); + lpp = heap_alloc_zero(sizeof(*lpp)); lpp->lpcc = cc; lpp->hwndSelf = hDlg; @@ -1215,7 +1217,7 @@ static INT_PTR CALLBACK ColorDlgProc( HWND hDlg, UINT message, case WM_NCDESTROY: DeleteDC(lpp->hdcMem); DeleteObject(lpp->hbmMem); - HeapFree(GetProcessHeap(), 0, lpp); + heap_free(lpp); RemovePropW( hDlg, szColourDialogProp ); break; case WM_COMMAND: @@ -1326,7 +1328,7 @@ BOOL WINAPI ChooseColorA( LPCHOOSECOLORA lpChCol ) LPWSTR template_name = NULL; BOOL ret; - LPCHOOSECOLORW lpcc = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(CHOOSECOLORW)); + CHOOSECOLORW *lpcc = heap_alloc_zero(sizeof(*lpcc)); lpcc->lStructSize = sizeof(*lpcc); lpcc->hwndOwner = lpChCol->hwndOwner; lpcc->hInstance = lpChCol->hInstance; @@ -1338,7 +1340,7 @@ BOOL WINAPI ChooseColorA( LPCHOOSECOLORA lpChCol ) if ((lpcc->Flags & CC_ENABLETEMPLATE) && (lpChCol->lpTemplateName)) { if (!IS_INTRESOURCE(lpChCol->lpTemplateName)) { INT len = MultiByteToWideChar( CP_ACP, 0, lpChCol->lpTemplateName, -1, NULL, 0); - template_name = HeapAlloc( GetProcessHeap(), 0, len * sizeof(WCHAR) ); + template_name = heap_alloc( len * sizeof(WCHAR) ); MultiByteToWideChar( CP_ACP, 0, lpChCol->lpTemplateName, -1, template_name, len ); lpcc->lpTemplateName = template_name; } else { @@ -1350,7 +1352,8 @@ BOOL WINAPI ChooseColorA( LPCHOOSECOLORA lpChCol ) if (ret) lpChCol->rgbResult = lpcc->rgbResult; - HeapFree(GetProcessHeap(), 0, template_name); - HeapFree(GetProcessHeap(), 0, lpcc); + + heap_free(template_name); + heap_free(lpcc); return ret; } diff --git a/dlls/comdlg32/filedlg.c b/dlls/comdlg32/filedlg.c index 8d989bc6f67..fa9ecfbd4fc 100644 --- a/dlls/comdlg32/filedlg.c +++ b/dlls/comdlg32/filedlg.c @@ -75,6 +75,7 @@ #include "wine/unicode.h" #include "wine/debug.h" +#include "wine/heap.h" WINE_DEFAULT_DEBUG_CHANNEL(commdlg); @@ -236,10 +237,6 @@ static BOOL IsPidlFolder (LPSHELLFOLDER psf, LPCITEMIDLIST pidl); static UINT GetNumSelected( IDataObject *doSelected ); static void COMCTL32_ReleaseStgMedium(STGMEDIUM medium); -/* Shell memory allocation */ -static void *MemAlloc(UINT size); -static void MemFree(void *mem); - static INT_PTR CALLBACK FileOpenDlgProc95(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam); static INT_PTR FILEDLG95_HandleCustomDialogMessages(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam); static BOOL FILEDLG95_OnOpenMultipleFiles(HWND hwnd, LPWSTR lpstrFileList, UINT nFileCount, UINT sizeUsed); @@ -349,7 +346,7 @@ static WCHAR *heap_strdupAtoW(const char *str) return NULL; len = MultiByteToWideChar(CP_ACP, 0, str, -1, 0, 0); - ret = MemAlloc(len * sizeof(WCHAR)); + ret = heap_alloc(len * sizeof(WCHAR)); MultiByteToWideChar(CP_ACP, 0, str, -1, ret, len); return ret; @@ -379,7 +376,7 @@ static void init_filedlg_infoW(OPENFILENAMEW *ofn, FileOpenDlgInfos *info) if (ofn->lpstrFile) { - info->filename = MemAlloc(ofn->nMaxFile * sizeof(WCHAR)); + info->filename = heap_alloc(ofn->nMaxFile * sizeof(WCHAR)); lstrcpynW(info->filename, ofn->lpstrFile, ofn->nMaxFile); } @@ -388,7 +385,7 @@ static void init_filedlg_infoW(OPENFILENAMEW *ofn, FileOpenDlgInfos *info) DWORD len = ExpandEnvironmentStringsW(ofn->lpstrInitialDir, NULL, 0); if (len) { - info->initdir = MemAlloc(len * sizeof(WCHAR)); + info->initdir = heap_alloc(len * sizeof(WCHAR)); ExpandEnvironmentStringsW(ofn->lpstrInitialDir, info->initdir, len); } } @@ -410,7 +407,7 @@ static void init_filedlg_infoA(OPENFILENAMEA *ofn, FileOpenDlgInfos *info) if (ofn->lpstrFile) { len = MultiByteToWideChar(CP_ACP, 0, ofn->lpstrFile, ofn->nMaxFile, NULL, 0); - ofnW.lpstrFile = MemAlloc(len * sizeof(WCHAR)); + ofnW.lpstrFile = heap_alloc(len * sizeof(WCHAR)); MultiByteToWideChar(CP_ACP, 0, ofn->lpstrFile, ofn->nMaxFile, ofnW.lpstrFile, len); ofnW.nMaxFile = len; } @@ -426,7 +423,7 @@ static void init_filedlg_infoA(OPENFILENAMEA *ofn, FileOpenDlgInfos *info) s++; n = s - ofn->lpstrFilter; len = MultiByteToWideChar(CP_ACP, 0, ofn->lpstrFilter, n, NULL, 0); - ofnW.lpstrFilter = MemAlloc(len * sizeof(WCHAR)); + ofnW.lpstrFilter = heap_alloc(len * sizeof(WCHAR)); MultiByteToWideChar(CP_ACP, 0, ofn->lpstrFilter, n, (WCHAR *)ofnW.lpstrFilter, len); } @@ -442,7 +439,7 @@ static void init_filedlg_infoA(OPENFILENAMEA *ofn, FileOpenDlgInfos *info) if (*s) s = s+strlen(s)+1; n = s - ofn->lpstrCustomFilter; len = MultiByteToWideChar(CP_ACP, 0, ofn->lpstrCustomFilter, n, NULL, 0); - ofnW.lpstrCustomFilter = MemAlloc(len * sizeof(WCHAR)); + ofnW.lpstrCustomFilter = heap_alloc(len * sizeof(WCHAR)); MultiByteToWideChar(CP_ACP, 0, ofn->lpstrCustomFilter, n, ofnW.lpstrCustomFilter, len); } @@ -453,8 +450,8 @@ static void init_filedlg_infoA(OPENFILENAMEA *ofn, FileOpenDlgInfos *info) info->unicode = FALSE; /* free what was duplicated */ - MemFree((WCHAR *)ofnW.lpstrInitialDir); - MemFree((WCHAR *)ofnW.lpstrFile); + heap_free((void *)ofnW.lpstrInitialDir); + heap_free(ofnW.lpstrFile); } /*********************************************************************** @@ -470,7 +467,7 @@ static BOOL GetFileDialog95(FileOpenDlgInfos *info, UINT dlg_type) /* save current directory */ if (info->ofnInfos->Flags & OFN_NOCHANGEDIR) { - current_dir = MemAlloc(MAX_PATH * sizeof(WCHAR)); + current_dir = heap_alloc(MAX_PATH * sizeof(WCHAR)); GetCurrentDirectoryW(MAX_PATH, current_dir); } @@ -490,19 +487,19 @@ static BOOL GetFileDialog95(FileOpenDlgInfos *info, UINT dlg_type) if (current_dir) { SetCurrentDirectoryW(current_dir); - MemFree(current_dir); + heap_free(current_dir); } if (!info->unicode) { - MemFree((WCHAR *)info->defext); - MemFree((WCHAR *)info->title); - MemFree((WCHAR *)info->filter); - MemFree((WCHAR *)info->customfilter); + heap_free((void *)info->defext); + heap_free((void *)info->title); + heap_free((void *)info->filter); + heap_free((void *)info->customfilter); } - MemFree(info->filename); - MemFree(info->initdir); + heap_free(info->filename); + heap_free(info->initdir); return ret; } @@ -580,7 +577,7 @@ int COMDLG32_SplitFileNames(LPWSTR lpstrEdit, UINT nStrLen, LPWSTR *lpstrFileLis /* we might get single filename without any '"', * so we need nStrLen + terminating \0 + end-of-list \0 */ - *lpstrFileList = MemAlloc( (nStrLen+2)*sizeof(WCHAR) ); + *lpstrFileList = heap_alloc((nStrLen + 2) * sizeof(WCHAR)); *sizeUsed = 0; /* build delimited file list from filenames */ @@ -908,7 +905,7 @@ static INT_PTR FILEDLG95_Handle_GetFilePath(HWND hwnd, DWORD size, LPVOID result /* get path and filenames */ len = SendMessageW( fodInfos->DlgInfos.hwndFileName, WM_GETTEXTLENGTH, 0, 0 ); - buffer = HeapAlloc( GetProcessHeap(), 0, (len + 2 + MAX_PATH) * sizeof(WCHAR) ); + buffer = heap_alloc( (len + 2 + MAX_PATH) * sizeof(WCHAR) ); COMDLG32_GetDisplayNameOf( fodInfos->ShellInfos.pidlAbsCurrent, buffer ); if (len) { @@ -928,7 +925,7 @@ static INT_PTR FILEDLG95_Handle_GetFilePath(HWND hwnd, DWORD size, LPVOID result if (total <= size) WideCharToMultiByte( CP_ACP, 0, buffer, -1, result, size, NULL, NULL ); TRACE( "CDM_GETFILEPATH: returning %u %s\n", total, debugstr_a(result)); } - HeapFree( GetProcessHeap(), 0, buffer ); + heap_free( buffer ); return total; } @@ -1589,8 +1586,8 @@ static LRESULT FILEDLG95_InitControls(HWND hwnd) else *fodInfos->filename = '\0'; - MemFree(fodInfos->initdir); - fodInfos->initdir = MemAlloc((lstrlenW(tmpBuf) + 1)*sizeof(WCHAR)); + heap_free(fodInfos->initdir); + fodInfos->initdir = heap_alloc((lstrlenW(tmpBuf) + 1)*sizeof(WCHAR)); lstrcpyW(fodInfos->initdir, tmpBuf); handledPath = TRUE; TRACE("Value in Filename includes path, overriding InitialDir: %s, %s\n", @@ -1624,8 +1621,8 @@ static LRESULT FILEDLG95_InitControls(HWND hwnd) result = GetFullPathNameW(tmpBuf, MAX_PATH, tmpBuf2, &nameBit); if (result) { *nameBit = 0x00; - MemFree(fodInfos->initdir); - fodInfos->initdir = MemAlloc((lstrlenW(tmpBuf2) + 1) * sizeof(WCHAR)); + heap_free(fodInfos->initdir); + fodInfos->initdir = heap_alloc((lstrlenW(tmpBuf2) + 1) * sizeof(WCHAR)); lstrcpyW(fodInfos->initdir, tmpBuf2); handledPath = TRUE; TRACE("Value in InitDir changed to %s\n", debugstr_w(fodInfos->initdir)); @@ -1633,7 +1630,7 @@ static LRESULT FILEDLG95_InitControls(HWND hwnd) } else if (fodInfos->initdir) { - MemFree(fodInfos->initdir); + heap_free(fodInfos->initdir); fodInfos->initdir = NULL; TRACE("Value in InitDir is not an existing path, changed to (nil)\n"); } @@ -1659,8 +1656,8 @@ static LRESULT FILEDLG95_InitControls(HWND hwnd) *nameBit = 0x00; len = lstrlenW(tmpBuf); - MemFree(fodInfos->initdir); - fodInfos->initdir = MemAlloc((len+1)*sizeof(WCHAR)); + heap_free(fodInfos->initdir); + fodInfos->initdir = heap_alloc((len+1)*sizeof(WCHAR)); lstrcpyW(fodInfos->initdir, tmpBuf); handledPath = TRUE; @@ -1672,7 +1669,7 @@ static LRESULT FILEDLG95_InitControls(HWND hwnd) /* 4. Win2000+: Recently used */ if (!handledPath && win2000plus) { - fodInfos->initdir = MemAlloc(MAX_PATH * sizeof(WCHAR)); + fodInfos->initdir = heap_alloc(MAX_PATH * sizeof(WCHAR)); fodInfos->initdir[0] = '\0'; FILEDLG95_MRU_load_filename(fodInfos->initdir); @@ -1680,7 +1677,7 @@ static LRESULT FILEDLG95_InitControls(HWND hwnd) if (fodInfos->initdir[0] && PathFileExistsW(fodInfos->initdir)){ handledPath = TRUE; }else{ - MemFree(fodInfos->initdir); + heap_free(fodInfos->initdir); fodInfos->initdir = NULL; } } @@ -1712,8 +1709,8 @@ static LRESULT FILEDLG95_InitControls(HWND hwnd) } else { - MemFree(fodInfos->initdir); - fodInfos->initdir = MemAlloc(MAX_PATH*sizeof(WCHAR)); + heap_free(fodInfos->initdir); + fodInfos->initdir = heap_alloc(MAX_PATH * sizeof(WCHAR)); GetCurrentDirectoryW(MAX_PATH, fodInfos->initdir); handledPath = TRUE; @@ -1727,7 +1724,7 @@ static LRESULT FILEDLG95_InitControls(HWND hwnd) /* 6. Win98+ and 2000+: Use personal files dir, others use current dir */ if (!handledPath && (win2000plus || win98plus)) { - fodInfos->initdir = MemAlloc(MAX_PATH*sizeof(WCHAR)); + fodInfos->initdir = heap_alloc(MAX_PATH * sizeof(WCHAR)); if(!COMDLG32_SHGetFolderPathW(hwnd, CSIDL_PERSONAL, 0, 0, fodInfos->initdir)) { @@ -1744,7 +1741,7 @@ static LRESULT FILEDLG95_InitControls(HWND hwnd) } handledPath = TRUE; } else if (!handledPath) { - fodInfos->initdir = MemAlloc(MAX_PATH*sizeof(WCHAR)); + fodInfos->initdir = heap_alloc(MAX_PATH * sizeof(WCHAR)); GetCurrentDirectoryW(MAX_PATH, fodInfos->initdir); handledPath = TRUE; TRACE("No initial dir specified, using current dir of %s\n", debugstr_w(fodInfos->initdir)); @@ -2264,7 +2261,7 @@ static void FILEDLG95_MRU_save_filename(LPCWSTR filename) final_len = path_len + lstrlenW(module_name) + 2; - final = MemAlloc(final_len * sizeof(WCHAR)); + final = heap_alloc(final_len * sizeof(WCHAR)); if(!final) return; lstrcpyW(final, module_name); @@ -2275,12 +2272,12 @@ static void FILEDLG95_MRU_save_filename(LPCWSTR filename) final_len * sizeof(WCHAR)); if(ret){ WARN("Error saving MRU data to slot %s: %d\n", wine_dbgstr_w(slot_name), ret); - MemFree(final); + heap_free(final); RegCloseKey(hkey); return; } - MemFree(final); + heap_free(final); } { /* update MRUList value */ @@ -2517,7 +2514,7 @@ BOOL FILEDLG95_OnOpen(HWND hwnd) */ COMDLG32_GetCanonicalPath(fodInfos->ShellInfos.pidlAbsCurrent, lpstrFileList, lpstrPathAndFile); - MemFree(lpstrFileList); + heap_free(lpstrFileList); /* Step 2: here we have a cleaned up path @@ -2564,9 +2561,9 @@ BOOL FILEDLG95_OnOpen(HWND hwnd) DWORD len; /* replace the current filter */ - MemFree(fodInfos->ShellInfos.lpstrCurrentFilter); + heap_free(fodInfos->ShellInfos.lpstrCurrentFilter); len = lstrlenW(lpszTemp)+1; - fodInfos->ShellInfos.lpstrCurrentFilter = MemAlloc(len * sizeof(WCHAR)); + fodInfos->ShellInfos.lpstrCurrentFilter = heap_alloc(len * sizeof(WCHAR)); lstrcpyW( fodInfos->ShellInfos.lpstrCurrentFilter, lpszTemp); /* set the filter cb to the extension when possible */ @@ -2641,7 +2638,7 @@ BOOL FILEDLG95_OnOpen(HWND hwnd) if (lpstrFilter != (LPWSTR)CB_ERR) /* control is not empty */ { WCHAR* filterSearchIndex; - filterExt = HeapAlloc(GetProcessHeap(), 0, (lstrlenW(lpstrFilter) + 1) * sizeof(WCHAR)); + filterExt = heap_alloc((lstrlenW(lpstrFilter) + 1) * sizeof(WCHAR)); strcpyW(filterExt, lpstrFilter); /* if a semicolon-separated list of file extensions was given, do not include the @@ -2663,7 +2660,7 @@ BOOL FILEDLG95_OnOpen(HWND hwnd) } else { - HeapFree(GetProcessHeap(), 0, filterExt); + heap_free(filterExt); filterExt = NULL; } } @@ -2671,7 +2668,7 @@ BOOL FILEDLG95_OnOpen(HWND hwnd) if (!filterExt) { /* use the default file extension */ - filterExt = HeapAlloc(GetProcessHeap(), 0, (lstrlenW(fodInfos->defext) + 1) * sizeof(WCHAR)); + filterExt = heap_alloc((lstrlenW(fodInfos->defext) + 1) * sizeof(WCHAR)); strcpyW(filterExt, fodInfos->defext); } @@ -2683,7 +2680,7 @@ BOOL FILEDLG95_OnOpen(HWND hwnd) lstrcatW(lpstrPathAndFile, filterExt); } - HeapFree(GetProcessHeap(), 0, filterExt); + heap_free(filterExt); /* In Open dialog: if file does not exist try without extension */ if (!(fodInfos->DlgInfos.dwDlgProp & FODPROP_SAVEDLG) && !PathFileExistsW(lpstrPathAndFile)) @@ -2996,7 +2993,7 @@ static HRESULT FILEDLG95_FILETYPE_Init(HWND hwnd) /* Copy the extensions */ if (! *lpstrPos) return E_FAIL; /* malformed filter */ - if (!(lpstrExt = MemAlloc((lstrlenW(lpstrPos)+1)*sizeof(WCHAR)))) return E_FAIL; + if (!(lpstrExt = heap_alloc((lstrlenW(lpstrPos)+1)*sizeof(WCHAR)))) return E_FAIL; lstrcpyW(lpstrExt,lpstrPos); /* Add the item at the end of the combo */ @@ -3027,7 +3024,7 @@ static HRESULT FILEDLG95_FILETYPE_Init(HWND hwnd) nFilters++; /* Copy the extensions */ - if (!(lpstrExt = MemAlloc((lstrlenW(lpstrPos)+1)*sizeof(WCHAR)))) return E_FAIL; + if (!(lpstrExt = heap_alloc((lstrlenW(lpstrPos)+1)*sizeof(WCHAR)))) return E_FAIL; lstrcpyW(lpstrExt,lpstrPos); lpstrPos += lstrlenW(lpstrPos) + 1; @@ -3076,7 +3073,7 @@ static HRESULT FILEDLG95_FILETYPE_Init(HWND hwnd) DWORD len; CharLowerW(lpstrFilter); /* lowercase */ len = lstrlenW(lpstrFilter)+1; - fodInfos->ShellInfos.lpstrCurrentFilter = MemAlloc( len * sizeof(WCHAR) ); + fodInfos->ShellInfos.lpstrCurrentFilter = heap_alloc( len * sizeof(WCHAR) ); lstrcpyW(fodInfos->ShellInfos.lpstrCurrentFilter,lpstrFilter); } } else @@ -3108,7 +3105,7 @@ static BOOL FILEDLG95_FILETYPE_OnCommand(HWND hwnd, WORD wNotifyCode) (fodInfos->customfilter == NULL ? 1 : 0); /* Set the current filter with the current selection */ - MemFree(fodInfos->ShellInfos.lpstrCurrentFilter); + heap_free(fodInfos->ShellInfos.lpstrCurrentFilter); lpstrFilter = (LPWSTR) CBGetItemDataPtr(fodInfos->DlgInfos.hwndFileTypeCB, iItem); @@ -3117,7 +3114,7 @@ static BOOL FILEDLG95_FILETYPE_OnCommand(HWND hwnd, WORD wNotifyCode) DWORD len; CharLowerW(lpstrFilter); /* lowercase */ len = lstrlenW(lpstrFilter)+1; - fodInfos->ShellInfos.lpstrCurrentFilter = MemAlloc( len * sizeof(WCHAR) ); + fodInfos->ShellInfos.lpstrCurrentFilter = heap_alloc( len * sizeof(WCHAR) ); lstrcpyW(fodInfos->ShellInfos.lpstrCurrentFilter,lpstrFilter); if(fodInfos->ofnInfos->Flags & OFN_EXPLORER) SendCustomDlgNotificationMessage(hwnd,CDN_TYPECHANGE); @@ -3170,13 +3167,12 @@ static void FILEDLG95_FILETYPE_Clean(HWND hwnd) { for(iPos = iCount-1;iPos>=0;iPos--) { - MemFree((LPSTR) CBGetItemDataPtr(fodInfos->DlgInfos.hwndFileTypeCB,iPos)); + heap_free((void *)CBGetItemDataPtr(fodInfos->DlgInfos.hwndFileTypeCB,iPos)); CBDeleteString(fodInfos->DlgInfos.hwndFileTypeCB,iPos); } } /* Current filter */ - MemFree(fodInfos->ShellInfos.lpstrCurrentFilter); - + heap_free(fodInfos->ShellInfos.lpstrCurrentFilter); } /*********************************************************************** @@ -3212,7 +3208,7 @@ static void FILEDLG95_LOOKIN_Init(HWND hwndCombo) LPITEMIDLIST pidlDrives, pidlTmp, pidlTmp1, pidlAbsTmp; HDC hdc; TEXTMETRICW tm; - LookInInfos *liInfos = MemAlloc(sizeof(LookInInfos)); + LookInInfos *liInfos = heap_alloc_zero(sizeof(*liInfos)); TRACE("%p\n", hwndCombo); @@ -3441,7 +3437,7 @@ static int FILEDLG95_LOOKIN_AddItem(HWND hwnd,LPITEMIDLIST pidl, int iInsertId) if(!(liInfos = GetPropA(hwnd,LookInInfosStr))) return -1; - tmpFolder = MemAlloc(sizeof(SFOLDER)); + tmpFolder = heap_alloc_zero(sizeof(*tmpFolder)); tmpFolder->m_iIndent = 0; /* Calculate the indentation of the item in the lookin*/ @@ -3487,7 +3483,7 @@ static int FILEDLG95_LOOKIN_AddItem(HWND hwnd,LPITEMIDLIST pidl, int iInsertId) } COMDLG32_SHFree( tmpFolder->pidlItem ); - MemFree( tmpFolder ); + heap_free( tmpFolder ); return -1; } @@ -3584,7 +3580,7 @@ static int FILEDLG95_LOOKIN_RemoveMostExpandedItem(HWND hwnd) { SFOLDER *tmpFolder = (LPSFOLDER) CBGetItemDataPtr(hwnd,iItemPos); COMDLG32_SHFree(tmpFolder->pidlItem); - MemFree(tmpFolder); + heap_free(tmpFolder); CBDeleteString(hwnd,iItemPos); liInfos->iMaxIndentation--; @@ -3644,13 +3640,13 @@ static void FILEDLG95_LOOKIN_Clean(HWND hwnd) { SFOLDER *tmpFolder = (LPSFOLDER) CBGetItemDataPtr(fodInfos->DlgInfos.hwndLookInCB,iPos); COMDLG32_SHFree(tmpFolder->pidlItem); - MemFree(tmpFolder); + heap_free(tmpFolder); CBDeleteString(fodInfos->DlgInfos.hwndLookInCB,iPos); } } /* LookInInfos structure */ - MemFree(liInfos); + heap_free(liInfos); RemovePropA(fodInfos->DlgInfos.hwndLookInCB,LookInInfosStr); } @@ -3698,7 +3694,7 @@ void FILEDLG95_FILENAME_FillFromSelection (HWND hwnd) /* Allocate a buffer */ nAllFilesMaxLength = MAX_PATH + 3; - lpstrAllFiles = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, nAllFilesMaxLength * sizeof(WCHAR)); + lpstrAllFiles = heap_alloc_zero(nAllFilesMaxLength * sizeof(WCHAR)); if (!lpstrAllFiles) goto ret; @@ -3745,7 +3741,7 @@ void FILEDLG95_FILENAME_FillFromSelection (HWND hwnd) } ret: - HeapFree(GetProcessHeap(), 0, lpstrAllFiles); + heap_free(lpstrAllFiles); COMCTL32_ReleaseStgMedium(medium); } @@ -3797,13 +3793,13 @@ static int FILEDLG95_FILENAME_GetFileNames (HWND hwnd, LPWSTR * lpstrFileList, U /* get the filenames from the filename control */ nStrLen = GetWindowTextLengthW( fodInfos->DlgInfos.hwndFileName ); - lpstrEdit = MemAlloc( (nStrLen+1)*sizeof(WCHAR) ); + lpstrEdit = heap_alloc( (nStrLen+1)*sizeof(WCHAR) ); GetWindowTextW( fodInfos->DlgInfos.hwndFileName, lpstrEdit, nStrLen+1); TRACE("nStrLen=%u str=%s\n", nStrLen, debugstr_w(lpstrEdit)); nFileCount = COMDLG32_SplitFileNames(lpstrEdit, nStrLen, lpstrFileList, sizeUsed); - MemFree(lpstrEdit); + heap_free(lpstrEdit); return nFileCount; } @@ -4052,18 +4048,6 @@ static BOOL BrowseSelectedFolder(HWND hwnd) return bBrowseSelFolder; } -/* - * Memory allocation methods */ -static void *MemAlloc(UINT size) -{ - return HeapAlloc(GetProcessHeap(),HEAP_ZERO_MEMORY,size); -} - -static void MemFree(void *mem) -{ - HeapFree(GetProcessHeap(),0,mem); -} - static inline BOOL valid_struct_size( DWORD size ) { return (size == OPENFILENAME_SIZE_VERSION_400W) || @@ -4220,11 +4204,11 @@ short WINAPI GetFileTitleA(LPCSTR lpFile, LPSTR lpTitle, WORD cbBuf) LPWSTR lpWTitle; RtlCreateUnicodeStringFromAsciiz(&strWFile, lpFile); - lpWTitle = RtlAllocateHeap( GetProcessHeap(), 0, cbBuf*sizeof(WCHAR)); + lpWTitle = heap_alloc(cbBuf * sizeof(WCHAR)); ret = GetFileTitleW(strWFile.Buffer, lpWTitle, cbBuf); if (!ret) WideCharToMultiByte( CP_ACP, 0, lpWTitle, -1, lpTitle, cbBuf, NULL, NULL ); RtlFreeUnicodeString( &strWFile ); - RtlFreeHeap( GetProcessHeap(), 0, lpWTitle ); + heap_free( lpWTitle ); return ret; } diff --git a/dlls/comdlg32/filedlg31.c b/dlls/comdlg32/filedlg31.c index 04099157374..de04e85998f 100644 --- a/dlls/comdlg32/filedlg31.c +++ b/dlls/comdlg32/filedlg31.c @@ -30,6 +30,7 @@ #include "winuser.h" #include "wine/unicode.h" #include "wine/debug.h" +#include "wine/heap.h" #include "winreg.h" #include "winternl.h" #include "commdlg.h" @@ -231,7 +232,7 @@ static LONG FD31_WMDrawItem(HWND hWnd, WPARAM wParam, LPARAM lParam, if (lpdis->CtlType == ODT_LISTBOX && lpdis->CtlID == lst1) { - if (!(str = HeapAlloc(GetProcessHeap(), 0, BUFFILEALLOC))) return FALSE; + if (!(str = heap_alloc(BUFFILEALLOC))) return FALSE; SendMessageW(lpdis->hwndItem, LB_GETTEXT, lpdis->itemID, (LPARAM)str); @@ -255,13 +256,13 @@ static LONG FD31_WMDrawItem(HWND hWnd, WPARAM wParam, LPARAM lParam, SetBkColor( lpdis->hDC, oldBk ); SetTextColor( lpdis->hDC, oldText ); } - HeapFree(GetProcessHeap(), 0, str); + heap_free(str); return TRUE; } if (lpdis->CtlType == ODT_LISTBOX && lpdis->CtlID == lst2) { - if (!(str = HeapAlloc(GetProcessHeap(), 0, BUFFILEALLOC))) + if (!(str = heap_alloc(BUFFILEALLOC))) return FALSE; SendMessageW(lpdis->hwndItem, LB_GETTEXT, lpdis->itemID, (LPARAM)str); @@ -284,13 +285,13 @@ static LONG FD31_WMDrawItem(HWND hWnd, WPARAM wParam, LPARAM lParam, SetTextColor( lpdis->hDC, oldText ); } DrawIconEx( lpdis->hDC, lpdis->rcItem.left, lpdis->rcItem.top, hFolder, 16, 16, 0, 0, DI_NORMAL ); - HeapFree(GetProcessHeap(), 0, str); + heap_free(str); return TRUE; } if (lpdis->CtlType == ODT_COMBOBOX && lpdis->CtlID == cmb2) { char root[] = "a:"; - if (!(str = HeapAlloc(GetProcessHeap(), 0, BUFFILEALLOC))) + if (!(str = heap_alloc(BUFFILEALLOC))) return FALSE; SendMessageW(lpdis->hwndItem, CB_GETLBTEXT, lpdis->itemID, (LPARAM)str); @@ -318,7 +319,7 @@ static LONG FD31_WMDrawItem(HWND hWnd, WPARAM wParam, LPARAM lParam, SetTextColor( lpdis->hDC, oldText ); } DrawIconEx( lpdis->hDC, lpdis->rcItem.left, lpdis->rcItem.top, hIcon, 16, 16, 0, 0, DI_NORMAL ); - HeapFree(GetProcessHeap(), 0, str); + heap_free(str); return TRUE; } return FALSE; @@ -418,11 +419,11 @@ static LRESULT FD31_DirListDblClick( const FD31_DATA *lfs ) /* get the raw string (with brackets) */ lRet = SendDlgItemMessageW(hWnd, lst2, LB_GETCURSEL, 0, 0); if (lRet == LB_ERR) return TRUE; - pstr = HeapAlloc(GetProcessHeap(), 0, BUFFILEALLOC); + pstr = heap_alloc(BUFFILEALLOC); SendDlgItemMessageW(hWnd, lst2, LB_GETTEXT, lRet, (LPARAM)pstr); strcpyW( tmpstr, pstr ); - HeapFree(GetProcessHeap(), 0, pstr); + heap_free(pstr); /* get the selected directory in tmpstr */ if (tmpstr[0] == '[') { @@ -457,12 +458,12 @@ static LRESULT FD31_FileListSelect( const FD31_DATA *lfs ) return TRUE; /* set the edit control to the chosen file */ - if ((pstr = HeapAlloc(GetProcessHeap(), 0, BUFFILEALLOC))) + if ((pstr = heap_alloc(BUFFILEALLOC))) { SendDlgItemMessageW(hWnd, lst1, LB_GETTEXT, lRet, (LPARAM)pstr); SetDlgItemTextW( hWnd, edt1, pstr ); - HeapFree(GetProcessHeap(), 0, pstr); + heap_free(pstr); } if (lfs->hook) { @@ -624,11 +625,11 @@ static LRESULT FD31_DiskChange( const FD31_DATA *lfs ) lRet = SendDlgItemMessageW(hWnd, cmb2, CB_GETCURSEL, 0, 0L); if (lRet == LB_ERR) return 0; - pstr = HeapAlloc(GetProcessHeap(), 0, BUFFILEALLOC); + pstr = heap_alloc(BUFFILEALLOC); SendDlgItemMessageW(hWnd, cmb2, CB_GETLBTEXT, lRet, (LPARAM)pstr); wsprintfW(diskname, FILE_specc, pstr[2]); - HeapFree(GetProcessHeap(), 0, pstr); + heap_free(pstr); return FD31_Validate( lfs, diskname, cmb2, lRet, TRUE ); } @@ -729,7 +730,7 @@ static LPWSTR FD31_MapStringPairsToW(LPCSTR strA, UINT size) if (n < size) n = size; len = MultiByteToWideChar( CP_ACP, 0, strA, n, NULL, 0 ); - x = HeapAlloc(GetProcessHeap(),0, len * sizeof(WCHAR)); + x = heap_alloc(len * sizeof(WCHAR)); MultiByteToWideChar( CP_ACP, 0, strA, n, x, len ); return x; } @@ -744,7 +745,7 @@ static LPWSTR FD31_DupToW(LPCSTR str, DWORD size) LPWSTR strW = NULL; if (str && (size > 0)) { - strW = HeapAlloc(GetProcessHeap(), 0, size * sizeof(WCHAR)); + strW = heap_alloc(size * sizeof(WCHAR)); if (strW) MultiByteToWideChar( CP_ACP, 0, str, -1, strW, size ); } return strW; @@ -786,7 +787,7 @@ static void FD31_MapOfnStructA(const OPENFILENAMEA *ofnA, LPOPENFILENAMEW ofnW, LoadStringW(COMDLG32_hInstance, open ? IDS_OPEN_FILE : IDS_SAVE_AS, buf, sizeof(buf)/sizeof(WCHAR)); len = lstrlenW(buf)+1; - title_tmp = HeapAlloc(GetProcessHeap(), 0, len*sizeof(WCHAR)); + title_tmp = heap_alloc(len * sizeof(WCHAR)); memcpy(title_tmp, buf, len * sizeof(WCHAR)); ofnW->lpstrTitle = title_tmp; } @@ -819,14 +820,14 @@ static void FD31_MapOfnStructA(const OPENFILENAMEA *ofnA, LPOPENFILENAMEW ofnW, */ static void FD31_FreeOfnW(OPENFILENAMEW *ofnW) { - HeapFree(GetProcessHeap(), 0, (LPWSTR) ofnW->lpstrFilter); - HeapFree(GetProcessHeap(), 0, ofnW->lpstrCustomFilter); - HeapFree(GetProcessHeap(), 0, ofnW->lpstrFile); - HeapFree(GetProcessHeap(), 0, ofnW->lpstrFileTitle); - HeapFree(GetProcessHeap(), 0, (LPWSTR) ofnW->lpstrInitialDir); - HeapFree(GetProcessHeap(), 0, (LPWSTR) ofnW->lpstrTitle); - if (!IS_INTRESOURCE(ofnW->lpTemplateName)) - HeapFree(GetProcessHeap(), 0, (LPWSTR) ofnW->lpTemplateName); + heap_free((void *)ofnW->lpstrFilter); + heap_free(ofnW->lpstrCustomFilter); + heap_free(ofnW->lpstrFile); + heap_free(ofnW->lpstrFileTitle); + heap_free((void *)ofnW->lpstrInitialDir); + heap_free((void *)ofnW->lpstrTitle); + if (!IS_INTRESOURCE(ofnW->lpTemplateName)) + heap_free((void *)ofnW->lpTemplateName); } /************************************************************************ @@ -844,9 +845,9 @@ static void FD31_DestroyPrivate(PFD31_DATA lfs) if (lfs->ofnA) { FD31_FreeOfnW(lfs->ofnW); - HeapFree(GetProcessHeap(), 0, lfs->ofnW); + heap_free(lfs->ofnW); } - HeapFree(GetProcessHeap(), 0, lfs); + heap_free(lfs); RemovePropA(hwnd, FD31_OFN_PROP); } @@ -918,7 +919,7 @@ static BOOL FD31_GetTemplate(PFD31_DATA lfs) */ static PFD31_DATA FD31_AllocPrivate(LPARAM lParam, UINT dlgType, BOOL IsUnicode) { - PFD31_DATA lfs = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(FD31_DATA)); + FD31_DATA *lfs = heap_alloc_zero(sizeof(*lfs)); TRACE("alloc private buf %p\n", lfs); if (!lfs) return NULL; @@ -940,7 +941,7 @@ static PFD31_DATA FD31_AllocPrivate(LPARAM lParam, UINT dlgType, BOOL IsUnicode) if (lfs->ofnA->Flags & OFN_ENABLEHOOK) if (lfs->ofnA->lpfnHook) lfs->hook = TRUE; - lfs->ofnW = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, lfs->ofnA->lStructSize); + lfs->ofnW = heap_alloc_zero(lfs->ofnA->lStructSize); lfs->ofnW->lStructSize = lfs->ofnA->lStructSize; FD31_MapOfnStructA(lfs->ofnA, lfs->ofnW, lfs->open); } diff --git a/dlls/comdlg32/finddlg.c b/dlls/comdlg32/finddlg.c index bc4a31c6050..d769325e9f0 100644 --- a/dlls/comdlg32/finddlg.c +++ b/dlls/comdlg32/finddlg.c @@ -30,6 +30,7 @@ #include "cderr.h" #include "dlgs.h" #include "wine/debug.h" +#include "wine/heap.h" WINE_DEFAULT_DEBUG_CHANNEL(commdlg); @@ -284,7 +285,7 @@ static INT_PTR CALLBACK COMDLG32_FindReplaceDlgProc(HWND hDlgWnd, UINT iMsg, WPA if(iMsg == WM_DESTROY) { RemovePropA(hDlgWnd, (LPSTR)COMDLG32_Atom); - HeapFree(GetProcessHeap(), 0, pdata); + heap_free(pdata); } return retval; @@ -427,7 +428,7 @@ static HWND COMDLG32_FR_DoFindReplace( error = CDERR_DIALOGFAILURE; cleanup: COMDLG32_SetCommDlgExtendedError(error); - HeapFree(GetProcessHeap(), 0, pdata); + heap_free(pdata); } return hdlgwnd; } diff --git a/dlls/comdlg32/fontdlg.c b/dlls/comdlg32/fontdlg.c index 768ca4a6eae..0c9b4b1c9d9 100644 --- a/dlls/comdlg32/fontdlg.c +++ b/dlls/comdlg32/fontdlg.c @@ -32,6 +32,7 @@ #include "commdlg.h" #include "dlgs.h" #include "wine/debug.h" +#include "wine/heap.h" #include "wine/unicode.h" #include "cderr.h" #include "cdlg.h" @@ -1151,11 +1152,11 @@ static LRESULT CFn_WMDestroy(HWND hwnd, LPCHOOSEFONTW lpcfw) if((lpcfw->Flags & CF_USESTYLE) && lpcfw->lpszStyle) { len = WideCharToMultiByte(CP_ACP, 0, lpcfw->lpszStyle, -1, NULL, 0, 0, 0); WideCharToMultiByte(CP_ACP, 0, lpcfw->lpszStyle, -1, lpcfa->lpszStyle, len, 0, 0); - HeapFree(GetProcessHeap(), 0, lpcfw->lpszStyle); + heap_free(lpcfw->lpszStyle); } - HeapFree(GetProcessHeap(), 0, lpcfw->lpLogFont); - HeapFree(GetProcessHeap(), 0, lpcfw); + heap_free(lpcfw->lpLogFont); + heap_free(lpcfw); SetPropW(hwnd, strWineFontData, 0); return TRUE; @@ -1217,16 +1218,16 @@ static INT_PTR CALLBACK FormatCharDlgProcA(HWND hDlg, UINT uMsg, WPARAM wParam, lpcfa=(LPCHOOSEFONTA)lParam; SetPropW(hDlg, strWineFontData_a, (HANDLE)lParam); - lpcfw = HeapAlloc(GetProcessHeap(), 0, sizeof(CHOOSEFONTW)); + lpcfw = heap_alloc(sizeof(*lpcfw)); memcpy(lpcfw, lpcfa, sizeof(CHOOSEFONTA)); - lpcfw->lpLogFont = HeapAlloc(GetProcessHeap(), 0, sizeof(LOGFONTW)); + lpcfw->lpLogFont = heap_alloc(sizeof(*lpcfw->lpLogFont)); memcpy(lpcfw->lpLogFont, lpcfa->lpLogFont, sizeof(LOGFONTA)); MultiByteToWideChar(CP_ACP, 0, lpcfa->lpLogFont->lfFaceName, LF_FACESIZE, lpcfw->lpLogFont->lfFaceName, LF_FACESIZE); if((lpcfa->Flags & CF_USESTYLE) && lpcfa->lpszStyle) { len = MultiByteToWideChar(CP_ACP, 0, lpcfa->lpszStyle, -1, NULL, 0); - lpcfw->lpszStyle = HeapAlloc(GetProcessHeap(), 0, len*sizeof(WCHAR)); + lpcfw->lpszStyle = heap_alloc(len * sizeof(WCHAR)); MultiByteToWideChar(CP_ACP, 0, lpcfa->lpszStyle, -1, lpcfw->lpszStyle, len); }