ホーム

ダウンロード

改版履歴

トラブルシューティング

開発

ユーザー登録について

連絡

リンク

e-mail

back

 グリッド外部モジュールのプログラム仕様

値定義とマクロ
構造体
関数

back

値定義とマクロ

ライブラリの識別コード
EXTLIB_ID_GRID 0x04502ac8

言語識別

英語 GRIDLIB_LANG_ENG 0
日本語 GRIDLIB_LANG_JAP 1
その他 GRIDLIB_LANG_OTHER 0

本体プログラムに対する動作の指示を行うためのフラグ値

色項目を設定可能 GRDLIB_FLG_STD_COLOR 0x00000001
間隔項目を設定可能 GRDLIB_FLG_STD_SPAN 0x00000002
表示制限項目を設定可能 GRDLIB_FLG_STD_DISPCTRL 0x00000004
グリッド描画関数の呼出し前にペン(GDI)を自動的に作成・選択を禁止 GRDLIB_FLG_DWC_NO_PEN 0x00001000
グリッド印刷関数の呼出し前にペン(GDI)を自動的に作成・選択を禁止 GRDLIB_FLG_DWC_NO_PEN_ON_PRINT 0x00002000
グリッド描画・印刷関数の呼出し前に自動的に描画範囲をクリッピングすることを禁止 GRDLIB_FLG_DWC_NO_CLIPCANVAS 0x00010000

グリッド設定ダイアログの各項目の設定状態を示すフラグ

グリッドの表示制限が設定状態 GRDLIB_FLG_ENABLE_DISPCTRL

0x00000001

簡易的なマクロ

0.1mm単位値を論理値に変換 M2LOGICAL( val, factor )
論理値を0.1mm単位値に変換 LOGICAL2M( val, factor )
0.01mm単位値を論理値に変換 HM2LOGICAL( val, factor )
論理値を0.01mm単位値に変換 LOGICAL2HM( val, factor )

back

構造体

GRDS_INITINFO

本体が初期情報・条件を得るために使

DWORD dwVersion ライブラリのバージョン番号(上位16ビット:マイナー番号,下位16ビット:メジャー番号)
DWORD dwFlags 本体プログラムに対する動作の指示を行うためのフラグ
DWORD dwAllocSize

各ライブラリ特有の情報を格納するために本体が確保するバッファサイズ(最大1024 * 100まで)

TCHAR lpszDesc[80] ライブラリに関する記述(名前・説明等)

GRDS_STDPARAM

本体からグリッド設定ダイアログの標準項目の設定状況を通知するために使用

DWORD dwFlags グリッド設定ダイアログの各項目の設定状態を示すフラグ
COLORREF clrGrid グリッドの色
SIZE sizeSpan

グリッドの間隔

DWORD dwPixel 表示制限有効時のピクセル値
SIZE sizeFactor 0.1mm単位値と論理値の相互変換のために使用
簡易的なマクロを参照

back

関数

extlib_GetId grid_GetInfo
grid_GetDefault grid_Draw
grid_Print grid_Snap
grid_SetupDialog grid_Profile

必須関数 ライブラリ内で必ず定義する必要がある関数
オプション関数 必要ならばライブラリ内で定義する関数

 

 

back

DWORD WINAPI extlib_GetId( void )

必須関数

ライブラリのロード時にグリッド外部ライブラリを識別するために本体から呼ばれる。
戻り値

EXTLIB_ID_GRIDを返す

関数Topへ

void WINAPI grid_GetInfo( GRDS_INITINFO* lpInfo, int nLanguage )

必須関数

ライブラリのロード時に初期情報を取得するために呼ばれる。
戻り値 なし
GRDS_INITINFO* lpinfo ライブラリの初期情報・条件を格納
int nLanguage 本体がどの言語で動作しているかをライブラリに通知

関数Topへ

void WINAPI grid_GetDefault( LPVOID lpData, int nLanguage )

オプション関数

本体プログラムがライブラリ用にアロケートしたバッファに初期データを設定するために呼ばれる。
戻り値 なし
LPVOID* lpData ライブラリがgrid_GetInfoでdwAllocSizeで指定したサイズのライブラリ専用バッファ。
dwAllocSize==0の場合はこの関数は呼び出されない。
このバッファは,本体アプリケーション内で,オブジェクト複製時に単純コピーされる可能性があるので,バッファ内にポインタ情報や共有不可能なハンドル等を含めないように注意が必要。
int nLanguage 本体がどの言語で動作しているかをライブラリに通知

関数Topへ

void WINAPI grid_Draw( HDC hDC, const RECT* lpR, SIZE sizeCanvas, LPVOID lpData, const GRDS_STDPARAM* lpStdParam )

オプション関数

