Win32

ファイルに対する画像を取得する(WPF)

WPFで、単にファイルに対する画像を取得しようとしたのですが、たったこれだけのことにも関わらず、 意外と、どこにもソースが落ちていない。もちろん、 WindowsAPICodePack を使えば、簡単にできるんですが、大なた過ぎて、ちょっと・・・っていう感じだっ…

Aero-Snap による Window サイズの変更を検出する

GetWindowPlacement では、ウィンドウが通常の状態でのウィンドウ座標と、実際にウィンドウが、最大化されている(SW_MAXIMIZE)のか、最小化されている(SW_MINIMIZE)のか、あるいは、通常の状態(SW_SHOWNORMAL)なのかが取得できます。従って、普通なら、この…

C#からネイティブDLLを呼び出す場合のVSからのデバッグのジレンマを解決する

「C#を使う最大のメリットって、やっぱり、Visual Studioですよね!」って自信を持って言いたいですね。という心境ではあるんですが、私の仕事はどっちかというとC++よりなので、どうしても、DllImportはお友達という側面があります。そうすると、プログラム…

特定のプロセスが開いているファイルの一覧を取得する

そんなん、下の奴を見れば終わり:HOWTO: Enumerate handlesっていう訳にもいきませぬ。 上の奴からたどれる範囲のコードでは、 32bit PID値に未対応 SYSTEM_HANDLE ではなく、SYSTEM_EXTENDED_HANDLE を使う。 ネットワーク共有上のファイルに未対応 \Devic…

XAMLでウィンドウの最大化・最小化・閉じるボタン群を制御する Attached Property

Attached Property の便利さに目覚めたので、最近はこういうのは全部、Attached Properyです。

vsjitdebugger

vsjitdebugger.exeというプログラムはコマンドラインからデバッガーを起動する。 vsjitdebuggger /?ってやると、ダイアログに、 --------------------------- Visual Studio Just-In-Time Debugger --------------------------- Microsoft (R) Visual Studio…

バッチファイルが管理者で起動されているかどうかを確認する

管理者のコマンドプロンプトでしか動かないバッチファイルの先頭で、ユーザーが管理者かどうかを確認する方法。コマンドとしては、 whoami /groupsで十分で、中に、BUILTIN\Administratorsとか、Mandatory Label\High Mandatory Levelがあることを確認すれば…

MUI

Windows Vista以降、Windowsのローカライズの方法に多少の修正が加わって、いわゆる、今までの各国語版というのがなくなった。パッケージとしては残ってはいるものの、システムとしては、ニュートラルなWindowsに対して、言語パックを足せば、何語版にでもな…

効率的なメモリブロックサイズ

