9110 Development Environment (N9kDE) Nokia 9110

Jun 10, 1999 - All other product names mentioned in this documentation may be trademarks ...... Simplified application packaging with graphical packager tool.
615KB taille 48 téléchargements 357 vues
Nokia 9000/9110 Development Environment (N9kDE) User Guide

© 1999 NOKIA MOBILE PHONES. This manual and the software described herein are protected by the copyright laws of the United States of America (Title 17 U.S.C.) and international copyright treaties, as well as other intellectual property laws and treaties, with all rights reserved. The software, which includes the computer software, associated media, printed materials, and any online or electronic documentation, is licensed, not sold. Neither the manual nor software may be copied in whole or in part, by any means whatsoever, except for the purposes of making a backup copy of the software for the licensee’s own use, without the prior written consent of NOKIA MOBILE PHONES.

Nokia is a registered trademark of Nokia Corporation. The models 9000 and 9110, the 9000il Communicator, and other Nokia products referenced herein are either trademarks or registered trademarks of Nokia Corporation and/or its affiliates. Geoworks and GEOS are registered trademarks of Geoworks Corporation. Borland C++ is a registered trademark of Inprise Corporation. Intel is a registered trademark of Intel Corporation. Paint Shop Pro is a trademark of JASC Software, Inc. Microsoft, Windows, Visual C++, and Visual Basic are registered trademarks of Microsoft Corporation. All other product names mentioned in this documentation may be trademarks, and if so, are trademarks or registered trademarks of their respective holders and are used in this documentation for identification purposes only.

Last Modified: June 10, 1999

Table of Contents 1

PRODUCT OVERVIEW ..................................................................................................................... 5

2

ABOUT THE NOKIA 9000/9110 DEVELOPMENT ENVIRONMENT......................................... 6

3

PARTS OF THE NOKIA 9000/9110 DEVELOPMENT ENVIRONMENT ................................... 7 3.1 3.2 3.3 3.4

4

INTERACTIVE DEVELOPMENT ENVIRONMENT .................................................................................. 7 EDITOR ............................................................................................................................................ 8 EMULATOR ...................................................................................................................................... 8 COMPILER AND LINKER ................................................................................................................... 9

CREATING A PROJECT.................................................................................................................. 11 4.1 BASELINE FILES ............................................................................................................................. 12 4.1.1 PRJ File ................................................................................................................................ 12 4.1.2 GOH File .............................................................................................................................. 13 4.1.3 Baseline GOC File ................................................................................................................ 14 4.1.4 Baseline GP File ................................................................................................................... 18

5

OPENING A PROJECT .................................................................................................................... 20 5.1 5.2

CLOSING A PROJECT ...................................................................................................................... 21 SAVING A PROJECT ........................................................................................................................ 21

6

PROJECT SAVE AS .......................................................................................................................... 22

7

FIND FAST DROP BOX.................................................................................................................... 23

8

OPTIONS DIALOG ........................................................................................................................... 24

9

GRAPHICAL FILE INFORMATION (.NGX FILES) ................................................................... 25

10

TOOLBOX (ADD-IN MANAGER) .............................................................................................. 26

11

GEOS HELP BROWSER .............................................................................................................. 28

12

BUILDING THE PROJECT ........................................................................................................ 30

12.1 12.2 12.3 12.4 12.5 12.6 13 13.1 13.2 13.3 13.4 13.5 13.6 13.7 14

MAKEFILE...................................................................................................................................... 30 COMPILE AND LINK ....................................................................................................................... 30 COPY GEO FILE ............................................................................................................................ 31 LAUNCH EMULATOR ...................................................................................................................... 31 BUILD SHORTCUTS ........................................................................................................................ 31 SWAT ............................................................................................................................................. 32 FORMS AND PROCEDURES ...................................................................................................... 35 MAIN FORM ................................................................................................................................... 35 ADDING A FORM ............................................................................................................................ 35 GRAPHIC FORMS ............................................................................................................................ 36 ADDING A PROCEDURE .................................................................................................................. 36 DELETING FORMS AND PROCEDURES ............................................................................................ 37 EDITING GRAPHICS ........................................................................................................................ 37 LINE AND FILL COLOR ................................................................................................................... 38 INSERTING ICONS ...................................................................................................................... 40

14.1 14.2 14.3 14.4 15

CREATING THE PCX FILE .............................................................................................................. 40 PCX TO GOH MANUAL CONVERSION........................................................................................... 40 SDK AUTOMATED PROCEDURE FOR INSERTING ICONS ................................................................. 41 STATUS PANE LABEL ..................................................................................................................... 41 SOURCE CODE EDITOR............................................................................................................. 42

15.1 15.2 15.3 15.4 15.5 15.6 15.7 15.8 15.11 15.12 15.13 15.14

NOKIA 9000/9110 DEVELOPMENT ENVIRONMENT CODE EDITOR FEATURE SET ........................... 42 RECORD MACRO DIALOG .............................................................................................................. 44 SAVE MACRO DIALOG ................................................................................................................... 44 GOTO LINE DIALOG ....................................................................................................................... 44 FIND DIALOG ................................................................................................................................. 45 FIND & REPLACE DIALOG ............................................................................................................. 45 WINDOW PROPERTIES DIALOG ...................................................................................................... 45 USING THE MOUSE......................................................................................................................... 48 DEFAULT KEYBOARD MAPPINGS ............................................................................................... 48 THE SOURCE CODE EDITOR RIGHT-CLICK MENU ...................................................................... 50 NOKIA 9000/9110 DEVELOPMENT ENVIRONMENT OUTPUT WINDOW ....................................... 50 DOCKING ................................................................................................................................... 51

16

CREATING A PACKAGE ............................................................................................................ 52

17

TROUBLESHOOTING ................................................................................................................. 56

17.1 17.2 17.3 17.4 17.5 17.6 17.7 17.8 17.9 17.10 17.11 17.12 17.13 17.14 17.15

