2007-03-01から1ヶ月間の記事一覧

IExtractIcon

IExtractIconを使用してファイルアイコンを取得した場合、アイコンを含まないExeファイルからアイコンを取得できない。このような場合、代わりにSHGetFileInfoを使用すれば、デフォルトExeアイコンが取得可能。

DataObjectに型情報を含めない生データを設定するには

WPF

SetDataの引数にMemoryStreamを指定すればOK。

ウィンドウをアクティブ化する

Windows98あたりから、他のウィンドウでキーボード入力中に 入力状態を持たないスレッドがウィンドウをアクティブ化することができなくなっている。その対策として、入力状態を持たないスレッドがウィンドウをアクティブ化する為に SystemParametersInfo(SPI…

液晶モニタ

もう発色は気にならなくなってきた。ただし視野角の狭さは気になるなぁ。 単一色がグラデーションに見えるのはちょっと・・・。

三菱 RDT201L

液晶モニタを買った。 解像度1600x1200 目に優しい 安い の3つの理由でRDT201にしたが・・・、視野角の狭さが気になる。あと発色の悪さも。慣れれば気にならないような気もするが・・・。

Office2003

COM

Office2003をインストール。 そしたらExcel8.0 Object Library(Excel97付属)が動かなくなった。 'System.ExecutionEngineException' のハンドルされていない例外が mscorlib.dll で発生しました。 動かなくなった場所は遅延バインディングで呼び出していたWo…

ShellExecuteEx

ShellExecuteExはSTA内で呼び出さなくてはならないらしい。 「コントロールパネル\管理ツール\サービス」等が何故かShellExecuteExで実行できないな〜、と思ったら、STAでないスレッドプールのスレッドからShellExecuteExを呼び出していたのが原因だった。

TrackPopupMenu

WPF

WPFアプリケーション内でShellのContextMenuを表示すると、 なぜか、TortoiseSVNの項目が空白となり、しかも、表示中にエラーが発生することがある。 FatalExecutionEngineError が検出されました。 Message: ランタイムの重大なエラーが発生しました。 エラ…

Tips

マネージド環境から作成されたSTA COMオブジェクトのメソッドは、自動的にオブジェクトが作成されたスレッドで実行される。(カレントスレッドIDを返すCOMオブジェクトを作成して確認済み)

今日の教訓

HRESULT 0x80004002 は正しくないCOMインターフェイスID(IID)を指定した時に返される 出力のみの引数でもC#から呼び出す場合には out ではなく ref を設定しておかないと動かない場合がある NULLでも良いとされる引数でも、有効なポインタを指定しないと動か…