ホテルを選ぶとき、これだけは譲れない条件TOP3は?

VCプログラムで、操作履歴情報を出力先ドライブを選択してファイルに保存する機能を作成しています。(OS:Windows-XP)
CD-ROM(RW)ドライブを選択すると、以下のエラーになってしまうのですが、
正しい引数または別の方法を教えて頂けませんでしょうか。
◆エラー
ERROR_INVALID_FUNCTION(0x00000001)「ファンクションが間違っています。」
◆引数
handle = CreateFile( "\\\\.\\E:\\HISmmdd.TXT",// ファイル名
GENERIC_WRITE,// アクセスモード
FILE_SHARE_WRITE,// 共有モード
NULL,// セキュリティ記述子
CREATE_ALWAYS,// 作成方法
FILE_FLAG_WRITE_THROUGH,// ファイル属性
NULL// テンプレートファイルのハンドル
) ;

以上、宜しくお願い致します!

A 回答 (1件)

CD/DVDは、通常のAPI関数では書き込み出来ません。



CD/DVDへの書き込みは「IMAPI(Windows Image Mastering API)」と言う、専用のAPIを使用する必要があります。

CreateFileなど、通常のAPI関数では、書き込む事は出来ません。

また、ネットワーク共有で共有された他のPCのCD/DVDドライブは、IMAPIを使用しても書き込む事は出来ません。IMAPIで書き込み出来るのは「自分自身のCD/DVDドライブだけ」です。

どうやら、質問者さんは「ネットワークごしにCD-R/DVD-Rに書き込もうとしている」ので、現状では「何をどうやっても不可能」です。

唯一の方法は
・CD-R/DVD-Rを搭載したPCに、監視用の常駐プログラムを常駐させる
・ネットワーク共有で別のPCから特定のフォルダに、書き込みたいファイルを置く
・何らかの方法で、別のPCから常駐プログラムに「書き込み」の指令を送る
・常駐プログラムから、IMAPIを使ってファイルをCD-R/DVD-Rに書き込むプログラムを起動する
・起動された書き込みプログラムは、特定のフォルダに置かれたファイルを書き込みし、書き込みが終了したら、書き終わったファイルを特定のフォルダから削除して後始末する
という方法です。

この回答への補足

素早く、丁寧なご回答をありがとうございます。
「IMAPI」について、調べてみます。

言葉足らずで申し訳ありません。
出力先は「自分自分のCD/DVDドライブ」だけです。

アプリケーションから直接書き込む方法以外に、
一時ファイルを作成して、常駐プログラムで監視して書き込みプログラムを起動する、という考え方もあるんですね。
今後の設計の参考にさせて頂きます。
ありがとうございます。

補足日時:2008/12/04 17:59
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報