HOW DO I COMPILE MY PROJECT?.................................................................................................. 56 WHAT HAPPENS IF MY PROGRAM HAS A COMPILATION ERROR? ..................................................... 56 WHAT HAPPENS IF MY PROGRAM HAS A RUN-TIME ERROR? ........................................................... 56 HOW DOES THE SDK HANDLE MULTIPLE GOC FILES? .................................................................. 56 HOW DO I START THE EMULATOR? ................................................................................................ 56 WHERE IS MY PROGRAM IN THE EMULATOR? ................................................................................. 56 WHAT HAPPENED TO MY OUTPUT WINDOW? ................................................................................. 57 DO I HAVE TO BE LOGGED IN AS ADMINISTRATOR TO RUN THE SDK? ........................................... 57 WILL MY PROJECTS BE DELETED IF I UN-INSTALL? ........................................................................ 57 WHERE ARE MY PROJECTS SAVED? ............................................................................................ 57 HOW DO I REMOVE APPLICATIONS FROM MY EMULATOR?......................................................... 57 HOW TO I DEBUG IN THE SDK?.................................................................................................. 57 WHERE CAN I GET GEOS PROGRAMMING HELP? ...................................................................... 58 HOW DO I DOWNLOAD MY PROJECT TO THE HANDSET? ............................................................. 58 WHERE CAN I GET PAINT SHOP PRO? ........................................................................................ 58

18

TOOLBAR QUICK REFERENCE............................................................................................... 59

19

GLOSSARY..................................................................................................................................... 60

1

Product Overview

The Nokia 9000/9110 Development Environment improves application development for the Nokia 9000 Communicator class of mobile phones. It includes the following features: • • • • • • • • • • •

Broad-featured interactive development environment Simplified interaction with the Borland C++ compiler and the Geoworks SDK Intuitive, highly-integrated create-edit-build-test development cycle Convenient access to the N9000 emulator Automated application shell development with forms and procedures Simplified application packaging with graphical packager tool Automated code generation Rich text edit control Capability to extend the N9KS with the Toolbox API Eliminates redundant programming tasks. Provides rapid access to GEOS documentation and help.

The Nokia 9000/9110 Development Environment is designed to operate as an extension of the existing GEOS SDK. This extension is provided through the use of executable files developed by Geoworks. The Nokia 9000/9110 Development Environment makes use of GEOS SDK. The Nokia 9000/9110 Development Environment is designed to permit technological evolution and service extensions. The SDK is designed to allow for quick deployment of complete applications. This is achieved by automating the complexities associated with packaging an application for delivery to the Nokia 9000 Communicator through a specialized packaging utility. The SDK is designed to allow for quick compilation and debugging of applications. This is achieved by an intuitive integration into the N9KS IDE of the GEOS compiler, emulator and debugger. In summary, the SDK is an extensible development environment providing simplified extensions to the GEOS SDK. The SDK provides compatible support to existing applications and moreover, is designed to gracefully evolve through the adoption and provision of future enhancements to the GEOS language.

2

About the Nokia 9000/9110 Development Environment

The Nokia 9000/9110 Development Environment works in harmony with the Geoworks GEOS SDK for the N9000. The Nokia 9000/9110 Development Environment is different from the Geoworks GEOS SDK, and it provides more user-oriented and productivity-based features for the N9000 developer. The Nokia 9000/9110 Development Environment integrates an intuitive edit-build-test environment through an easy to use interface. Through the Nokia 9000/9110 Development Environment, the user creates, edits, compiles, and executes programs in the N9000 emulator. The Nokia 9000/9110 Development Environment supports packaging of N9000 applications for convenient download to the handset. The Nokia 9000/9110 Development Environment is based on the notion of a project. A project is the group of GEOS files and support information that are required to compile and execute a GEOS application. A project in the Nokia 9000/9110 Development Environment includes one PRJ file, one GOC file, one GP file, one GOH file, and a number of NGX files.

3

Parts of the Nokia 9000/9110 Development Environment

The Nokia 9000/9110 Development Environment itself is divided into several components. • • • • • • • • •

3.1

Interactive Development Envrionment GEOS SDK (emulator, libraries, *.h, swat) GEOS Help Files (*.htm) HTML Help Viewer Borland C++ (mkmf, pmake, bc4) Packaging Tool – (including tar and Nserver) Templates for GP, GOH, GOC, PRJ, NGX Active-X Tool(s) (add-ins called “Components”) Help Files

Interactive development Environment

The Nokia 9000/9110 Development Environment is a multi-featured workspace that includes a rich editor capability, project creation, compilation, and emulation, form and procedure creation and deletion, and online help support.

3.2

Editor

The Nokia 9000/9110 Development Environment Source Code Editor is used for viewing and editing project files.

Line Tool

3.3

Emulator

The Nokia 9000 Geos emulator may be launched from the Nokia 9000/9110 Development Environment. It may be used in conjunction with Swat to provide debugging support.

3.4

Compiler and Linker

The Nokia 9000/9110 Development Environment provides a good integration to the GEOS compiler and linker. During the development cycle, the Build menu supports step-by-step compilation as well as a shortcut to make the makefiles, compile, and launch the emulator.

4

Creating a Project

To create a new project, click “New” from the File menu. You are presented with a dialog box to enter project specific information including project name, project long name, and project directory. After entering this information the project files are created based on the user settings using the provided template files.

Creating a new project in the SDK gives the user a default application that includes a main form with a close button. The default application is code-generated from the Nokia 9000/9110 Development Environment baseline files. The five baseline (template) files that are core to the Nokia 9000/9110 Development Environment include: Filename Baseline.goh Baseline.gp Baseling.goc Baseline.ngx Baseline.prj Once a project is created, a copy of the baseline files are transferred to the new project’s target directory. The baseline files are also renamed using the project’s name.

4.1

Baseline Files

The baseline files are used by the Nokia 9000/9110 Development Environment to provide enough information to the GEOS compiler to successfully compile and execute a Nokia 9000 application. This minimum information is described as the baseline project. Within each file are special tags that are replaced with the information provided by the user. Tag $SHORT NAME$ $SHORT FILE NAME$ $PROJECT NAME$ $AUTHOR$ $INCLUDE PROJECT GOH$ $PROCESS CLASS DECLARATION$ $FULL SHORT NAME$ $GEODE TYPE$ $PROCESS CLASS NAME$ $APPLICATION OBJECT$ $TOKEN CHARS$ $TOKEN ID$ $LIBRARIES$

Replaced With Short project name, referenced as (user provided) .prj Long project name (user provided) “Nokia 9000/9110 Development Environment”, the user can modify this text @include .goh @classdecl ProcessClass, neverSaved .app “appl, process, single” ProcessClass App First 4 characters of short project name (upper case) library geos library ui library foam

