EldoS | Feel safer!

Software components for data protection, secure storage and transfer

Sample code for setting custom icons

Also by EldoS: Solid File System
A virtual file system that offers a feature-rich storage for application documents and data with built-in compression and encryption.
#14898
Posted: 11/01/2010 10:48:34
by Christian Schnidrig (Standard support level)
Joined: 10/25/2010
Posts: 44

Ok. Now I could install the dlls.

The Icon is still not shown.
Code


[HKEY_CLASSES_ROOT\CLSID\{5BB532A2-BF14-4CCC-86B7-71B81EF6F8BC}]
@="VSMntNtfOverlayIcon Class"
"AppID"="{4666FB4D-64B4-4860-BD8B-38E119F9F5AA}"

[HKEY_CLASSES_ROOT\CLSID\{5BB532A2-BF14-4CCC-86B7-71B81EF6F8BC}\InprocServer32]
@="C:\\Windows\\system32\\CbFsMntNtf3.dll"
"ThreadingModel"="Apartment"

[HKEY_CLASSES_ROOT\CLSID\{5BB532A2-BF14-4CCC-86B7-71B81EF6F8BC}\ProgID]
@="VSMntNtf.VSMntNtfOverlayIcon.1"

[HKEY_CLASSES_ROOT\CLSID\{5BB532A2-BF14-4CCC-86B7-71B81EF6F8BC}\Programmable]

[HKEY_CLASSES_ROOT\CLSID\{5BB532A2-BF14-4CCC-86B7-71B81EF6F8BC}\TypeLib]
@="{B54EE418-E4ED-41B0-B51F-D25D257B72EA}"

[HKEY_CLASSES_ROOT\CLSID\{5BB532A2-BF14-4CCC-86B7-71B81EF6F8BC}\VersionIndependentProgID]
@="VSMntNtf.VSMntNtfOverlayIcon"



[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers]

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers\EldosIconOverlay]
@="{5BB532A2-BF14-4CCC-86B7-71B81EF6F8BC}"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers\EnhancedStorageShell]
@="{D9144DCD-E998-4ECA-AB6A-DCD83CCBA16D}"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers\SharingPrivate]
@="{08244EE6-92F0-47f2-9FC9-929BAA2E7235}"


[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\explorer\ShellIconOverlayIdentifiers]

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\explorer\ShellIconOverlayIdentifiers\EldosIconOverlay]
@="{5BB532A2-BF14-4CCC-86B7-71B81EF6F8BC}"

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\explorer\ShellIconOverlayIdentifiers\EnhancedStorageShell]
@="{D9144DCD-E998-4ECA-AB6A-DCD83CCBA16D}"

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\explorer\ShellIconOverlayIdentifiers\SharingPrivate]
@="{08244EE6-92F0-47f2-9FC9-929BAA2E7235}"


[HKEY_LOCAL_MACHINE\SOFTWARE\VsMntNtf]

[HKEY_LOCAL_MACHINE\SOFTWARE\VsMntNtf\DriveIconMappings]

[HKEY_LOCAL_MACHINE\SOFTWARE\VsMntNtf\DriveIconMappings\0]
"CLSID"="{0F1B48A3-53CC-4489-BE85-88C1033BA188}"
"IconPath"="C:\\Users\\christian\\workspace\\CBFS\\installer\\icon.ico"
"TmpIconPath"="C:\\Users\\CHRIST~1\\AppData\\Local\\Temp\\icoE601.tmp"
"IconId"="wuala"
"IconIndex"=dword:00000000
"StorageType"=dword:00000006



[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\VsMntNtf]

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\VsMntNtf\DriveIconMappings]


Note, that the key [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\VsMntNtf\DriveIconMappings] is empty.

-------------

I also just noticed, that the version returned by getModuleStatus for module = 0x10000 is wrong. It returns the version of CbFsMntNtf instead of the version of CbFsNetRdr
#14899
Posted: 11/01/2010 11:40:34
by Vladimir Cherniga (EldoS Corp.)

Quote
Christian Schnidrig wrote:
Note, that the key [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\VsMntNtf\DriveIconMappings] is empty.

This is normal.

So i can see that 32-bit version of CbFSMntNtf3.dll is installed properly. Now we must see a two entries under
HKLM\Wow6432Node\Microsoft\Windows\CurrentVersion\explorer\ShellIconOverlayIdentifiers
and
HKLM\Microsoft\Windows\CurrentVersion\explorer\ShellIconOverlayIdentifiers
they must be named as
"1EldosIconOverlay" with a default value equal to CLSID specified in DriveIconMappings, but they should appeares after reboot.
How did you exactly check the storage icons in work ?
#14905
Posted: 11/02/2010 02:58:11
by Christian Schnidrig (Standard support level)
Joined: 10/25/2010
Posts: 44

That would mean, the keys are ok:

Code
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\explorer\ShellIconOverlayIdentifiers]

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\explorer\ShellIconOverlayIdentifiers\EldosIconOverlay]
@="{5BB532A2-BF14-4CCC-86B7-71B81EF6F8BC}"

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\explorer\ShellIconOverlayIdentifiers\EnhancedStorageShell]
@="{D9144DCD-E998-4ECA-AB6A-DCD83CCBA16D}"

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\explorer\ShellIconOverlayIdentifiers\SharingPrivate]
@="{08244EE6-92F0-47f2-9FC9-929BAA2E7235}"



