////////////////////////////////////////////////////////////////////
/*

    KAB-studio.h


    (C)KAB-studio 1999 - 2005 ALL RIGHTS RESERVED.
        http://www.kab-studio.biz/
        info@mail.kab-studio.biz

    送信日： 2005/01/17(Mon) No.290
    配信数： 2019
    発行元： まぐまぐ ( URL: http://www.mag2.com/  ID: 0000012198 )
*/
////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////
/*                ２００５年１月１７日（月）の更新                */
http://www.kab-studio.biz/index.html

・ほとはー外伝３のページをちょっとだけ更新
　ほとはー外伝３のページをちょっとだけ更新。来週から始めますよー。
[ 三人合体ホットハーブ外伝３ ]
http://www.kab-studio.biz/Comic/HotHerbA3/index.html


////////////////////////////////////////////////////////////////////
/*                        ちょお普通な日記                        */
http://www.kab-studio.biz/nikki2/index.html

2005/01/09 (Sun)
　昨日は夜中までラグナロクバトルオフラインやってクリア。なんかやる気
が出ない。なんとか KAB-studio.h 送信予約したくらい。義経面白かった。
Nスペ・医食同源。そしてゲームは１日１時間。

2005/01/10 (Mon)
　昨日の夜中にひぐらしのなく頃に、鬼隠し編を読み終える。昼夜逆転の危
険。 Cygwin や MySQL をインストール。 Oracle 入れたいけど。なぜか夜
に昼寝。そして失業・再就職。そして時代に追い付く？

2005/01/11 (Tue)
　午前中は CVS まわり。午後に派遣元Ａ社の大宮へ。メール送ってから初
めてリーダーと会う。辞める理由の説明とか退職届の説明を聞いたりとか。
退職日は２２日に。帰りにヨドバシに寄ってIH調理器を見たり。退職日決
まって良かった……。そして投資対回収率悪過ぎ。

2005/01/12 (Wed)
　午前中は MySQL を使った JDBC アクセス。午後はぷらとわと風雅、舞い
書き。退職して良かったなぁ。食事改善。巌窟王がかなりよかった。
そして退職記念オフ。そして辞めるの薦めてない！

2005/01/13 (Thu)
　午前中は久しぶりの洗濯。午後はほとはー外伝３まわり。あとウイイレ８
を久しぶりに。ネトゲははまると壊そう……。３０歳になりました。まだ
３０歳。なんか好きなことできる感じ。そしてリアルな知り合い参加。そし
てオフ会なにをする？

2005/01/14 (Fri)
　７時に起きて立川の共済病院へ。お金も時間も掛かった……。ウィルス性
胃腸炎ではなく。採血して、来週超音波とＸ線、再来週その結果を。久しぶ
りに立川をぐるっとまわる。派遣先Ｃ社から仕事が降ってきた。夜８時半か
ら徹ゲーメンバーで退職祝い会？　そして蟹。そして一緒に働く？　そして
派遣先Ｃ社対応。

2005/01/15 (Sat)
　ウイイレしかしてない。マジで。かぶろぐに「はてなダイアリー利用者に
100の質問(2005)」を書く。今の体制って２４時間３６５日おしごとする状
態なので考えないと。


////////////////////////////////////////////////////////////////////
/*                         風雅、舞い                             */
http://www.kab-studio.biz/Novel/Fuga/index.html

■　第十一章　ファインダウト社　−１７−

「そんなに期待されても困るんだけど……」
　興味津々の舞に、リシュネは溜息をついた。
　確かに、ファインダウト社に戻って真っ先に舞に会いに行ったリシュネ
だったが、すぐに「部屋を見せて」と言われるとは思わなかった。
「長居は駄目だからね。メンテナンスしなきゃいけないんだから」
　舞の後ろを付いてくる智子が釘を刺す。
「メンテナンスって、薬を飲むだけじゃないんですか？」
「それはどうしてもメンテナンスが受けられない場合の話。本来は連続活動
時間分の回復処置が必要なの。それに、この前の」
「先生」
「あ……」
　リシュネが釘を刺すが、舞は気付いてしまっていた。
「そっか、この前の……」
「大丈夫、もうすぐ全快するから。……ここが私の部屋」
　昼に見せてもらった部屋以上に、ロックが厳重に掛けられたその部屋の中
は、無数の機械に囲まれていた。
「…………」
　右の壁沿いに寝かせられたチューブは昼に見たものと同じ形状をしてい
る。が、薬剤か何かの液体によってついた汚れや、脇に無造作に置かれた注
射器やアンプルが、それが普段から使用されているものだということを強調
していて、舞は拒絶感さえ感じていた。
「舞、こっち」
　そう呼ばれて我を取り戻す。部屋の奥に開け放たれた扉、その奥から差し
込む光に吸い寄せられるように舞は進む。
「う”っ！！」
　舞は、目眩を憶えた。
                                                              (続く)


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~[KCM]
「王子って私以上に脳天気だし、だから私も付き合いやすいのかも」
　え？
　ジャージには、それは酷く違和感を持つ言葉に感じられた。