Within the baseline files are special code blocks that the SDK uses for code generation. If these code blocks are removed or altered in any way, the project will be corrupted. The code that is generated within each of these blocks is dependent on the user. For example, the user can add forms, add procedures, edit graphics, inset icons, and insert status pane labels. Each one of these user actions will generate or modify code within the code blocks. The code blocks are shown as: //{{START BLOCK //}}END BLOCK Editing code between the code blocks may render the file or project useless in the SDK.

4.1.1

PRJ File

The “prj” file is used by the Nokia 9000/9110 Development Environment to maintain the state of the files, build settings, last modified times, available procedures, and available forms. When the project is loaded, the project file time stamps are compared to the last modified time. If the times are different then the user is notified so corrective action can be taken. [VERSION] 1.0

[TYPE] Nokia 9000/9110 Development Environment [PROPERTIES] [PROJECT INFO] Project Name: Project Description: Build Directory: 0 Build Type: 0 [CHECKSUM INFO] GP Last Modified: GP Checksum: GOC Last Modified: GOC Checksum: GOH Last Modified: GOH Checksum: [FORMS] [PROCEDURES]

4.1.2

GOH File

The Nokia 9000/9110 Development Environment baseline GOH file is the Goc header file. This file provides definitions used by the .goc files (in the same relation as between standard C source and header files). Unlike standard C header files, these are included using the @include Goc keyword.

// MODULE: $SHORT NAME$ // FILE: $SHORT NAME$.goh // // AUTHOR: $AUTHOR$ // // REVISION HISTORY: // Name Date Description // ----------------// // DESCRIPTION: // // // RCS STAMP: // // /////////////////////////////////////////////////////////////////////////

/******************************************************************** * Constants *******************************************************************/ //{{CONSTANTS-GOH //}}CONSTANTS-GOH /********************************************************************

* Data Types *******************************************************************/ //{{DATATYPES-GOH //}}DATATYPES-GOH /******************************************************************** * Icons *******************************************************************/ @start iconMonikerResource, data; /* {{FILE LIST ICON BLOCK}} */ /* {{END FILE LIST ICON BLOCK}} */

/* {{STATUS PANE ICON BLOCK}} */ /* {{END STATUS PANE ICON BLOCK}} */

@end iconMonikerResource;

/******************************************************************** * Class Definitions *******************************************************************/ @class $SHORT NAME$VisContentClass, VisContentClass; @endc; //{{CLASSDEFN-GOH @class $SHORT NAME$ProcessClass, GenProcessClass; /* {{Class Definitions Block}} */ @endc; //}}CLASSDEFN-GOH

4.1.3

Baseline GOC File

The GOC file contains both standard C code and GEOS constructs (such as objects and messages). This file contains the methods that are generated after a procedure is added. It is an empty method that exists for the Nokia developer to provide his custom implementation. ///////////////////////////////////////////////////////////////////////// // // PROJECT: $PROJECT NAME$ // MODULE: $SHORT NAME$ // FILE: $SHORT FILE NAME$ // // AUTHOR: $AUTHOR$ // // REVISION HISTORY: // Name Date Description // ----------------// // DESCRIPTION: // // // RCS STAMP: // // ///////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////// // Include Files /////////////////////////////////////////////////////////////////////////

//{{INCLUDE-GOC @include @include $INCLUDE PROJECT GOH$ //}}INCLUDE-GOC ///////////////////////////////////////////////////////////////////////// // Constants ///////////////////////////////////////////////////////////////////////// Color drawColor = C_BLACK; #define DOC_WIDTH FOAM_DEFAULT_COMPONENT_WIDTH #define DOC_HEIGHT 480 char chartName[] = "Nokia 9000/9110 Development Environment SDK"; ///////////////////////////////////////////////////////////////////////// // Data Types ///////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////// // Class Definitions ///////////////////////////////////////////////////////////////////////// //Look in GOH File ///////////////////////////////////////////////////////////////////////// // Class Declarations ///////////////////////////////////////////////////////////////////////// //{{CLASSDECL-GOC $PROCESS CLASS DECLARATION$ @classdecl $SHORT NAME$VisContentClass; //}}CLASSDECL-GOC ///////////////////////////////////////////////////////////////////////// // Global Variables ///////////////////////////////////////////////////////////////////////// //{{GLOBALS-GOC //}}GLOBALS-GOC ///////////////////////////////////////////////////////////////////////// // Graphic Function Prototypes ///////////////////////////////////////////////////////////////////////// void $SHORT NAME$ViewDraw( GStateHandle gstate ); /* {{BEGIN GRAPHIC FUNCTION PROTOTYPES}} -- DO NOT ERASE */ /* {{END GRAPHIC FUNCTION PROTOTYPES}} -- DO NOT ERASE */

///////////////////////////////////////////////////////////////////////// // UI Object Resources ///////////////////////////////////////////////////////////////////////// @start AppResource; @object FoamSubApplicationClass $SHORT NAME$App = { GI_visMoniker = list { /* {{FILE LIST ICON BLOCK}} -- DO NOT ERASE */ /* {{END FILE LIST ICON BLOCK}} -- DO NOT ERASE */ /* {{STATUS PANE ICON BLOCK}} -- DO NOT ERASE */ /* {{END STATUS PANE ICON BLOCK}} -- DO NOT ERASE */ //{{DISPLAYNAME-GOC @$SHORT NAME$TextMoniker //}}DISPLAYNAME-GOC }; GI_comp = @$SHORT NAME$Primary; FSAI_launcherApp = FA_EXTRAS_APP; gcnList( MANUFACTURER_ID_GEOWORKS, GAGCNLT_WINDOWS ) = @$SHORT NAME$Primary; } /* {{ICON LABEL BLOCK}} -- DO NOT ERASE */ @visMoniker $SHORT NAME$TextMoniker = "$PROGRAM NAME$";