[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers]

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers\EldosIconOverlay]
@="{5BB532A2-BF14-4CCC-86B7-71B81EF6F8BC}"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers\EnhancedStorageShell]
@="{D9144DCD-E998-4ECA-AB6A-DCD83CCBA16D}"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers\SharingPrivate]
@="{08244EE6-92F0-47f2-9FC9-929BAA2E7235}"


I start my application which does:
Code
createStorage
disableMetadataCache(true)
addMountingPoint("W:;;Wuala", SYMLINK_NETWORK |SYMLINK_LOCAL| SYMLINK_NETWORK_HIDDEN_SHARE, 0)
mountMedia
setIcon("wuala")

then I check in explorer if the icon is set or not.
#14906
Posted: 11/02/2010 03:35:11
by Vladimir Cherniga (EldoS Corp.)

Quote
Christian Schnidrig wrote:
I also just noticed, that the version returned by getModuleStatus for module = 0x10000 is wrong. It returns the version of CbFsMntNtf instead of the version of CbFsNetRdr

Thank you for the information, this issue will be fixed.

There is no "1EldosIconOverlay" entry, it means that dll not loaded into explorer process or not properly initialized.
Could you check with Process Explorer help does CbFsMntNtf3.dll is loaded into the explorer process ?
#14907
Posted: 11/02/2010 04:45:00
by Christian Schnidrig (Standard support level)
Joined: 10/25/2010
Posts: 44

It is loaded into the explorer process
#14909
Posted: 11/02/2010 08:32:26
by Vladimir Cherniga (EldoS Corp.)

There is a version with debug information output, you may monitor it with DebugView utility. Replace the 64-bit version dll from Windows\System32\ path. Then after reboot it will be loaded into explorer process and produce a debug log every time dll is loaded into process. In order to view this information every time you start an explorer you may try to change system folder options to run separate process every time you start explorer. If it doesn't help, try to add next registry parameters:
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer]
"DesktopProcess"=dword:00000001

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Advanced]
"SeparateProcess"=dword:00000001

they will start working after re-login.


[ Download ]
#14912
Posted: 11/02/2010 09:24:09
by Christian Schnidrig (Standard support level)
Joined: 10/25/2010
Posts: 44

Code
[1508] NPGetCaps 2
[1508]   WNNC_NET_TYPE
[1508] NPGetCaps 4
[1508]   WNNC_USER
[1508] NPGetCaps 6
[1508]   WNC_CONNECTION
[1508] NPGetCaps 11
[1508]   WNNC_ENUMERATION
[1508] NPGetCaps 9
[1508]   WNNC_ADMIN
[1508] NPGetCaps 8
[1508]   WNNC_DIALOG
[1508] NPOpenEnum
[1508] querying device name A:
[1508] device name is \Device\Floppy0
[1508] querying device name C:
[1508] device name is \Device\HarddiskVolume3
[1508] querying device name D:
[1508] device name is \Device\CdRom0
[1508] querying device name W:
[1508] device name is \Device\CbFs3Nr\;W:;0;000000000000fb73;WINDOOF;Wuala
[1508] NpEnumResource
[1508] NpCloseEnum
[1008] CbFsMntNtf!RegisterStorageIconOverlay:  RegOverlays.Open(HKEY_LOCAL_MACHINE, ICON_OVERLAYS, SamDesired) != ERROR_SUCCESS
[1008] NPGetCaps 2
[1008]   WNNC_NET_TYPE
[1008] NPGetCaps 4
[1008]   WNNC_USER
[1008] NPGetCaps 6
[1008]   WNC_CONNECTION
[1008] NPGetCaps 11
[1008]   WNNC_ENUMERATION
[1008] NPGetCaps 9
[1008]   WNNC_ADMIN
[1008] NPGetCaps 8
[1008]   WNNC_DIALOG
[1008] NPOpenEnum
[1008] querying device name A:
[1008] device name is \Device\Floppy0
[1008] querying device name C:
[1008] device name is \Device\HarddiskVolume3
[1008] querying device name D:
[1008] device name is \Device\CdRom0
[1008] querying device name W:
[1008] device name is \Device\CbFs3Nr\;W:;0;000000000000fb73;WINDOOF;Wuala
[1008] NpEnumResource
[1008] NpCloseEnum
#14913
Posted: 11/02/2010 10:17:45
by Vladimir Cherniga (EldoS Corp.)

What is the type of your current user account ?
#14914
Posted: 11/02/2010 11:28:36
by Christian Schnidrig (Standard support level)
Joined: 10/25/2010
Posts: 44

Administrator
#14915
Posted: 11/02/2010 11:57:46
by Vladimir Cherniga (EldoS Corp.)

Try with attached code. It has some additional debug output


[ Download ]
Also by EldoS: BizCrypto
Components for BizTalk® and SQL Server® Integration Services that let you securely store and transfer information in your business automation solutions.

Reply

Statistics

Topic viewed 78897 times

Number of guests: 1, registered members: 0, in total hidden: 0




|

Back to top

As of July 15, 2016 EldoS Corporation will operate as a division of /n software inc. For more information, please read the announcement.

Got it!