Topic "Bug with DragExt.dll"

Author Message
Viacheslav Sheveliov

Guest


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

Why WinSCP?

Question 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.

Exclamation Here are those keys
Code:

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
Advertisements
martin
[View user's profile]
Site Admin
Joined: 2002-12-10
Posts: 25015
Location: Prague, Czechia
Thanks for info. This apparantly happens only to some users. I have not yet found what are the circumstances.
_________________
Martin Prikryl
Guest




prikryl 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 Cool

WBR
Viacheslav Sheveliov
vsheveliov mail.ru
martin
[View user's profile]
Site Admin
Joined: 2002-12-10
Posts: 25015
Location: Prague, Czechia
Quote:
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 Cool

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?
_________________
Martin Prikryl
Advertisements

You can post new topics in this forum






Search Site

What is WinSCP?

It is award-winning SFTP client, SCP client, FTPS client and FTP client integrated into one software program for file transfer to FTP server or secure SFTP server. [More]

And it's free!

Donate

About donations

$9   $19   $49   $99

About donations

Recommend

WinSCP Privacy Policy

WinSCP License