Machine
0
Hi Jungs,
eventuell kann mir jemand helfen.. ich werde noch bekloppt heute
System: Win XP SP2
Sprache VC++
mein Problem: es wird nix kopiert. GetLastError() gibt mir ERROR_INVALID_HANDLE zurück.
from und to sind jeweils die Dateipfade. Der to Pfad existiert noch nicht, soll silently angelegt werden.
Warum bekomm ich da nur ERROR_INVALID_HANDLE zurück? Wenn ich die Flags wegnehme, dann funzts, aber man muss halt alles bestätigen, was ich nicht möchte.
Jemand ne Ahnung? Hoffe die Infos reichen, wenn nicht einfach fragen
eventuell kann mir jemand helfen.. ich werde noch bekloppt heute
System: Win XP SP2
Sprache VC++
Code:
bool CInstallThread::CopySH(LPCTSTR pFromFolder, LPCTSTR pToFolder)
{
//--- copy - routine ---
CString from = pFromFolder;
CString to = pToFolder;
from += '\0';
to += '\0';
SHFILEOPSTRUCT fo;
fo.fAnyOperationsAborted = NULL;
fo.hwnd = NULL;
fo.hNameMappings = NULL;
fo.lpszProgressTitle = NULL;
fo.wFunc = FO_COPY;
fo.pFrom = from;
fo.pTo = to;
fo.fFlags = FOF_NOCONFIRMMKDIR | FOF_NOERRORUI | FOF_NOCONFIRMATION | FOF_SILENT;
if( ::SHFileOperation(&fo) )
{
DWORD dw = GetLastError();//only for debugging
return false;
}
return true;
}
mein Problem: es wird nix kopiert. GetLastError() gibt mir ERROR_INVALID_HANDLE zurück.
from und to sind jeweils die Dateipfade. Der to Pfad existiert noch nicht, soll silently angelegt werden.
Warum bekomm ich da nur ERROR_INVALID_HANDLE zurück? Wenn ich die Flags wegnehme, dann funzts, aber man muss halt alles bestätigen, was ich nicht möchte.
Jemand ne Ahnung? Hoffe die Infos reichen, wenn nicht einfach fragen