IMAPIを使用して指定フォルダ以降を書き込むには?2

解決


みの  2005-07-06 17:21:25  No: 58201  IP: 192.*.*.*

Microsoftにて公開されていたIMAPIのサンプル(CD Burning Sample
Application )を使用してCD書き込みソフトを作成していますが、
フォルダ構成をCAtlListに保持してから、IStorageにして全てのフォルダ
構成ごと書き込み(RecordDisc())しようとすると、最後に
SetCurrentDirectoryを設定したディレクトリ内のファイルのみ
正常に書き込まれますが、それ以外のディレクトリのファイルは0バイトに
なってしまいます。

例)
FolderA
┣aaa.txt  ←SetCurrentDirectory
┗FolderB
  ┗bbb.txt
※この場合、aaa.txtは正常に書き込まれますが
  bbb.txtは0バイトで書き込まれます。

全てのディレクトリに対して、RecordDisc()を行う前にSetCurrentDirectoryを
設定することによって正常に書き込まれることがわかりましたが、
どうも邪道な気がしています。
(フォルダの数だけSetCurrentDirectory→RecordDiscといった感じです)

過去ログにてまこーじ14号さんの書き込みを拝見しましたが、
CAtlListを使用した方法で(Microsoftのサンプルに近い方法で)
作成したいのです。

CD書き込みにおいて、CAtlListを使用した方法で
フォルダ構成ごと正常に書き込む方法は無いでしょうか?
どなたかご存知の方いらっしゃいましたら、ご教授お願い致します。

編集 削除
PSB  2005-07-06 18:39:06  No: 58202  IP: 192.*.*.*

http://madia.world.coocan.jp/cgi-bin/Vcbbs/wwwlng.cgi?print+200506/05060089.txt
関連しているのだろうと思われますが・・・。(うみさん?)

IMAPIサンプル中のFolderStorage.cppの308行目の

 HANDLE hFile = CreateFile( 
   file.m_csFilename,


 HANDLE hFile = CreateFile( 
  file.m_csPath,

に変えれば大丈夫です。

#SetCurrentDirectory()は忘れてください。

編集 削除
うみ  2005-07-07 22:37:33  No: 58203  IP: 192.*.*.*

PSBさんご回答ありがとうございます。
PSBさんのおかげで無事完成するとができました。
マイクロソフトのソースをわざわざ探っていただき本当ありがとうございました。

前回の質問で解決にしてしまいましたが、やはりフォルダー構成毎
焼きこむ必要ができてしまい、共同開発者に新たに質問を上げて貰うように依頼したのですが、結果的にマルチポストのような状態になっていしまいました。
申し訳ありません。以後このようなことがないように気をつけます。

編集 削除