if (p) { int l = ILGetSize(p); _p = (ITEMIDLIST*) _malloc->Alloc(l); if (_p) memcpy(_p, p, l); }
ULONG l; WCHAR b[MAX_PATH];  if (path) { MultiByteToWideChar(CP_ACP, 0, path, -1, b, MAX_PATH); CHECKERROR(folder->ParseDisplayName(0, 0, b, &l, &_p, 0)); } else _p = NULL;
	ShellPath(LPCITEMIDLIST p)	{		//CONTEXT("ShellPath::ShellPath(LPCITEMIDLIST)");		if (p) {			int l = ILGetSize(p);			_p = (ITEMIDLIST*) _malloc->Alloc(l);			if (_p) memcpy(_p, p, l);		}	}