実装に入る前に

ログ出力クラスは、まぁ当初は環境を選ばないように実装しようと思ったり、
実行速度をできるだけはやめようと、ログファイルの更新に、コピーをせずに名前の変更とかで対応しようとか色々考えてたけど、

最近、あまりにも普段の仕事が忙しくなり、余裕Nothing状態だった。
で、めんどくさかったので
(ファイルのコピーをするのもWin32APIに頼るくらい)
もうこれで終了。

PHP用やLinux用が必要になったときに、このログクラスの性能向上を目指すということで。多分しないだろうけど。

で、今日は警報システムに必要な勉強を考えてみた。

1.ソケットプログラミング(当分先かなあ)
2.VoIP(一生わからない気がするので、多分実装できないだろうね。)
3.多重起動禁止機能
4.SDKプログラミングだけどMFCのCStringクラスは使いたいの
5.タスクトレイ常駐機能
6.mp3再生機能(waveファイルはMCIコントロールでなんとかできた)

が、今の候補。1番と2番で、つまずいて結局開発断念というオチになるだろうが、それまでの勉強はプラスになるはずだ。

4番は先日クリアした。こういうプログラミングってMFCプログラミングというのか、SDKというのかよくわからん。

3番はすぐにできそうだからちょん。今日は5番の勉強。猫でもわかるWindowsプログラミングをみて、サンプルコードをビルドしようと思っても、ビルドエラーが出る。何故?
よくわからないけど、どう実装すればよいのかは理解した。今度は自分で作ってみよう。

コールバックのメッセージ 説明
WM_NOTIFY WM_COMMANDと同じ感じだけどにおいが違う
  • Shell_NotifyIcon関数

BOOL Shell_NotifyIcon(
DWORD dwMessage, //アクション NIM_ADDでタスクトレーにアイコン追加 NIM_DELETEでタスクトレーのアイコン削除
PNOTIFYICONDATA lpdata //NOTIFYICONDATA構造体へのポインタ
);

  • NOTIFYICONDATA構造体

typedef struct _NOTIFYICONDATA {
DWORD cbSize;//構造体サイズ よくわからんけど、sizeofすればいいみたい
HWND hWnd;//コールバックを受ける(WM_NOTIFYを受け取る)ウインドウハンドル
UINT nID;//アイコンのID
UINT uFlags;//有効なメンバ NIF_ICON|NIF_MESSAGE|NIF_TIP
UINT uCallbackMessage;//アプリケーション定義メッセージ。タスクトレー常駐時にマウスなどのイベントが発生すると、ここで定義したメッセージがコールバック関数に送信されるらしい。
HICON hIcon;//アイコンハンドル
TCHAR szTip[64];//タスクトレーのツールチップの文字らしい

}

  1. タスクトレーに格納するには、NOTIFYICONDATA構造体に必要事項をセットし、Shell_NotifyIcon関数を実行する

ってことらしい。

なんだか、その前にC++の勉強をもっとしないといけないような気がしてきた・・。