Win32 APIはあらゆる定数をWM_CREATE等のマクロで定義して いますがHSPではマクロの数に制限があるため全て定義するわけには行きません。
定数は必ずユーザの指定にもと付き定義します。定数定義レベルを示すマクロ は_APIDEFLV_です。_APIDEFLV_は標準で1が指定されています。これはサード パーティ製Dllの定数は標準で定義されることを意味します。
| 値 | 意味 |
|---|---|
| 0または未定義 | 一切の定数を定義してはいけません。 |
| 1以上 | サードパーティ製Dllの場合定義することを許可します |
| 2以上 | 重要と思われるWin32 API定数のみ定義。実装しなくても 構いま せん。 |
| 3以上 | 全てのWin32 API定数を定義。 |
| _APIDEFLV_|= 0x100 | 定数を定義することを許可します。 |
| _APIDEFLV_|= 0x200 | マクロを定義することを許可します。 |
| _APIDEFLV_|= 0x300 | マクロ関数を定義することを許可します。 |
_APIDEFLV_で全て制御してしまうとマクロ制限に引っかかる恐れ や自由度が下がります。そこでFrameworkは_APIDEFLV_@[filename]規約を用意します。
_APIDEFLV_@[filename]は各ファイルに独立した定数定義を可能にします。値は_APIDEFLV_と等価です。_APIDEFLV_@[filename]が定義されてい ない場合_APIDEFLV_の挙動を示すように実装します。また、この定義はファイル内で捨ててください。
この仕様は将来的に変更される可能性があります。
// test.as
#ifndef _APIDEFLV_@TEST
#define _APIDEFLV_@TEST _APIDEFLV_
#endif
#if ((_APIDEFLV_@TEST & 0xFF) >= 1)
// サードパーティ製の定数のみ
#endif
#if ((_APIDEFLV_@TEST & 0xFF) >= 2)
// 重要と思われるもののみ
#endif
#if ((_APIDEFLV_@TEST & 0xFF) >= 3)
// 全てのWin32 API 関数
#endif
#undef _APIDEFLV_@TEST // 捨てること
Copyright(C) by Project.API