いつもお世話になっております。
今回は、SHFileOperation()関数を使用しディレクトリのコピーをしようとしています。
その中で、既にコピー先に同じファイル名があった場合、
重複しないファイル名をつけるフラグを使用しました。
ここまでは良かったのですが、SHFileOperation()関数がつけた、
重複しないファイル名の取得で困っています。
同じファイル名が存在したために、
新しいファイル名がつけられた場合に、SHNAMEMAPPING構造体の配列を含んだ、ファイル
名マッピングオブジェクトのハンドルがhNameMappingsメンバが格納されます。
と書いてあったのですが、ハンドルは取得できたのですが、
その後どのようにすれば取得できるのかが分かりません。
お手数ですが、是非ご教授ください。
環境:WindowsXP SP1
開発:VC++6.0
以上、よろしくお願い致します。
最新のMSDNには解説がありますね。
http://msdn.microsoft.com/library/en-
us/shellcc/platform/shell/reference/structures/shfileopstruct.asp
早速のご回答ありがとうございます。
MSDNの解説を元に試してみたのですが、
とりあえずファイル名の取得は出来ました。
ただ取得したファイル名が文字化け?しております。
例.
実際のディレクトリ:
C:\コピー~Test
取得したディレクトリ名(デバックで確認した内容):
C:\ウヤ^Test
このようになってしまいました。
プログラム内で正しく、この場合、C:\コピー~Test
という文字列を取得するにはどのようにすればよろしいのでしょうか?
よろしくお願い致します。
MSDNによると、
SHFILEOPSTRUCTは実際のところ、
Win95系では、SHFILEOPSTRUCTA (ANSI版)
WinNT系では、SHFILEOPSTRUCTW (Unicode版)
であると書いてありますけど、その対応をしていますか?