Hi guys !

Long time no see : real life is keeping me busy.

I have downloaded this sweet utility, Access Folders : http://www.shelltoys.com/access_folders/screenshots.html

Sure it is nice (especially if you are fond of keyboard shortcuts like me and think that using mouse is slow), but it could even be nicer !
It is missing some important features that I would really find useful and I don't feel like arguing with the author, as most shareware authors feel reluctant to add features asked by users.
It takes many mails to convince them of the obvious and if you hadn't bought the software yet, they simply don't care.

That's why I want to code a replacement for it by myself (which would even be free :p ).

I think that I should have no problems to replicate most of its features, but I really wonder how they integrated their menu in the open dialog and make it modify the behaviour of the open window.

I think they should use hooks (hooks scare me : I always hear that they are very complicated), but there are maybe other methods to achieve the same result.
Some people here probably have played around the Open/Save file window, and so, how did you achieve these results ?

Thanks !
Posted on 2004-01-09 11:15:55 by JCP

I think that I should have no problems to replicate most of its features, but I really wonder how they integrated their menu in the open dialog and make it modify the behaviour of the open window.

I think they should use hooks (hooks scare me : I always hear that they are very complicated), but there are maybe other methods to achieve the same result.
Some people here probably have played around the Open/Save file window, and so, how did you achieve these results ?
Thanks !


Hi,

Save/Open Dialogs are very easy to hook.

e.g.


Local ofn:OPENFILENAME

MOV ofn.???
MOV ofn.???
.
.
.
MOV ofn.lpfnHook, Offset SaveOpenHookProc

MOV ofn.Flags,OFN_ENABLEHOOK OR OFN_EXPLORER OR OFN_FILEMUSTEXIST OR OFN_HIDEREADONLY OR OFN_PATHMUSTEXIST

Invoke GetOpenFileName,ADDR ofn

.
.
.



SaveOpenHookProc Proc hWnd:DWORD, uMsg:DWORD, wParam:DWORD, lParam:DWORD

.If uMsg==WM_INITDIALOG

.ElseIf uMsg==??

.EndIf
MOV EAX,FALSE
RET

SaveOpenHookProc EndP


You can do whatever you like in SaveOpenHookProc

I hope this helps

akyprian
Posted on 2004-01-10 09:10:49 by akyprian
Thanks, but it must work on any open/saving dialog, from any application... not only from mine...
Posted on 2004-01-11 14:59:19 by JCP
You might want to check this out...

(my usual shameless self-advertising) :grin:

It's not exactly what you're asking, but it might help.
Perhaps there's another way using shell extensions -but I'm totally ignorant on the subject.
Posted on 2004-01-11 15:30:26 by QvasiModo