Unterschied PCZZTSTR zu LPCTSTR bzw. SHFileOperation zu CopyFileEx

Zvoni

Erfahrenes Mitglied
Hidiho an euch C++-ler

Ich bin ein oller VB-ler (VB Classic/VBA), und kenne mich in C++ mal gar nicht aus, und deshalb jetzt ne Frage an euch:

Per SHFileOperation kann ich ja per Stringbuffer mehrere Dateien auf einen Schlag kopieren lassen (inkl. Namens-Umbenennung für Zieldateinamen). Dieser Stringbuffer besteht aus Null-terminierten Strings, mit dem letzten String doppelt Null-terminiert.

Das Argument pFrom (bzw. dasselbe gilt auch für pTo) ist vom Typ PCZZTSTR

Quelle: http://msdn.microsoft.com/en-us/library/windows/desktop/bb759795(v=vs.85).aspx

SHFileOperation ruft mir den altbekannten Fortschrittsdialog auf.

So, jetzt will ich aber dasselbe per CopyFileEx machen, da zwei eigene ProgressBars zum Einsatz kommen sollen. Der Callback-Teil von CopyFileEx hat ja auch schon den Teil für einzelne Datei als auch für den Stream.
Der Typ für SourceFile (bzw. DestFile) bei CopyFileEx ist aber LPCTSTR.

Quelle: http://msdn.microsoft.com/en-us/library/windows/desktop/aa363852(v=vs.85).aspx

Kann ich jetzt mit der gleichen Technik von SHFileOperation (Null-terminierte Strings mit dem letzten String doppelt Null-terminiert) dasselbe auch mit CopyFileEx erreichen? Oder meckert mich Windows an, weil er einen anderen Typ erwartet?

Oder gibts ne einfachere Variante? Ich denke da anstatt Dateinamen zu übergeben, ein Array mit den Dateinamen zu übergeben (sowohl Source als auch Dest-File)

Für jede Antwort dankbar.

P.S.: IFileOperation ist keine Option, da es auf Win2K/XP-Rechnern laufen muss und IFileOperation erst ab Vista zum Einsatz kam (So hab ich es zumindest bei meinen Recherchen gefunden)
 
Hmmm..... dann ist wohl dieses StreamSize usw. in der Callback wohl für Kopier-Operationen, wenn man Wildcards nutzt? Ansonsten verstehe ich den Sinn davon nicht.
 
Zurück