« シェル拡張-エクスプローラのコンテキストメニューを拡張 [2] | トップページ | シェル拡張-エクスプローラのコンテキストメニューを拡張 [4] »

2009年4月10日 (金)

シェル拡張-エクスプローラのコンテキストメニューを拡張 [3]

[1]で作成したDLLにDllRegisterServer()/DllUnregisterServer()を追加する。

別のPlatform SKDサンプル ShellIconOverlay で定義されているDllRegisterServer()/DllUnregisterServer() が大きく流用可能である。
HKEY_CLASSES_ROOT\CLSID の下に登録する部分と、HKEY_LOCAL_MACHINE\....\Approved の下に登録する部分はできているので、これ以外のレジストリ登録コードを追加すればよい。

これによってREGファイルを使わなくても REGSVR32.EXE で登録が可能になる。


SDKサンプルShellIconOverlay のDllUnregisterServer()には間違いがある。
Approvedの値を削除するところで
      lResult = RegDeleteValue(hKey, STR_EXT_TITLE);

      lResult = RegDeleteValue(hKey, szCLSID);
でなければならない。

SDKサンプルと言えど完全ではないようだ。


このようにして作成したDLLのソースを公開したらよいのでしょうが、ほとんど元々のサンプルプログラムのままなので...

« シェル拡張-エクスプローラのコンテキストメニューを拡張 [2] | トップページ | シェル拡張-エクスプローラのコンテキストメニューを拡張 [4] »

ソフトウエア」カテゴリの記事

コメント

コメントを書く

(ウェブ上には掲載しません)

トラックバック


この記事へのトラックバック一覧です: シェル拡張-エクスプローラのコンテキストメニューを拡張 [3]:

« シェル拡張-エクスプローラのコンテキストメニューを拡張 [2] | トップページ | シェル拡張-エクスプローラのコンテキストメニューを拡張 [4] »