Last update: Saturday, 04-Jun-2011 17:29:12 JST |
_ 0900、ホワイトワールド尾瀬岩鞍到着。今日はのんびり、どちらかというと写真撮影メイン。いや昨日も撮りまくったけど。
_ ・・・と思ったら、メモリカードエラー。一度お祭り広場へ戻ってZaurusでデータ退避&リフォーマット。なにげにこういう時にざうは便利だ。
_ 1130昼飯。珍しくピザとソーセージなんて昼飯。ついでにホットワイン。
_ 午後も似たような感じでのんびり。ジャンプ台を飛ぶ連中が多数いたので下でカメラを構えてみたり。
_ 1530スキー場をあとに。今回のスキーはこれで終了。
ちぢれほうれん草と舞茸のバター炒め |
_
録画処理しながら夕飯。ちぢれほうれん草と舞茸のバター炒めが極上に旨い。
*1: フォルダ"c:\hoge\"にフォルダ"01"と実行ファイル"01.exe"があるとき、"c:\hoge\01"というパスがフォルダでなく実行ファイルを指してしまうケースがある。これを回避するためにも、「ディレクトリ名には"\"を付けて格納する」ほうが安全。
_ ということで、手許のソースから貼り付けてみる。
#include <windows.h> #include <stdio.h> #include <stdlib.h> #include <ctype.h> #include <string.h> #include <shlwapi.h> int myGetOpenFileNameMulti( TCHAR *startpath, TCHAR ***ret_pathlist, int *ret_npathlist ) { OPENFILENAME ofn; TCHAR dir[MAX_PATH]; TCHAR *p; TCHAR *file; TCHAR path[MAX_PATH*256]; TCHAR **pathlist; TCHAR **newpathlist; int pathlistsize; int npathlist; int i; int dirlen; int filelen; // 初期化 pathlistsize = 16; pathlist = (TCHAR **)GlobalAlloc( GPTR, pathlistsize*sizeof(TCHAR *) ); if ( pathlist == NULL ) { return (-1); } npathlist = 0; *(ret_pathlist) = NULL; *(ret_npathlist) = npathlist; // API発行 lstrcpyn( path, startpath, sizeof(path) ); lstrcpyn( dir, startpath, sizeof(dir) ); PathRemoveFileSpec( dir ); PathAddBackslash( dir ); if ( !lstrcmpi( path, dir ) ) { lstrcpyn( path, "", sizeof(path) ); } ZeroMemory( &ofn, sizeof(ofn) ); ofn.lStructSize = sizeof(OPENFILENAME); ofn.lpstrFilter = "すべてのファイル (*.*)\0*.*\0"; ofn.lpstrFile = path; ofn.lpstrInitialDir = dir; ofn.nMaxFile = sizeof(path); ofn.Flags = OFN_FILEMUSTEXIST | OFN_PATHMUSTEXIST | OFN_EXPLORER | OFN_ALLOWMULTISELECT; if ( GetOpenFileName( &ofn ) == FALSE ) { GlobalFree( pathlist ); return (0); } // 単一ファイル選択ならすぐ終了 if ( ( !(ofn.Flags & OFN_ALLOWMULTISELECT) ) || ( path[ lstrlen( path )+1 ] == '\0' ) ) { p = (TCHAR *)GlobalAlloc( GPTR, lstrlen( path )+1 ); if ( p == NULL ) { goto err_allocpath; } lstrcpy( p, path ); pathlist[npathlist++] = p; goto ret_ok; } // 複数ファイルのpathを展開しながらストア lstrcpyn( dir, path, sizeof(dir) ); PathAddBackslash( dir ); dirlen = lstrlen( dir ); file = path+lstrlen( path )+1; while ( file[0] ) { filelen = lstrlen( file ); p = (TCHAR *)GlobalAlloc( GPTR, dirlen+filelen+1 ); if ( p == NULL ) { goto err_allocpath; } while ( npathlist >= pathlistsize ) { pathlistsize *= 2; newpathlist = (TCHAR **)GlobalReAlloc( pathlist, pathlistsize*sizeof(TCHAR *), GMEM_MOVEABLE|GMEM_ZEROINIT ); if ( newpathlist == NULL ) { goto err_allocpath; } pathlist = newpathlist; } PathCombine( p, dir, file ); pathlist[npathlist++] = p; file += filelen+1; } goto ret_ok; ret_ok:; *(ret_pathlist) = pathlist; *(ret_npathlist) = npathlist; return (npathlist); err_allocpath:; for ( i=0; i<npathlist; i++ ) { GlobalFree( pathlist[i] ); } GlobalFree( pathlist ); return (-1); } int main( int argc, char *argv[] ) { TCHAR **pathlist; int npathlist; int ret; int i; if( argc == 1 ) { printf( "usage: %s [startpath]\n", argv[0] ); exit( EXIT_SUCCESS ); } ret = myGetOpenFileNameMulti( argv[argc-1], &pathlist, &npathlist ); if ( ret < 0 ) { printf( "error.\n" ); exit( EXIT_SUCCESS ); } if ( ret == 0 ) { printf( "no file selected.\n" ); exit( EXIT_SUCCESS ); } for ( i=0; i<npathlist; i++ ) { printf( "%d: %s\n", i, pathlist[i] ); GlobalFree( pathlist[i] ); } GlobalFree( pathlist ); return( EXIT_SUCCESS ); } // [EOF]
_ 追記。「!(ofn.Flags & OFN_ALLOWMULTISELECT)」の"&"がダブっていた。感謝。
_
もともとこのコード、このまま使うだけならofn.Flagsの値なんぞチェックしなくていい。コピペ&修正でこのコードを使いまわすとき、上のOFN_ALLOWMULTISELECTを外してしまった場合の対策で、今回ここに書くために追記したもの。それでミスってちゃ世話ない・・・(苦笑)。
_ 「Tidyを呼んでみてはどうか」ということで、tidyを持ってくる。
_ 普通にコンパイル・インストールして、Atomのcontent出力部に"tidy -utf8 -q -asxhtml"をpipe、<body>〜</body>を抜き出して出力するように。
_ ということで、XHTML Atom。
_ qsv系spam対策のreject_nsが古くなってきたのか、最近spamの削減効果がイマイチになってきた。
_ 千熊屋さんとこのリンクに従い、メールアドレス収集ロボット対策を読んで、spam対策まとめからcronで自動的にreject_nsを頂いてくるようにする。
KissDNにDK-21M装着 |
_ 言うまでもなくニコンの製品。だがCanonのEOS Kiss Digital Nに付くということで購入。20Dにも付くらしいけど。
_ 一応きちんとはまる。ただ1mm程度横が広いらしく、横に少々ガタつくうえにノッチもはまらないので少々抜けやすい。うちではスペーサー&接着効果を狙って、隙間部分に厚手の両面テープを細く切ったものを詰めてやることにする。
_ 「メガネをしていると視野がケラレやすくなる」という話があったが、わしは裸眼なのでぎりぎり・・・周辺部の光量が少々落ちているかな・・・くらい。変な滲みや流れは感じられない。
_ 「1.17倍の拡大効果」は、案外大きい。ファインダーを覗いたときのサイズだけでいえば、「20Dにかなり近く」なる。もちろん質が変わるわけじゃないから、あくまで「大きさ」だけ。ただ、明らかにピントはとりやすくなる。
_ あと、副次的な効果として、アイピースの出っ張り分だけ本体と顔との距離が離れるため、「背面液晶が顔の汗や脂で汚れにくくなる」という利点がある。いままではハクバの液晶シェードを使って防いでいたんだが、なくてもなんとかなりそう。もっとも、このシェードとアイピースは併用できないので、どっちかを選ばないといけないんだが。
_ 以下、関連リンク。
_ 電気用品安全法の影響が出ているということで、近所のハードオフを視察。
ハードオフ川崎大師店 |
電気用品安全法のお知らせ |
AVアンプ半額! |
軒並み値下げまくり |
_ 川崎大師店では「一部商品の買取ができなくなります」という掲示と、施行後に問題がありそうな商品の値引き販売がすでに始まっていた。高級AVとか電子楽器とかが狙い目といえる。
_ ちなみに、その後に行った「ブックオフ中古劇場 国道1号多摩川大橋館」ではまだ掲示なし。少々遅れてるかな・・・。
_ 去年の9月ごろ、Amazonの価格入力間違いで2万円程度のコンピュータチェアが10499999円で出るという出来事があった。面白そうなのでカートに入れてヲチしてたんだが、今日見たら
エレコム コンピュータチェア CCH-M002ABK ブラックがショッピングカートに 入ってから、この商品の価格は¥ 10,499,999から¥ 10,290に下がりました。 ショッピングカート内の商品は、それぞれの商品の詳細ページに表示されて いる最新の価格が反映されています。
_ という表示が。つい笑ってしまっつ。
_ かの国でも山小屋へ行く殿。楽しんでるかな・・・?
_ 日本酒は変質には強いというのは「醸造酒の中では」の話かと・・・抜栓後のワインやビールが1日どころか数時間でダメになるのに対して、日本酒はもっともつという程度。一升瓶じゃなく四合瓶で買ってみては。
_ 魔法少女リリカルなのはA’sのDVD。こちらによると、Vol.2やVol.3にもCDが付くらしい。何入れるんだろ・・・?
_ “捨てるほどの”失敗作。要らんショットを削除するのって、要るショットを選出するより数段面倒だと思うのはわしだけか・・・「めんどくさいから全部とっとく」ということで。
メールはこちらへ...[後藤浩昭 / Hiroaki GOTO / GORRY / gorry@hauN.org]