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