« 2005年5月 | トップページ | 2005年7月 »

市野で遭遇タコスの人

市野にウィンドウショッピング(みてるだけー)に行ったら、タコスの人が後ろから近づいてきて声をかけられました。仕事暇そうでカワイソスだけど時給を聞いたら僕もやりたくなった罠。カード発行の仕事で入って欲しそうだったので、ちょうど何かカード作りたかったところだから作りましたヽ(・ω・)ノ

大量のサービス d(゚Д゚)☆スペシャルサンクス☆( ゚Д゚)b

| | コメント (3) | トラックバック (1)

イオン市野にいってみました

今日イオン市野にいってみたら入るのに30分待ちでした(´・ω:;.:...

家から歩いていったほうがはやかったよ|ω・`)

中の店舗はシトロよりもメンズショップが多い印象で、自分好みの服も結構あったのでこれから買い物にちょくちょく行くかも。

で、タコスの中の人とは出会えませんでしたとさ。どこのお店だったんだろ|ω・`)

| | コメント (2) | トラックバック (0)

あいちきゅうはくにいってきました

manmosマンモス待ち時間5分とかテラワロスwwww

おっと・・・失礼。

愛・地球博に行ってきました。企業パビリオンは当然のことながらいけるわけがなく。2時間まちとかじゃなくて7時間待ちって・・・朝から並んで夕方ですか(;´Д`)?

で、いろいろな国のパビリオンを回ってきました。入り口から一番反対側のロシアまで行ってかなり疲れたので、入り口に戻りながらお土産買いながら戻っていくとマンモスラボを発見。で、この写真のように待ち時間5分でした。

行ってみると待ち時間なしで動く歩道に乗せられてマンモスの頭と足を見せられただけ。一番つまらなかった気がする・・・。

これは一度いけば満足だな(・ω・ )

| | コメント (0) | トラックバック (0)

プログラムで作ったグラフを保存する方法

プログラムというよりDirectShowの話題。DirectShowをやっているとGraphEditで確かめて、プログラムにするっていうのが一般的だけど、プログラム書いておかしいかどうか確かめたりするのに、GraphEditみたいなツールで視覚的にみたい時が多い。

プログラムで作ったグラフを確認する方法として、先日紹介したAddToRotの方法があるが、もう一つ、ファイルにセーブして後からGraphEditで確認する方法もある。こっちのほうが簡単かも。

方法は、以下の関数を追加して、グラフが生きてるときに呼ぶだけ。ファイル名はフルパスで。

// SaveGraphFile グラフをgrfファイルにしてGraphEditで見えるようにする関数
// 引数
//  ファイルに保存したいグラフ : pGraph
//  保存するファイル名(フルパス): wszPath

HRESULT SaveGraphFile( IGraphBuilder *pGraph , WCHAR *wszPath )
{
    const WCHAR wszStreamName[] = L"ActiveMovieGraph";
    HRESULT hr;
    IStorage *pStorage = NULL;

    // まず,GRFファイルを保持するドキュメントファイルを作る
    hr = StgCreateDocfile( wszPath , STGM_CREATE | STGM_TRANSACTED | STGM_READWRITE | STGM_SHARE_EXCLUSIVE , 0 , &pStorage );
    if( FAILED( hr ) ){
        return hr;
    }

    // 次に,保存するストリームを作る
    IStream *pStream;
    hr = pStorage->CreateStream( wszStreamName , STGM_WRITE | STGM_CREATE | STGM_SHARE_EXCLUSIVE , 0 , 0 , &pStream );
    if( FAILED( hr ) ){
        return hr;
    }

    // IPersistStream::Saveメソッドはストリームを存続できる形に変換する
    IPersistStream *pPersist = NULL;
    pGraph->QueryInterface( IID_IPersistStream , reinterpret_cast<void **>(&pPersist) );
    hr = pPersist->Save( pStream , TRUE );
    pStream->Release();
    pPersist->Release();
    if( SUCCEEDED( hr ) ){
        hr = pStorage->Commit( STGC_DEFAULT );
    }
    pStorage->Release();
    return hr;
}

| | コメント (0) | トラックバック (0)

アクセスカウンタつけました

温泉通信さんを見てやってみました。

これ使えば一応HTMLタグつかえるっぽいし便利ヽ(*‘ω‘*)ノ

ちなみにカウンタはhilogと共用中。しばらくしたら単独に切り替えるかな・・・

| | コメント (3) | トラックバック (0)

VICSスゴス

杏○堂で買ってきて舐めたら普通に咳がとまったよ!!

咳止めの薬より効いた罠Σ(‘ω‘ ;* )

おかげさまで後は下痢のみ(*‘ω‘ )ノ

| | コメント (0) | トラックバック (0)

風邪でダウン

1週間ほどくたばってました。(;´д`)

