/***************************************************************************** * * ftpwith.cpp - "With" procedures * *****************************************************************************/ #include "priv.h" /***************************************************************************** * * With_Hglob * * Allocate a moveable HGLOBAL of the requested size, lock it, then call * the callback. On return, unlock it and get out. * * Returns the allocated HGLOBAL, or 0. * *****************************************************************************/ HGLOBAL With_Hglob(UINT cb, HGLOBWITHPROC pfn, LPVOID pvRef) { HGLOBAL hglob = GlobalAlloc(GHND, cb); if (hglob) { LPVOID pv = GlobalLock(hglob); if (pv) { BOOL fRc = pfn(pv, pvRef); GlobalUnlock(hglob); if (!fRc) { GlobalFree(hglob); hglob = 0; } } else { GlobalFree(hglob); hglob = 0; } } return hglob; }