shell-extensions

Creating a submenu in the explorer-shell-extention?

╄→гoц情女王★ 提交于 2019-12-01 16:31:41
问题 I created a small script that changes a filename (replacing spaces with _ , etc.). I'm controlling this script with parameters. Now I'd like to include that into my explorer-shell-extention, so I tried to add the following registry entries: HKEY_CLASSES_ROOT\*\shell\edit filname method a\command HKEY_CLASSES_ROOT\*\shell\edit filname method b\command HKEY_CLASSES_ROOT\*\shell\edit filname method c\command and so on. It's working fine but I'd like to pack all those methods together into a

Register a thumbnail handler for a folder, rather than a specific file type

天涯浪子 提交于 2019-12-01 10:54:05
I need to write a thumbnail handler for all the files under a given folder. This folder is a mounting point for a virtual file system (using Callback File System ), and the files are actually not present physically on the local machine (they're stored in the cloud), so if I let the default thumbnail handler do its work, it will try to download the whole files from the server... which is obviously not what I want. But now I just realized that a thumbnail handler must be registered per file type : Registration of a thumbnail handler is based on standard file associations. (from the documentation

How To Disable Shell Extension In FileOpen Dialog

北慕城南 提交于 2019-12-01 10:29:31
I am talking about windows shell extensions. I have a shell extension which could show the specific properties of my customized file type, say, *.filetype. And of course it will cause my shell extension dlls being loaded into the explorer.exe process. But now if I fire the FileOpen dialog in any application and check the file properties inside that dialog(notepad as an example), then these shell extension dlls would be loaded into notepad.exe process, which is the case I want to avoid. So is it possible to disable a specific shell extension in FileOpen Dialog? Thanks. Create a shim dll which

How To Disable Shell Extension In FileOpen Dialog

青春壹個敷衍的年華 提交于 2019-12-01 08:29:18
问题 I am talking about windows shell extensions. I have a shell extension which could show the specific properties of my customized file type, say, *.filetype. And of course it will cause my shell extension dlls being loaded into the explorer.exe process. But now if I fire the FileOpen dialog in any application and check the file properties inside that dialog(notepad as an example), then these shell extension dlls would be loaded into notepad.exe process, which is the case I want to avoid. So is

Loop through IContextMenu

非 Y 不嫁゛ 提交于 2019-12-01 07:54:51
How do I loop through all items and sub items of a IContextMenu and list all available verbs? So far, I have this working code extracted from JCL: function DisplayContextMenuPidl(const Handle: THandle; const Folder: IShellFolder; Item: PItemIdList; Pos: TPoint): Boolean; var Cmd: Cardinal; ContextMenu: IContextMenu; ContextMenu2: IContextMenu2; Menu: HMENU; CommandInfo: TCMInvokeCommandInfo; CallbackWindow: THandle; vteste : string; begin Result := False; if (Item = nil) or (Folder = nil) then Exit; Folder.GetUIObjectOf(Handle, 1, Item, IID_IContextMenu, nil, Pointer(ContextMenu)); if

Register a thumbnail handler for a folder, rather than a specific file type

爱⌒轻易说出口 提交于 2019-12-01 07:36:38
问题 I need to write a thumbnail handler for all the files under a given folder. This folder is a mounting point for a virtual file system (using Callback File System), and the files are actually not present physically on the local machine (they're stored in the cloud), so if I let the default thumbnail handler do its work, it will try to download the whole files from the server... which is obviously not what I want. But now I just realized that a thumbnail handler must be registered per file type

Loop through IContextMenu

邮差的信 提交于 2019-12-01 06:03:50
问题 How do I loop through all items and sub items of a IContextMenu and list all available verbs? So far, I have this working code extracted from JCL: function DisplayContextMenuPidl(const Handle: THandle; const Folder: IShellFolder; Item: PItemIdList; Pos: TPoint): Boolean; var Cmd: Cardinal; ContextMenu: IContextMenu; ContextMenu2: IContextMenu2; Menu: HMENU; CommandInfo: TCMInvokeCommandInfo; CallbackWindow: THandle; vteste : string; begin Result := False; if (Item = nil) or (Folder = nil)

Why are icons in property sheets rendered with so few colors?

感情迁移 提交于 2019-12-01 05:54:48
问题 I am creating a property sheet shell extension and want to have a little icon to set off my property tab from the standard system tabs. Unfortunately, my icon is being rendered almost entirely in grey. Original image: In the property sheet tab: At first I thought this was somehow my problem, but then I saw that TortoiseSVN appears to have the same problem: This happens in both Windows 7 and Windows 8. Does anyone know why these images are appearing so muted? Also, does anyone have any hints

How to unload C++ Shell Extension DLL properly

烂漫一生 提交于 2019-12-01 04:17:37
I have shell extension dll written in C++ and COM The dll is registered and loaded into memory. My upgrade setup program will do the following: Unregister the shell extension dll, kill the explorer.exe Copy the later version of the shell extension dll (Step 2) Start t he explorer.exe It works fine. But the issue is: If the user opened any other applications ( Internet explorer, sometimes windows task manager, notepad etc), the step Step 2 is failing. Is there any way to close all shell extension dll hooks while upgrading the dll. In the dll I am using GetOverlayInfo, context menu, database

How to unload C++ Shell Extension DLL properly

时光怂恿深爱的人放手 提交于 2019-12-01 01:40:06
问题 I have shell extension dll written in C++ and COM The dll is registered and loaded into memory. My upgrade setup program will do the following: Unregister the shell extension dll, kill the explorer.exe Copy the later version of the shell extension dll (Step 2) Start t he explorer.exe It works fine. But the issue is: If the user opened any other applications ( Internet explorer, sometimes windows task manager, notepad etc), the step Step 2 is failing. Is there any way to close all shell