Symbian3/SDK/Source/GUID-F79EE68F-FFC3-541E-AE3A-D7203034DA43.dita
changeset 0 89d6a7a84779
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Symbian3/SDK/Source/GUID-F79EE68F-FFC3-541E-AE3A-D7203034DA43.dita	Thu Jan 21 18:18:20 2010 +0000
@@ -0,0 +1,99 @@
+<?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 concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-F79EE68F-FFC3-541E-AE3A-D7203034DA43" xml:lang="en"><title>mmp
+project specification</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>This page describes the MMP for a typical GUI application.</p>
+<p><b>TARGETTYPE</b> </p>
+<p>From v9.0, a GUI application is an exe. This is specified with the <xref href="GUID-9535CF67-7541-554E-BE5C-9FDDFDB58EA5.dita">targettype</xref> statement:</p>
+<codeblock id="GUID-CC425464-79E3-5388-B133-F031FD283943" xml:space="preserve">TARGETTYPE exe</codeblock>
+<p>The target filename's extension can be either .app or .exe. This is specified
+using a <xref href="GUID-5D4DA7CA-DAB8-51E6-B597-4E8B0AB56477.dita">target</xref> statement:</p>
+<codeblock id="GUID-B8AD94B2-1E08-5E6F-A6B3-0665A5285DF3" xml:space="preserve">TARGET &lt;appname&gt;.exe</codeblock>
+<p><b>UID</b> </p>
+<p>Specify the UID for the application in a <xref href="GUID-BFCFD93E-D591-50D2-8263-D13D08DD9F15.dita">uid</xref> statement:</p>
+<codeblock id="GUID-F6B71A27-0986-5E95-8125-39A7175F0D6C" xml:space="preserve">UID 0x100039CE &lt;UID3&gt;</codeblock>
+<p>The UID2 value <codeph>0x100039CE</codeph> should be used for all applications.
+The UID3 value is the unique identifier for the particular application.</p>
+<p><b>Stack size</b> </p>
+<p>By default, processes have a stack size of 8K. This can be insufficient
+for some applications. To increase the size, use an <xref href="GUID-A8ECAA53-9094-5C0A-8893-2757559C15F0.dita">epocstacksize</xref> statement:</p>
+<codeblock id="GUID-FCE56679-AB1D-5545-9ECF-7B4DD4637A8A" xml:space="preserve">// set stack to 20K
+epocstacksize 0x5000</codeblock>
+<p><b>UI resource</b> </p>
+<p>Specify the application's UI resource file using a <xref href="GUID-5280EC0E-1A1F-5777-ACB1-CF4791EE2147.dita">start
+resource</xref> statement:</p>
+<codeblock id="GUID-5BC525DC-AF07-59C4-A59A-2ACF6CB82441" xml:space="preserve">START RESOURCE    &lt;appname&gt;.RSS
+HEADER
+TARGETPATH        \Resource\Apps
+END</codeblock>
+<p>The resource should be built into the <filepath>\Resource\Apps</filepath> directory.
+This is specified using the <codeph>TARGETPATH</codeph> part of the statement. </p>
+<p>The <codeph>header</codeph> line tells the resource compiler to produce
+a file <filepath>\epoc32\include\&lt;appname&gt;.rsg</filepath>, which defines
+macro constants through which C++ programs can refer to resource structures.</p>
+<p><b>Caption/icon resource</b> </p>
+<p>An application can specify localisable captions and icons to display on
+the shell using a <xref href="GUID-2431355F-E4D8-3226-9E9D-BAD6F23C418E.dita"><apiname>LOCALISABLE_APP_INFO</apiname></xref> resource, either
+in the UI resource file or in a separate resource file.</p>
+<p><b>Registration file</b> </p>
+<p>Specify the application's registration file using another <xref href="GUID-5280EC0E-1A1F-5777-ACB1-CF4791EE2147.dita">start
+resource</xref> statement:</p>
+<codeblock id="GUID-BADCE07B-0FD7-5B08-8A12-F88A7F681BEF" xml:space="preserve">START RESOURCE    &lt;appname&gt;_reg.rss
+TARGETPATH        \private\10003a3f\apps
+END</codeblock>
+<p>The registration file must be built to the private system directory <filepath>\private\10003a3f\apps</filepath> directory.</p>
+<p>Note that for security reasons a registration file cannot be installed
+directly to this location on a target device. When creating a PKG file (software
+install package file) for an application, the registration file must be installed
+to the <filepath>\private\10003a3f\import\apps\</filepath> directory.</p>
+<p>For more information, see <xref href="GUID-3AFA877F-41DE-5343-8BC2-C0FB894A062C.dita">Application
+registration information</xref>.</p>
+<p><b>Icons</b> </p>
+<p>A bitmap file containing icons for an application can be specified using
+a <xref href="GUID-B707887A-E0FA-5DF6-A906-A91E31E17321.dita">start bitmap</xref> statement:</p>
+<codeblock id="GUID-0B636524-66F0-5B00-A922-6FABFF5DD2C8" xml:space="preserve">START BITMAP    &lt;appname&gt;.mbm
+TARGETPATH        \Resource\Apps
+SOURCE            &lt;color-depth&gt; &lt;source-bitmap-list&gt;
+END</codeblock>
+<p>Icon files, like the UI resource file, should be built into the <filepath>\Resource\Apps</filepath> directory.</p>
+<example><p>An example of a real GUI application project file
+is given below:</p><codeblock id="GUID-CB2FA2A3-E8B1-5334-9DEA-B5811B2C1A2E" xml:space="preserve">TARGET        HelloWorld.exe
+TARGETTYPE    exe
+UID           0x100039CE 0x10004299
+VENDORID 0x70000001
+epocstacksize 0x5000
+
+SOURCEPATH    .
+SOURCE        HelloWorld_Main.cpp
+SOURCE        HelloWorld_Application.cpp
+SOURCE        HelloWorld_Document.cpp
+SOURCE        HelloWorld_AppUi.cpp
+SOURCE        HelloWorld_AppView.cpp
+USERINCLUDE   .
+SYSTEMINCLUDE \epoc32\include
+
+START RESOURCE    HelloWorld.RSS
+HEADER
+TARGETPATH        \Resource\Apps
+end
+
+START RESOURCE    HelloWorld_reg.rss
+TARGETPATH        \private\10003a3f\apps
+END
+
+START BITMAP    HelloWorld.mbm
+TARGETPATH        \Resource\Apps
+SOURCE            c8,1 icon24.bmp icon2m.bmp icon32.bmp icon3m.bmp icon48.bmp icon4m.bmp
+END
+
+LIBRARY       euser.lib apparc.lib cone.lib eikcore.lib</codeblock></example>
+</conbody></concept>
\ No newline at end of file