Initial contribution of the Adaptation Documentation.
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies) All rights reserved. -->
<!-- This component and the accompanying materials are made available under the terms of the License
"Eclipse Public License v1.0" which accompanies this distribution,
and is available at the URL "http://www.eclipse.org/legal/epl-v10.html". -->
<!-- Initial Contributors:
Nokia Corporation - initial contribution.
Contributors:
-->
<!DOCTYPE task
PUBLIC "-//OASIS//DTD DITA Task//EN" "task.dtd">
<task xml:lang="en" id="GUID-EFBBB53F-8402-5010-8B8D-96D0FC46F784"><title>Creating a Custom Command</title><shortdesc>This section describes the how to create custom command. </shortdesc><prolog><metadata><keywords/></metadata></prolog><taskbody><context><p>Custom commands are plug-in DLLs implementing the <xref href="GUID-DEDD8780-C422-3239-ACDC-A66D209992E6.dita"><apiname>MSsmCustomCommand</apiname></xref> interface. </p> </context> <steps id="GUID-E5D9F2F1-2711-51DB-A9D7-82464B2FF48B"><step id="GUID-2E0CA68F-E250-58FE-8EF7-6F515318028A"><cmd/><info>Define the <codeph>MSsmCustomCommand</codeph> class as illustrated in the code sinppet. </info> <stepxmp><codeblock id="GUID-2EE1ABB8-1A9D-5687-AE84-8C17E778C981" xml:space="preserve">
class CreateCustomCommand : public MSsmCustomCommand
{
public:
CreateCustomCommand();
~CreateCustomCommand();
TInt Initialize( CSsmCustomCommandEnv* aCmdEnv );
void Execute( const TDesC8& aParams, TRequestStatus& aRequest );
void Close();
void ExecuteCancel();
};
</codeblock> </stepxmp> </step> <step id="GUID-FBD78913-AFC0-5F6D-B40E-4C8513506C59"><cmd/><info>Create the custom command as shown in the code sinppet. </info> <stepxmp><codeblock id="GUID-A67C4FD1-7A6B-5054-8AFA-0C18CF5E6DC0" xml:space="preserve">CreateCustomCommand::CreateCustomCommand()</codeblock> </stepxmp> <info> Note: A device deadlock occurs when <codeph>User::WaitForRequest(...)</codeph> is called within the implementation of a custom command. Therefore, this function call must not be used within a custom command as this deadlock can prevent the SSM from functioning. </info> </step> </steps> </taskbody><related-links><link href="GUID-F14A2C1F-7803-5D93-B871-6AAC30F50115.dita"><linktext>Calling a Custom Command</linktext> </link> <link href="GUID-63F2124B-9B41-58D8-9439-CE4D8C3503D8.dita"><linktext>Running a Custom Command</linktext> </link> </related-links></task>