とっても環境依存で実装依存な事なんですが、一方で、メモリ効率っていうのは非常に大事なファクターです。 特に小さな構造体をメモリにたくさん配置するような場合、メモリのアラインメント(データをCPUが効率的にアクセスできるきりの良いアドレスに配置す…

Qt を試したけど玉砕した。

注意 下の作業をしたけど、あんまりうまくいきませんでした。玉砕です。 ただいま、いろいろ試行錯誤中ですが、自分用にメモとして書いておきます。 Qt のダウンロード 今回は、 http://qt.nokia.com/ から、Qt 4.7.0 (qt-sdk-win-opensource-2010.05.exe) …

C++とC# unsafeで速度差を計測してみる

何となく、unsafeコードの速度が気になったので、.NET Framework 4.0上でのC#コードと、Visual C++ 2010のコードの速度差を計測してみました。 ちなみに、このコードは、いわゆる画像処理の速度差を計測することを前提とするものなので、w/h/strideといった…

Win32のバージョンリソース

EXEファイルにバージョンリソースを書き込むコードを書こうとググって見たところ、意外にもあまりまともな記事が見つからなかったので、自分で書いてみた。基本的には、VERSIONINFO ResourceからMSDNの記事をたどって、全体構造を把握するだけなんだけれども…

WICでEXIFを考慮したプロファイル読み込みを行う

JPEGやTIFFから画像を読み込むにあたって、プロファイルが付与されている場合の処理は、カラーマネジメントや、既存のIWICBitmapSourceからの構築のように処理すれば良い部分はあるのだが、一方で、EXIFでは、プロファイルを付与せずにカラースペース指定を…

Low Integrity Processでのテンポラリディレクトリ

Windows Vistaで導入されたLow Integrity Process(低整合性プロセス)は、主に、Internet Explorerなどで使われていますが、それ以外にも、prevhost.exe (エクスプローラのプレビューアを隔離するプロセス)で利用されていたり、Designing Applications to Run…

Internet Explorer 9 Test Drive

Internet Explorer 9 Test Driveとりあえず、エンジンだけテクノロジープレビューという感じですね。GUIは全然できてなくて、レンダリングエンジンとしてのIE9を評価してくれみたいな。レンダリングが、Direct2Dや、DirectWriteになってたり、JavaScriptのエ…

Visual Studio 2010 RC

待ってましたよ。RC。 唯一の問題は、vcprojとvcxprojの互換性の問題のみ。手持ちのシステムが、vcprojの仕様に依存しているので、それをアップデートする必要があるなぁ・・・という。Visual Studio 2010 Beta1でのスクリーンショットと比較すると、フォン…

プレビューハンドラで検索されている単語の一覧を取得する

Windows Vista/7では、IPreviewHandlerを実装することによってエクスプローラの右ペインにファイルのプレビューを表示することが出来る。 ところで、Windows 7では、ファイル検索時に、ファイル一覧では、検索された単語がハイライトされる機能まで実装され…

Windows Vista+KB971644は、Windows 7とほとんど一緒なんじゃない?

WIC一覧の取得に関しては、WIC一覧の取得がWindows 7で動かないで書いたとおり、Windows 7では動かなかったんですが、どうやら、KB971644を適用したWindows Vistaでも動かないみたいです。面白いのは、WindowsCodecs.dllが、Windows 7では、6.1.7600.16385な…

ボリュームがマウントされているパスの一覧を取得する

FileSystemWatcherとか、ReadDirectoryChangesWは、ファイルの更新とかを監視するには便利な関数ですが、これらでサブディレクトリを監視するようにしても、サブディレクトリがマウントポイントで、他のボリュームが接ぎ木されているような場合にはそのマウ…

OACR Warnings

DDKというか、Windows Driver Kitでビルドしていたら、警告が表示された。 OACRっていうのが動いているなぁとは思っていたけど、こういう風に警告が表示されるんだと初めて知る。内容は、vsprintfなんて危険なAPI使うなよというもの。事前に_vscprintfでバッ…

WIC一覧の取得がWindows 7で動かない

WIC一覧の取得に書いた、 CLSID\{7ED96837-96F0-4812-B211-F13C24117ED3}\Instanceの下のエントリからWICでデコードできるファイルの種類の一覧を作成する方法だが、どうやら、Windows 7では動かないらしい。標準のコーデックはここに列記する以外の方法で設…

extern "C++"

Windows Driver Kit for Windows 7 and Windows Server 2008 R2をよく見ると、 extern "C++" というのがある。これは何ですか・・・。理屈から言うと、 extern "C" { // ここはC extern "C++" { // ここはC++ } } という感じで、入れ子にして、Cのコードの中…

Windows Driver Kit for Windows 7 and Windows Server 2008 R2

RTMのはずなんだけど、 c:\winddk\7600.16385.0\inc\api\propkeydef.h(32) : error C2664: 'memcmp' : cannot convert parameter 1 from 'const GUID' to 'const void *' No user-defined-conversion operator available that can perform this conversion, …

LNK1103: debugging information corrupt; recompile module

Windows 7関連のコードを書こうとすると、必然的にWindows SDKのベータバージョンをインストールすることになるんですが、インストール後に迂闊に、Windows SDK Configuration Toolで、VS2005までチェックをしたりしてしまい、VS2005でなんやかんやをコンパ…

Software Update

ITMediaの記事、Google、自動更新ツール「Google Update」の仕様を変更によると、Google Software Updateが将来的に(?)、タスクスケジューラを使ったソフトウェアアップデートに移行するようだ。 と、タスクマネージャを開いてみたけど、既にGoogle関連のプ…

メイリオの罠

まぁ、自分のコードがあんまりちゃんとテストされていなかったと言えばそれまでなんですが、自分の作っている仮想プリンタドライバでは、OEMTextOutをフックして、印刷されたテキストをテキストデータとして出力するような処理をしています。 一般的に、OEMT…

Visual Studio 2010 Beta1

Visual Studo 2010 Beta1をMSDNからダウンロードしてきて、とりあえず、Vista x64にインストールしてみました。WPFで実装されているっぽく、テキストエディタのフォントレンダリングには、見慣れない感じがある。テキスト選択なんて、もろにWPFっぽい。ただ…

x64で動かないAnyCPUな.NETアプリ

64-bitなWindowsを使っていると悲しくなるのが、特定のプログラムが、作者の不注意によって64-bitで動かなくなっていることが良くあること。 .NETのアプリだとありがちなのが、本体は、Pure .NETで作られていて、ライブラリとして、32-bitのDLLを利用してい…

Internet Explorer 8 beta 2

いろんなところで既に記事があるので書くべきことはあんまりないんですが、ドロップダウンリストやコンボボックスの外見が変わっていました。IE7 IE8 beta 2 あとなんか、全体的にコントラストがあがったような感じ。IE7のようなGUIの薄さというか、ほんわか…

_BIND_TO_CURRENT_VCLIBS_VERSIONについてまじめに調べてみる

時間ができたというか、眠くて仕事ができないので(???)、現実逃避気味に、調べてみることにした。まず、_BIND_TO_CURRENT_VCLIBS_VERSIONマクロは、誰が見ているのかというと、これは、crtassem.h (Libraries Assembly information)というヘッダ。基本的に、…