/* {{END ICON LABEL BLOCK}} -- DO NOT ERASE */ @end AppResource; @start Interface; @object GenPrimaryClass $SHORT NAME$Primary = { GI_comp = @$SHORT NAME$Box, /* {{$SHORT NAME$ INTERFACE RESOURCE BLOCK}} -- DO NOT ERASE -- */ /* {{END $SHORT NAME$ INTERFACE RESOURCE BLOCK}} -- DO NOT ERASE -- */ @$SHORT NAME$CloseTrigger; } /* * Main Form */ @chunk TCHAR $SHORT NAME$Title[] = "$SHORT NAME$ Main Form"; @object ComplexMonikerClass $SHORT NAME$Box = { ComplexMoniker = GenInteractionClass; CMI_topText = @$SHORT NAME$Title; CMI_fontSize = FOAM_NORMAL_FONT_SIZE; GI_comp = @$SHORT NAME$ViewInteraction; HINT_DRAW_IN_BOX; HINT_DRAW_SHADOW; HINT_PLACE_MONIKER_ABOVE; HINT_EXPAND_WIDTH_TO_FIT_PARENT; HINT_EXPAND_HEIGHT_TO_FIT_PARENT; HINT_COMPLEX_MONIKER_DRAW_SEPARATOR; } @object GenInteractionClass $SHORT NAME$ViewInteraction = { GI_comp = @$SHORT NAME$View; } @object GenViewClass $SHORT NAME$View = { GVI_docBounds = {0,0,480, 150}; GVI_color = {C_WHITE, 0, 0, 0}; GVI_horizAttrs = @default | GVDA_NO_LARGER_THAN_CONTENT | GVDA_NO_SMALLER_THAN_CONTENT; GVI_vertAttrs = @default

| GVDA_NO_LARGER_THAN_CONTENT | GVDA_NO_SMALLER_THAN_CONTENT | GVDA_KEEP_ASPECT_RATIO; GVI_attrs=(@default & ~GVA_FOCUSABLE); GVI_content = $SHORT NAME$ViewContent; ATTR_GEN_WINDOW_KBD_OVERRIDE = (KO_KEYBOARD_REQUIRED); } @object $SHORT NAME$VisContentClass $SHORT NAME$ViewContent = { VI_bounds = {0,0,480, 150}; VCI_geoAttrs = VCGA_CUSTOM_MANAGE_CHILDREN; } /* * Command Triggers */ @object ComplexMonikerClass $SHORT NAME$CloseTrigger = { ComplexMoniker = GenTriggerClass; CMI_topText = CMT_CLOSE; GTI_actionMsg = MSG_FSA_RETURN_TO_LAUNCHER; GTI_destination = @$SHORT NAME$App; HINT_SEEK_MENU_BAR; HINT_SEEK_REPLY_BAR; HINT_SEEK_SLOT = 3; } /* {{$SHORT NAME$ INTERFACE BLOCK}} -- DO NOT ERASE -- */ /* {{$SHORT NAME$ END INTERFACE BLOCK}} -- DO NOT ERASE -- */ @end Interface;

/* {{RESOURCE BLOCK}} -- DO NOT ERASE -- */ /* {{END RESOURCE BLOCK}} -- DO NOT ERASE -- */ /******************************************************************** * Code for BaselineProcessClass *******************************************************************/ /******************************************************************** * MSG_GEN_PROCESS_OPEN_APPLICATION ******************************************************************** * SYNOPSIS: Here is where we can intercept the starting of our * GEOS application. It is a handy place to initialize * any global variables and set up various user interface * components. * CALLED BY: GEOS Kernel * PARAMETERS: AppAttachFlags attachFlags * MemHandle launchBlock * MemHandle extraState * RETURNS: void * SIDE EFFECTS: none * STRATEGY: In this baseline application there is nothing to do, * so we just call @callsuper to execute the standard * behavior. * REVISION HISTORY: * Name Date Description * ----------------* *******************************************************************/ @method $SHORT NAME$ProcessClass, MSG_GEN_PROCESS_OPEN_APPLICATION { @callsuper(); @call $SHORT NAME$App::MSG_GEN_APPLICATION_INSTALL_TOKEN(); } /* MSG_GEN_PROCESS_OPEN_APPLICATION */ /******************************************************************** * MSG_GEN_PROCESS_CLOSE_APPLICATION ******************************************************************** * SYNOPSIS: Here is where we can intercept the ending of our * GEOS application. It is a handy place to free resorces * allocated by the application or to close files. * CALLED BY: GEOS Kernel * PARAMETERS: void * RETURNS: MemHandle * SIDE EFFECTS: none * STRATEGY: In this baseline application there is nothing to do, * so we just call @callsuper to execute the standard * behavior. * REVISION HISTORY: * Name Date Description * ----------------* *******************************************************************/ @method $SHORT NAME$ProcessClass, MSG_GEN_PROCESS_CLOSE_APPLICATION { @callsuper (); return(NullHandle); } /* MSG_GEN_PROCESS_CLOSE_APPLICATION */

//Each graphic form will have a custom method generated along with a //MSG_META_EXPOSED for redrawing the window /* {{CUSTOM GRAPHICS STATE METHOD}} -- DO NOT ERASE -- */

@method $SHORT NAME$VisContentClass, MSG_VIS_DRAW { @callsuper(); if ( oself == @$SHORT NAME$ViewContent ) $SHORT NAME$ViewDraw( gstate );

/* {{BEGIN VIS DRAW CONTENT}} */ /* {{END VIS DRAW CONTENT}} */ } /* End of MSG_VIS_DRAW */

void $SHORT NAME$ViewDraw( GStateHandle gstate ) { /* {{$SHORT NAME$ DRAW BLOCK}} -- DO NOT ERASE -- */ /* {{END $SHORT NAME$ DRAW BLOCK}} -- DO NOT ERASE -- */ } /* End of $SHORT NAME$ViewDraw */ /* {{USER-DEFINED METHOD BLOCK}} -- DO NOT ERASE -- */

4.1.4

Baseline GP File

The GP file provides the geode parameters for the GEOS linker (Glue). These parameters will give the Glue linker the necessary information when linking a geode.

##################################################################### # # # PROJECT: $PROJECT NAME$ # MODULE: $SHORT NAME$ # FILE: $SHORT FILE NAME$ # # AUTHOR: $AUTHOR$ # # REVISION HISTORY: # Name Date Description # ----------------# # DESCRIPTION: # # # RCS STAMP: # # ##################################################################### # # Permanent name: This is required by Glue to set the permanent name # and extension of the geode. The permanent name of a library is what # goes in the imported library table of a client geode (along with the # protocol number). It is also what Swat uses to name the patient. # name $FULL SHORT NAME$ # # Long filename: this name can displayed by GeoManager. "EC " is prepended to # this when the error-checking version is linked by Glue. # longname "$PROJECT NAME$" # # Specify geode type: This geode is an application, and will have its # own process (thread). # #//{{TYPE-GP type $GEODE TYPE$ #//}}TYPE-GP #

