2004-10-19 [長年日記]

[SVN] moveのrevert

Subversionのmoveはcopy+deleteなので、revertしようとすると面倒です。

# 移動
svn mv a/x.cpp b/x.cpp

# 移動元をrevert
svn revert a/x.cpp
# 移動先をrevert
svn revert b/x.cpp
# 移動先のローカルファイルを削除
rm b/x.cpp

どのファイルをどこに移動したかは自分で覚えておかなくてはいけません*1。移動先はaddされた状態なのでrevertしてもローカルファイルが削除されません。間違って消えてしまうよりはましですが何とかならないものでしょうか。

*1  svn stしてもわかりません

オートコンプリート

IEのアドレスバーなどのようなエディットボックスやコンボボックスのオートコンプリートは、SHAutoCompleteを使うと簡単に実装できます。細かい制御がしたい場合には、IAutoCompleteを直接使います。補完候補は、IEnumStringで渡すことができます。ディレクトリのように階層化されたものを補完するときには、IACListを使います。というあたりの話が、Using Autocompleteに書かれています。

QMAIL3のアドレスの自動補完にこの機能を使えるかなと思って調べたのですが、アドレス入力欄は一つのエディットボックスに複数のアドレスを入れるのでかなりトリッキーなことをやらないとだめそうです。Windows CEで使えないという問題もあります。

IShellMenu

シェル周りのインターフェイスを調べていたときに見つけたのですが、IShellMenuを使うとIEのお気に入りのような右クリックしたりドラッグアンドドロップできるメニューが作れます。しかし、そのあたりの動作が可能になるのは、シェルのネームスペースに入っているものだけのようです。逆に考えると、好きな階層をIShellFolderで見せるようにすれば、好きなものを入れられるかも知れません。

Windows CEのShellExecuteEx

ShellExecuteExに渡すSHELLEXECUTEINFOのlpVerbにNULLを設定すると、デフォルトのVerbがない場合にクラッシュするっぽいです*1ドキュメントにもNULLを渡せると書いてありませんし。

5年以上前に同じことに気付いた気がしますが、すっかり忘れていたのでメモ。

*1  Windowsでは問題ないです

Embedding Mozilla

アプリケーションにブラウザやHTMLエディタを埋め込むためのSDKを作るプロジェクトです。

[]

トップ «前の日記(2004-10-18) 最新 次の日記(2004-10-20)»