使い勝手の悪いサンプルしかなかったので
仕方なく作成。
メソッドはそれぞれ1回しか使わないと思うので、
インラインメソッド。導入楽だし。
DXライブラリのバグ?かどうか不明だが、
クリアしているにもかかわらず、ドロップファイルの過去の情報が残っている
場合がある。
class DropFile
{
public:
char filePath[20 + 1][256]; // とりあえず20もあれば大丈夫でしょう、ということで
int count;
// 初期化、必ずゲームループの前に行うこと バックグラウンド処理&ファイルのドロップ許可
DropFile()
{
DragFileInfoClear(); // ドロップファイル情報の初期化
SetAlwaysRunFlag(true); // バックグラウンドでも動作を継続
SetDragFileValidFlag(true); // ファイルのD&Dを許可
count = 0;
}
// ファイルドロップ確認&情報取得 ゲームループ中に記載
void Check()
{ // ドロップファイルの処理
int num = GetDragFileNum(); // ドロップファイルの数を取得
int i; for (i = 0; GetDragFilePath(filePath[i]) == 0; i++); // ドロップファイルが存在する場合
if (i)
{
filePath[i][0] = 0; //終了データ
count = num; // ファイルパスが存在しているのでファイル数を格納
}
DragFileInfoClear(); // ドロップファイル情報の初期化
return;
}
};