# Specify class name for application thread. Messages sent to the application # thread (aka "process" when specified as the output of a UI object) will be # handled by the process class. # class $PROCESS CLASS NAME$ # # Specify application object. This is the object that serves as the top-level # UI object in the application. # appobj $APPLICATION OBJECT$ # # Token: The four-letter name is used by GeoManager to locate the # icon for this application in the token database. The tokenid # number corresponds to the manufacturer ID of the program's author # for uniqueness of the token. Since this is a sample application, we # use the manufacturer ID for the SDK, which is 8. # tokenchars "$TOKEN CHARS$" tokenid $TOKEN ID$ # # Heapspace: This is roughly the non-discardable memory usage # of the application and any transient libraries that it depends on, # plus an additional amount for thread activity. To find the heapspace # for an application, use the Swat "heapspace" command. # heapspace 8k # # Libraries: list which libraries are used by the application. # #//{{LIBRARIES-GP $LIBRARIES$ #//}}LIBRARIES-GP # # Resources: list all resource blocks which are used by the application whose # allocation flags can't be inferred by Glue. Usually this is needed only for # object blocks, fixed code resources, or data resources that are read-only. # Standard discardable code resources do not need to be mentioned. # #//{{EXPORT-GP export $SHORT NAME$VisContentClass #//}}EXPORT-GP #//{{RESOURCES-GP resource APPRESOURCE ui-object resource INTERFACE ui-object #//{{RESOURCES BLOCK}} -- DO NOT ERASE -#//{{END RESOURCES BLOCK}} -- DO NOT ERASE -#//}}RESOURCES-GP

5

Opening a project

To open an existing project, go to the File menu and choose Open…

Navigate to your project directory from the File selection dialog, and choose your PRJ file.

5.1

Closing a Project

Closing a Nokia 9000/9110 Development Environment project is accomplished by selecting close from the file menu or clicking the X on project window. This is used to store the current state of the project and free up any resources that are being used by the project. If any of the project files (GOH, GOC, GP) are open and have been modified, the user will be given the option to save the changes made to the file(s).

5.2

Saving a Project

Saving a Nokia 9000/9110 Development Environment project is accomplished by selecting save from the file menu after the Main Form windows have received input focus (click of the mouse) . This is used to store the current state of the project. If any of the project files (GOH, GOC, GP) are open and have been modified, the user will be given the option to save the changes made to the file(s).

6

Project Save As

The Nokia 9000/9110 Development Environment allows the user to copy the project file and code files to a new base name. The Project Save As feature actually makes changes to the new (copied) GOC, GOH, and GP files to reflect the new project name.

7

Find Fast Drop Box

The Find Fast drop box is used to quickly locate tokens, monikers, and other keywords in your project GOC file. Select the dropbox from the toolbar.

8

Options Dialog

Project options may be modified using the Advanced Options dialog, found in the View menu.

You can change the toggle the build type between Error Correcting (EC) and non-Error correcting (NC). You can choose the target folder: • • •

Extra Apps Internet Apps System Apps

9

Graphical File Information (.NGX Files)

You can add Graphical File Information and examine statistics on the graphics file through the View->Graphical File Information menu option. This option only works with .NGX files.

10 Toolbox (add-in manager) You can add tools to the SDK by selecting “Tools Manager” from the Tools menu.

The Tools Manager will pop-up a dialog showing you what tools are available for you to add to your project. If you will be using the tool repeatedly, you may find it useful to add the tool to the Tools menu. Just highlight the tool you wish to add to your menu, press the “+” button, and press “Update Menu”. The tool will remain in the Tools menu unless you manually remove it.

The following screen shows the Tools Manager with the Flashing Note Toolbox listed. The Flashing Note toolbox is a tool that is provided with the Nokia 9000/9110 Development Environment.

To add a tool, select the tool and press the Start Tool Now button. The tool will launch and guide you through its use. Please refer to Tutorial 3 for a detailed example of using the sample Flashing Note Tool.

11 GEOS Help Browser The Nokia 9000/9110 Development Environment provides a built-in HTML browser and search capability for convenient viewing and navigation of the GEOS Techdocs online documentation. Type a keyword to search in the dialog and click Find. The Help Search Dialog will scan the Techdocs collection for instances of the keywords. Double click on the file you want to see from the display list. The SDK will open the help file in a Window for you to read. Click on the hyperlinks in the Help Window to navigate to other Help topics.

The following figure illustrates a Geos Help file displayed in the Nokia 9000/9110 Development Environment.

12 Building the Project Compiling and Linking a project in the SDK involves several steps: • • • •

Create project makefile Compile the source code Copy the executable to the emulator directory Launch the emulator

All of the compile and link options appear on the Build menu of the SDK.

12.1 Makefile The project makefile must be created for the Borland C++ compiler to be able to successfully compile and link. Select the “Build” menu and select “Create Makefile”. This is the output from the create makefile. This menu option equates to the “mkmf” command.

12.2 Compile and Link After making the makefile, compile and link the code by selecting “Compile” from the Build menu. This is sample output from the compile.

12.3 Copy GEO File After compiling and Linking, the GEO file must be copied to the EXTRAPPS folder, which is the directory the emulator uses to look for files. Select “Copy” from the Build menu.

12.4 Launch Emulator After the GEO file has been copied to the emulator director, you can start the emulator to test the code is behaving properly. Select “Launch Emulator” from the Build menu.

Within the Nokia 9000 Emulator Key Meaning Go to Extras , , , Menu keys Go to System Go to Internet

12.5 Build Shortcuts To perform all of the major build steps (make makefile, compile, link, copy GEO, and launch emulator) in a single step, you can use the function key from the SDK.

12.6 Swat The Nokia 9000/9110 Development Environment can interact with the Swat debugger to provide low-level program debugging support. To use the Swat debugger, build your project and launch Swat with the Wait option. This option is found on the Build menu.

The loader EC window is started and minimized.

Next, start swat from the SDK (W) or choosing Swat from the build menu.

Running Swat causes a command window to be launched.

Begin execution with the “c” command. Quit Swat with the “quit” command. Get help on Swat commands with the “help” command. Beginning execution causes the emulator to appear.

13 Forms and Procedures

13.1 Main Form Every SDK project starts with a main form and a close button. You can add forms and procedures to the main form several layers deep. The tree view displays the current form/procedure layout of the project. Also, double-clicking on one of the tree view will automaticallay launch the search engine in order to search the associated keyword within the project’s source code files.

Symbols in the Tree View Symbol Meaning Main form Procedure Form Graphic form