　４人の関係が、少しずつ変わっていく……。


Machician 第４話 機械の魔法、機械の天使 好評連載中！
[ Machician ]
http://d.hatena.ne.jp/kab_studio/20040823#1093276416
[ Machician＋設定 最新一覧 ]
http://d.hatena.ne.jp/kab_studio/searchdiary?word=*%5BMachician
_______________________________________________________________[KCM]

////////////////////////////////////////////////////////////////////
/*                       #pragma twice                            */
http://www.kab-studio.biz/Programing/PragmaTwice/index.html

　Version 14.23
メッセージの復習

「今回は、ウィンドウとスレッドの組み合わせについて考えてみます」
『お、一番使いそうな例』
「そう、よく使いそうで、けれども難しい部分です」
『難しいの？』
「うん、ウィンドウの仕組みについてわかっていないといけないから。まず
そのために、 Version 10.01 ( No.179 ) の頃の、 MFC を使わないウィン
ドウプログラムを作ってみます」
『ウィンドウプロシージャとか作って中でメッセージの振り分けするヤツ
ね』
「そうそれ。まず【ファイル】−【新規作成】で【Win32 Application】
を選んでください。プロジェクト名は好きなもので」
『そういうの困る……』
「プロジェクトが完成したら【ファイルの新規作成】で Main.cpp という
ファイルを作ってください」
『その辺も Version 10.01 ( No.179 ) と同じね』
「ファイルを作ったら、その中にこう書き込んでください」

#include <Windows.h>

// ウィンドウプロシージャ。
LRESULT CALLBACK WndProc
    ( HWND p_hWnd
    , UINT p_uiMessage
    , WPARAM p_wParam
    , LPARAM p_lParam
    )
{
    if( p_uiMessage == WM_DESTROY )
    {
        // ×ボタンが押されました。
        PostQuitMessage( 0 );
        return 0;
    }

    // 標準的な処理をします。
    return DefWindowProc( p_hWnd, p_uiMessage, p_wParam, p_lParam );
}

// メッセージループ。
int MessageLoop()
{
    BOOL bRes;
    MSG stMsg;

    // メッセージループです。
    while( 1 )
    {
        // メッセージをキューから取り出します。
        bRes = GetMessage( &stMsg, NULL, 0, 0 );
        if    ( 
                ( bRes == 0 )
            || 
                ( bRes == -1 )
            )
        {
            // 終了するのでループから抜けます。
            break;
        }

        // メッセージを変換します。
        TranslateMessage( &stMsg );
        // ウィンドウプロシージャに送ります。
        DispatchMessage( &stMsg );
    }

    return stMsg.wParam;
}

// ウィンドウクラスを登録します。
bool RegistWndClass
    ( const char *const p_pchWndClassName
    , HINSTANCE p_hInstance
    )
{
    // ウィンドウクラス登録用構造体。
    WNDCLASSEX stWndClassEx;
    stWndClassEx.cbSize = sizeof( stWndClassEx );
    stWndClassEx.style
        = CS_BYTEALIGNWINDOW | CS_DBLCLKS | CS_HREDRAW | CS_VREDRAW;
    stWndClassEx.lpfnWndProc = WndProc;
    stWndClassEx.cbClsExtra = 0;
    stWndClassEx.cbWndExtra = 0;
    stWndClassEx.hInstance = p_hInstance;
    stWndClassEx.hIcon = LoadIcon( NULL, IDI_EXCLAMATION );
    stWndClassEx.hCursor = LoadCursor( NULL, IDC_ARROW );
    stWndClassEx.hbrBackground = (HBRUSH)COLOR_BACKGROUND;
    stWndClassEx.lpszMenuName = NULL;
    stWndClassEx.lpszClassName = p_pchWndClassName;
    stWndClassEx.hIconSm = LoadIcon( NULL, IDI_EXCLAMATION );

    // ウィンドウクラスを登録します。
    if( RegisterClassEx( &stWndClassEx ) == 0 )
    {
        // 失敗しました。
        return false;
    }

    return true;    
} 