鼻水がひどくて、熱が39度くらい出たり、下痢がひどかったり、咳がひどかったりと、散々でしたが、やっと鼻水と咳とおなかがちょっとゆるい程度まで回復した模様。

長引きすぎヽ(・ω・`;)ノ

| | コメント (0) | トラックバック (0)

アクセス解析

導入しようと思って、HTMLタグを挟み込むやつを登録したのに、HTMLタグが使えNEEEEEEEEEEEEEEEEEEEEヽ(`(`(`(`ヽ(`Д´)ノ  ウワ・ウワ・ウワ・ウワ・ウワアァァァン!! 

| | コメント (0) | トラックバック (0)

GraphEditで自分のアプリで作ったグラフを見る

GraphEditってものすごく便利で、DirectShowのプログラムを見た目で繋いでいくだけで完成する。だけど、その後ソースを吐き出してくれないから、プロトタイプ用と思いきや、自分のアプリで作ったグラフをGraphEditの絵で見ることができる。

そのためには、まず以下の二つの関数を用意する。

HRESULT AddToRot(IUnknown *pUnkGraph, DWORD *pdwRegister)
{
    IMoniker * pMoniker;
    IRunningObjectTable *pROT;
    if (FAILED(GetRunningObjectTable(0, &pROT))) {
        return E_FAIL;
    }
    WCHAR wsz[256];
    wsprintfW(wsz, L"FilterGraph %08x pid %08x", (DWORD_PTR)pUnkGraph, GetCurrentProcessId());
    HRESULT hr = CreateItemMoniker(L"!", wsz, &pMoniker);
    if (SUCCEEDED(hr)) {
        hr = pROT->Register(ROTFLAGS_REGISTRATIONKEEPSALIVE, pUnkGraph,
            pMoniker, pdwRegister);
        pMoniker->Release();
    }
    pROT->Release();
    return hr;
}

void RemoveFromRot(DWORD pdwRegister)
{
    IRunningObjectTable *pROT;
    if (SUCCEEDED(GetRunningObjectTable(0, &pROT))) {
        pROT->Revoke(pdwRegister);
        pROT->Release();
    }
}

そして、自分のアプリで作るグラフをCoInitializeしたら、AddToRotを呼び出す。で、アプリを終わる前にGraphをReleaseするタイミングと同じタイミングでRemoveFromRotを呼び出す。これでアプリ側の準備は完了。

ge 後はアプリを実行中に、GraphEditのコレをポチっと押すと一覧見たいのが出てくるのでそこでOKを押すとグラフエディットが起動中のアプリのグラフを読み取って表示する。

これでちゃんと動かせているかわかるのでかなり便利に使ってます。

| | コメント (0) | トラックバック (0)

Sinkグラフは完成

IStreamBufferSinkを使ってシンク側のGraphはほぼ完成。だけど、IStreamBufferSourceが全然うまくいかない。解決の糸口はなし・・・。DirectShowに関する書籍少なすぎ(・ω・`lll)

| | コメント (0) | トラックバック (0)

DirectShowのIStreamBufferSinkフィルタ

CComQIPtr<IBaseFilter> pSinkF(pSink);

これをグローバルに置いていたら実行時エラーだったΣ(‘ω‘ ;* )ローカルに置き直したら普通に通過したし・・・。QueryInterfaceまで入ってるからグローバルだと怒られるっぽい(・ω・`#)

| | コメント (0) | トラックバック (0)

録画+追っかけ再生

DirectShowを使ってやっているけど、資料がMSDNしかない。DirectShow自体の資料が少ないのに、さらにその中でもマイナーな部分になるからかなりきついなぁ・・・。やりたいことは追っかけ再生ができた後の部分なのに。

IStreamBufferSinkとIStreamBufferSourceを使えばできる模様だけど、スキル不足でサクっと作れないのが痛いところ(´・ω・`)

| | コメント (0) | トラックバック (0)

ホットキーについて

チラシの裏メモ。

BOOL RegisterHotKey(
  HWND hWnd,         // ウィンドウのハンドル
  int id,            // ホットキーの識別子
  UINT fsModifiers// キー修飾子フラグ
  UINT vk            // 仮想キーコード
);

hWndに設定されたウィンドウがホットキーの通知を受ける。idはなんかGlobalAddAtom()をつかってほげほげするとか。要調査。fsModifiersはコントロールとかALTとかシフトとかWinを選ぶところ。vkはホットキーで使うCtrl+HだとしたらHの部分の仮想キーコード。

解除には

BOOL UnregisterHotKey(
  HWND hWnd// ウィンドウのハンドル
  int id      // ホットキーの識別子
);

を使う。

| | コメント (0) | トラックバック (0)

衝動買い?

白いパンツ(ブリーフジャナイヨ)を買いに行ったらリーバイスの結構いいパンツが見つかって衝動買い。シャツとカバンも買っちゃっいました。諭吉さんが1枚キエチャターヨΣ(‘ω‘ ;* )

レジに持っていったら今3割引だから元々のリーバイスのパンツの値段でシャツとカバンも買えちゃってお得な感じが。最近毎週買い物で諭吉さんが(´・ω・`)/~~

結局白いパンツは買いませんでした。

そんな僕をよそ目に彼女はウン万円のジャケットをぽんと買ってましたΣ(‘ω‘ ;* )ウン万円なだけあって、生地も良いし、サイズも体の形にぴったりとあって格好良かったデス。

あとアクセサリーとかもあわせて見て今日は二人合わせて5枚ぐらい飛んでった気が(((( ;゚д゚)))アワワワワ

これからは衝動買いは控えようと思った一日ですた(・ω・ )

| | コメント (0) | トラックバック (0)

GetAsyncKeyState

vectorで公開して窓の杜で紹介された「hMouseLimit」のバグトリ(Windows98で動作がおかしい)がやっとできると思ってソースを見ていたところ、GetAsyncKeyState関数が実は9x系では動作がおかしいとか何とか。

GetAsyncKeyState( VK_LBUTTON ) & 0x8000

でマウスクリックの判定をしているから9x系対応の関数を探すか、メインルーチンを弄って環境依存じゃなくなるようにがんばるか9X系を見捨てるか・・・。9x系でも動いてほしいけどそろそろサポート切れるらしいんだよね(・ω・ )

2005/06/05追記

ルーチン見直したら98でも動いたので単にバグだっただけな罠。もうちょっと手直ししたらvectorにアップしなおしします。

| | コメント (0) | トラックバック (0)

xreaからの移行

元々xreaでblogを自分で設置してやっていたけど、xreaがgoogle村八分食らっているみたいだし、これを期にこっちをメインに移行。

内定(σ´Д`)σゲッツ!!したから更新頻度は高くなると思います。

| | コメント (0) | トラックバック (0)

« 2005年5月 | トップページ | 2005年7月 »