CE.NETのビルド番号
Windows CEマシンではコントロールパネルのシステムでビルド番号が表示されます。
このビルド番号がPlatform Builderのどこから来るのか調べてみました。
PUBLIC\WCESHELLFE\OAK\CTLPNL\CPLMAIN\system.cpp
から、ビルド番号がGetVersionEx APIの結果であることがわかります。
2. 次に、PrivateツリーのカーネルソースコードをGetVersionEx で検索すると、
PRIVATE\WINCEOS\COREOS\CORE\DLL\apis.c
に
BOOL GetVersionEx(LPOSVERSIONINFO lpver) {
(中略)
lpver->dwBuildNumber = CE_BUILD_VER;
のようなコードが見つかります。(要するにCOREDLL内で処理しているわけですね。)
3. 最後に、CE_BUILD_VER がどこで定義されているか調べます。apis.cの先頭のあたりに
#include "windows.h"
#include "nkintr.h"
#include "bldver.h"
#include "kernel.h"
(中略)
#include "cscode.c"
とあるので、これらのどれかだろうと見当をつけて調べてみると、はたして
PUBLIC\COMMON\SDK\INC\bldver.h
に、以下の定義を見つけました。
#define CE_BUILD_VER 1088
要するにSDKのインクルードファイルにあるんですね。これでカスタムSDKを作ったときに、元になったビルド番号も知ることができることがわかりました。