13.2 Adding a Form Adding a form to an existing project is accomplished by selecting an existing form in the treeview where the new form is to be added, right mouse clicking on the selected form, and selecting Add Form from the pop-up menu. An Add New Form dialog will appear to allow the user to enter information about the new form. The user needs to define the button label and button position that will be added to the selected frame for “popping” up the new form. The new form title will also be entered by the user. There are two types of forms that the user can create, non-graphic forms and graphic forms.

13.3 Graphic Forms If the user selects graphic form, using the checkbox in the Add New Form dialog, a new pop-up menu item will be added to the tree-view window allowing the user to edit graphics. The form graphics avaialble include rectangles, lines, round rectangles, ellipses, and polylines.

13.4 Adding a Procedure Adding a procedure to an existing project is accomplished by selecting an existing form in the tree-view where the new procedure is to be added, right mouse clicking on the selected form, and selecting Add Procedure from the pop-up menu. An Add New Procedure dialog will appear to allow the user to enter information about the new proceudre. The user needs to define the button label and button position that will be added to the selected frame for controlling the new procedure. An empty method will be created allowing the user to provide the code for the new procedure.

13.5 Deleting Forms and Procedures

The user will be able to delete forms and procedures in the main frame that are no longer needed. This will be performed by selecting a node in the main frame window and pressing the “Del” key or by selecting “delete” from the edit menu. The user will then be prompted with a message box (YES, NO) asking for confirmation. YES puts the functions in comments, NO cancels. The removal cannot be undone. This was accomplished using the following methods: When the delete key is pressed, the program finds the codename associated with the node to be deleted (for example: “F1”). That codename is then used in conjunction with a predetermined list of functions (the ones that were created when the node was added), and then proceeds to place in comments all of those functions. In this manner, more forms and procedures can be added without causing any problems, and users will not lose any important algorithms that deleting the old functions would cost them. All user created functions are left as is (not commented).

13.6 Editing Graphics Once a graphics form is created, the user can add graphics to the form by right mouse clicking in the tree view window and selecting Edit Graphics. A window will come up that is to be used as a canvas for adding graphics. The graphic information is stored as meta data in the projects NGX file, this file was created from the baseline.ngx when the project was initially created. When the graphics are saved (i.e. the project NGX file is saved), the meta data is retrieved and used within the GOC file for implementing the respective graphics. For example, if a rectangle was added to the graphics window, the following code might be generated: void projectF1ViewDraw( GstateHandle gstate ) { /* {{projectF1 DRAW BLOCK}} */ GrDrawRect( gstate, 100, 50, 30, 10 ); /* {{END projectF1 DRAW BLOCK}} */ }

Choosing the Edit Graphics option presents the .NGX file in an editor. The Graphics menubar option presents the several drawing options.

13.7 Line and Fill Color You can change the line color or fill color (gray shade) of the objects in the graphics form. Choose Graphics->Line Color or Graphics->Fill Color to change. The following color picker dialog is presented.

The four colors displayed are those which can be represented on the N9000 handset. By changing the fill color, the graphics editor changes the display.

You can as well double-click on the graphic element and a dialog will pop-up, allowing you to change both the line and fill properties of the object :

14 Inserting Icons There are two types of icons that are available in the Nokia 9000/9110 Development Environment, the status pane icon and the file list icon. The Status pane icon appears on the lefthand side of the screen and the status pane icon appears in the file list window. Status pane icon settings Width (pixels) Height (pixels) Color scheme Aspect ratio Format type Display size

64 50 16-color VGA Icon Standard

File list icon settings Width (pixels) Height (pixels) Color scheme Aspect ratio Format type Display size

25 18 16-color VGA Icon Tiny

14.1 Creating the PCX File There are four steps that must be followed to create a GEOS compliant PCX file. These steps are: 1. Install Paint Shop pro or similar tool that can write pcx version 2 format. Paint Shop pro can be obtained from http://www.jasc.com 2. Start up Paint Shop pro and create your image. If you are creating a status pane icon, make sure you have created a 64x50 or 25x18 image depending on the icon type. Later tools in this process will crop the upper left hand corner of the image if your image is larger and abort with errors if the image is smaller. 3. Set the image to 4-bit color. 4. Save the image as pcx in a known directory. (Note: Using version 2 from the options box in paint shop saves the palette information with the image).

14.2 PCX to GOH Manual Conversion The PCX file can be converted into GEOS code (visMoniker data structure) that can then be included into a GOH or GOC file. A utility exists within the pcgeos\bin directory that performs the PCX conversion, called cvtpcx. Converting a PCX file to a status pane icon: cvtpcx –2 –G –w50 –h64 –otest.goh test.pcx

This saves the GEOS code in a file called test.goh.. The 2 and G options need to be inserted to insure that the image is created in the correct format for the Nokia 9000 Communicator. The width and height are specified using the –w and –h options. Converting a PCX file to a file list icon: cvtpcx –2 –G –w14 –h20 –otest.goh test.pcx

14.3 SDK Automated Procedure for Inserting Icons Using the Nokia 9000/9110 Development Environment the developer must create a pcx file in the correct format. Once this is achieved, the N9000 developer will right mouse click in the tree view window and select Insert Icons from the pop-up menu. An Insert Icon dialog will appear giving the N9000 developer the option to choose which pcx file he wishes to add to the project and the icon type (status pane or file list). Once the N9000 developer selects the file and type he then selects the Add to GOC button which will convert the pcx to a temporary GOH file and merge the information into the project GOH file. This conversion process and GOH merge process is done within the Nokia 9000/9110 Development Environment.

14.4 Status Pane Label The status pane label is the label that appears under the status pane icon. To modify the status pane label, right mouse click in the tree view window and select Insert Status Pane Label. The Insert Status Pane Label dialog will appear with a field for entering the new status pane label text. Once entered, the N9000 developer selects the Add to GOC button, which will update the GOC file with the new value.

15 Source code editor The Nokia 9000/9110 Development Environment Source Code Editor is used for viewing and editing project files. The files that are supported include GOC, GOH, and GP files. The GOC files contain both standard C code and GEOS constructs (such as objects and messages). The GOH files provide definitions used by the GOC files (in the same relation as between standard C source and header files). Unlike standard C header files, these are included using the @include Goc keyword. The GP files are "Glue parameter" or "geode parameter" files, which will give the Glue linker information necessary when linking a geode. For more specific file information, refer to the documentation that comes with the GEOS SDK.

