I noticed something curious today when checking the logs of the emulator for *platsec* errors... When I construct a CTelephony object using

Code:
iTelephony = CTelephony::NewL();
I get these two errors (talxsettingssrv.exe being a process with capabilities "none"):

Code:
          466.835	*PlatSec* WARNING - Capability check would have failed - Process TALXSETTINGSSRV.EXE was checked by Thread TALXSETTINGSSRV.EXE::TalksSettingsServer and was found to be missing the capabilities: WriteDeviceData .  Additional diagnostic message: Checked whilst trying to Set a Publish and Subscribe Property
          466.985	*PlatSec* WARNING - Capability check would have failed - A Message (function number=0x00000047) from Thread TALXSETTINGSSRV.EXE[101f70b1]0001::TalksSettingsServer, sent to Server !EtelServer, was checked by Thread c32exe.exe[101f7989]0001::CTelServer and was found to be missing the capabilities: NetworkServices .  Additional diagnostic message: Checked by CPolicyServer::RunL
When deleting iTelephony from the same process, I get

Code:
          479.950	*PlatSec* WARNING - Capability check would have failed - A Message (function number=0x00000048) from Thread TALXSETTINGSSRV.EXE[101f70b1]0001::TalksSettingsServer, sent to Server !EtelServer, was checked by Thread c32exe.exe[101f7989]0001::CTelServer and was found to be missing the capabilities: NetworkServices .  Additional diagnostic message: Checked by CPolicyServer::RunL
It appears that this is not getting in the way of my using CTelephony for retrieving the IMEI of the phone.

So this may only be an annoyance, as long as the aspects of CTelephony that fail here are never used by the caller, and in fact may require the process to have these capabilities anyway for the affected APIs, but it seems strange to do capability-protected things in a constructor/destructor on a "speculative" basis, and at least makes for a confusing trace log...