Bug with DragExt.dll

Advertisement

Viacheslav Sheveliov
Guest

Bug with DragExt.dll

After installing WinSCP version 3.5.6.213 (Win98 Russian) a have problem running Corel Photopaint10 (general protection fault at sturtup). :(

Why WinSCP?

:?: After tracing a problem with Sysinternals's Regmon, I've found, that before GPF Photopaint make calls to WinSCP keys in registry. Why it searches WinSCP keys?

:idea: After searching HKCR\CLSID registry path I've found mistaken keys, which was made by WinSCP's shell extension DragExt.dll, after DllRegisterServer.

:!: Here are those keys
REGEDIT4

[HKEY_CLASSES_ROOT\CLSID]
@="WinSCP Shell Extension"

[HKEY_CLASSES_ROOT\CLSID\CLSID]
@="{0000031A-0000-0000-C000-000000000046}"

[HKEY_CLASSES_ROOT\CLSID\InProcServer32]
@="C:\\PROGRAM FILES\\WINSCP3\\DRAGEXT.DLL"
"ThreadingModel"="Apartment"

[HKEY_CLASSES_ROOT\CLSID\TypeLib]
@="{FFBC50F3-043C-11D1-911D-006097C99383}"
I.e. it writes in root HKCR\CLSID.

Thank you.

WBR
Viacheslav Sheveliov
vsheveliov at mail dot ru

Reply with quote

Advertisement

martin
Site Admin
martin avatar
Joined:
Posts:
40,476
Location:
Prague, Czechia

Re: Bug with DragExt.dll

Thanks for info. This apparantly happens only to some users. I have not yet found what are the circumstances.

Reply with quote

Guest

Re: Bug with DragExt.dll

martin wrote:

Thanks for info. This apparantly happens only to some users. I have not yet found what are the circumstances.

And I guess, apparently with Win9x users.

I've downloaded sources and found the reason. Martin, In functions
bool RegisterServer(bool AllUsers) and bool UnregisterServer(bool
AllUsers) you forcely use unicode versions of
RegCreateKey (RegCreateKeyW) and RegOpenKeyEx (RegOpenKeyExW).

It's wrong. In Windows 9X those functions are simply stubs in advapi32.dll. They do nothing.
They return ERROR_SUCCESS and didn't change value of HKey passed to them, so next calls to registry write functions write to parent key.

I rewrite DragExt.c for Visual C++ and it works fine now 8)

WBR
Viacheslav Sheveliov
vsheveliov mail.ru

Reply with quote

martin
Site Admin
martin avatar
Joined:
Posts:
40,476
Location:
Prague, Czechia

Re: Bug with DragExt.dll

I've downloaded sources and found the reason. Martin, In functions
bool RegisterServer(bool AllUsers) and bool UnregisterServer(bool
AllUsers) you forcely use unicode versions of
RegCreateKey (RegCreateKeyW) and RegOpenKeyEx (RegOpenKeyExW).

It's wrong. In Windows 9X those functions are simply stubs in advapi32.dll. They do nothing.
They return ERROR_SUCCESS and didn't change value of HKey passed to them, so next calls to registry write functions write to parent key.

I rewrite DragExt.c for Visual C++ and it works fine now 8)
I've thought that this would be problem with Unicode on 9x. However I haven't found non-Unicode alternative to StringFromGUID2. Can you help me with this?

Reply with quote

Advertisement

You can post new topics in this forum