15.1 Nokia 9000/9110 Development Environment Code Editor Feature Set

Line Tool Tip

The Nokia 9000/9110 Development Environment code editor supports a wide range of features: Color Syntax Highlighting. Language-specific keywords, comments, and strings are colored differently to set them apart from plain text.

Drag and Drop Text Manipulation. Highlighted text can be dragged and dropped between any window supporting Drag and Drop. Text may be copied or moved. Multiple Split Views. Users can create up to four separate views of the same edit buffer. Each view can be scrolled independently. Unlimited Undo/Redo. All edit actions are fully undoable and redoable. A limit can be set on the number of edit actions that may be undone (refer to the properties window). Auto Indentation. The code editor will automatically indent lines according to the language selected. For the GOC, GOH, and GP file formats, the GEOS language should be selected. This indentation format is similar to the scoping rules in C and C++. Clipboard Support. Text can be cut, copied and pasted onto the clipboard using the right-click menu or the application menu. Code Editor Properties Dialog. Most properties, including keyboard assignments, colors, current language, and tab settings are available to the user in a tabbed dialog available from the built-in right-click menu). This dialog can be easily disabled and/or overriden by the parent window. Built-In Right Click Menu. A set of commonly used commands are available from a default right-click menu. Microsoft IntelliMouse Support. Scrolling, word selection, and line selection is easily accomplished with the Microsoft IntelliMouse. Over 120 Separate Edit Commands. More than 120 separate edit commands can be assigned to a keystroke and invoked by the user.

15.2 Record Macro Dialog The record macro dialog appears when the user selects CTRL-SHIFT-R. At this point any actions that the user makes within the source code editor is buffered. When the user selects the “stop” button in the Record Macro dialog, the save macro dialog will appear. 15.2.1.1.1.1.1.1.1 15.2.1.1.1.1.1.1.2 15.2.1.1.1.1.1.1.3

15.3 Save Macro Dialog The Save Macro dialog box appears once the user has finished recording a macro. The user can assign the macro to a keystroke and select a macro number to store the macro under. When the keystroke is pressed, the macro will be executed performing the series of actions that were recorded.

15.3.1.1.1.1.1.1.1 15.3.1.1.1.1.1.1.2 15.3.1.1.1.1.1.1.3 15.3.1.1.1.1.1.1.4 15.3.1.1.1.1.1.1.5

15.4 Goto Line Dialog The Go To Line dialog box appears when the user presses CTRL-G.

15.5 Find Dialog The Find dialog box appears when the user presses CTRL-F or right mouse clicks within the editor window.

15.6 Find & Replace Dialog The Find & Replace dialog box appears when the user presses CTRL-R or right mouse clicks within the editor window. The ‘Preserve Case’ option will apply the text case formatting of the Find text to the Replace text for each occurrence found.

15.7 Window Properties Dialog The Window Properties dialog box appears when the user presses the right mouse key. The properties are organized into tabs which include: Color/Font, Language/Tabs, Keyboard, and Misc. The Color/Font tab is useful for customizing the colors that are used within the editor window.

The Language tab is used to select the language that is used within the editor window. For the Nokia 9000/9110 Development Environment the default Language is GEOS. Each language contains specific keywords that are preloaded when the editor window is displayed. If another language is selected, their keywords will be loaded.

The Keyboard tab allows the developer to specify key assignments on his keyboard.

The Misc tab is used for controlling general characteristics of the editor window.

15.8 Using the Mouse The Nokia 9000/9110 Development Environment Source Code Editor supports the following mouse actions: Mouse Action: L-Button click over text R-Button click L-Button down over selection, and drag Ctrl + L-Button down over selection, and drag L-Button click over left margin L-Button click over left margin, and drag Alt + L-Button down, and drag L-Button double click over text Spin IntelliMouse mouse wheel Single click IntelliMouse mouse wheel Double click IntelliMouse mouse wheel Click and drag splitter bar

Double click splitter bar

Result: Changes the caret position Displays the right click menu Moves text Copies text Selects line Selects multiple lines Select columns of text Select word under cursor Scroll the window vertically 0 Select the word under the cursor Select the line under the cursor Split the window into multiple views or adjust the current splitter position Split the window in half into multiple views or unsplit the window if already split

15.11 Default Keyboard Mappings Listed below is the complete set of default keystrokes and the source code editor command that each keystroke maps to: Command BookmarkNext BookmarkPrev BookmarkToggle CharLeft CharLeftExtend CharRight CharRightExtend Copy Copy Cut Cut CutSelection Delete DeleteBack DocumentEnd DocumentEndExtend DocumentStart

Keystroke F2 Shift + F2 Control + F2 Left Shift + Left Right Shift + Right Control + C Control + Insert Shift + Delete Control + X Control + Alt + W Delete Backspace Control + End Control + Shift + End Control + Home

DocumentStartExtend Find Find FindNext FindNextWord FindPrev FindPrevWord FindReplace GoToLine GoToMatchBrace Home HomeExtend IndentSelection LineCut LineDown LineDowNextend LineEnd LineEndExtend LineOpenAbove LineUp LineUpExtend LowercaseSelection PageDown PageDowNextend PageUp PageUpExtend Paste Paste Properties RecordMacro Redo SelectLine SelectSwapAnchor SentenceCut SentenceLeft SentenceRight TabifySelection ToggleOvertype ToggleWhitespaceDisplay Undo Undo UnindentSelection UntabifySelection UppercaseSelection WindowScrollDown WindowScrollLeft WindowScrollRight WindowScrollUp WordDeleteToEnd

Control + Shift + Home Alt + F3 Control + F F3 Control + F3 Shift + F3 Control + Shift + F3 Control + Alt + F3 Control + G Control + ] Home Shift + Home Tab Control + Y Down Shift + Down End Shift + End Control + Shift + N Up Shift + Up Control + U Next Shift + Next PRIOR Shift + Prior Control + V Shift + Insert Alt + Enter Control + Shift + R Control + Y Control + Alt + F8 Control + Shift + X Control + Alt + K Control + Alt + Left Control + Alt + Right Control + Shift + T Insert Control + Alt + T Control + Z Alt + Backspace Shift + Tab Control + Shift + Space Control + Shift + U Control + Up Control + PageUp Control + PageDown Control + Down Control + Delete

WordDeleteToStart WordLeft WordLeftExtend WordRight WordRightExtend

Control + Backspace Control + Left Control + Shift + Left Control + Right Control + Shift + Right

