定数/関数マクロの定義

Win32 APIはあらゆる定数をWM_CREATE等のマクロで定義して いますがHSPではマクロの数に制限があるため全て定義するわけには行きません。

定数定義範囲のレベル

定数は必ずユーザの指定にもと付き定義します。定数定義レベルを示すマクロ は_APIDEFLV_です。_APIDEFLV_は標準で1が指定されています。これはサード パーティ製Dllの定数は標準で定義されることを意味します。

_APIDEFLV_ の値

意味
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    // 捨てること

	

参照

マクロ開発リファレンス|Frameworkマクロ規約

goto Top

Copyright(C) by Project.API

Gポイントポイ活 Amazon Yahoo 楽天

無料ホームページ 楽天モバイル[UNLIMITが今なら1円] 海外格安航空券 海外旅行保険が無料!