MQImportPluginクラス

(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();

戻り値
プラグインタイプ
[MQPLUGIN_TYPE_IMPORT] ファイル入力用

MQBasePlugin::GetPlugInType() で宣言された仮想関数を実装しています。継承クラス内で新たに実装を行う必要はありません。


virtual const char *MQImportPlugin::EnumFileType(int index);

index
ファイルの種類のインデックス
戻り値
ファイルの形式名

ファイルの形式名を返します。返した形式名はファイルダイアログ上のコンボボックスに表示されます。

この関数は起動時に呼び出されます。indexは0から順に呼び出されるごとに増えていき、戻り値としてNULLを返したときに呼び出しが終了します。

純粋仮想関数として宣言されており、継承クラスで実装することにより MQEnumFileType() を隠ぺい化します。


virtual const char *MQImportPlugin::EnumFileExt(int index);

index
ファイルの種類のインデックス
戻り値
拡張子

ファイルの拡張子を返します。返した拡張子はファイルダイアログ上で扱われます。

この関数は起動時に呼び出されます。indexは0から順に呼び出されるごとに増えていき、戻り値としてNULLを返したときに呼び出しが終了します。

純粋仮想関数として宣言されており、継承クラスで実装することにより MQEnumFileExt() を隠ぺい化します。


virtual BOOL MQImportPlugin::ImportFile(int index, const wchar_t *filename, MQDocument doc);

index
ファイルの種類のインデックス
filename
ファイル名(フルパス)
doc
ドキュメントクラス
戻り値
ファイル入力の成功の可否
[TRUE] 入力に成功
[FALSE] 入力に失敗

ファイルからデータを読み込んでドキュメントにオブジェクトを追加します。

ファイルが正常に読み込めない、不明なフォーマット、有効なオブジェクトが存在しない、途中でキャンセルされたなどの場合はFALSEを返すようにしてください。

純粋仮想関数として宣言されており、継承クラスで実装することにより MQImportFileW() を隠ぺい化します。

(in Rev4.70)

filename の型が char から wchar_t に変更されました。


virtual BOOL MQImportPlugin::SupportBackground(void);

戻り値
バックグラウンド読み込みへの対応の可否
[TRUE] 対応
[FALSE] 対応しない

(new in Rev4.20)

バックグラウンド読み込みに対応するかどうかを返します。

バックグラウンド読み込みに対応する場合、IsBackground() でバックグラウンド読み込みかどうかをチェックし、また定期的に IsCanceled() を呼び出してキャンセル処理に対応する必要があります。

仮想関数として宣言されており、継承クラスで実装を行います。実装を行わない場合は上位クラスでの実装によりFALSEが返されます。


BOOL MQImportPlugin::IsBackground(void);

戻り値
バックグラウンド読み込み中かどうか
[TRUE] サブスレッド内でのバックグラウンド読み込み
[FALSE] メインスレッド内でのフォアグラウンド読み込み

(new in Rev4.20)

バックグラウンド読み込み中かどうかを取得します。

バックグラウンド読み込み処理は別スレッド内で行われます。途中キャンセルへの対応、ダイアログ表示やマウスカーソル変更などのGUI処理を行わない、マルチスレッド処理への対応(グローバル変数を使わない等)を行う必要があります。

MQWidgetはマルチスレッド処理に対応しておらず、バックグラウンド読み込み用スレッド内で使用するとアクセス違反を引き起こします。MQ_ShowFileDialog()は引数を適切に設定することでバックグラウンド処理に対応することができます。


void *MQImportPlugin::GetImportOptions(void);

戻り値
読み込みオプション

(new in Rev4.20)

MQ_ShowFileDialog()の引数内のoption_argsに設定するための値を取得します。


BOOL MQImportPlugin::IsCanceled(void);

戻り値
キャンセルされたか
[TRUE] キャンセルされた
[FALSE] キャンセルされていない

(new in Rev4.20)

読み込みの途中でキャンセルされたかを取得します。

バックグラウンド処理の場合、読み込み途中に定期的にこの関数を呼び出す必要があります。呼び出し間隔が長くなると、ユーザー操作に対するレスポンスが悪くなりますが、あまりに呼び出し回数が多いと読み込み処理自体が遅くなることがあるため、適度な間隔で呼び出してください。

バックグラウンド処理でない場合にこの関数を呼び出すと常にFALSEが返ります。


void MQImportPlugin::SetProgress(float progress);

progress
進捗状況 (0~1)

(new in Rev4.20)

進捗状況を設定します。

バックグラウンド読み込みを行う場合、定期的にこの関数を呼び出して進捗状況を設定してください。