本体プログラムでグリッドの描画が必要時に呼ばれる。
戻り値 なし
HDC hDC グリッドを描画するデバイスコンテキスト。
デバイスコンテキストは本体アプリケーションがgrid_Drawを呼び出す前に保存し,戻ったときに復元しているので,ライブラリでそれらの処理を追加する必要はない。
const RECT* lpR グリッドを描画する対象となっている矩形領域。
常に用紙(キャンバス)全体に描画するような処理をしていると,キャンバスがある倍率以上で拡大表示された場合に,GDI内でオーバーフローが発生し,描画されない場合があるので注意が必要。
SIZE sizeCanvas 用紙(キャンバス)のサイズが0.1mm単位の整数値で格納されている。
座標原点は用紙(キャンバス)左上が(0,0)。
LPVOID lpData ライブラリがgrid_GetInfoでdwAllocSizeで指定したサイズのライブラリ専用バッファ。
dwAllocSize==0又はアロケートできなかった場合はNULLが引き渡される。
このバッファは,本体アプリケーション内で,オブジェクト複製時に単純コピーされる可能性があるので,バッファ内にポインタ情報や共有不可能なハンドル等を含めないように注意が必要。
const GRDS_STDPARAM* lpStdParam 本体プログラムのグリッド設定ダイアログの標準項目の設定内容
grid_GetInfoで設定を有効にした項目が存在しない場合でも,何らかの設定内容が格納されて呼び出される。

関数Topへ

void WINAPI grid_Print( HDC hDC, const RECT* lpR, SIZE sizeCanvas, LPVOID lpData, const GRDS_STDPARAM* lpStdParam )

オプション関数

本体プログラムで印刷・印刷プレビュー時に呼ばれる。
ライブラリでこの関数を定義した場合に呼ばれる。
詳細はgrid_Drawと同じ。

関数Topへ

POINT WINAPI grid_Snap( POINT ptPos, SIZE szCanvas, LPVOID lpData, const GRDS_STDPARAM* lpStdParam )

オプション関数

本体プログラムでマウスポインタをグリッドへ吸着する必要があるときに,座標を調整するために呼ばれる。
マウスの移動時にに呼ばれるので,できるだけ速やかな効率のよい処理をするように作成する必要がある。
戻り値 調整した座標
POINT ptPos 本体プログラムにおけるマウス現在位置(論理座標)。
SIZE szCanvas

用紙(キャンバス)のサイズが0.1mm単位の整数値で格納されている。
座標原点は用紙(キャンバス)左上が(0,0)。

LPVOID lpData ライブラリがgrid_GetInfoでdwAllocSizeで指定したサイズのライブラリ専用バッファ。
dwAllocSize==0又はアロケートできなかった場合はNULLが引き渡される。
このバッファは,本体アプリケーション内で,オブジェクト複製時に単純コピーされる可能性があるので,バッファ内にポインタ情報や共有不可能なハンドル等を含めないように注意が必要。
const GRDS_STDPARAM* lpStdParam 本体プログラムのグリッド設定ダイアログの標準項目の設定内容
grid_GetInfoで設定を有効にした項目が存在しない場合でも,何らかの設定内容が格納されて呼び出される。

関数Topへ

int WINAPI grid_SetupDialog( HWND hWnd, LPVOID lpData, int nLanguage )

オプション関数

本体プログラムのグリッド設定ダイアログにおいて,オプションの設定ボタンが押された時に呼ばれる。
ライブラリで,オプションとしてユーザーに指定してもらう情報がある場合にこの関数を定義する。
戻り値

IDOK: 設定が有効
IDCANCEL: 設定が無効

HWND hWnd 本体プログラムの現在のアクティブウィンドウのハンドル。
LPVOID lpData ライブラリがgrid_GetInfoでdwAllocSizeで指定したサイズのライブラリ専用バッファ。
dwAllocSize==0又はアロケートできなかった場合はNULLが引き渡される。
このバッファは,本体アプリケーション内で,オブジェクト複製時に単純コピーされる可能性があるので,バッファ内にポインタ情報や共有不可能なハンドル等を含めないように注意が必要。
int nLanguage 本体がどの言語で動作しているかをライブラリに通知

関数Topへ

void WINAPI grid_Profile( LPCTSTR lpszPath, LPCTSTR lpszSection, LPVOID lpData, BOOL bSave )

オプション関数

ライブラリ固有の情報をプロファイルに保存・復元したい場合にこの関数を定義する。
本体プログラムはプロファイルにアクセスする必要がある時に,この関数を呼び出す。
通常は,GetPrivateProfileInt(...), GetPrivateProfileString(...), WritePrivateProfileString(...) 等を使用してプロファイルを保存・復元する。
戻り値 なし
LPCTSTR lpszPath プロファイルのファイル名
LPCTSTR lpszSection プロファイルにおける,各ライブラリがアクセスできるセクション名。
プロファイルは,ユーザー毎に個別に作成され,複数のライブラリの情報が各セクション毎に書き込まれることになる。
セクション名は,本体プログラムが自動的に決定する。
LPVOID lpData ライブラリがgrid_GetInfoでdwAllocSizeで指定したサイズのライブラリ専用バッファ。
dwAllocSize==0又はアロケートできなかった場合はNULLが引き渡される。
このバッファは,本体アプリケーション内で,オブジェクト複製時に単純コピーされる可能性があるので,バッファ内にポインタ情報や共有不可能なハンドル等を含めないように注意が必要。
BOOL bSave TRUE: 保存
FALSE: 復元

関数Topへ

back