si gnmri onIII ソフ ト ウェ ア 開 発 用 資料
第 1 版
日 本 電気 株 式 会 社
本 資料 に 関し て の 注意
本 資料 中 に 記載 され る 会 社名 、 製 品名 等 は 各社 の 商標 また は 登録 商標 で す 。
本 資料 の 内 容 の 一 部 また は 全部 を 無断 で 転載 する こと は 禁止 され て いま す 。
本 資料 は 改良 等 の た め 予 告 な し に 変更 する 場合 が ご ざい ます 。
本 資料 記載 の 情報 に より 生じ た いか な る 損害 に つい て も 日 本 電気 株 式 会 社 は その 責 を 負い ませ
ん の で 、 あ ら か じ め ご 了承 く だ さい 。
本 資料 中 に 「 、「 |、「 @| 等 の マー ク は 表記 し て お り ま せん 。
NEC Confidential 1
NN 3
2 il 開 28 提 の (本業 ANAN の en2Aunnnn 4
2 1 間 作 の 00 4
2 の の あり たま TRNAAETCWRRCRYXRRNCRNC 衝 WCHRTCNERRCRYRRKCRNCREBPHRRCRRPBERPRRRCJRK7RRPPRRRZRRRERIRRRPREATRERRFTCRT 4
7 の 0 の ん デー ツク RE 5
の まで の KU NO の 2 た 和訳 記 衣 NN 8
0 に の OO 生 0 9
リプ トウ まだ を 牧村 する 際 の 洋間 OAMdo0a9 か sao0a9000000R0aAH390t3SO39AaSA00039SO2R63SA090d39SGo2830855 10
3 RESRRSRRSRSSHSSRSSSERREEHRRRSRRSHRRRRSRRRRRRRRRRRRRRERRRRRRRGRRRRERRSRRBRR 10
2 11
2 2 に MURAOERRRS283R3BBSRRBGBRRSSYOGRSRRSCHCR8SRRPSGRRRESGBGRRES63CHRSBG3CRRBCHOIRSEBCRSR 12
に 3 こり 0 0 ンプ リル ンタ ン YY 12
者 0006 請 6050808CSOGOSCSHSGSCSORIe 12
人 剛 殿 周 ffONIUI 理 用 33SineSeSae ss 13
の iR RRB 13
oh の 0 の グラ た の クト 0 伸介 0 六 2029022Pa023825292958298 が 82282088B3829C82g298pagaze 13
3320 2 の NSP2A00 ポ や 3 衣 府 RE 14
oo 2 の の の ey の の 0 00 の マテ Stakhcikts 15
。 1c ウツ クラ イト ドジ ハイ ズ の 側 伯 UE 計 記 記 16
(CIKODNGEOINMKINGMN GBS PenHRO2AAann 18
に に 21N0LORNSKDUGEHE SSSNNKNSEhiRiNeNHNOEeRSGGNiaWaiaeaeie 19
( 旨 6 ら 9) 矯 IEG MES NG 上 (6 WS1DSUBD27 時 年 時 時 FFP FPP 20
- 間 0NCOHESNGNIGMNSRISIMM 21
人 2 インク aaay900o020802636098020208923084369329212928880832938328980383882263232388988808888c2 22
Ke SR ジー ンク ASSRSARRSESSRRSIASSReR。 24
2 20 本 本 の 人 NINENNBINRIEIRISIIBSNSSSISSSNSS 24
5 に AN に 70PeRESRRSERPERWEKRERREPReREERW 放 PE 28
8 20 2 た 本 UNDP 29
os 月 思 時 に お ば る ポル ゲー ツン ョ ラン 相国 31
お 02005c 0 間 0O0 ア の リ その 2 旨 邊 記 記 RI 36
92 た PSBI/2 用 たび TRESFRRRRTEZRRERPHBRERERETRRRREREERPRERREERPSRERERRRRTER RE 40
228 で 人 ド ツ の 必 : の Jengezedgnggdd9gugddgB2gtd00520028602udg9pa0un2903ug5208yoo9agazagogegzdggeeos 43
ON 45
9 の の WM の NZ KO 失策 間 ONs 47
ei0 ジル ント 突 更 和 衣 記 記 SSSSS 51
PIPE 56
NEC Confidential 2
1 . は じ め に
本 書 は signmrionIII で 動作 する ソフ ト ウェ ア 開 発 に 必要 な 情報 を 記載 し た 資料 で す 。
signarionlII は Wndovs CE.NT 41 を 搭
以下 の 違い が あり ます 。
渡し た 携帯 端末 で 、signmrionII と 比較 する と
S1 grmT1 Orl 1 S1 grimri Onl 11
て で U VR4131 200ML ( MR 系 ) PXA255 400Mz ( ARV 需 )
メ モリ (RAM 32M バ イト ※ 64M バ イト ※
画素 数 640X 240 ド ッ ト 800X 480 ド ッ ト
カー ド スロ ッ ト | 外 729 池 カド 名 (TpeIt) メ 1 | 1 外 729 池 か カド 旬 y( TpetI) メ 1
MSD 才 りか カー トド Xny ト (STIO 対 応 )X 1
〇 5 Wndovs CE Ver3.0 Wndovs CE .NYT Ver4 1
開発 ツー ル eMbedded VM sual CH3.0 十 SLK 等 | eMbedded Msual GH4.0 十 SLK 等
※O 〇 ブログ ラム 実行 領域 含む
NEC Confidential
2 . 開発 環境 の 構築
2. 1 開発 ツー ル
以下 の ツー ル を 使用 し て ソフ トウ ェ ア を 開発 し ます 。
・eMbedded Vsual CH 40
・eMbedded Msual CHF 4 0 Service PFack 1
・ Standard SLK( eM5edded M sual CH+ 4 0 に 含ま れ ま す )
・SsigrwmrionlII SIKfor Wndows CG . NT
※ 各 ツー ル の 使い 方 は 、 そ れ ぞ れ に 付属 する ド キュ メン ト を 参照 し て くだ さい 。
2.2 開発 ツー ル の 入手 方 法
( 1 ) eMbedded Vsual GH 4.0 の 入手
以下 の ホー ムペ ー ジ より eM5edded Vsual CH 4 0 を ダウ ン ロ ー ド し ます 。
Http: //www mcrosoft. corj apar/rsdm/vst udi o/ devi ce/eVC downl oad asp
(注意) URL は 2003 年 8 月 現在 の アド レス で す 。
( 2 ) eMbedded Msual GH 4 0 Service Pack 1 の 入手
以下 の ホー ムペ ー ジ より eM5edded Msual Gr+ 4.0 Service Pack 1 を ダウ ン ロ ー ド し ます 。
Http: //www mcrosoft. corj apan/nsdm/vst udi o/ devi ce/eVJ4SP1. asp
(注意) UL は 2003 年 8 月 現在 の アド レス で す 。
(3 ) signmrionlII STKfor Wndovs C .NYT の 入手
以下 の URL か ら ア クセ ス し 、 必 要 事 項 を 登録 する と ダウ ン ロ ー ド サイ ト の URL が メー ル で 通知 され ます 。
Http //wwv pdaDi Z.jp/cat al og/si g3/sdk/
NEC Confidential 4
2 . 3 開発 ツー ル の イン スト ー ル
( 1 ) eM5edded Vsual CH 4 0 の イン スト ー ル
以下 の 手順 で eMpedded Msual CHH 40 を イン スト ー ル し ます 。
① ダ ウン ロー ド し た eM5edded Msual CHF 4 0 の JA eV4 exe を 実行 し 、 解 凍 し ます 。
② 解 凍 フ ォ ル ダ 内 の Setup. exe を 実行 し ます 。
③ 画 面 の 指示 に 従っ て イン スト 一 ル し ます 。
④CQ 〇 ① キ ー を 聞い て きま す の で 、 〇 ① キ ー を 入れ ます ( の ① キ ー は eMbedded VM sual CHH 4 0 ダウ ン ロ ー ド
サイ ト に 表記 され て いま す の で 事前 に 控え て お いて くだ さい )。
し < 玩 @ | が > | Wwr
⑤「 eMbedded V sual CGCH4 0 の イン スト ー ル 」 ダ イア ログ が 表示 され た ら 「 eM5pedded Msual GH 4 0]
と 「 Standard SLKfor Wndovs C NET」 の 両方 に チェ ッ ク を 入れ て 「 次 へ 」 を クリ ッ ク し ます 。
BMDGHHe1 Visual C++ 4.0 の イン スト ー ル
| の:2 鍵 Ta
NEC Confidential 5
⑥⑧⑨ 次 の オプ ショ ン の 中 か ら イ ンス ト 一 ル す る 項目 .. . 」 の ダイ アロ グ が 表示 され た ら 「 eM5eddedV sual
CH+ 4 0| を 反転 させ 、「 オプ ショ ン の 変更 」 を クリ ッ ク し て くだ さい 。
elbedded Visual C+ 40 セッ ト ア アプ 1? 1 X|
の 62 ト こ ル き る 天目 あい テッ ウマ ー ク sHU て YES イン スト し ei
プッ ョ な ー ネ ン ト の 一 部 けが イン スト ー ル され ます 。 すべ て の コン ポー ネン ト を イン ス
こ ル す MES の AE
F wi 735 5
説明 :
icrosoft elMbedded Visual
Vigual し
ー イ ンス トー ル 先 フォルダ
D*Froeram files\NMicrosoft ebsdGed Cre 40 フォ ル が の 案 更 (E).
D に 必 雪 な 宇垣 : ーー プー
b の 空き 容量 . 日
奏 続 G) | キャ ッ セ ル |
⑦CU タ イプ の 指定 を する 画面 が 表示 され ます の で 「 ARWAI」 が 選択 され て いる こと を 確認 し ます 。
認 後 、 イ ンス トー ル 作 業 を 続け て くだ さい 。
※ そ の 他 の CU タイ プ は 必要 に 応じ て 選択 し て くだ さい 。
cbeddcd Visusl CO 40 - カス な ム オプ ジョン 21X|
。 が に ル す る 天目 を 葉 択 い チ T5 ウ マー の を 付け て くだ さい 。 イン スト ー ル し な (いい 項 目 は 、
ユウ
上 示 ポー ネン ト の 一 部 だ けが イン スト ー) べ C の コン ポー ネン ト を で
CET キッ CreD メ ネン トキ
オプ ショ ン ⑩) 記 明
aaAauk ポー ト け の
アイ ル を イン スト ー ル し ま
ー イ ンス トー ル 先 の フル
DYrrowram files\Microsoft ebedded G+ 40
D に 必 委 な 宮 量 : Re 日
b の 空き 容量 PB
heytr |
⑧eMbedded Msual CHF 4 0 イン スト ー ル 終了 後 、「 Standard SLKfor Wndows CE .NET セッ ト アッ プ
ウィ ザー ド へ よう こそ 」 が 表示 され ます の で 、「 次 へ 」 を 選択 し 、 イ ンス トー ル 作 業 を 継続 ・ 完了 さ
せ て くだ さい 。
IT SIardard SUK 1or Wirndowes CE
5 Standard SDK for Vindows CE_
8 セッ ト ア ッ プ ウィ ザー ド へ よう
こそ
で ゼット アッ プ の < ザー ド で は Samderd 3DK for Windoms CE
.NET を エビ ュー に イン スト ー ル し ます 。 [た へ ] を 5 5 り し て 推
款 する か [キャンセル ) も の ゥ ウ し て セッ トチ 2 ブウ ィ ザ ー ド を -…
NEC Confidential 6
( 2 ) eMbedded Msual QH+ 4 0 Service Pack 1 の イン スト ー ル
eMbedded VM sual CH 4 0 の イン スト 一 ル が 終了 し た ら 、 以 下 の 手 順 で eMbedded V sual GT 4 0 Service
二 elk 1 を イン スドー ル し ます 。
① ダ ウン ロー ド し た eMbedded Msual CHH 4 0 Service Pack 1 の eVJ4SP1J. exe を 実行 し 、
解凍 し ます 。
② 解 凍 フ ォ ル ダ 内 の Setup. exe を 実行 し ます 。
③ 画 面 の 指示 に 従っ て イン スト ー ル し ます 。
語 cMocdded Visusl Ct 4U SPT ゼット アッ プ
eMbedded Visual C++ 4.0 SP1 セッ ト
アッ プ ウィ ザー ド へ よう こそ
セッ ト ア ッ ゥ プ ウィ ザー ド | は nf4bedded Jal C++ 4.0 SPI を ゴン
ピュ ー 器 に イン スト ー ル し ます 。 [大 へ ] を りり ゥ クウ し て 終 行 する 地 、
キャ ン ゼ セル ] を りり ゥ の し て セッ ト ア ゥ ブ ウィザー ド を 維 了 し ます 。
( 3 ) signmmronIII SLK の イン スト ー ル
eMbedded Msual Gr+ 4 0 Serwce Pack 1 の イン スト 一 ル が 終了 し たら 、「 signmrionIII_SLK nsi」 を
実行 し 、 画 面 の 指示 に 従っ て イン スト ーー ル し て くだ さい 。
: iemarion SDK セッ トッ プ |
sigmarionll SDK セッ ト ア ッ プ ウィ
で sy ザー ド へ よう こそ
セッ ト ア ゥ プ ウィ ザー ド で は siomarionii SDK 正 能 の コリ ピュ ー タ
へ の イ ンス トー ル の 方法 を 誠 ます 。 sigmarion]it SDK を コン
っ
る か (キャンセル を りり 5 り L て セッ ト P ッ プ ウィ ザー ド を 続 了 し て く
に で し le
NEC Confidential 7
2 . 4 ソフ トウ ェ ア の コン パイ ル
eMbedded M sual CHF 4 0 で プロ ジェ クト また は ワー クス ペー ス を 開き 、 以 下 の ( 1 ) て ( 3 ) の 設定 を
し て か ら ア プリ ケー ショ ン を コン パイ ル し て くだ さい 。
( 1 ) アク ティ ブ な 構成 の 設定
メニ ュー バー の 下 に ある [アク ティ ブ な 構成 の 選択 ] ボッ クス で 「 Wn32( WP ANWAI) Rel ease」
を 選択 し て くだ さい 。
※ ア クティ ブ な 構成 は 、 メ ニュ ー か ら [ ビ ルド (B] つ [アク ティ ブ な 構成 の 設定 (0] を クリ ッ ク し 、
一 覧 か ら 「 WWn32( WE ARWAI) Rel ease」 を 含ん だ プロ ジェ クト 構成 を 選択 し て 、[Q
ボタ ン を クリ ッ ク す る こと で も 設定 で きま す 。
nft eMbedd 1 は は ー ES cp
ビ
田 | 層 回 琶 |% 晶 島 |S・5
| (Globals》 ( 向 川 glnbal members 国 ーー トー ペー
Fr 嘱 igmarinnISDK 尾 上 in32 WOE ARMV4D BBlane6 ョ | arian 軸 SDK Deyice 時
ーッ ョ ン 用 の エン トリ ボイン ト の 定
曰 - 本 test1 classes P
Hinclude “stdafx.h”
( 2 ) アク ティ ブ な WE 構成 の 設定
メニ ュー バー の 下 に ある [アク ティ ブ な WE 構成 を 選択 ] ボッ クス で 「 signmrionIII SLK
を 選択 し て くだ さい 。
※ ア クティ ブ な WE 構成 は 、 メ ニュ ー か ら [ビル ド (BB] 一 [アク ティ ブ プラッ ト フォ ー ム の 設定 (S) ]
を クリ ッ ク し 、 一 覧 か ら 「 signmrionIII SLK 」 を 選択 し て 、[ CM ボタン を クリ ッ ク す る こと
で も 設定 で きま す 。
| Glahals』 | global members) ゅ w MyRegeisterClass
nr _ 諾 e Enaronm SDK_ | 隊 in32 MGE RMM4D Release sjgmarian 還 SDK Device 司
= 計 二 本 | // testl.cpp : アブ リケーション 用 の エン トリ ポイ ント の 定
日 - 間 test1 classes //
include “stdafx.h"
NEC Confidential 8
( 3 ) 既定 の デバ イス の 設定
アク ティ ブ な WE 構成 の 設定 を 行う こと で 、 メ ニュ ー バ ー の 下 に ある [既定 の デバ イス の 選択 ]
ボッ クス が 自動 的 に 「 signmrionIII SLK Tsvi ce 」 へ 変わ り ま す 。
ebedde 10++ - [est1 cPF]
EZ に 『 直 :」 ーー 時
| (Glahals》 (AIlglnbal members) 国 | ぁ MyReeisterClass SIE シン
or Femyom 品 ligmarinn 和 LSDK 。 思 "in32 MCE RMVdD Release Fme om SDK peer
// test1.cpp : zer チ FE ソノ 用 G
に EE コロ ーー //
include “stdafx.h”
2 . 5 ソフト ウェ ア の 動作 確認 と デバ ッ グ
si gnmri onIII SLK 専 用 の エミ ュ レ ーション 環境 は あり ませ ん 。
動作 確認 や デバ ッ ク す る 際 は signmri onIII 実機 を ご 用 意 頂 く か 、St andard SLK 内 の 標準 的 な
エミ ュ レ ーション 環境 を 使用 し て くだ さい 。
NEC Confidential 9
3 . ソフ トウ ェ ア を 移植 する 際 の 注意 点
si gnmri onlI 用 の ソフ トウ ェ ア は 、 以 下 の 点 に 注意 し て si gmmrionIII へ 移植 し て くだ さい 。
3. 1 画面 サイ ズ
si gmari onIII の 画面 サイ ズ は 800X 480 ド ッ ト の た め 、 表 示 を 行う ソフ トウ ェ ア は
メニ ュー の 配置 や ウィ ンド ウサ イズ を 調整 し て くだ さい 。
Handheld PC 2000
は 村 き 12:00 邊 sigrmrionlII
NEC Confidential 10
3 . 2 フォ ント サイ ズ 設 定
si grmrionIII で は コン トロ ー ル パネ ル の 「 フォ ント サイ ズ 設 定 」 プ ロ パ ティ を 使っ て 、 シ ステ ム フ ォ ント
お よび スク ロー ル バ ー・ ボ タン の サイ ズ 変 更 を 標準 ・ 大 ・ 最 大 の 3 つの 設定 で 切り 替え る こと が で きま す 。
表示 を 行う ソフ トウ ェ ア は サイ ズ 変 更 を 考慮 し て メニ ュー が 隠れ た り 、 ダ イア ログ が 画面 か ら は み 出 た りす
る こと が な いよ うに メニ ュー の 配置 や ウィ ンド ウサ イズ を 調整 し て くだ さい 。
イレ ち ーネット 鞍 情 誌 記 (所 加 ) 還 」 IOki 孤 ]
1
連 前 東 者 名 (WE 通 計 手品 (a)
| 隊 革 電話 デー 応 画 放 ー ド ) 記
2oNfiE | Wi モ - ド ) 関
+ 外線 発信 番号 (に |
還 い 7、 了 ウ セス ポイ ント (a)
wwrewr =
市 汗 記 替 (Cr| 電話 秋 号 Dilsenn
Losw | | *re) | | *wcfy |
プア オン ト サ イ ズ 「 標準 」
gi の ヨ 6 う 川 ) 用 |lek| 了 |
1/3
通信 環境 名 (WW: 通信 手段 (M)
了 了 電話 げ ー5 通 作 モ お)
ブロ 内 イ 尽 (B): | |
外線 発信 番号 (G): |
知 林 専用
ド の 他 アウ ゼス 直 イ ント AA)
帯 電話 な 9601 マン TCP/IP の 設定 .… 仙
市 外 局 番 (C): | 電話 番号 (D): oeo1
フォ ント サイ ズ 「 大 ]
イ ウ に イリ トロ 閣 信 設定 ( 下 加 )
173
通信 環境 名 (W): 通信 手段 (M)
具 帯 電話 (デー 通信 モー ド )
ブロ バイ (P): | |
e 外線 発信 番号 (G): |
アリ ゼス ポイ ント (A)
陣 mgrzooh 。
市 外 局 番 (C): | 電話 番号 (D): 謝 9601
OMA 稀 末 専 用
の 他
フォ ント サイ ズ 「 最大 」
NEC Confidential 11
3. 3 カタ カナ 文字 の 表示
Wndovws C む . NET で は メニ ュー や ダイ アロ グ な ど で 表 示す る カタ カナ 文字 に 全角 カタ カナ 文字 を 使用 し ます 。
表示 を 行う ソフ トウ ェ ア は 半角 カタ カナ 文字 を 全角 カタ カナ 文字 へ 変更 し て くだ さい 。
3 . 4 メモ リカ ー ド の フォ ル ダ 名
デー タ の 保存 先 は 内 部 メモ リ 以外 に 以下 の 2 つの メモ リ カー ド の フォ ル ダ が あり ます 。
コン バク トラ フラ ッシュ メモ リカ ー ド : “メモ リ カー ドア
( 注意 ) ” メモ リ カー ド ” の カタ カナ 文字 は 全角 カタ カナ 文字 を 使用 し ます 。
2 リ り / の カ ” の 間 に 半 角 ス ペー ス 文字 が 入り ます 。
MMC プ SD メモ リカ ー ド 2726D 坦 り ドド
( 注意 ) " SD メモ リ カー ド ” の カタ カナ 文字 は 全角 カタ カナ 文字 を 使用 し ます 。
" げ と " メ ” の 間 、" リ ” と” カカ” の 間 に 半 角 ス ペー ス 文 字 が 入り ます 。
3.5 イン スト ー ラ の 設定
アプ リケーション の イン スト ー ラ ( QAB フ ァイル ) 作成 時 に 必要 な イン スト ー ル 設定 ファ イル
( INY フ ァイル ) は 以下 の パラ メー タ を 指定 し て くだ さい 。
FrocessorTVpe : 1824
UnsupportedP atforns : ここ は 特に 指定 し な く て 良い で す 。
VersionMn: 4
VersionMz: 4
NEC Confidential 12
4 . Signarionlll 専用 AP
4 . 1 バッ クラ イト 制御
4. 1 . 1 バッ クラ イト デバ イス 制御 の 概要
本 装置 の バッ クラ イト は 、 下 表 の よう に 輝 度 レ ベル 0 か ら 輝 度 レ ベル 7 まで の 8 段階 の 制御 が 可能 で す 。
輝度 レベ ル 輝度
/ 明る い
6
5
タ バッ クラ イト N
2
層
7 藻 い
の バッ クラ イト CFF
eateFile 関数 を 使っ て バッ クラ イト デバ イス を オー プン し 、PDevi cel oControl 関数 で バッ クラ イト
デバ イス を 制御 し ます 。
表 : バッ クラ イト 制御 の コン ト ロー ルコ ー ド 一 覧
コン トロ ー ル コー ド
IQCTT。 BAOIGTT GET STATIE | バッ クラ イト の 点灯 / 消 灯 情 報 を 取得 する
IOPIT BACKIIGHT SET STATE バッ クラ イト の 点灯 / 消 灯 を 行う
IOCITL BAOIGT_ GET_STATE2 | バッ クラ イト の 輝度 レベ ル 情 報 を 取得 する
IOPIL BACKIGHT SET STAIE2 | バッ クラ イト の 輝度 レベ ル を 設定 する
バッ クラ イト デバ イス の 制御 に 必要 な 構造 体 、 定 数 は 、 pc 刀 7g7Z. ヵ に 定義 され て いま す 。
アプ リケーション プロ グラ ム は 、 コ ン パ イル 時 に 本 ファ イル を イン クル ー ド し て くだ さい 。
標準 イン スト ー ル の 場合 の ZcZ7gZ. カ の 格納 先 は 以下 の 通り で す 。
G 堂 rogramRil es や WWndows CE Tool s 3ce410 稚 1i gnmri onlI] SIRSW ncl ude 科 NNW 殺
NEC Confidential 13
4 . 1 . 2 バッ クラ イト デバ イス の オー プン
CreateFile 関数 を 使っ て バッ クラ イト デバ イス を オー プン し ます 。
HANYE eg7e77/
LPCISIR / り 7/ e/M7g
DOD Os7 7e6 の cess
DOD oroZz7e/l の 2 ら
LPSEOHRTY ATTR BUTES 7S6cZ777 ア アル 777 7 gs,
DOD Ogg77 77 57 77 7 の 7
DVCD 77 2gsy4 ル 77 ル 777 7 9s,
HANTE 77677 の / g7 67/ 6
):
パラ メー タ /。7/e/Mze
バッ クラ イト デバ イス を 示す ヌル 文字 で 終わ る 文字 列 を 指す ポイ ンタ 。 こ の 文字 列 は 、
“ BK1"” で な けれ ば な り ま せん 。
Zs7 76 の cesy
バッ クラ イト デバ イス の アク セス の 種類 を 指定 し ます 。GENERIC READ と GONERCVWRTE
の 両方 を 指定 し て くだ さい 。
Or6727e/l の 2 ら
バッ クラ イト デバ イス の 共有 方 法 を 指定 し ます 。ILE SHARP READ と RIE SHNRE VA TE
の 両方 を 指定 し て くだ さい 。
7//56C77 7 アイ 777 太 克 es
Wndows で は 、 こ の パラ メー タ は 無視 され ます 。NJL を 指定 し て くだ さい 。
eg77 77 5777 77 7
ファ イル が 存在 する と き 、 ま た は し な いと き の 動 作 を 指定 し ます 。 バッ クラ イト デバ イス
を オー プン する と き は 、QOPENEXSTING を 指定 し な けれ ば な り ま せん 。
Or77 ggsy422 イ 777 が ey
バッ クラ イト デバ イス で は 、 こ の パラ メー タ は 無視 され ます 。0 を 指定 し て くだ さい 。
767 の / 27 6777 6
WndowsCE で は 、 こ の パラ メー タ は 無視 され ます 。NIL を 指定 し て くだ さい 。
戻り 値 オー プン が 正常 に 終了 し た 場合 は 、 バ ッ ク ラ イト デバ イス の デバ イス ハン ド ル が 返り ます 。
それ 以外 の 場合 は 、INAID FANTE VAIE が 返り ます 。
NEC Confidential 14
4. 1. 3 バッ クラ イト デバ イス の クロ ー ズ
バッ クラ イト デバ イス の 制御 を 終了 する と き は 、d ロ oseHgndl e 関数 を 使っ て バッ クラ イト デバ イス の
ハン ド ル を 無効 こ に し て くだ さい 。
RT 0 ose/ 万 7
HANTE 7 が eg7
):
パラ メー タ 7 eo/
オー プン され て いる バッ クラ イト デバ イス の デバ イス ハン ド ル を 指定 し ます 。
戻り 値 クロ ー ズ が 正常 に 終了 し た 場合 は 、TRLE が 返り ます 。 そ れ 以 外 の 場合 は FALSE が 返り ます 。
NEC Confidential 15
4. 1. 4 バッ クラ イト デバ イス の 制御
Devi cel oControl 関数 を 使っ て バッ クラ イト デバ イス に コン ト ロー ルコ ー ド を 直接 送り 、 指 定 の 動作 を
実行 させ ます 。
区 条 , 7 ce/ oC の 277 の / (
HANTE 27 と ら
DCD Or7 oOC の 277 の C の 52 ら
LPMVID 7 0/77 尽 が 7e7,
DD 7/ 7 が 7o75 2 ら
LPMID タプ 2 が ガン
DCD 77 万 7e757 2 ら
TPDXCD 7 の は 7 9s/ の 7 77722 の
LPOMERAPFED 7 り づ 677 22O6 の
パラ メー タ 7/ あ 7 Ce
オー プン され て いる バッ クラ イト デバ イス の デバ イス ハン ド ル を 指定 し ます 。
7OC の 777 の / C の 6
バッ クラ イト の コン ト ロー ルコ ー ド を 指定 する 。 ア プリ ケー ショ ン は 、 以 下 に 示す 値 を
指定 する こと が で きま す 。
IOCTT BACKIGTT GET_STATE バッ クラ イト の 京 灯 / 消 灯 情 報 を 取得 する 。
IOCTT BACHGTT SET_STATE バッ クラ イト の 京 灯 / 消 灯 を 設定 する 。
IOCTT_BACIGTT GET_STATF2 バッ クラ イト の 輝度 レベ ル 情 報 を 取得 する 。
IOCITL_BACIGTT SET_STATF2 バッ クラ イト の 輝度 レベ ル を 設定 する 。
7//7 有 2 が 77
goC の 777o7 C の oe で 指定 し た 動作 に 必要 な デー タ を 含む 構造 体 を 示す ポイ ンタ 。
入力 デー タ を 必要 と し な い コ ント ロー ルコ ー ド を goCoz77o の ge に 指定 し た と き は 、
NIL を 指定 し ます 。
77 7 尽 が 7757 6
7p/7 只 7er で 指定 し た バッ ファ の サイ ズ を バイ ト 単位 で 指定 し ます 。
7 7 万 が 7g7-
OroC の 77 の / Co26 で 指定 し た 動作 に 必要 な デー タ を 含む 構造 体 を 示す ポイ ンタ 。
出力 デー タ を 必要 と し な い コ ント ロー ルコ ー ド を goCoz77o Co2e に 指定 し た と き は 、
ロ
NIL を 指定 し ます 。
7 万 が er57 Z@
NEC Confidential 16
戻り 値
NEC Confidential
7pOZZ7e7 で 指定 し た バッ ファ の サイ ズ を バイ ト 単位 で 指定 し ます 。
// 尽 7 es/ や 7 7726 の
7/ の 7 万 ZZ で 指定 し た バッ ファ に 実際 に 返さ れ た デー タ の バイ ト 数 を 受け 取る DWORD 変
数 の ポイ ンタ 。
7/ ツ 7 gpDe の
WndowsCE で は この パラ メー タ は 無 祝 さ れ ま す 。NIL を 指定 し て くだ さい 。
goCoZ7 の Ce で 指定 し た 動作 が 正常 に 終了 し た 場合 は 、TRUE が 返り ます 。 そ ね れ 以外 の
場合 は EAISE が 返り ます 。
17
( 1 ) IGPTL BACIGTT GET STATE
機 能
バッ クラ イト の 点 灯 / 消 灯 情 報 を 取得 し ます 。
パラ メー タ
の 2 が 7 カ
この ファ ンク ショ ン で は 、 こ の パラ メー タ は 使用 し ませ ん 。NTIL を 指定 し て くだ さい 。
の re77/ カ
この ファ ンク ショ ン で は 、 こ の パラ メー タ は 使用 し ませ ん 。0 を 指定 し て くだ さい 。
の ング の //
BACAIGT QNOFTF SETTITNG 構 造 体 を 含む バッ ファ の ポイ ンタ 。
typedef struct tag BAJIGTT QYTFT SETTINT [
68『 72 び 7667 77 カ の
DWRD 7 の ye7Y ら "
) BACTIGTT QNFTE_SETTINJ
の ⑦ び 7S567 77 7 カケ
バッ クラ イト の 点灯 情報 を 返し ます 。
TREE バッ クラ イト は 点灯 し て いる
FALSE バッ クラ イト は 消灯 し て いる
/ 宅 se7Y ら
この フィ ー ル ド は 機能 拡張 の た め に 予約 され て お り 、0 を 返し ます 。
の e72C が
pg が OZ で 指定 し た バッ ファ の バイ ト 数 を 指定 し ます 。
24C7 7g/ の
pg が OZ で 指定 し た バッ ファ に 実際 に 返さ れ た デー タ の バイ ト 数 を 受け 取る DWORD 変数 の ポイ ンタ 。
NEC Confidential 18
( 2 ) IGPTL BACIGTT SET STATE
機 能
バッ クラ イト の 点灯 / 消 灯 を 設定 し ます 。
本 体 の フタ が 閉じ た 状態 で バッ クラ イト の 点灯 を 設定 し て も 、 バ ッ ク ラ イト は 点 灯 し ませ ん 。
パラ メー タ
の 7 カ
BACKIGTT ONYTFE_ SETTI NG 構造 体 を 含む バッ ファ の ポイ ンタ 。
typedef struct tag BAJIGTT QYTFT SETTINT [
68『 72 び 7667 77 7
DWRD 7 の ye7Y ら "
) BACTIGTT QNFTE_SETTINJ
⑦2 び 7567 77 7
バッ クラ イト の 点 灯 消灯 を 指定 し ます 。
TRE ノッ ツラ イド る 点灯 する
FALSE バッ クラ イト を 消灯 する
/ 宅 serY ら
この フィ ー ル ド は 機能 拡張 の た め に 予約 され て お り 、0 を 指定 し ます 。
要 e777 カ
pg が 7 ヵ で 指定 し た バッ ファ の バイ ト 数 を 指定 し ます 。
の が の Z
この ファ ンク ショ ン で は 、 こ の パラ メー タ は 使用 し ませ ん 。NLIL を 指定 し て くだ さい 。
の 7 の Z
この ファ ンク ショ ン で は 、 こ の パラ メー タ は 使用 し ませ ん 。0 を 指定 し て くだ さい 。
247 7g/ の
この ファ ンク ショ ン で は 、 こ の パラ メー タ は 使用 し ませ ん 。 NIL を 指定 し て くだ さい 。
NEC Confidential 19
(3 ) IQPITL BACAIGHTT GET STAIT2
機 能
バッ クラ イト の 輝度 レベ ル 情 報 を 取得 する 。
パラ メー タ
の 7 カ
この ファ ンク ショ ン で は 、
この パラ メー タ は 使用 し ませ ん 。 NIL を 指定 し て くだ さい 。
の re777/7 カ
この ファ ンク ショ ン で は 、 こ の パラ メー タ は 使用 し ませ ん 。0 を 指定 し て くだ さい 。
の が
BACAIGTT LEVEL SETTT IN 構造 体 を 含む バッ ファ の ポイ ンタ 。
typedef struct tag BAJIGI LEVEL SETTINT [
UN 777 757 7
DOD serY ら :
) BACTIGT LEVEL SETIINJ
777 67257 7 ア
バッ クラ イト の 輝度 レベ ル を 返し ます 。
0 は バッ クラ イト 消灯 を 示す 。
/ 宅 se7Y ら
この フィ ー ル ド は 機能 拡張 の た め に 予約 され て お り 、0 を 返し ます 。
67 の
pg が OZ で 指定 し た バッ ファ の バイ ト 数 を 指定 し ます 。
247 7g/ の
pg が OZ で 指定 し た バッ ファ に 実際 に 返さ れ た デー タ の バイ ト 数 を 受け 取る DWORD 変数 の ポイ ンタ 。
NEC Confidential 20
( 4 ) IQPITL BACIGHTT SET STAIT2
機 能
バッ クラ イト の 輝度 レベ ル 1 て 7 の 輝度 変更 を 行い ます 。
本 機能 は 、 バ パッ クラ イト 点灯 (輝度 レベ ル 1 7 ) 状態 で 実行 し て くだ さい 。
訂 度 レベ ル 0 (バッ クラ イト 消灯 ) 状態 で 本 機能 を 実行 する と 、 前 回 点灯 時 の 輝度 レベ ル で
点灯 する の み と な り 、 指 定 し た 輝度 レベ ル は 無視 され ます 。
パラ メー タ
の が 7 カ
BACIGTT IFM SETIIN 構 造 体 を 含む バッ ファ の ポイ ンタ 。
typedef struct tag BAJIGHT LEVE SETTINT [
UN 777 67577
DD err
) BAOTIGT LEVEL SETITINJ
777 @727 7 ア
バッ クラ イト の 輝度 レベ ル を 指定 し ます 。
指定 で きる 輝度 レベ ル は 1 て 7 まで で す 。
77es77 ア に 8( 以上 ) を 指定 し た 場合 : 輝度 レベ ル 7 に 設定 。
777ezs77 ア に 0 を 指定 し た 場合 : 輝度 レベ ル の 設定 を せ ず に 処理 を 終了 。
ye7Y ら
この フィ ー ル ド は 機能 拡張 の た め に 予約 され て いま す 。0 を 指定 し て くだ さい 。
本 訪 e77 7
pg77 ヵ で 指定 し た バッ ファ の バイ ト 数 を 指定 し て くだ さい 。
リク ラク の //
この ファ ンク ショ ン で は 、 こ の パラ メー タ は 使用 し ませ ん 。NLIL を 指定 し て くだ さい 。
7 プ の 209
この ファ ンク ショ ン で は 、 こ の パラ メー タ は 使用 し ませ ん 。0 を 指定 し て くだ さい 。
274c7 7g/ の
この ファ ンク ショ ン で は 、 こ の パラ メー タ は 使用 し ませ ん 。NLIL を 指定 し て くだ さい 。
NEC Confidential 21
4. 1 . 5 コー ディ ング 例
バッ クラ イト を 制御 する サン プル コー ド を 記載 し ます 。 以 下 の プ ログ ラム は 、Psvi cel oControl を
使用 し て 、 バ ッ ク ラ イト の 輝度 を 変更 し て いま す 。
震 nclude く <windows.h>
震 nclude <BCKLIGHT.H> // パッ クラ イト ドラ イ バ の ヘッ ダフ ァイル
BOOL ChangeBacklightMode(int iChangeLevel)
{
BOOL bRet = FALSE:
BOOL bRetDev:
DWORD dwOutSize:
BACKLIGHT_ONOFF_SETTING BacklightOnOff:
BACKLIGHT_LEVEL SETTING BacklightLevel:
HANDLE hBcklight = NULL:
// パッ クラ イト ドラ イ バ を オー プン
hBcklight = CreateFile(L "BKL1:",
GENERIC_READIGENERIC_WRITE,
FILE_SHARE_READIFILE_SHARE_WRITE,
NULL.,
OPEN_EXISTING,
0,
0):
if (hBcklight == INVALID_HANDLE_VALUE) {
return bRet:
]
// バッ クラ イト の 点灯 消灯 状態 を 取得 する
bRetDev = DeviceloControl(hBcklight,
IOCTL_BACKLIGHT_GET_STATE,
NULL,
0,
(LPVOID)&BacklightOnOff,
sizeof(BacklightOnOff),
&dwOutSize,
NULL):
// 消灯 状態 の 場合 は バッ クラ イト を 点灯 する
if (bRetDev) {
if (BacklightOnOff.OnOffSetting) {
BacklightOnOff.OnOffSetting = TRUE:
bRetDev = DeviceloControl(hBcklight,
IOCTL BACKLIGHT_SET_STATE,
(LPVOID)&BacklightOnOff,
sizeof(BacklightOnOff),
NULL,
0,
NULL,
NULL):
( 次 ペー ジ へ )
NEC Confidential 22
// バッ クラ イト の 輝度 を 設定 する
if (bRetDev) {
memset(&BacklightLevel 0, sizeof(BacklightLevel)):
BacklightLevel.Intensity = iChangeLeve[:
BacklightLevel.Reserve =0:
bRetDev = DeviceloControl(hBcklight,
IOCTL_BACKLIGHT_SET_STATE2,
(LPVOID)&BacklightLevel,
sizeof(BacklightLevel),
NULL,
0
NULL,
NULL):
if (bRetDev) {
bRet = TRUE:
]
]
// パッ クラ イト ドラ イ バ を クロ ー ズ
CloseHandle(hBcklight):
return bRet:
NEC Confidential 23
5 . アプ リケーション 開発 用 の 参考 資料
1 バッ テリ 状態 の 取得
本 装置 の バッ テリ 状態 を 取得 する 場合 は 、 Get SystenPower St at us 区 2 関数 を 使用 し ます 。
RE 条 CZZ Sys7 er77 の er g7 5/ 攻 グ (
FPSYSIHMPOWR SIATUOS BE2 - pyS7e77 の re7S7 g7 5/ ク
DD の 7G72
68『 ア /Z2g7 6
):
パラ メー タ Sys7 ez2 の eSf g/ dg/ 不 ク
バッ テリ 状態 を 格納 する 構造 体 SYSTEMFOWWR STAIUS ES2 型 変数 の ポイ ンタ を
指定 し ます 。 構造 体 SYSIEMFOWR STAXIUS ES2 の 詳細 を 以下 に 示し ます 。
typedef struct _SYSIEMPOWR_STATUS_E2 {
BYIE 477 eS7 g7 25
BYIE 記 /7e7777 2
BYIE 認 77g ア 7 76/ も 7Ce77:
BYIE /serreg7
DD 認 7 アア 7 ア 77 7 用
DOD 認 7 gg ア 777 が 677 7
BYIE / 故 serreo の 2
BYIE 記 CZ の 認 7 の アア 7 gg
BYIE 認め 故 7/7 の アプ 6/ や Ce67 が :
BYIE /serreg?
の CK の 7 77 ア 7677 7 婦
の CK の 7 の の 7777 7677 7
DD /7 gg ア 【 の 7 7 2gg
DWORD 認 7 gg アル 7767 が :
DOD /7 み アル 4 ルル e72geC77677:
DCD /7 の アル 4 ルル 67.2g6/ 7 67 7 ・
DOD 記 7 gr 女 24 の 7C の 729777 の
DWORD 記 /7 の ア 787pe727 77 ら
DCRD 2Z の /7 の アル の 7 gg らら
BYIE //7@ の ル 7e77 57 7 万
) SYSIEM POWR STATUS ES ウ * PFSYSTEMPOWR_STATUS_E2 ウ * TPFSYSTEMPOWWR STATUS BE ウ :
SYSIEMPOWR STATUS_ EE の 下記 メン バ は 固定 値 と な り ま す 。
メン バ 値
77 677 ア 7 ア 677 7 の BATTERY LIFE UNQOAN
妃 77 の 7 ア 77 7 77 677 7 BATTFRY IIFE UNGOW
c 太 の 認 77 の 7 アア 77 7e/ や 7Ce77 0
CZ の の 77 の 7 ア 7 ア oe77 7g BATTERY LIFE UNQOAN
CZ の 77 e77777 7 7/7 7677 7 の BATTERY LIFE UNQOAN
77 アル の / 7 gge 0
77 7 ア 77677 0
77 の アル e7296C77 ア 67 0
77 の アル 67.256777 @7r2/ 0
77 er の 77C の 729777 の 0
NEC Confidential 24
77 の ア 7677 の 6727 77 ら 6 0
太 の 認 /7 @ の アル の / 7 ggg 0
また 、AO 接 続 状態 で バッ テリ 満 充 電 時 に は 、 以 下 の メ ン バ は 固定 値 と な り ま す 。
メン バ 値
7 の アグ gg BATTERY FTAG NO) BATTERY
77 7 アプ 7e77 97 7 ア BATTERY CHFMSIRY UNO
の re7
Ss7 e77 の re7. ag7 gy 不 ク で 示さ れる バッ ファ の サイ ズ を バイト 単位 で 指定 し ます 。
CZ2g7 e
TRUE を 設定 する と 最新 の バッ テリ 状態 を 取得 し 、FALSE を 指定 する と キャ ッシュ に
格納 され て いる 情報 を 取得 し ます 。 キ ャ ッシュ の 情報 は 現在 の 状態 か ら 数 秒 前 の 情報 に
な り ま す 。
戻り 値 バッ テリ 状態 を 正常 に 取得 し た 場合 は 0 以外 の 値 が 返り ます 。 そ れ 以 外 は 0 が 返り ます 。
NEC Confidential 25
【 コー ディ ング 例 】
バッ テリ 情報 を 取得 する サン プル コー ド を 以下 に 記載 し ます 。 こ の コー ド で は
Get Syst enowerStatusEx2 関数 を 実行 し 、 バ ッ テ リ 情報 を SYSTEMPOVWR_STATU5_B② 型 の 変数
sysPoverStat usEx2 に 格納 し ます 。 ま た 、sysPover St atusEx2 の メン バ 変 数 か ら バッ テリ の 詳細 を
メッ セー ジ ボ ポッ クス で 表示 し ます 。
#include く windows.h>
#define BATTERY_FLAG_HIGH 0x01
#define BATTERY_FLAG_LOW 0x02
#define BATTERY_FLAG_CRITICAL 0x04
#define BATTERY_FLAG_CHARGING 0x08
#define BATTERY_FLAG_NO_SYSTEM_BATTERY 0x80
#define MAX_BUF_SIZE 256
BOOL GetBatteryInfo(void)
{
DWORD dwRtn:
TCHAR szMsg[MAX_BUF_SIZE]:
TCHAR szTmp[MAX_BUF_SIZE]:
SYSTEM_POWER_STATUS_EX2 sysPowerStatusEx2:
DWORD dwLength = sizeof(SYSTEM_POWER_STATUS EX2):
// バッ テリ 情報 の 取得
dwRtn = GetSystemPowerStatusEx2(&sysPowerStatusEx2, dwLength, TRUE):
if (dwRtn) {
// メッ セー ジ ボ ッ クス の 表示 内 容 作成
// 稼動 状態
*szMsg = TEXT('\07):
switch (sysPowerStatusEx2.ACLineStatus) {
case AC_LINE_OFFLINE:
lstrcat(szMsg, TEXT(“ 稼 動 状態 : バッ テリ 稼動 状態 \n“)):
break:
case AC_LINE_ONLINE:
lstrcat(szMsg, TEXT(“ 稼動 状態 : AC 電源 接続 状態 n)):
break:
case AC_LINE BACKUP_POWER:
lstrcat(szMsg, TEXT(“ 稼動 状態 : バッ ソル アッ プ バッ テリ 稼動 状態 \n)):
break:
default:
lstrcat(szMsg, TEXT(“ 稼 動 状態 : 不明 \n”)):
break:
( 次 ペー ジ へ )
NEC Confidential 26
// バッ テリ 状態
switch (sysPowerStatusEx2.BatteryFlag) {
case BATTERY_FLAG_HIGH:
lstrcat(szMsg, TEXT(“" バ ッ テ リ 状態 : High\n”)):
break:
case BATTERY_FLAG LOW:
lstrcat(szMsg, TEXT(" バ ッ テ リ 状態 : Low\n?)):
break:
case BATTERY_FLAG_CRITICAL:
lstrcat(szMsg, TEXT(“ バ ッ テ リ 状態 : Critical\n?)):
break:
case BATTERY_FLAG_CHARGING:
lstrcat(szMsg, TEXT(“ バ ッ テ リ 状態 : Charging\n”)):
break:
case BATTERY_FLAG_NO_SYSTEM_BATTERY:
lstrcat(szMsg, TEXT(“ バ ッ テ リ 状態 : No system battery\n”)):
break:
default:
lstrcat(szMsg, TEXT(“ バ ッ テ リ 状態 : Unknown status\n”)):
break:
]
// パッ テリ 残 量
wsprintf(szTmp, TEXT(“ バ ッ テ リ 残 量 : %d %%\n), sysPowerStatusEx2.BatteryLifePercent):
lstrcat(szMsg, szTmp):
// バッ テリ 種別
switch (sysPowerStatusEx2.BatteryChemistry) {
case BATTERY_CHEMISTRY_ALKALINE:
lstrcat(szMsg, TEXT(“ バ ッ テ リ 種別 : Alkaline\n”)):
break:
case BATTERY_CHEMISTRY_NICD:
lstrcat(szMsg, TEXT(“ バ ッ テ リ 種別 : Nickel Cadmium\n”)):
break:
case BATTERY_CHEMISTRY_NIMH-:
lstrcat(szMsg, TEXT(“ バ パッ テリ 種別 : Nickel Metal Hydride\n”)):
break:
case BATTERY_CHEMISTRY_LION:
lstrcat(szMsg, TEXT(“ バ パッ テリ 種別 : Lithium on \n?)):
break:
case BATTERY_CHEMISTRY_LIPOLY:
lstrcat(szMsg, TEXT(“ バ パッ テリ 種別 : Lithium Polymer\n”)):
break:
default:
lstrcat(szMsg, TEXT(" バ ッ テ リ 種別 : 不明 \n”)):
break:
]
// メッ セー ジ ボ ッ クス 表示
MessageBox(NULL, szMsg, TEXT("GetBatteryInfo), MB_OK | MB_ICONINFORMATION):
return TRUE:
]
return FALSE:
NEC Confidential 27
5 2 ジン トウ ツウ エアリ セッ ド
ここ で は 本 装置 裏側 に ある リセ ッ ト スイ ッ チ を 押し た と き と 同 じ 動作 を 、 ア プリ ケー ショ ン か ら 行 う
方 法 に つい て 説明 し ます 。
アプ リケーション か ら ソ フト ウェ アリ セッ ト する 場合 、T/O ユ ント ロー ルコ ー ド に 1OCIL_HA_ REBOT を
指定 し て KernelloControl 関数 を 実行 し ます 。
区 条 , ore/ 7oC27Z7 の / (
DOD Or7 oOC の 7 7 の C の 5 の ら
LPMVID 7 // 7
DOD 7 7 万 が 57 26
LPMVID 7pOZ 万
DOD 707 婦 が 97 2 ら
LPGD 7 は 7 es/ 宅 7 77726 の
ラメ ー タ の roC の 7Z7 の / C の 26
I/ 〇 コン トロール コー ド を 指定 し ます 。 本 装置 を ソフ トウ ェ ア リ セ ッ ト する 場合 、
IOPIL FL REBOYT を 指定 し て くだ さい 。
7//7 ラ が
使用 し ませ ん 。NJL を 指定 し て くだ さい 。
7 7 尽 が 9 Z@
使用 し ませ ん 。0 を 指定 し て くだ さい 。
7 の 7 が
この パラ メー タ は 無視 され ます 。NTL を 指定 し て くだ さい 。
7 万 が 57 Z@
使用 し ませ ん 。0 を 指定 し て くだ さい 。
7 7 es/ や 7 77772 の
使用 し ませ ん 。NJIL を 指定 し て くだ さい 。
戻り 値 正常 に 終了 し た 場合 、 値 は 返り ませ ん 。 そ われ 以外 の 場合 は FALSE が 返り ます 。
【 コー ディ ング 例 】
ソフ トウ ェ ア リ セ ッ ト を 行う サン プル コー ド を 以下 に 記載 し ます 。 SVWweset 関数 を コー ル す る
KernelloControl 関数 実行 に より 本 装置 が リ セット され ます 。
弁 include く windows.h>
##Include く Pkfuncs.h>
BOOL SWReset(void)
{
return KernelloControl(IOCTL_ HAL_REBOOT, NULL, 0, NULL, 0, NULL):
]
NEC Confidential 28
5 . 3 ハー ドウ ェ ア 国 体 識別 情報 (UUI D) の 取得
ここ で は ハー ドウ ェ ア 固 体 識別 情報 ( UUI D ) の 取得 方 法 に つい て 説明 し ます 。
プロ グラ ム か ら U り UI D を 取得 する 場合 、T/O コ ント ロー ルコ ー ド に IOJL_HAL GET_UJD を 指定 し て
KernelloControl 関数 を 実行 し ます 。
区 条 , re/ 7oC2777 の / (
DOD の 7 oO の 277 の C の 2 ら
LPMID 7 //7 太 ア
DOD 77 7 が 57
LPMID 7 万
DW7D 707 万 が 57 2 ら
TPDXCD 7 の は 7 gs/ の 7 77722 の
7 ラズ ピグ の 7oC の 277 7 の C の の 6
I/O コ ント ロー ル コー ド を 指定 し ます 。ICCUIL HAL GET UID を 指定 し て くだ さい 。
7 7 が
使用 し ませ ん 。NJIL を 指定 し て くだ さい 。
77/ 7 尽 が 9 2@
使用 し ませ ん 。0 を 指定 し て くだ さい 。
7 の 7 が
UID を 格納 する GTID 型 変数 の ポイ ンタ を 指定 し て くだ さい 。
7 万 が 57 Z@
GTD 型 変数 の バイ ト 単位 の サイ ズ を 指定 し て くだ さい 。
/ 7 es/ や 7 77772 の
取得 し た デー タ の サイ ズ を 格納 する DORD 型 変数 の ポイ ンタ を 指定 し て くだ さい 。
戻り 値 正常 に 終了 し た 場合 は TRE が 返り ます 。 そ われ 以外 の 場合 は FALSE が 返り ます 。
NEC Confidential 29
【 コー ディ ング 例 】
UUI D 取得 を 行う サン プル コー ド を 以下 に 記載 し ます 。 Gt UJ D 関数 を コー ル す る と
KernelloControl 関数 が 実行 され 、QGID 型 の ロー カル 変数 Gid に UUI D が 格納 され ます 。
また 、 変 数 Gid の 内 容 を メッ セー ジ ボ ッ クス で 表示 し ます 。
#include く windows.h>
#include く Pkfuncs.h>
#define MAX_BUF_SIZE 256
void GetUUID(void)
{
BOOL bRet:
DWORD dwRetOutSize:
GUID Guid:
bRet = KernelloControl(IOCTL_HAL_GET_UUID,
NULL,
0,
&Guid,
sizeof(GUID),
&dwRetOutSize):
放 (bRet) {
TCHAR szMsg[MAX_BUF_SIZE]:
wsprintf(szMsg,TEXT("UUID = %08x-%04x-%04x-%02x%02x%02x%02x%02x%02x%02x%02x“),
Guid.Data 1,
Guid.Data2,
Guid.Data3,
Guid.Data4[0],
Guid.Data4[1],
Guid.Data4[2],
Guid.Data4[3],
Guid.Data4[4],
Guid.Data4[5],
Guid.Data4[6],
Guid.Data4[7]):
MessageBox(NULL, szMsg, TEXT("IOCTL_HAL_GET_UUID“), MB_OK):
NEC Confidential 30
5 . 4 指定 時 刻 に お ける アプ リケーション 起動
ここ で は プロ グラ ム か ら 指定 し た 時 刻 に アプ リケーション を 起動 する 方 法 に つい て 説明 し ます 。
プロ グラ ム か ら 指定 時 刻 に 任意 の アプ リケーション を 起動 する 場合 、CeSet User Notifi cationEx 関数
を 使用 し ます 。
HANTE C2567 (ger/W/7 が cg77 o7 放 (
HANTE 7V77 7 277 2
CE NJTFEICAITONTRGER 導
CE USER NOJTEICAXITQY Ce77
):
パラ メー タ 7V/77 が cg/7 7
新しい 通知 を 作成 する 場合 は 0 を 指定 し 、 既 に 登録 され て いる 通知 を 変更 する 場合 は 、
変更 する 通知 の ハン ド ル を 指定 し ます 。
CC7 が
どの イベ ント に よっ て 通知 を 発生 させ る か と いう 情報 を 格納 し た COCP NYIHICAITQN TRI GGR
構造 体 へ の ポイ ンタ を 指定 し ます 。 構造 体 QR NIICXTONTRGGER の 詳細 を 以下 に
示し ます 。
typedef struct UserNotificatiorIrigger {
DOD 2 2@
DORD 2 の:
DOD 2 久 7 が /
WAR 7 が 5 を 4 7 cg77 の 7
WAR 7 クル gz77e777 5"
SYSlHMIT ME s757 277 7 7
SYSIEMIT MP 57777777 7
) QNO1IfRICATQNTRGGER "RTRENYIHICATTONTRGRR
指定 時 刻 に アプ リケーション を 起動 する 場合 は 、 以 下 の よ うに CE NITEICKIONTRGGER
構造 体 変数 の メン バ 変 数 を 設定 し て くだ さい 。
の ze CE NTFICKTONTRGEER 構 造 体 の サイ ズ を バイ ト 単位 で
指定 し ます 。
4722 通知 の タイ プ と し て QYL TIME を 指定 し ます 。
72727/ 使用 し ませ ん 。0 を 指定 し て くだ さい 。
7 ps を 42 の 7 cg77 の カ 起動 する アプ リケーション の 名 前 を 含む 、 ヌ ル 文 字 で 終わ る
文字 列 へ の ポイ ンタ を 指定 し ます 。
7 ps を 人 .g72 の 7 が y アプ リケーション を 起動 する た め の 、 ヌ ル 文 字 で 終わ る
コマ ンド ライ ン を 持つ 文字 列 へ の ポイ ンタ を 指定 し ます 。
s757g77 7 7 アプ リケーション の 起動 時 刻 を 指定 し て くだ さい 。
s7 772777 7 の 使用 し ませ ん 。
の CZ77
使用 し ませ ん 。NTL を 指定 し て くだ さい 。
NEC Confidential 31
戻り 値
成功 する と 通知 イベ ント に 対す る ハンド ル を 返し ます 。 失敗 し た 場合 に は NIL を 返し ます 。
( 注意 ) 本 装置 の シス テム 負荷 が 高い 場合 、CeSet UserNotificationEx 関数 実行 後に シス テム 設定
の 変
【 コー ディ ング 例 】
更 が 反映 され る まで 時 間 が か か る 場合 が あり ます 。
指定 時 刻 に 起動 する アプ リケーション を 登録 する サン プル コー ド を 以下 に 記載 し ます 。
lsRegi stAppAt Date 関数 で は 、| pszAppNane が 示す 文字 列 の アプ リケーション が lpSysTnStart が 示す 時
刻 に 起動 する よう 登録 され て いる か 調べ ます 。 登録 済み で あれ ば 、 そ の 通知 の ハン ド ル が
hNotifications に 格納 され 、 登 録 済み の 起動 時 刻 が SysTnStart に 格納 され ます 。
また 、Set RunAppAt Date 関数 で は 、 | pszAppNane
が 示す 文字 列 の アプ リケーション を IlpSysTnStart が
示す 時 刻 に 起動 する よう 登録 、 ま た は 登録 済み の 通知 を 更新 し ます 。 lsRegi stAppAt Date 関数 実行 で 登録
済み の 通知 と 判断 され た 場合 、
規 登 録 し ます 。
#include く windows.h>
#include く Notify.h>
BOOL IsRegistAppAtDate(HANDLE* IphNotifications,
LPWSTR IpszAppName,
DWORD dwType,
hNotifications で 示さ れる 通知 を
更新 し ます 。 登録 済み で な けれ ば 新
SYSTEMTIME* IpSysTmStart):
BOOL SetRunAppAtDate(HANDLE hNotifications, LPWSTR IpszAppName, SYSTEMTIME* IpSysTmStart):
#define MAX_BUF_SIZE 256
//【 使 用 例 】
//
//
//
//
//
//
//
//
//
//
//
//
//
//
#define ONE_SEC_VALUE
#define RUN_APP_NAME
SYSTEMTIME SysTime:
(10000000UL)
// ロー カル 時 刻 の 取得
GetLocalTime(&SysTime):
// 現在 時 刻 の 1 分 後 の 時 刻 を 取得
return -1:
// function forward time
// IN/OUT lpSysTime : pointer to SYSTEMTIME
// IN dwFwdTime : forward time (nsec)
//
指定 時 刻 に よる アプ リケーション 起動 は 、 下 記 処 理 を 参考 に 行っ て くだ さい 。
次 の 例 は 、 ア プリ ケー ショ ン 実 行 時 か ら 1 分 後に IE を 起動 する 処理 で す 。
// 1sec = 10000000 * 100ns
TEXT(“\\Windows\\iexplorer.exe ")
if (IForwardTime(&SysTime, ONE_SEC_VALUE * 60))
RegistAppAtDate(NULL, RUN_APP_NAME, &SysTime):
最大 値 Oxffffffffnsec(== 約 429sec) に 注意
//BOOL ForwardTime(LPSYSTEMTIME IpSysTime, DWORD dwFwdTime)
//{
( 次 ペー ジ へ )
NEC Confidential
32
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//]
// FILETIME 100ns unit , count from 1601.01.01
FILETIME FileTime, FileTimeSave:
(ISystemTimeToFileTime(lpSysTime, &FileTime))
return FALSE:
FileTimeSave = FileTime:
File Time.dwLowDate Time += dwFwdTime:
放 (FileTime.dwLowDateTime く FileTimeSave.dwLowDateTime)
File Time.dwHighDate Time++:
(FileTimeToSystemTime(&FileTime,IpSysTime))
return FALSE:
return TRUE:
BOOL RegistAppAtDate(HWND hWnd, LPWSTR lpszAppName, SYSTEMTIME* IpSysTmStart)
{
BOOL bRet = FALSE:
HANDLE hNotifications = NULL:
TCHAR szMsg[MAX_BUF_SIZE]:
SYSTEMTIME SysTmStart:
if (IpszAppName && IpSysTmStart) {
// 既に アプ リケーション 起動 が 登録 済み か 調べ る
if (lsRegistAppAtDate(&hNotifications, IpszAppName, CNT_TIME, &SysTmStart)) {
wsprintf(szMsg,
TEXT(“%s は 登録 済み で す 。 \n 起動 時 刻 : %04d/%02d/%02d %02d:%02d:%02d\n\n\
上 記 時 刻 を 変更 し ます か ?”),
IpszAppName, SysTmStart.wYear, SysTmStart.wMonth, SysTmStart.wDay,
SysTmStart.wHour, SysTmStart.wMinute, SysTmStart.wSecond):
// “は い ” が タッ プ さ れ た ら lpSysTmStart の 日 付 に 起動 する よう 登録 を 更新 する
if (IDYES == MessageBox(hWnd, szMsg, TEXT("Run App“), MB_YESNO | MB_ ICONQUESTION)) 【
bRet = SetRunAppAtDate(hNotifications, IpszAppName, IpSysTmStarrt):
]
]
// アプ リケーション 起動 が 登録 さ ヽ れ て いな けれ ば 新規 登録 する
else {
bRet = SetRunAppAtDate(NULL, IpszAppName, IpSysTmStart):
]
]
// 登録 完了 メッ セー ジ 表 示
if (bRet) {
wsprintf(szMsg, TEXT(“%s を 登録 し まし た 。\n 起動 時 刻 : %04d/%02d/%02d %02d:%02d:%02d”)
IpszAppName, IpSysTmStart->wYear, IpSysTmStart->wMonth, IpSysTmStart->wDay,
IpSysTmStart->wHour, IpSysTmStart->wMinute, IpSysTmStart->wSecond):
MessageBox(hWnd, szMsg, TEXT("Run App), MB_OK | MB ICONINFORMATION):
]
return TRUE:
( 次 ペー ジ へ )
NEC Confidential 33
BOOL IsRegistAppAtDate(HANDLE* IphNotifications, LPWSTR lpszAppName, DWORD dwType, SYSTEMTIME*
IpSysTmStart)
{
DWORD dwlndex:
HANDLE* IprghNotifications = NULL:
DWORD dwHandlesNum = 0:
DWORD dwHandlesNeeded:
DWORD dwBufferSize = 0:
DWORD dwBytesNeeded:
LPBYTE lpBuffer = NULL:
PCE_NOTIFICATION_TRIGGER IpPceNotificationTrigger = NULL:
// 必要 と な る ハン ドル 数 を 取得
if (CeGetUserNotificationHandles(lprghNotifications, 0, &dwHandlesNeeded)) {
if (dwHandlesNeeded > 0) {
// ハン ドル 格納 用 の エリ ア を 確保
IprghNotifications = (HANDLE*)LocalAlloc(LPTR, sizeof(HANDLE) * dwHandlesNeeded):
(prghNotifications) {
return FALSE:
]
dwHandlesNum = dwHandlesNeeded:
// ハン ドル を 取得
げ (CeGetUserNotificationHandles(lprghNotifications, dwHandlesNum, &dwHandlesNeeded)) {
for (dwIndex = 0: dwindex く dwHandlesNeeded: dwIndex++) {
// CeGetUserNotification の 第 2 パラ メー タ に 0 を 指定 し 、
// 必要 な バッ ファ サイ ズ を 調べ る
if (ICeGetUserNotification(IprghNotifications[dwIndex], 0, &dwBytesNeeded, IpBuffer)) {
放 (dwBytesNeeded > 0) {
dwBufferSize = dwBytesNeeded:
IpBuffer = (LPBYTE)LocalAlloc(LPTR, dwBufferSize):
if (IpBuffer) {
LocalFree(lprghNotifications):
IprghNotifications = NULL:
return FALSE:
]
// 登録 され て いる 通知 の ハン ドル の 一 覧 を 取得
if (CeGetUserNotification(lprghNotifications[dwIndex],
dwBufferSize, &dwBytesNeeded, IpBuffer)) {
LocalFree(lpBuffer):
IpBuffer = NULL:
LocalFree(lprghNotifications):
IprghNotifications = NULL:
return FALSE:
]
// ロー カル 変数 に CE_NOTIFICATION_TRIGGER 型 構造 体 変数 の ポイ ンタ 格納
IpPceNotificationTrigger =
((PCE_NOTIFICATION_INFO_HEADER)lpBuffer)->pcent:
( 次 ペー ジ へ )
NEC Confidential 34
// 時 間 に 基づい た 通知 で IpszAppName が 示す アプ リケーション が 登録 済み の 場合
if (IpPceNotificationTrigger->dwType == dwType) {
i 放 (lstrcmp(IlpPceNotificationTrigger->lpszApplication, IpszAppName) == 0) [
*IphNotifications = IprghNotifications[dwIndex]:
*IpSysTmStart = IpPceNotificationTrigger->stStartTime:
LocalFree(lpBuffer):
IpBuffer = NULL:
LocalFree(lprghNotifications):
IprghNotifications = NULL:
return TRUE:
]
]
LocalFree(lpBuffer):
IpBuffer = NULL:
]
]
LocalFree(lprghNotifications):
IprghNotifications = NULL:
return FALSE:
BOOL SetRunAppAtDate(HANDLE hNotifications, LPWSTR lpszAppName, SYSTEMTIME* IpSysTmStart)
|
CE_NOTIFICATION_TRIGGER NotificationTriggeri:
if (IpszAppName && IpSysTmStart) {
// CE_NOTIFICATION_TRIGGER 構造 体 変数 を 初期 化
ZeroMemory(&NotificationTrigger, sizeof(CE_NOTIFICATION_TRIGGER)):
// CE_NOTIFICATION_TRIGGER 構造 体 の メン バ 変 数 値 を 設定
NotificationTrigger.dwSize = sizeof(NotificationTrigger):
NotificationTrigger.dwType =CNT_TIME:
NotificationTrigger.IpszApplication = (LPWSTR)lpszAppName:
NotificationTrigger.stStartTime = *IpSysTmStart:
// イベ ント を 新規 作成
hNotifications = CeSetUserNotificationEx(hNotifications, &NotificationTrigger, NULL):
if (nhNotifications) {
return FALSE:
]
return TRUE:
return FALSE:
NEC Confidential 35
5. 5 レジ ュー ム 時 の アプ リケーション 起動
ここ で は 本 装置 の レジ ュー ム 時 に 任意 の アプ リケーション を 起動 する 方 法 に つい て 説明 し ます 。
プロ グラ ム か ら レ ジュ ー ム 時 に 任意 の アプ リケーション を 起動 する 場合 、OeSet User NotificationEx
関数 を 使用 し ます 。
HANTE C2567 (ger/W/7 が cg77 o7 放 (
HANTE 7V77 7 277 2
CE NJTFEICAITONTRGER 導
CE USER NJTEICAITQY Ce77
):
パラ メー タ 万 W77 太 cg77 7
新しい 通知 を 作成 する 場合 は 0 を 指定 し 、 既 に 登録 され て いる 通知 を 変更 する 場合 は 、
変更 する 通知 の ハン ド ル を 指定 し ます 。
CC7 が
どの イベ ント に よっ て 通知 を 発生 させ る か と いう 情報 を 格納 し た CE NYCAITON TRIGGER
構造 体 へ の ポイ ンタ を 指定 し ます 。 構造 体 QNOTRICAITONTR GEFR の 詳細 を 以下 に
示し ます 。
typedef struct UserNOtificationTrigger {
DOD 2 2@
DWORD 2 の 2:
DWORD 2 巡 77/
VTR _ 725 を 4 7 cg77 の 7
WAR 7 クル g777e777 5"
SYSIHMIT ME s757g77 7 7 の
SYSIEMIT MP 57777777 7
) QNO1fICATQNTRGGER "RTRENYIHICATTONTRGRR
指定 時 刻 に アプ リケーション を 起動 する 場合 は 、 以 下 の よ うに CE NEICAIONTRGGER
構造 体 変数 の メン バ 変 数 を 設定 し て くだ さい 。
の Ze CE NIRICATONTRIGGER 構 造 体 の サイ ズ を バイ ト 単位 で
指定 し ます 。
の 祖 区 と 通知 の タイ プ と し て QNL EVEN を 指定 し ます 。
7 の 7224 シス テム イベ ント の タイ プ を 指定 し ます 。
NL FICAITQN EVEN WANKEUP を 指定 し て くだ さい 。
7 ps42 の 7 cg77 の カ 起動 する アプ リケーション の 名 前 を 含む 、 ヌ ル 文 字 で 終わ る
文字 列 へ の ポイ ンタ を 指定 し ます 。
7 Os を 作 .g72 の 7 が 々 アプ リケーション を 起動 する た め の 、 ヌ ル 文 字 で 終わ る
コマ ンド ライ ン を 持つ 文字 列 へ の ポイ ンタ を 指定 し ます 。
sg77 7 7 使用 し ませ ん 。
s7 772777 7 の 使用 し ませ ん 。
の CZ77
使用 し ませ ん 。NTIL を 指定 し て くだ さい 。
NEC Confidential 36
戻り 値 成功 する と 通知 イベ ント に 対す る ハン ドル を 返し ます 。 失敗 し た 場合 に は NIL を 返し ます 。
( 注意 ) 本 装置 の シス テム 負荷 が 高い 場合 、QGeSet UserNotificationEx 関数 実行 後に シス テム
の 変更 が 反映 さ れる ま で 時 間 が か か る 場合 が あ り ま 9
【 コー ディ ング 例 】
レジ ュー ム 時 に 起動 する アプ リケーション を 登録 する サン プル コー ド を 以下 に 記載 し ます 。
lsRegi stAppAt ResuneEvent 関数 で は 、IpszAppNane が 示す 文字 列 の アプ リケーション が レジ ュー ム 時 に
起動 する よう 登録 され て いる か 調べ ます 。 登録 済み で あれ ば 、 その 通知 の ハン ド ル が hNotifications に
格納 され ま す 。
また 、Set RunAppAt Resune 関数 で は 、 | pszAppNane が 示す 文字 列 の アプ リケーション を レジ ュー ム 時 に
起動 する よう 登録 、 ま た は 登録 済み の 通知 を 更新 し ます 。lsRegi stAppAt ResuneEvent 関数 実行 で 登録 済
み の 通 知 と 判断 され た 場合 、 hNotifications で 示さ れる 通知 を 更新 し ます 。 登録 済み で な けれ は 新規
登録 し ます 。
#include く windows.h>
#Include く Notify.h>
BOOL IsRegistAppAtResumeEvent(HANDLE* IphNotifications, LPWSTR IpszAppName,
DWORD dwType, DWORD dwEvent):
BOOL SetRunAppAtResume(HANDLE hNotifications, LPWSTR IpszAppName):
#define MAX_BUF_SIZE 256
BOOL RegistAppAtResumeEvent(HWND hWnd, LPWSTR IpszAppName)
{
BOOL bRet = FALSE:
HANDLE hNotifications = NULL:
TCHAR szMsg[MAX_BUF_SIZE]:
放 (IpszAppName) {
// 既に アプ リケーション 起動 が 登録 済み か 調べ る
(lsRegistAppAtResumeEvent(&hNotifications, IpszAppName,
CNT_EVENT, NOTIFICATION_EVENT_WAKEUP)) {
wsprintf(szMsg, TEXT(“%s は 登録 済み で す 。 \n 変更 し ます か ? ”), IpszAppName):
// “は い " が タッ プ さ れ た ら レ ジュ ー ム 時 に 起動 する よう 登録 を 更新 する
if (IDYES == MessageBox(hWnd, szMsg, TEXT("Run App), MB_YESNO | MB_ ICONQUESTION)) {
bRet = SetRunAppAtResume(hNotifications, IpszAppName):
]
]
// アプ リケーション 起動 が 登録 され て いな けれ ば 新規 登録 する
else {
bRet = SetRunAppAtResume(NULL, IpszAppName):
]
( 次 ペー ジ へ )
NEC Confidential 37
// 登録 完了 メッ セー ジ 表 示
if (bRet) {
wsprintf(szMsg, TEXT(“%s を 登録 し まし た 。”), IpszAppName):
MessageBox(hWnd, szMsg, TEXT("Run App”), MB_OK | MB ICONINFORMATION):
1
return TRUE:
]
BOOL IsRegistAppAtResumeEvent(HANDLE* IlphNotifications, LPWSTR IpszAppName, DWORD dwType,
DWORD dwEvent)
{
DWORD dwlndex:
HANDLE* IprghNotifications = NULL:
DWORD dwHandlesNum = 0:
DWORD dwHandlesNeeded:
DWORD dwBufferSize = 0:
DWORD dwBytesNeeded:
LPBYTE lpBuffer = NULL:
PCE_NOTIFICATION_TRIGGER IpPceNotificationTrigger = NULL:
// 必要 と な る ハン ドル 数 を 取得
if (CeGetUserNotificationHandles(lprghNotifications, 0, &dwHandlesNeeded)) {
if (dwHandlesNeeded > 0) {
// ハン ドル 格納 用 の エリ ア を 確保
IprghNotifications = (HANDLE*)LocalAlloc(LPTR, sizeof(HANDLE) * dwHandlesNeeded):
i (prghNotifications) {
return FALSE:
]
dwHandlesNum = dwHandlesNeeded:
// ハン ドル を 取得
放 (CeGetUserNotificationHandles(lprghNotifications, dwHandlesNum, &dwHandlesNeeded)) {
for (dwIndex = 0: dwindex く dwHandlesNeeded: dwIndex++) {
// CeGetUserNotification の 第 2 パラ メー タ に 0 を 指定 し 、
// 必要 な バッ ファ サイ ズ を 調べ る
if (ICeGetUserNotification(IprghNotifications[dwIndex], 0, &dwBytesNeeded, IpBuffer)) {
放 (dwBytesNeeded > 0) {
dwBufferSize = dwBytesNeeded:
IpBuffer = (LPBYTE)LocalAlloc(LPTR, dwBufferSize):
if (!pBuffer) {
LocalFree(lprghNotifications):
IprghNotifications = NULL:
return FALSE:
]
// 登録 され て いる 通知 の ハン ドル の 一 覧 を 取得
if(ICeGetUserNotification(IprghNotifications[dwIndex],
dwBufferSize, &dwBytesNeeded, IpBuffer)) {
LocalFree(lpBuffer):
IpBuffer = NULL:
LocalFree(lprghNotifications):
IprghNotifications = NULL:
return FALSE:
( 次 ペー ジ へ )
NEC Confidential 38
// ロー カル 変数 に CE_NOTIFICATION_TRIGGER 型 構造 体 変数 の ポイ ンタ 格納
IpPceNotificationTrigger
= ((PCE_NOTIFICATION_INFO_HEADER)lpBuffer)->pcent:
// シス テム イベ ント 通知 で IpszAppName が 示す アプ リケーション が 登録 済み の 場合
if (IpPceNotificationTrigger->dwType == dwType) {
i (IpPceNotificationTrigger->dwEvent & dwEvent) {
if (lstrcmp(lpPceNotificationTrigger->IpszApplication, IpszAppName)
*IphNotifications = IprghNotifications[dwlIndexj]:
LocalFree(lpBuffer):
IpBuffer = NULL:
LocalFree(lprghNotifications):
IprghNotifications = NULL:
return TRUE:
]
]
LocalFree(lpBuffer):
IpBuffer = NULL:
]
]
LocalFree(lprghNotifications):
IprghNotifications = NULL:
]
return FALSE:
1
BOOL SetRunAppAtResume(HANDLE hNotifications, LPWSTR IpszAppName)
{
CE_NOTIFICATION_TRIGGER NotificationTriggeri:
HANDLE hNotificationHandle:
if (IpszAppName) {
// CE_NOTIFICATION_TRIGGER 構造 体 変数 を 初期 化
ZeroMemory(&NotificationTrigger, sizeof(CE_NOTIFICATION_TRIGGER)):
// CE_NOTIFICATION_TRIGGER 構造 体 の メン バ 変 数 値 を 設定
NotificationTrigger.dwSize = sizeof(NotificationTrigger):
NotificationTrigger.dwType =CNT_EVENT:
NotificationTrigger.dwEvent = NOTIFICATION_EVENT_WAKEUP:
NotificationTrigger.IpszApplication = IpszAppName:
// イベ ント を 新規 作成
hNotificationHandle = CeSetUserNotificationEx(hNotifications, &NotificationTrigger, 0):
if (hNotificationHandle == NULL) {
return FALSE:
]
return TRUE:
]
return FALSE:
NEC Confidential 39
9 に 。
6 アラ ー ム 通知 の 設定
0 200 の の ee
で は 、 指 定 開始 時 刻 か ら 指定 終了 時 刻ま で 以下 の 動作 を 行い ます 。
アラ ー ム 通知 ラン プ の 点滅
・ ア ラー ム 時 に 警告 音 を 鳴ら す
アラ ー ム 通知 ダイ アロ グ ボッ クス の 表示
( 注意 ) 本 装置 で は バイ ブレ ーション に よる アラ ー ム 通知 機能 は 含ま れ て お り ま せん 。
プロ グラ ム か ら ア ラー ム 通 知 の 設定 を 行う 場合 、OeSet erNotificationEx 関数 を 使用 し て 指定 し た
イベ ント 時 に アラ ー ム を 通知 する よう 登録 し ます 。
HANTE C2567 (ger/W/7 が cg77 o7 放 (
HANTE 7V77 7 277 2
NITEICAITONTRGER 必 Z,
CE USER NOJTEICAITOY Ce77
):
パラ メー タ 7V/7 が cg/7 7
新しい 通知 を 作成 する 場合 は 0 を 指定 し 、 既 に 登録 され て いる 通知 を 変更 する 場合
変更 する 通知 の ハン ド ル を 指定 し ます 。
あの 274
どの イベ ント に よっ て 通知 を 発生 させ る か と いう 情報 を 格納 し た CE NATIHICAITON TRGGR
構造 体 へ の ポイ ンタ を 指定 し ます 。 OE NJIHICXTONTRN GR 構造 体 の 詳細 を 以下 に
示し ます 。
typedef struct UserNOtificatiorIrigger 〔
DOD 2 2@
DORD 2 の 2:
DOD 2 太 e7 が /
WAR 7 が 5 る 4 7 cg77 の 7
WAR 7 クル rg777e777 5"
SYSlHMIT ME s757g77 7 7 の
SYSIEMIT MP 57777777 7
) GE NO1RICATQONTRNGER “RE NYTHICATONTRG 刺
アラ ー ム 通知 を 行う 場合 は 、 以 下 の よ うに QOE NIRICATON TRGGER 構造 体 変数 の
メン バ 変 数 を 設定 し て くだ さい 。
57 2@ CE NMIHICATONTRGGER 構 造 体 の サイ ズ を バイト 単位 で 指定 し ます 。
gi が ZZe 通知 の タイ プ を 指定 し ます 。QNL PF ⑦ を 指定 し て くだ さい 。
の び 太 ル e77 使用 し ませ ん 。0 を 指定 し て くだ さい 。
7ps47cg77op | 使用 し ませ ん 。NJIIL. を 指定 し て くだ さい 。
7 5 を ル g72 の 77 ? 使用 し ませ ん 。NTL を 指定 し て くだ さい 。
アラ ー ム 通知 を 開始 する 時 刻 を 指定 し ます 。 み we に
QNL PE の を 指定 し た 場合 に 必要 と な り ま す 。
9797g77 7 7g
NEC Confidential 40
アラ ー ム 通知 を 終了 する 時 刻 を 指定 し ます 。 み 劉 ze に
97 7/77777 7 の
CN PER ⑦① を 指定 し た 場合 に 必要 と な り ま す 。
の C6Z72
通知 が 発生 し た と き に シス テム が どう 応答 すべ きか を 定義 し た OE USER NIICXITON
構造 体 へ の ポイ ンタ を 指定 し ます 。OE USER NMIFICATON 構 造 体 の 詳細 を 以下 に 示し ます 。
typedef struct UserNOtificationIype {
DCD ルル 7 o777 ags
TOHAR sz ガ g/ og7777@
TOHAR sz ガ g/ og78x7:
TTAR sz5O2747
DWORD 辺 x6O77Z
DWORD eserre の
) CE USER NTRICATQO "RE USER NOTRCATGN
アラ ー ム 通知 を 行う 場合 は 、 以 下 の よ うに OE_USER NIRICATTN 構造 体 変数 の
メン バ 変 数 を 設定 し て くだ さい 。
ノル 7 o777 ags 通知 の イベ ント が 発生 し た と き に 行う 動作 を 指定 し ます 。
以下 の 値 の 組み 合わ せ で 指定 し て くだ さい 。
RINTLID アラ ー ム 通知 ラン プ を 点灯 させ ま す 。
RN VERAIE | ※ 本 装置 で は サポ ー ト し て いま せん 。
ユー ザー 通知 ダイ アロ グ ボッ クス を
示し ま す 。
pszSo727 に よっ て 指定 され た 音 を
NO | 捕まり ます 、
約 10 秒間 処理 を 繰返し ます 。
PTNREPEAT | RINSOND と 共に 使用 し た 場合 に
有効 で す 。
psz ガ gog7777e| アラ ー ム 通知 ダイ アロ グ ボッ クス の タイ トル 文字 列 へ の ポイ ンタ を
指定 し ます 。
rsZ ガ g/ gg7ex7 | アラ ー ム 通知 ダイ アロ グ ボッ クス に 表示 する 文字 列 へ の ポイ ンタ を
指定 し ます 。
psZ5O7227 再生 する サウ ンド ファ イル の 名 前 を 含む バッ ファ へ の ポイ ンタ を 指定
し ます 。 7 o777 ggs に PANSOND が 含ま れる 場合 に 有効 と な り ま す 。
7/2xSOr72 の prg256227 の バッ ファ の 長 さ を 指定 し ます 。
MX PAIH si zeof(TCTHR を 指定 し て くだ さい 。
ryerre の 0 を 指定 し て くだ さい 。
戻り 値 成功 する と 通知 イベ ント に 対す る ハン ドル を 返し ます 。 失敗 し た 場合 に は NIL を 返し ます 。
( 注意 ) 本 装置 の シス テム 負荷 が 高い 場合 、CeSet UserNotificationEx 関数 実行 後に シス テム 設定
の 変更 が 反映 さ れる まで 時 間 が か か る 場合 が あり まお.92
NEC Confidential 41
【 コー ディ ング 例 】
アラ ー ム を 通知 する サン プル コー ド を 以下 に 記載 し ます 。 こ の コー ド で は SetAl arm 関数 を コー ル す る と 、
pstSt artTine で 示さ れる 時 刻 か ら pstEndTi ne で 示さ れる 時 刻ま で 、 ア ラー ム 通 知 ラ ンプ の 点滅 、
当 emp 玖 armwav ファ イル の 再生 、 ア ラー ム 通 知 ダ イア ログ ボッ クス の 表示 を 行い ます 。
##include く windows.h>
#nclude く Notify.h>
BOOL SetAlarm(SYSTEMTIME* pstStartTime, SYSTEMTIME* pstEndTime)
|
TCHAR szSound[MAX_PATH]:
CE_NOTIFICATION_TRIGGER NotificationTriggeri:
CE_USER_NOTIFICATION UserNotification:
HANDLE hNotificationHandle:
lstrcpy(szSound, TEXT(“\\Temp\\Alarm.wav”)):
ZeroMemory(&NotificationTrigger, sizeof(CE_NOTIFICATION_TRIGGER)):
NotificationTrigger.dwSize = sizeof(NotificationTrigger):
NotificationTrigger.dwType = CNT_PERIOD:
NotificationTrigger.IpszApplication = NULL:
NotificationTrigger.IpszArguments = NULL:
NotificationTrigger.stStartTime = *pstStartTime:
NotificationTrigger.stEndTime = *pstEndTime:
ZeroMemory(&UserNotification, sizeof(CE_USER_NOTIFICATION)):
UserNotification.ActionFlags = PUN_DIALOG | PUN_LED | PUN_SOUND | PUN_REPEAT:
UserNotification.pwszDialogTitle = TEXT(“SetAlarm”):
UserNotification.pwszDialogText =TEXT("Alarm Dialog”):
UserNotification.nMaxSound = MAX_PATH * sizeof(TCHAR):
UserNotification.pwszSound = szSound:
// イベ ント を 新規 作成
hNotificationHandle = CeSetUserNotificationEx(0, &NotificationTrigger, &UserNotification):
if (hNotificationHandle == NULL) {
return FALSE:
]
return TRUE:
NEC Confidential 42
5 . 7 ショ ー ト カッ ト の 作成
ここ で は プロ グラ ム か ら シ ョ ー ト カッ ト を 作成 する 方 法 に つい て 説明 し ます 。
プロ グラ ム か ら シ ョ ー ト カッ ト を 作成 する 場合 、SHT eat eShortcut 関数 を 使用 し ます 。
E 条 , S7 ナ eg7 eS7o77CZ (
LPISIR szgSZ277 CZ が,
LPISIR sz7 妨 ge7
パラ メー タ s を 57277 CZ
ー ト カッ ト ファ イル 名 ( フル バス) の 文字 列 へ の ポイ ンタ を 指定 し ます 。
ショ
5 グ 7g7' ら 67
対象 と な る 実行 ファ イル 名 ( フル パス ) の 文字 列 へ の ポイ ンタ を 指定 し ます 。
戻り 値 正常 に 終了 し た 場合 は TRE が 返り ます 。 そ れ 以 外 の 場合 は FALSE が 返り ます 。
し コー ディ ング
ショ ー ト カッ ト 作成 の サン プル コー ド を 以下 に 記載 し ます 。 こ の コー ド で は GetMdul eFi leNene 関数
で szAppNsne に サン プル の 実行 ファ イル 名 を 取得 し ます 。 次 に SHTeateShortcut 関数 で szShortcut
で 表 さ れる 名 前 で デス クト ッ プ に ショ ー ト カッ ト を 作成 し ます 。 また 、 SHst ShortcutTarget 関数 で ショ
ェ 実 行 フ ァイル 名 を szTarget に 格納 し 、 メ ッ セ ー ジ ボッ クス で 表示 し ます 。
ー ト カッ ト の リン クタ
#include く windows.h>
お nclude く Shellapi.h>
#define LINK_FILE_NAME TEXT("Appname.Ink“)
BOOL IsExsistSpacelnStr(LPCWSTR lpszStr):
int WINAPI WinMain(HINSTANCE hThisInst, HINSTANCE hPrevInst, LPWSTR IpCmdLine, int nWinMode)
{
TCHAR szAppName[MAX_PATH]:
TCHAR szShortcut[MAX_PATH]:
TCHAR szExeName[MAX_PATH]:
TCHAR szTarget[MAX_PATH]:
// 実行 アイ ル 名 を 取得
GetModuleFileName(hThisInst szAppName, MAX_PATH):
// デス クト ッ プ フォ ル ダ を 取得
i 放 (!SHGetSpecialFolderPath(NULL, szShortcut, CSIDL_DESKTOP, FALSE))
return FALSE:
lstrcat(szShortcut, TEXT(“\\”) LINK_FILE_NAME):
// if exisit space then set double quotation
放 (lsExsistSpacelnStr(szAppName)) 【
lstrcpy(szExeName, TEXT(“\“⑦):
lstrcat(szExeName, szAppName):
lstrcat(szExeName, TEXT("\“)):
( 次 ペー ジ へ )
NEC Confidential 43
else [
lstrcpy(szExeName, szAppName):
]
(SHCreateShortcut(szShortcut, szExeName))
MessageBox(NULL, TEXT(“ デ スク トッ プ に ショ ー ト カッ ト を 作成 し まし た ), TEXT(“Appname“), MB_OK):
// 作成 し た ショ ー ト カッ ト フ ァイル か ら 、 リン ケ 先 の 実行 フフ イル 名 を 取得 する
放 (SHGetShortcutTarget(szShortcut, szTarget, sizeof(szTarget)))
MessageBox(NULL szTarget, TEXT(“Appname), MB_OK):
return 0:
]
// IpszStr が 示す 文字 列 の 中 に スペ ー ス が 含ま れる か 調べ る
// この 関数 は Unicode( ワ イド 文字 ) 専用 で す 。 そ れ 以 外 の 文字 (SJIS 等 ) で 使用 する 場合 、lsDBCSLeadByte 関数 等 で
// マル チバ イト 文字 の 先頭 バイ トチ ェ ッ ク が 必要 と な り ま す 。
BOOL IsExsistSpacelnStr(LPCWSTR lpszStr)
{
BOOL bRet = FALSE:
for( : *lpszStr: IpszStr++)[
ilpszStr ==_T( ) 人
bRet = TRUE:
break:
]
return bRet:
( 注意 ) 既に 作成 し よう と し て いる ショ ー ト カッ ト ファ イル 名 ( フル バス ) と 同一 名 称 の ショ ー ト カッ ト
ファ イル 名 ( フル バス) が 存在 する 場合 、SHT eat eShortcut 関数 は 失敗 し ます 。
NEC Confidential 44
ーー
ーー
こ で は プロ グラ ム か ら ハ ー ド アイ コン で 起動 する アプ リケーション の 変更 方 法 に つい て 説明 し ます 。
本 装置 の ハー ド アイ コン を 以下 に 示し ます 。
O @
② ⑦
(9
④ ⑨
@
⑥ ~ ⑦( 右側 の ハー ド アイ コン ) で 起動 する アプ リケーション は 、【 拡張 機能 の 設定 プロ パテ ィ 】 画 面
で 変更 可能 で す 。 ① ~ ⑥( 左側 の ハー ド アイ コン ) で 起動 する アプ リケーション は 、 レ ジス トリ の 値 を
変更 する こと に よっ て の み 変 更 可 能 で す 。
① て ⑩ の ハー ド アイ コン で 起動 する アプ リケーション は 、 レ ジス トリ で 管理 され て いま す 。
以下 に ハー ド アイ コン 用 の レジ スト リ 項目 と 設定 値 の 詳細 を 記載 し ます 。
レジ スト リ 項 目 デフ ォ ル ト 値
① |HKEY_LOCAL_MACHINE\Software\NEC\Touch Panel F6 了 の 5 。 の
\\windows\\pmail.exe
② | HKEY_LOCALMACHINE\SoftwareWNEC\Touch Panel り ^\"\\Program Files\\Browser\\picselbrowser.exe\"“
③ |HKEY_LOCAL_MACHINE\Software\NEC\Touch Panel F8 の と 防
\\windows\\ceplayer.exe
《④ |HKEY_LOCAL_MACHINE\Software\NEC\Touch Panel F9 の の
Windows\\catmenu.exe
HKEY_LOCAL_MACHINE\Soft \NEC\Touch Panel F10 |/ 。 の
⑤ - 人 RS 1 \\Windows\\ お 気に入り \\M-stage.Ink
⑥ |HKEY_LOCAL_MACHINE\Software\NEC\Touch Panel F1 の 5 2
\\Windows\\iexplorer.exe
⑦ |HKEY_LOCAL_MACHINE\Software\NEC\Touch Panel F2 了 の
\\Windows\\msmsgs.exe
HKEY_LOCAL_MACHINE\Software\NEC\Touch Panel F3 6 BWSECGE2 に の っ 7
⑨ |HKEY_LOCAL_MACHINE\Software\NEC\Touch Panel F4 25NBMSSEISI3BRSBS
HKEY_LOCAL_ MACHINE\Software\NEC\Touch Panel F5 2MWindowsWWgstartexe”
NEC Confidential 45
【 コー ディ ング 例 】
ハー ド アイ コン で 起動 する アプ リケーション を 変更 する サン プル コー ド を 以下 に 記載 し ます 。
この コー ド で は 左上 隅 に ある ハー ド アイ コン を タッ プ す る と 、 コ ント ロー ル パ ネ ル が 起動 する よう
変更 し ます 。 レ ジス トリ の 値 設 定 は 、 RegQeatekeyEx 関数 で レジ スト リキ ー を オー プン 後 、
RegSet Val ueEx 関数 で 設定 し ます 。
#include く windows.h>
#define SUB_KEY_TOUCH_PANEL TEXT(“Software\\NEC\\Touch Panel\\F6”)
#define ENTRY_NAME_HARD_ICON TEXT(“Default ”)
#define SET KEY VALUE TEXT(“\"\\Windows\\control.exe\“)
BOOL SetHardIconApp(void)
{
BOOL bRet = FALSE:
LONG IResult:
HKEY hKeyResult = NULL:
DWORD dwDisposition = 0:
// レジ スト リキ ー を 開く
IResult = RegCreateKeyEx(
HKEY_LOCAL_ MACHINE,
SUB_KEY_TOUCH_PANEL,
0,
NULL,
REG_OPTION_NON_VOLATILE,
KEY_WRITE,
NULL,
&hKeyResult,
&dwDisposition):
ぜ (IResult == ERROR_SUCCESS) 1
// 起動 アプ リケーション 変更
IResult = RegSetValueEx(
hKeyResult,
ENTRY_NAME_HARD_ICON,
0,
REG_SZ,
(const BYTE*)SET_KEY_VALUE,
(lstrlen(SET_KEY_VALUE) + 1) * 2
):
放 (IResult == ERROR_SUCCESS) {
bRet = TRUE:
]
// レジ スト リキ ー の クロ ー ズ
RegCloseKey(hKeyResult):
return bRet:
NEC Confidential 46
5. 9 ダイ アル アッ プ ネ ットワーク の 接続 、 切 断 方 法
本 装置 の ダイ アル アッ プ ネ ットワーク 接続 、 切断 を アプ リケーション か ら 行 う 方 法 に つい て 説明 し ます 。
【 コー ディ ング 例 】
ダイ アル アッ プ ネ ットワーク 接続 お よび 切断 を 行う サン プル コー ド を 以下 (
こ 記載 し ます 。
QpenRasConnecti on 関数 で は 、 RasEnuntntries 関数 に より lpszEntryNsne が 示す 文字 列 の エン トリ 名
の 接続 が 登録 済み で ある か を 調べ ます 。 登録 済み で あれ ば 、 ユ ー ザ I D =| pszuUserNsne が 示す 文字 列 、
パス ワー ド =| pszPassword が 示す 文字 列 、 ド メイ ン 名 =| pszDonamin が 示す 文字 列 で ダイ アル アッ プ ネ ッ
トワ ー ク 接続 し ます 。 ダ イア ル ア ッ プ ネ ットワーク 接続 に は RasDal 関数 を 使 有
し ます 。
d oseRasConnecti on 関数 で は 、 RasHgngLb 関数 で ダイ アル アッ プ ネ ットワーク 接続 を 切断 し ます 。
また 、RasGet Connect St atus 関数 で 接続 状態 を 取得 し 、 接続 が 完全 に 切断 され る まで 処 下
に し て いま す 。
#include く windows.h>
#include く Ras.h>
##include く raserror.h>
#define MAX_BUF_SIZE 256
//【 使 用 例 】
// HARASCONN hRasConn = NULL:
// ダイ アル アッ プ ネ ットワーク 接続
// OpenRasConnection(&hRasConn, TEXT(“"entry), TEXT("user), TEXT("passwd”), TEXT(“domain”)):
//
//
// *
// 接続 切断
// CloseRasConnection(hRasConn):
//
得 ら れ た 接続 ハン ドル を 指定 する 。
BOOL OpenRasConnection(HRASCONN* IphRasConn,
DWORD
DWORD
DWORD
DWORD
DWORD
LPCTSTR lpszEntryName,
LPCTSTR lpszUserName,
LPCTSTR lpszPassword,
LPCTSTR lpszDomain)
dwIndex:
dwRet:
dwNeededSize:
dwEntryNum = 0:
dwEntrySize = sizeof(RASENTRYNAME):
LPRASENTRYNAME lpRasEntryName = NULL:
RASDIALPARAMS RasDialParams:
( 次 ペー ジ へ )
NEC Confidential
47
ほ を 抜け な いよ う
<- 第 1 パラ メー タ に OpenRasConnect 関数 で
if (IpszEntryName) {
while (pRasEntryName) {
// エリ ア 確 保
IpRasEntryName = (LPRASENTRYNAME)LocalAlloc(LPTR, (UINT)dwEntrySize):
(IpRasEntryName) 【
// RAS の 電話 帳 エ ント リ を 取得
IpRasEntryName->dwSize = sizeof(RASENTRYNAME):
dwNeededSize = dwEntrySize:
if (dwRet = RasEnumEntries(NULL, NULL, IpRasEntryName, &dwNeededSize, &dwEntryNum)) {
// 正常 終了 時 は Loop を 抜け る
if (dwRet == 0) {
break:
]
// エリ ア 不 足 時 は リト ライ
else if (dwRet == ERROR_BUFFER_TOO_SMALL) {
dwEntrySize = dwNeededSize:
LocalFree(lpRasEntryName):
IpRasEntryName = NULL:
]
// エラ ー 発 生 時
else {
LocalFree(lpRasEntryName):
IpRasEntryName = NULL:
return FALSE:
// IpszEntryName と 同じ エン トリ 名 を 検索 する
for (dwIndex = 0: dwIndex く dwEntryNum: dwIndex++) {
(0 == lstrcmp(lpRasEntryName[dwIndex].szEntryName, IpszEntryName)) {
break:
]
]
// lpszEntryName と 同じ エン トリ 名 が 見 つか ら な い 場 合 は エラ ー
if (dwIndex == dwEntryNum) {
LocalFree(lpRasEntryName):
IpRasEntryName = NULL:
return FALSE:
]
// RASDIALPARAMS 構造 体 変数 の 初期 化
memset(&RasDialParams, 0, sizeof(RASDIALPARAMS)):
( 次 ペー ジ へ )
NEC Confidential 48
// RASDIALPARAMS 構造 体 変数 の メン バ 変 数 値 設定
RasDialParams.dwSize = sizeof(RASDIALPARAMS):
RasDialParams.szPhoneNumber[0] = TEXT(\07):
RasDialParams.szCallbackNumber[0] = TEXTC\0):
wcscpy(RasDialParams.szEntryName, IpRasEntryName[dwIndex].szEntryName): // エン トリ 名
LocalFree(lpRasEntryName):
IpRasEntryName = NULL:
if (IpszUserName)
wcscpy(RasDialParams.szUserName, IpszUserName):
if (IpszPassword)
wcscpy(RasDialParams.szUserName, IpszPassword):
if (IpszDomain)
wcscpy(RasDialParams.szUserName, IpszDomain):
// RAS を 用 いて 接続 を 確立 する
dwRet = RasDial(NULL, // Extension not supported
NULL, // Phone book is in registry
&RasDialParams, // RAS configuration for connection
0xFFFFFFFF, // Notifier type is a window handle
NULL, // Window receives notification message
lphRasConn): // 接続 ハン ドル を 受け 取る 変数
// リモ ー ト アク セス 接続 で き な か っ た 場合 は エラ ー 表 示
if (dwRet == 0) {
// リモ ー ト アク セス 接続 の 完了 メッ セー ジ 表 示
MessageBox(NULL, TEXT(" ダイアルアップ 接続 を 完了 し まし た 。”), TEXT(“DialUp“), MB_OK |
MB_ICONINFORMATION):
return TRUE:
]
]
return FALSE:
( 次 ペー ジ へ )
NEC Confidential 49
BOOL CloseRasConnection(HRASCONN hRasConn)
{
RASCONNSTATUS RasConSts:
// 全て の 接続 を 切断 する 場合 は 、RasEnumConnections で 接続 中 の ハン ドル を
// 取得 後 、 そ れ ぞ れ の ハン ドル で RasHangUp 実行 し て くだ さい 。
//RASCONN RasCon:
//DWORD dwRasSize:
//DWORD dwConnections:
//dwRasSize = RasCon.dwSize = sizeof(RASCONN):
//RasEnumConnections(&RasCon, &dwRasSize, &dwConnections):
// リモ ー ト アク セス 接続 を 切断 する
if (hRasConn) {
RasHangUp(hRasConn):
// リモ ー ト アク セス 接続 が 切断 され る まで 待つ
RasConSts.dwSize = sizeof(RASCONNSTATUS):
while (RasGetConnectStatus(hRasConn, &RasConSts) に ERROR_INVALID_HANDLE) {
Sleep(0):
]
// リモ ー ト アク セス 接続 の 切断 メッ セー ジ 表 示
MessageBox(NULL, TEXT(" ダイアルアップ 接続 を 切断 し まし た 。”), TEXTC“DialUp), MB_OK |
MB_ICONINFORMATION):
]
return TRUE:
NEC Confidential 50
9 。
1 0 フォ ント 変更
本 装置 で は 【 フォ ント サイ ズ 設 定 】 画 面 で 変更 可能 な が フォ ント を アプ リケーション か ら 変 1
( 下記 項目 )
> ジス デム オン ト
居所 ュー パー テ ォ マッ ト
NR ウブ リウ アス ニョ ュー フサ ント
・ InternetExploler の フォ ント
・ ヘル プ の フォ ント
>・ ワー ド バ ッ ト の デラ オル ト フォ ント
・ WindowsM essenger の フォ ント
上 記 の フォ ント 設定 は レジ スト リ で 管 民
に は 、 該 当 す る レジ スト リ 項
まき れれ て お り 、 ア プリ ケー ショ ン か ら フ ォ ン ト を 変
目 値 を 設定 し た の ち ソ フト ウェ アリ セッ ト する こと で 行い ます 。
更 する 場合
中
ロ
以下 加 フォ ント サイ ズ 設 定 】 画 面 で 変更 可能 な フォ ント の レジ スト リ 項目 と 設定 値 の 詳細 を
氏 シ ステ ム フ ォ ント
設定 値
レジ スト リ 1』
唱 本 大 最大
上 -12 13 13
HKEY_LOCAL_MACHINE\System (フォ ント サイ スズ /DWORD)
\GDI\SYSFNT Wt 190 21f 275
(2 ルト の 厚み /DWORD)
財 -12 13 13
HKEY_LOCAL_MACHINE\System (フォ ント サイ ス /DWORD)
\GWE\OOMFnt Wt 190 21f 275
(フォ ント の 厚み /DWORD)
倫 メ ニュ ー バ ー フ ォ オォ ント
還 設定 値
レジ スト リ 項 目 器
標準 大 最大
HKEY_LOCAL_MACHINE\System BarTMrg 2 0 0
\GWEYMenu (トリ ミン グ /DWORD)
呈 -12 13 13
HKEY_LOCAL_MACHINE\System (フォ ント サイ ス /DWORD)
\GWE\Menu\BarFnt Wt 190 21f 275
(フォ ント の 厚み /DWORD)
@ ポ ッ プ アッ プ メ ニュ ー フ ォ ン ト
設定 値
レジ スト リ 1』
順 目 標 大 最大
員 -12 13 13
HKEY_LOCAL_MACHINE\System (フト サイ ズ /DWORD)
\GWE\Menu\PopFnt Wt 190 21f 275
(2 ルト の 厚み /DWORD)
人 @InternetExplorer の フォ ント
呈 設定 値
レジ スト リ 1 8 上
ci 標準 大 最大
HKEY_CURRENT_USER IEFontSize
\Software\Microsoft\Internet Explorer QE の フォ ト サ イ ズ 設定 / パ 作り の : | 02 00 00 00| 03 00090 00| o4 00 00 00
\International\Scripts\24
NEC Confidential
1 6
載 し ます 。
⑱ ヘ ルプ の フォ ント
設定 値
レジ スト リ 項 目 5 本
標準 大 最大
HKEY_CURRENT_USER ZoomSetting
\Software\Microsoft\HELP (HELP の フォ ント サイ ス ' 設 定 00000002 00000003 00000004
/DWORD):
@⑯ ワ ー ド バッ ト の デフ ォ オルトフォン ト
上 設定 値
レジ スト リ 項 目 = ー
標 大 最大
HKEY_LOCAL_MACHINE Dy
\SOFTWARE\Microsoft (リー ド バ ハット "の デフ ォ ルト フォ ント サイ スズ ~ 000000C8 000000DC 000000F0
\Pocket Word\pwdDefaultFont の 設定 /DWORD)
@WindowsMessenger の フォ ント
> 設定 値
レジ スト リ 項 目 - ー ー
標 大 最大
HKEY_CURRENT_USER IM Text Size
\Software\Microsoft\MessengerService (WindowsMessenger の フォ ント サ | 02 00 0000| 03000000| 04000000
イズ 設定 全 り ):
( 注意 ) フォ ント サイ ズ を 大 きく し すぎ る と 文字 が 重なり 合い 、 画 面 が 見 づら く な る 場合 が あり ます 。
NEC Confidential
52
【 コー ディ ング 例 】
シス テム フォ ント を 変更 する サン プル コー ド を 以下 に 記載 し ます 。 こ の コー ド で は SetSysFont Si ze
関数 の 引数 dwFont Si ze, dwFontVei ght の 値 で シス テム フォ ント の サイ ズ と 厚み を 変更 し ます 。
レジ スト リ の 値 設 定 は 、 RegQreat eKeyEx 関数 で レジ スト リキ ー を オー プン 後 、 RegSetVal ueEx 関数 で
設定 し ます 。
また 、 こ の サン プル コー ド 実行 後に 本 装置 裏側 に ある リセ ッ ト スイ ツチ を 押し て 再起 動 す る と 、 シス テ
ム フ ォ ント の 変更 が 反映 され ます 。
#include く windows.h>
#define SUB_KEY_SYS FONT TEXT("System\\GDI\\SYSFNT”)
#define SUB_KEY_OOM_FONT TEXTCSystem\\GDI\\OOMFnt”)
#define ENTRY_NAME_SIZE TEXTCHt”)
#define ENTRY_NAME_WEIGHT TEXT(“Wt")
BOOL SetSysFontSize(DWORD dwFontSize, DWORD dwFontWeight)
{
LONG IResult:
HKEY hKeyResult = NULL:
DWORD dwDisposition = 0:
// レジ スト リキ ー を 開く
IResult = RegCreateKeyEx(
HKEY_LOCAL_ MACHINE,
SUB_KEY_SYS_ FONT,
0,
NULL,
REG_OPTION_NON_VOLATILE,
KEY_WRITE,
NULL,
&hKeyResult,
&dwDisposition):
(IResult に ERROR_SUCCESS) {
return FALSE:
]
// フォ ント サイ ズ 設 定
IResult = RegSetValueEx(
hKeyResult,
ENTRY_NAME_SIZE,
0,
REG_DWORD,
(const BYTE*)&dwFontSize,
sizeof(DWORD)
)
放 (IResult に ERROR_SUCCESS) {
RegCloseKey(hKeyResult):
return FALSE:
( 次 ペー ジ へ )
NEC Confidential 53
// フォ ント の 厚み 設定
IResult = RegSetValueEx(
hKeyResult,
ENTRY_NAME_WEIGHT,
0,
REG_DWORD,
(const BYTE*)&dwFontWeight,
sizeof(DWORD)
):
ぜ (IResult に ERROR_SUCCESS) {
RegCloseKey(hKeyResult):
return FALSE:
]
// レジ スト リキ ー の クロ ー ズ
RegCloseKey(hKeyResult):
// レジ スト リキ ー を 開く
IResult = RegCreateKeyEx(
HKEY_LOCAL_ MACHINE,
SUB_KEY_OOM_FONT,
0,
NULL,
REG_OPTION_NON_VOLATILE,
KEY _WRITE,
NULL,
&hKeyResult,
&dwDisposition):
(IResult に ERROR_SUCCESS) {
return FALSE:
]
// フォ ント サイ ズ 設 定
IResult = RegSetValueEx(
hKeyResult,
ENTRY_NAME_SIZE,
0,
REG_DWORD,
(const BYTE*)&dwFontSize,
sizeof(DWORD)
)
放 (IResult に ERROR_SUCCESS) {
RegCloseKey(hKeyResult):
return FALSE:
]
// フォ ント の 厚み 設定
IResult = RegSetValueEx(
hKeyResult,
ENTRY_NAME_WEIGHT,
0,
REG_DWORD,
(const BYTE*)&dwFontWeight,
sizeof(DWORD)
):
ぜ (IResult に ERROR_SUCCESS) {
RegCloseKey(hKeyResult):
return FALSE:
( 次 ペー ジ へ )
NEC Confidential 54
// レジ スト リキ ー の クロ ー ズ
RegCloseKey(hKeyResult):
return TRUE:
NEC Confidential 55
参考 . 搭載 機能 一 覧
VWndovs CGC.NET 4 1 が 標準 で 用 意 し て いる 機能 の うち 、signmrionIII で 搭載 し た 機能 の 概要 を 記
この 機能 一 覧 は signmrionIII#
了 肖 し ます 。
製作 時 に 選択 し た 機能 の 概要 を 示し て いる も の で あり 、 全 て の 動作 を 保証 する
も の で は あり ませ ん 。 各 機能 を 使用 する 場合 は eMbedded V sual CH+ 4 0、eMbedded M sual CHH 4 0 Servi ce
Pack 1 や SLK PatfornmBunlder の オン ライ ンド キュ メン ト 、 マ イク ロ ソ フト 社 の 等 を 参照 し て くだ さい 。
種類
搭載 機能
77 リ ケ テー ツ ョ ツ - ry トリ ュー ず
IAct 1 VeSync
Windows Messenger
A ル 7
ーッ ド
受信 トイ
77 リカー ッ ョ ツ お よび サビ の 開発
C カ 2 お よび 1 ム
Mcrosoft Foundation dasses (MO
Focket Qtlook7 ザ ェクト t デ ル (ROOM AP
Wndovs CE NT 用 の 標準 SLK
IM52M
77 ィ 7 アル ー ト 2 イ 7 う 9( ATD
47" ゲ ェ ト 交換 7 トル (CHE
ュ ッ ホー トー ビ 和 (CM
7 要 ザ ェ 外 7t77” トル (SOAP) りー ルト
メッ セー ゲー( MM)
軽量 デイ ルク トリ 7 多 277H ト ルル ( TDAP) 27 イト
イル ター ネ り ト クラ イイ ツ ト サ ー ビ "X
Int erret Expl orer5.5
JScrit 5.5
VBScript 55
JO か ビ X J7 ①⑤ か ビ ん X
yr ル お よび エボ 人 7 ェ ー ス GWS
ツェ ル
49 ト リーー- ザ イツ ルー 7 エー
ャ セキュリ テイ
高度 な 暗号 / "イダ の ある 暗号 化 - じ ( yptoAP1.0)
認証 すじ ん ( SSP )
チイ 7 7 クル が
gital Rights Mnmagenert
jrectShow
WindowsMedi aH ayer
jrectSound
NEC Confidential
56
種類
搭載 機能
通信 サビ 2 お よび トー ゲ
ト リー や グ - - 加 エリ 79 ト 7-2 (LAN
ぇ トリ りー も ヤク - パー- ツ カル エリ アト 7-2( PAN
トリ - も 2 - 広域 4 トリ - ク ( WAN
Tel ephomyAP (TAPT 20
全 次 y ト 上 ポイ ト ツー ポイ 作 トド 中 (PPPoB)
【
が 人生 777' ト 7- 和 2 (RAS/PPP)
仮想 7 パート 9 ト 7- グ ′ (PPTP)
MTP
HTCP/IP6 玖 - ト
Wndovs 49 ト リー ネル グ | AP / リ ゲイ 化 22 (SM FS)
Wnsock"- ト
リル タイ 通信 ( RIO イツ ト AP
拡張 可能 証明 7 ロト ュ ル
NEC Confidential
57