(new in Rev2.40)
MQImportPlugin クラスは MQBasePlugin クラスを継承し、ファイル入力用プラグインの実装に必要な関数を提供します。
この MQImportPlugin クラスを継承して、必要な仮想関数の実装を行うことにより、本体との複雑なメッセージ処理を隠ぺい化して簡便な実装でファイル入力用プラグインを作成することができます。
MQImportPlugin クラス内には各プラグイン・メッセージ処理関数が仮想関数として宣言されており、継承クラスで各仮想関数を実装する必要があります。
クラス | |
MQImportPlugin | コンストラクタ |
~MQImportPlugin | デストラクタ |
上位クラスの宣言 | |
GetPlugInID | プラグインIDの取得 |
GetPlugInName | プラグイン名の取得 |
プラグイン | |
GetPlugInType | プラグインの種類の取得 |
EnumFileType | ファイルの形式名を返す |
EnumFileExt | ファイルの拡張子を返す |
ImportFile | ファイルを読み込む |
SupportBackground | バックグラウンドを読み込みをサポートするか |
補助関数 | |
IsBackground | 読み込みがバックグラウンドか |
GetImportOptions | 読み込みオプションの取得 |
IsCanceled | 読み込みがキャンセルされたか |
SetProgress | 進捗状況の設定 |
上位クラスの補助関数 | |
OpenSetting | 設定ファイルを開く |
CloseSetting | 設定ファイルを閉じる |
GetResourceString | リソース文字列を取得する |
GetSettingValue | 設定値を取得する |
GetSystemColor | システム色を取得する |
GetResourceCursor | 標準マウスカーソルを取得 |
GetScreenMouseCursor | スクリーン用マウスカーソルを取得 |
SetScreenMouseCursor | スクリーン用マウスカーソルを設定 |
SendUserMessage | 他のプラグインにプラグイン独自のメッセージを送る |
SetDrawProxyObject | 描画代替オブジェクトを設定 |
GetSceneOption | シーンの表示オプションを取得 |
GetEditOption | 編集オプションを取得 |
MQImportPlugin::MQImportPlugin();
コンストラクタです。
virtual MQImportPlugin::~MQImportPlugin();
デストラクタです。仮想関数として定義されます。
virtual int MQImportPlugin::GetPlugInType();
MQBasePlugin::GetPlugInType() で宣言された仮想関数を実装しています。継承クラス内で新たに実装を行う必要はありません。
virtual const char *MQImportPlugin::EnumFileType(int index);
ファイルの形式名を返します。返した形式名はファイルダイアログ上のコンボボックスに表示されます。
この関数は起動時に呼び出されます。indexは0から順に呼び出されるごとに増えていき、戻り値としてNULLを返したときに呼び出しが終了します。
純粋仮想関数として宣言されており、継承クラスで実装することにより MQEnumFileType() を隠ぺい化します。
virtual const char *MQImportPlugin::EnumFileExt(int index);
ファイルの拡張子を返します。返した拡張子はファイルダイアログ上で扱われます。
この関数は起動時に呼び出されます。indexは0から順に呼び出されるごとに増えていき、戻り値としてNULLを返したときに呼び出しが終了します。
純粋仮想関数として宣言されており、継承クラスで実装することにより MQEnumFileExt() を隠ぺい化します。
virtual BOOL MQImportPlugin::ImportFile(int index, const wchar_t *filename, MQDocument doc);
ファイルからデータを読み込んでドキュメントにオブジェクトを追加します。
ファイルが正常に読み込めない、不明なフォーマット、有効なオブジェクトが存在しない、途中でキャンセルされたなどの場合はFALSEを返すようにしてください。
純粋仮想関数として宣言されており、継承クラスで実装することにより MQImportFileW() を隠ぺい化します。
(in Rev4.70)
filename の型が char から wchar_t に変更されました。
virtual BOOL MQImportPlugin::SupportBackground(void);
(new in Rev4.20)
バックグラウンド読み込みに対応するかどうかを返します。
バックグラウンド読み込みに対応する場合、IsBackground() でバックグラウンド読み込みかどうかをチェックし、また定期的に IsCanceled() を呼び出してキャンセル処理に対応する必要があります。
仮想関数として宣言されており、継承クラスで実装を行います。実装を行わない場合は上位クラスでの実装によりFALSEが返されます。
BOOL MQImportPlugin::IsBackground(void);
(new in Rev4.20)
バックグラウンド読み込み中かどうかを取得します。
バックグラウンド読み込み処理は別スレッド内で行われます。途中キャンセルへの対応、ダイアログ表示やマウスカーソル変更などのGUI処理を行わない、マルチスレッド処理への対応(グローバル変数を使わない等)を行う必要があります。
MQWidgetはマルチスレッド処理に対応しておらず、バックグラウンド読み込み用スレッド内で使用するとアクセス違反を引き起こします。MQ_ShowFileDialog()は引数を適切に設定することでバックグラウンド処理に対応することができます。
void *MQImportPlugin::GetImportOptions(void);
(new in Rev4.20)
MQ_ShowFileDialog()の引数内のoption_argsに設定するための値を取得します。
BOOL MQImportPlugin::IsCanceled(void);
(new in Rev4.20)
読み込みの途中でキャンセルされたかを取得します。
バックグラウンド処理の場合、読み込み途中に定期的にこの関数を呼び出す必要があります。呼び出し間隔が長くなると、ユーザー操作に対するレスポンスが悪くなりますが、あまりに呼び出し回数が多いと読み込み処理自体が遅くなることがあるため、適度な間隔で呼び出してください。
バックグラウンド処理でない場合にこの関数を呼び出すと常にFALSEが返ります。
void MQImportPlugin::SetProgress(float progress);
(new in Rev4.20)
進捗状況を設定します。
バックグラウンド読み込みを行う場合、定期的にこの関数を呼び出して進捗状況を設定してください。