I'm building a static interface DLL which can be used by many applications.
I'm using 0xE0006666 as UID3 for DLL development & testing.
I would like to know if I need to get UID3 from Symbian signed before distributing the DLL?
I have read that "For static interface DLLs, the UID2 is KSharedLibraryUid. The UID3, which is used to identify the interface to the library, must be allocated by Symbian Signed."
2. I've another question about DLL capability.
I used "Capability ALL -TCB -DRM -AllFiles" in the DLL and
"Capability NetworkServices ReadUserData " in my test app that uses DLL.
When I tried to install the app (after self signing), I get "Required application access not granted" error message.
If I change DLL caps to "NetworkServices ReadUserData ", then it installs fine.
As per the documentation, DLL cap is just a trust level indication.
"Also libraries (DLLs) have capabilities, but these are interpreted a bit differently than capabilities of processes (EXE files). When applied to a DLL, a capability indicates the trust level of the code within the DLL. When the DLL is loaded into a process, the code is executed with the capabilities of the process (EXE), not the capabilities of the DLL. The capabilities of the DLL just indicate to which extent the code in the DLL can be trusted."
So, my app only uses those 2 caps which are basic. Then why did the installation failed. I also tried with open signed online. I get "The .sis file contains capabilities that are not permitted for Open Signed (Online)" error.
If I set the DLL capability to basic and the application which is going to use this needs extended capability, that application can't load the DLL. How do I set the capability?