15.12 The Source Code Editor Right-Click Menu The source code editor has a default right-click menu that appears when the user presses the right mouse key within the editor window. The default right-click menu:

15.13 Nokia 9000/9110 Development Environment Output Window The Nokia 9000/9110 Development Environment output window is used as a build status window when creating the makefile, compiling the source code files, or launching the emulator. Problems that occur during the build and compile process are indicated with an error or warning message as shown in the figure below. To make the build status window more usable, the error and warning messages were color-coded to quickly show the developer that the source code files have problems. The lines that contain errors or warnings can be double clicked with the mouse to load the problem file for rapid debugging. The errors messages in the output window should always be debugged from top down due to the cascading effect that errors can have in the code.

15.14 Docking The output window is loaded in a default docking state attached to the bottom of the window. IF the window is docked, double click the top of the output window to make it a floating window. IF the window is floating, double click the blue bar at the top of the output window to dock it.

16 Creating a Package Once a project has been created, implemented, and tested, the project is ready to be packaged and made exportable to the Nokia 9000i Communicator. The Nokia Package Utility is activated by selecting Package from the Nokia 9000/9110 Development Environment build directory.

The package utility is a single dialog.

The package utility attempts to use the registry to determine the last project that was used by the SDK and automatically adds the GEO file, if any, to the File to Package list. If the file does not appear, add the .GEO file with the Add button.

The user will then enter package information which includes: package description, package identifier, and the location for the new package. The package directory, with all of the contents, will then be archived using tar. The package directory is best to be a separate, empty folder. Choose the browse option for the destination directory and add/select a new folder. The following screen is selecting a folder named “Package”.

Next, enter the package name, such as example.ins.

After all fields have been entered, click the “Create” button.

After clicking “Create” you should get a “Package Created Successfully” message.

17 Troubleshooting

17.1 How do I compile my project? The easiest way to compile is to press . You can also press to do a full rebuild and launch the emulator.

17.2 What happens if my program has a compilation error? If your program has a compilation error, you will receive a report indicating the suspected line number in your Output window. You can double click the error description and the Nokia 9000/9110 Development Environment will position the editor at that line number in the GOC file.

17.3 What happens if my program has a run-time error? If your program has a logic error or run-time error, you may want to use the SWAT debugger to help investigate the problem. You can control the SWAT options from the Build menu. You can launch Swat directly by pressing W.

17.4 How does the SDK handle multiple GOC files? Version 1 of the Nokia 9000/9110 Development Environment does not have built-in support for multiple GOC files in the same project. You can also use #include statements to add the GOC code to your project. Also, you can simply place the GOC file in your project directory (usually \pcgeos\Administrator\Appl\). The project makefile will discover the additional GOC file and automatically compile it into the .GEO program.

17.5 How do I start the emulator? You can start the emulator from the Build menu of the Nokia 9000/9110 Development Environment, or you can use the E shortcut.

17.6 Where is my program in the emulator? Your program (if it builds correctly) will be saved in one of three program groups in the N9000 emulator. The location is determined in the Advanced Options dialog, which is found in the View… menu. The default location is Extras, and you get to that folder by pressing in the emulator window. Other locations include Internet () and System

(). If you still cannot find your program, you may not have built it successfully. Examine the output window for errors.

17.7 What happened to my Output window? If your output window does not appear in the Nokia 9000/9110 Development Environment workspace, choose View->Output bar from the menubar.

17.8 Do I have to be logged in as Administrator to run the SDK? Yes. Log off and log back in as Administrator if necessary, prior to running the SDK.

17.9 Will my projects be deleted if I un-install? No, your project files will not be deleted when the Nokia 9000/9110 Development Environment is uninstalled from your system. The default location for your projects is D:\pcgeos\Administrator\Appl, where D: is the drive where the GEOS SDK is installed.

17.10 Where are my projects saved? Projects are saved in the GEOS directory tree, typically under D:\pcgeos\Administrator\Appl

17.11 How do I remove applications from my Emulator? The compiled GEO programs are copied to the EC and NC emulator directories. If you want to delete applications, go to one of the following directories to remove the applications you no longer require: For Error-Checking : For Non-Checking :

D:\pcgeos\Administrator\Target\N9000v20.ec\WORLD\EXTRAPPS D:\pcgeos\Administrator\Target\N9000v20.nc\WORLD\EXTRAPPS

17.12 How to I debug in the SDK? The SWAT debugger is available from the Nokia 9000/9110 Development Environment. Use SWAT to debug your application. You can also

17.13 Where can I get GEOS Programming help? The GEOS programming help – Techdocs – is available through the Nokia 9000/9110 Development Environment. Simply go to Help on the menu bar and search for the topic you require.

17.14 How do I download my project to the Handset? Projects are saved to the N9000 Handset by packaging the program (.GEO file) and transferring the program to the handset with the NSERVER utility. Refer to the user manual for additional information on transferring application to the handset.

17.15 Where can I get Paint Shop Pro? Paint Shop Pro can be obtained from http://www.jasc.com

18

Toolbar Quick Reference Toolbar Icon

Description Create new project Open project or file Save project or file Cut (editor command) Copy (editor command) Paste (editor command) Print file About the SDK Go Back one page in help Go Forward one page in help Refresh help window Go to the help (Techdocs) home page Search for a help topic in the Techdocs Find in files Quick find keywords Select an item (graphics editor) Line tool (graphics editor) Rectangle tool (graphics editor) Rounded rectangle tool (graphics editor) Circle/ellipse tool (graphics editor) Polygon tool (graphics editor)

19 Glossary Active-X API COM EC GOC GOH GP GUI HTML IDE int MDI MFC MRU NC OCX OLE SDI SDK TBAPI TDK VB VC++

A set of rules about how applications should share information Application Programmers Interface Component Object Model Error-correction information included, applies to GEOS 3.0 emulator/compiler Main source code file for the GEOS language File extension associated with GEOS header files Project attribute source code file in the GEOS language Graphical User Interface Hyper-text Markup Language Integrated Development Environment integer in C/C++ as implemented by Microsoft on Intel hardware Multiple Document Interface Microsoft Foundation Classes Most recently used files No error information included, applies to GEOS 3.0 emulator/compiler OLE Custom Control Extensions Object Linking and Embedding Single Document Interface Software development kit Toolbox application programmer interface Software development kit for Toolbox developers Microsoft Visual Basic Microsoft Visual C++