// ウィンドウを作ります。
bool CreateAndShowWnd
    ( const char *const p_pchWndClassName
    , HINSTANCE p_hInstance
    , int p_iCmdShow
    )
{
    // ウィンドウを作ります。
    HWND hWnd = CreateWindow
        ( p_pchWndClassName
        , "テスト"
        , WS_OVERLAPPEDWINDOW
        , CW_USEDEFAULT
        , 0
        , CW_USEDEFAULT
        , 0
        , NULL
        , NULL
        , p_hInstance
        , NULL 
        );

    if( hWnd == NULL )
    {
        // ウィンドウの作成に失敗しました。
        return false;
    }

    // ウィンドウを表示します。
    ShowWindow( hWnd, p_iCmdShow );
    UpdateWindow( hWnd );
    return true;
}


// 最初に呼ばれる関数です。
int WINAPI WinMain
    ( HINSTANCE p_hInstance
    , HINSTANCE p_hPrevInstance
    , LPSTR p_pchCmdLine
    , int p_iCmdShow
    )
{
    const char pchWndClassName[] = "SimpleWindowClass";
    
    bool bRes
        = RegistWndClass( pchWndClassName, p_hInstance );
    if( bRes == false )
    {
        return -1;
    }
    
    bRes
        = CreateAndShowWnd
            ( pchWndClassName 
            , p_hInstance
            , p_iCmdShow
            );
    if( bRes == false )
    {
        return -1;
    }

    // メッセージループ開始！
    return MessageLoop();
}

『長！』
「このプログラム見て、 Version 10.04 ( No.182 ) を思い出して」
『メッセージキューの話だよね』
「今回のプログラムはメッセージループやウィンドウプロシージャといった
ウィンドウの一番基本的な部分を押さえてあります」
『メッセージループが MessageLoop() で、ウィンドウプロシージャが 
WndProc() ね。でも、これってどこがマルチスレッドと関係あるの？』
「というわけで次回に続く！」
『早！』

/*
    Preview Next Story!
*/
『今回はなんか勉強した気がしない……』
「でも、メッセージまわりって普段やらないから忘れてるとこない？」
『う”』
「そういうことなら復習復習」
『はいはい』
「特に、次回はメッセージループやウィンドウプロシージャに触れるから」
『その辺が鍵なんだ』
「というわけで次回」
＜ Version 14.24 メッセージループとスレッド ＞
『につづく！』
「その辺復習しておかないと来週きついよ？」
『スレッドだけでも難しいのにウィンドウも一緒……』


////////////////////////////////////////////////////////////////////
/*                ２００５年１月２４日（月）の更新                */
http://www.kab-studio.biz/index.html

・ほとはー外伝３スタート！
　お待たせしました、ほとはー外伝３がスタートします！
　休止しているほとはーの代わりとして、今度夏コミで頒布する予定の
外伝３を掲載していきます。コマ割りマンガ、白黒、そしてちょっとシリア
スなストーリー……いつもと違うほとはーをお楽しみください。


////////////////////////////////////////////////////////////////////
/*                          ご注意！！                            */

・このメールを返信しないでください。
・ご意見・ご希望・ご感想は[チョー普通な日記]よりお送りください。
http://www.kab-studio.biz/nikki2/
・購読登録を解除したいときにはこのページで行なってください。
http://www.mag2.com/m/0000012198.htm
・解除は自分で行なってください。
・バックナンバーはこれらのページにあります。
http://backno.mag2.com/reader/Back?id=0000012198
http://www.kab-studio.biz/Freeware/index.html#MailMagazine


////////////////////////////////////////////////////////////////////
/*
    KAB-studio.h
      Weekly Mail Magazine.
      Written by Kaburaya Seiden.
      http://www.kab-studio.biz/Info/MailMagazine/

    (C)KAB-studio 1999 - 2005 ALL RIGHTS RESERVED.
        http://www.kab-studio.biz/
        info@mail.kab-studio.biz
*/
////////////////////////////////////////////////////////////////////

