Windows XP の SHELL32.DLL の 744と 745 について その2

Windows XP の SHELL32.DLL の 744と 745 について

追跡調査して、実際に動かしてみた所。
序数 744 と 745 の関数のとび先が…

shl
あれ?ちゃんとある。

どうやら、最近使ってるデバッガのバグの様だ・ω・ (なんてこった!)
素直に Dependency Walker を使っておけばよかったのだ

つまり…
744と 745 を呼び出してる箇所が該当することに

Windows XP
 L7D5C1F98:
         dd    L7D6AD625
         dd    L7D61B59E
         dd    L7D61B5AD
         dd    SUB_L7D5E5CBD
         dd    L7D60D28F
         dd    L7D6AD634 <--

Windows 2000
 L73AB98F8:
         dd    L73B5CA8A
         dd    L73B62C88
         dd    L73B9AC37
         dd    SUB_L73B6AADF
         dd    L73B6AAF6
; ない

同等の機能関数を調べたら、2000にはなかった・ω・ ガーン

レジストリで調べてみると

744 Create_IEnumUICommand

[HKEY_LOCAL_MACHINE\Software\Classes\Interface\{869447DA-9F84-4E2A-B92D-00642DC8A911}]
@="IEnumUICommand"
[HKEY_LOCAL_MACHINE\Software\Classes\Interface\{869447DA-9F84-4E2A-B92D-00642DC8A911}\NumMethods]
@="7"
[HKEY_LOCAL_MACHINE\Software\Classes\Interface\{869447DA-9F84-4E2A-B92D-00642DC8A911}\ProxyStubClsid32]
@="{B8DA6310-E19B-11D0-933C-00A0C90DCAA9}"

745 Create_IUIElement

[HKEY_LOCAL_MACHINE\Software\Classes\Interface\{EC6FE84F-DC14-4FBB-889F-EA50FE27FE0F}]
@="IUIElement"
[HKEY_LOCAL_MACHINE\Software\Classes\Interface\{EC6FE84F-DC14-4FBB-889F-EA50FE27FE0F}\NumMethods]
@="6"
[HKEY_LOCAL_MACHINE\Software\Classes\Interface\{EC6FE84F-DC14-4FBB-889F-EA50FE27FE0F}\ProxyStubClsid32]
@="{B8DA6310-E19B-11D0-933C-00A0C90DCAA9}"

あたりの処理

両方Windows 2000がOSの機能として(IE6を入れた場合)持ってるので実装できないのかもしれないが、
10以上のプロシージャーコール部分を手動でコーディングする必要がある。

おすすめ

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です