システムに関する情報の操作やクラスの作成はグローバル関数として用意されています。
HWND MQ_GetWindowHandle(void);
メインウインドウのウインドウハンドルを取得します。ダイアログボックスの作成などのために必要となります。
(in Rev4.00)
この関数は非推奨となりました。将来のバージョンで廃止される可能性があります。MQWidgetBase::GetSystemWidgetID()でウィジェットレベルでのアクセスを行うよう変更してください。
MQObject MQ_CreateObject(void);
オブジェクトクラスを作成します。
作成したオブジェクトは、MQDocument::AddObject()で登録するか、MQObject::DeleteThis()で削除する必要があります。
MQMaterial MQ_CreateMaterial(void);
マテリアルクラスを作成します。
作成したマテリアルは、MQDocument::AddMaterial()で登録するか、MQMaterial::DeleteThis()で削除する必要があります。
void MQ_ShowFileDialog(const char *title, MQFileDialogInfo *info);
座標軸変換などの機能を持ったファイルダイアログを表示します。
infoは全体を0で初期化してからdwSizeに構造体のサイズsizeof(MQFileDialogInfo)を格納する必要があります。
struct MQFileDialogInfo { enum HAND_TYPE { HAND_LEFT = 0, HAND_RIGHT = 1, }; DWORD dwSize; DWORD hidden_flag; float scale; const char *softname; int axis_x; int axis_y; int axis_z; BOOL invert_face; HAND_TYPE hand_type; void (*dialog_callback)(bool init, MQFileDialogCallbackParam *param, void *ptr); void *dialog_callback_ptr; };
|
(in Rev4.00)
MQFileDialogInfo内のaxis_x, axis_y, axis_zに設定する向きのうち左右の挙動が逆だったため修正されました。従来のバージョンのソースコードを移行する場合、以前と同じ結果を得るにはMQFILE_TYPE_LEFTとMQFILE_TYPE_RIGHTを逆に指定する必要があります。
void MQ_ImportAxis(MQFileDialogInfo *info, MQPoint *pts, int pts_count);
void MQ_ExportAxis(MQFileDialogInfo *info, MQPoint *pts, int pts_count);
ファイルダイアログの座標軸データを基に頂点位置を変換します。
入力用と出力用でそれぞれ異なります。
(in Rev4.00)
MQFileDialogInfo内のaxis_x, axis_y, axis_zに設定する向きのうち左右の挙動が逆だったため修正されました。従来のバージョンのソースコードを移行する場合、以前と同じ結果を得るにはMQFILE_TYPE_LEFTとMQFILE_TYPE_RIGHTを逆に指定する必要があります。
BOOL MQ_LoadImage(const char *filename, LPVOID *header, LPVOID *buffer, DWORD reserved);
(new in Rev2.10)
指定した画像ファイルをDIB(デバイスに依存しないビットマップ)として読み込みます。
読み込みに成功すると、headerとbufferにそれぞれLocalAlloc(LMEM_FIXED, uBytes)で確保されたヒープメモリが格納されます。DIBが不要になったらLocalFree()で解放する必要があります。
header内にはBITMAPINFOHEADER構造体が格納され、1ピクセルあたりのビット数が8以下の場合にはその後にRGBQUAD構造体の配列が格納されます。RGBQUAD内にはRGB成分のみが格納され、rgbReservedは常に0となります。
bufferには画像データが格納されます。1ピクセルあたりのビット数が32の場合、1ピクセルのデータ4バイトのうち最上位バイトにはα成分が格納されます。
BOOL MQ_GetSystemPath(char *buffer, int type);
(new in Rev2.10)
指定したパスを取得してbufferに格納します。bufferはMAX_PATHのサイズを持っている必要があります。
(in Rev4.00)
MQFOLDER_METASEQ_INIは廃止されました。プラグインからの設定ファイルへのアクセスは MQBasePlugin::OpenSetting() で得られるXML要素に対して行う必要があります。
注意: Ver2.1.5より前のバージョンでは、バグのために type として MQFOLDER_DATA または MQFOLDER_PLUGINS を指定するとおかしなフォルダ名が返されます。
void MQ_RefreshView(void *reserved);
(new in Rev2.30)
ビューを再描画します。
reservedにはNULLを指定してください。
void MQ_StationCallback(MQStationCallbackProc proc, void *option);
(new in Rev2.40)
常駐型プラグインから何らかの処理を行う際に呼び出し、コールバック関数内でドキュメントに対する処理を行います。
コールバック関数は以下の形式で定義されます。
typedef BOOL (__stdcall *MQStationCallbackProc)(MQDocument doc, void *option);
|
BOOL MQ_SendMessage(int message_type, MQSendMessageInfo *info);
(new in Rev2.40)
常駐型プラグインが特定の処理を行った、または処理を要求する際に、本体側にメッセージを通知します。
BOOL MQWidget_Value(int widget_id, int type_id, void *values);
(new in Rev4.00)
ウィジェットの各操作やイベントに対する処理を行います。
直接この関数を呼び出す必要はありません。MQWidgetBaseクラスおよびその各継承クラス内から呼び出されます。