Customizable Toolbar: Implementing a toolbar combo button

Size: px
Start display at page:

Download "Customizable Toolbar: Implementing a toolbar combo button"

Transcription

1 Customizable Toolbar: Implementing a toolbar combo button Problem How do I implement a Combo Button on my toolbar? I'm having trouble getting notifications, filling the list, adding to the list, or handling events. Cause The purpose of this article is to resolve the most common problems that come up when using the SECComboBtn class on the SECCustomToolBar. The combo button is added to the toolbar using a button map and the COMBO_BUTTON macro. For more information regarding adding this and other specialized buttons to the SECCustomToolBar please refer to the customizable toolbar section in the user's guide. Action This article does not go through the mechanics of adding a SECComboBtn, but describe common tasks associated with using a combo in a SECCustomToolBar. These include: Modifying the SECCustomToolBar to route notifications. Getting a pointer to the combo button. Adding a string to the list. Filling the default list for the combo button. Implementing the handler for the combo button events. A sample is available which shows all of the included code in an operating application. Modifying the SECCustomToolBar to route notifications. The first hurdle to be overcome is that the SECCustomToolBar, like most control bars does not participate in message routing as a CView derivative would. This can be easily overcome by implementing a notification mechanism when deriving from the SECCustomToolBar class. For more information about deriving from SECCustomToolBar, please see the article "How can I get the toolbar manager to recognize my SECCustomToolBar derived class?" BOOL CCustomNotifyToolBar::OnCommand(WPARAM wparam, LPARAM lparam) CMainFrame* pframe =((CMainFrame*)AfxGetMainWnd()); CView* pview; SECMDIChildWnd* pchild = (SECMDIChildWnd*) pframe->getactiveframe(); // Get the active view attached to the active MDI child // window. If SDI Returns the frame pview = (CView *) pchild->getactiveview(); if(null!= pview) pview->sendmessage(wmsectoolbarwndnotify,wparam,lparam); else pframe->sendmessage(wmsectoolbarwndnotify,wparam,lparam); return SECControlBar::OnCommand(wParam,lParam); This is the only function that is overridden in this class. This toolbar class is substituted for SECCustomToolBar by setting ptoolbarmgr->m_ptoolbarclass = RUNTIME_CLASS(CCustomNotifyToolBar); in the SECMDIFrameWnd or SECFrameWnd creation code. Getting a pointer to the combo button. To manipulate the SECComboBtn in any way will require that we get a pointer to the combo box object embedded in the SECComboBtn. In the example, GetButtonPointerFromID(int nid) functions by walking the list of control bars looking for SECCustomToolBars. When it finds one, it will walk that bar's list of buttons looking for the button with the ID that is passed in. It returns a pointer to that button in the form of a CWnd*. When this pointer is used, MFC runtime class information must be used to 1

2 verify the type, and the button must be explicitly cast to a CComboBox so that CComboBox method are usable. This method allows the example function to be used with many types of special buttons. If there are multiple embedded controls, it may be necessary to use a different method to obtain the pointer. CWnd* CComboBtnView::GetButtonPointerFromID(int nid) // Iterate the list of control bars. CPtrList &list = ((SECMDIFrameWnd*)AfxGetMainWnd())->m_listControlBars; >POSITION pos = list.getheadposition(); while (pos!= NULL) // Check each to see if it's a SECCustomToolBar derivative. // Note: Menubars will be tested. CControlBar* pcontrolbar = (CControlBar *) list.getnext(pos); if (pcontrolbar->iskindof(runtime_class(seccustomtoolbar))) // The bar being tested is a toolbar. Test the ID of each button // against the ID passed in. SECCustomToolBar* pcustomtoolbar = (>SECCustomToolBar*) pcontrolbar; int inbtns = pcustomtoolbar->getbtncount(); for (int ibtn=0; ibtn >inbtns; ibtn++ ) // Test to see if this is the desired button UINT ntestid=" pcustomtoolbar-">getitemid(ibtn); if (ntestid == nid) // Get the button rect. RECT rect; pcustomtoolbar->getitemrect(ibtn, &rect); // Get the window. POINT p1; p1.x = (rect.left + rect.right) / 2; p1.y = (rect.top + rect.bottom) / 2; CWnd* pwnd = pcustomtoolbar->childwindowfrompoint(p1); return pwnd; return NULL; Adding a string to the list. Adding a string to the list is relatively easy. The method in the following example shows the use of GetButtonPointerFromID() to get the CComboBox pointer, and the use of standard methods to load the string into the list and select it. /////////////////////////////////////////////////////////////////// // AddComboBtnString will add a string to the list after a user // has typed it in. It will also set the selected item to that // string. BOOL CComboBtnView::AddComboBtnString(UINT uibuttonid,cstring stext) CWnd* pwnd = GetButtonPointerFromID(uiButtonID); if (pwnd!= NULL && pwnd->iskindof(runtime_class(ccombobox))) int iindex = ((CComboBox *) pwnd)->addstring(stext); ((CComboBox *) pwnd)->setcursel(iindex); Filling the default list for the combo button. An example function for filling the list uses the ID to get the pointer to the CComboBox, and also passes that ID to a switch statement to determine what information gets loaded. The actual CComboBox code is not shown in this example. 2

3 ////////////////////////////////////////////////// // This loads the combo button from the view. If // you wanted to, you could load in the mainframe so // that you would have the combo loaded even if // there hadn't been an initial view instantiated. BOOL CComboBtnView::LoadComboBtn(UINT uibuttonid) CWnd* pwnd = GetButtonPointerFromID(uiButtonID); InitialComboLoader(uiButtonID, pwnd); Implementing the handler for the combo button events. A registered message is used to call a notification message handler. One source of confusion can be where this registered message is implemented and registered. The toolbar buttons send a wmsectoolbarwndnotify registered message for button notifications. Unfortunately, this value is a const int which can not be mapped properly across the Dll boundary. If using a static library, wmsectoolbarwndnotify can be safely used in the ON_REGISTERED_MESSAGE macro below, but if using Objective Toolkit as a DLL, you must issue the following call to get the appropriate value. Since this mechanism is safe for static libraries as well, it may be prudent to consider registering the message in this fashion for both usages. It is perfectly safe to register the same window message more than once. Only the first registration will be used. In the other cases, the value returned will be that of the previous registration. The following is included at global scope in each of the class implementations for classes that are handling the message. const int wmapptoolbarwndnotify = RegisterWindowMessage(_T("WM_SECTOOLBARWNDNOTIFY")); In each class that will handle the message, we need to add the handler to the message map. ON_REGISTERED_MESSAGE(wmAppToolBarWndNotify, OnToolBarWndNotify) Here is the message handler, like most classic message handlers this is implemented as a switch statement. long CComboBtnView::OnToolBarWndNotify(WPARAM wparam, LPARAM lparam) int nid = LOWORD(wParam); int ievent = HIWORD(wParam); HWND hwnd = (HWND)lParam; switch (nid) case IDR_COMBOBTN: // Note that the ID differs. We are passed the ID of the // object that was mapped to the bar, but we need to use // the ID of the button the object was mapped to in order // to get the window pointer. This can be a source of confusion. CWnd* pwnd = GetButtonPointerFromID(IDB_COMBOBTN); if (!(pwnd!= NULL && pwnd->iskindof(runtime_class(ccombobox)))) return FALSE; switch(ievent) case CBN_EDITCHANGE: // This is the usual code to indicate that something // in the edit portion has changed. m_bbox1dirty = TRUE; case CBN_KILLFOCUS: // If the text has been changed by selection, then // this code will make certain that the new text is // in the edit box. If nothing is selected, then // ((CComboBox*)pWnd)->GetCurSel() will be -1. if(!m_bbox1dirty) 3

4 m_bbox1dirty = FALSE; CString smessage = _T("The new text is: "); ((CComboBox*)pWnd)->GetLBText(((CComboBox*)pWnd)-GetCurSel(),sText); else m_bbox1dirty = FALSE; CString smessage = _T("The new text is: "); char ctext[255]; if(::getwindowtext(hwnd,ctext,255)) smessage += ctext; smessage = ctext; // Notice that the ID is not IDR_COMBOBTN, but is // IDB_COMBOBTN. AddComboBtnString(IDB_COMBOBTN,sMessage); case CBN_SELCHANGE: // Note: I've commented this out in the sample because // it prevents the demo app from showing some important // functionality. But it works, and is included so that // you can test this functionality. CString smessage = _T("The new selection is: "); ((CComboBox*)pWnd)->GetLBText(((CComboBox*)pWnd)-GetCurSel(),sText); case CBN_SELENDOK: // Note: I've commented this out because it prevents the // demo app from showing some important functionality. // But it works, and is included so that you can test this // functionality. CString smessage = _T("The new selection is: "); ((CComboBox*)pWnd)->GetLBText(((CComboBox*)pWnd)->GetCurSel(),sText); case IDR_DIRBOX: // Since this is the same as the previous code, // I've left it out in this example. return FALSE; One issue that has not been addressed in this article is the issue of synchronization. If you copy combo buttons between toolbars, there is a good chance that they will become unsynchronized from each other. If this is a possibility, I recommend that the lists be 4

5 refreshed from an array whenever the list is dropped down, and that the array be refreshed from the list as part of the CBN_KILLFOCUS handler. You may also wish to add keystrokes to each copy of the control in the CBN_EDITCHANGE handler. NB: In addition to the notification codes from the control, the SECComboBtn also sends a notification for when the Return key is pressed. The value of this message is defined as SECComboBtn::Entered(). Likewise, the SECWndBtn base class sends the SECWndBtn::Init() notification code after the button is first created. These are enum integer values, and you check for them the same way you check for CBN_??? values. A sample containing the code in this article is available at Combo Button Sample. Article ID: 736 Last updated: 05 Jan, 2012 Updated by: Meltreger B. Revision: 1 Stingray -> Objective Toolkit -> Customizable Toolbar: Implementing a toolbar combo button 5

Windows Programming in C++

Windows Programming in C++ Windows Programming in C++ You must use special libraries (aka APIs application programming interfaces) to make something other than a text-based program. The C++ choices are: The original Windows SDK

More information

Instantiation of Template class

Instantiation of Template class Class Templates Templates are like advanced macros. They are useful for building new classes that depend on already existing user defined classes or built-in types. Example: stack of int or stack of double

More information

Chapter 15 Programming Paradigm

Chapter 15 Programming Paradigm Chapter 15 Programming Paradigm A Windows program, like any other interactive program, is for the most part inputdriven. However, the input of a Windows program is conveniently predigested by the operating

More information

LSN 4 GUI Programming Using The WIN32 API

LSN 4 GUI Programming Using The WIN32 API LSN 4 GUI Programming Using The WIN32 API ECT362 Operating Systems Department of Engineering Technology LSN 4 Why program GUIs? This application will help introduce you to using the Win32 API Gain familiarity

More information

PictureTel LiveDTK V2.1 Sample Application Visual C++ 5.0

PictureTel LiveDTK V2.1 Sample Application Visual C++ 5.0 PictureTel LiveDTK V2.1 Sample Application Visual C++ 5.0 May 1998 Enhancements to the LiveDTK 2.0 Sample Application Overview of Enhancements The NetMeeting Wrapper OCX Integration Additional GUI Modifications

More information

AP COMPUTER SCIENCE JAVA CONCEPTS IV: RESERVED WORDS

AP COMPUTER SCIENCE JAVA CONCEPTS IV: RESERVED WORDS AP COMPUTER SCIENCE JAVA CONCEPTS IV: RESERVED WORDS PAUL L. BAILEY Abstract. This documents amalgamates various descriptions found on the internet, mostly from Oracle or Wikipedia. Very little of this

More information

Short Notes of CS201

Short Notes of CS201 #includes: Short Notes of CS201 The #include directive instructs the preprocessor to read and include a file into a source code file. The file name is typically enclosed with < and > if the file is a system

More information

CS201 - Introduction to Programming Glossary By

CS201 - Introduction to Programming Glossary By CS201 - Introduction to Programming Glossary By #include : The #include directive instructs the preprocessor to read and include a file into a source code file. The file name is typically enclosed with

More information

int fnvgetconfig(handle h, UINT32 id, const void *cfg, size_t sz);... 4

int fnvgetconfig(handle h, UINT32 id, const void *cfg, size_t sz);... 4 RP-VL-UTIL-V1 Developer s Guide [ Contents ] 1. Introduction... 1 2. Building Environment... 1 3. Operating Environment... 1 4. Function Explanation... 2 4.1. Common API for Transmitting and Receiving...

More information

CS31 Discussion 1E Spring 17 : week 08

CS31 Discussion 1E Spring 17 : week 08 CS31 Discussion 1E Spring 17 : week 08 TA: Bo-Jhang Ho bojhang@cs.ucla.edu Credit to former TA Chelsea Ju Project 5 - Map cipher to crib Approach 1: For each pair of positions, check two letters in cipher

More information

Input and Interaction

Input and Interaction Input and Interaction 5 th Week, 2011 Graphical Input Devices Mouse Trackball Light Pen Data Tablet Joy Stick Space Ball Input Modes Input devices contain a trigger which can be used to send a signal to

More information

Hierarchical inheritance: Contains one base class and multiple derived classes of the same base class.

Hierarchical inheritance: Contains one base class and multiple derived classes of the same base class. 1. What is C#? C# (pronounced "C sharp") is a simple, modern, object oriented, and type safe programming language. It will immediately be familiar to C and C++ programmers. C# combines the high productivity

More information

Introduce C# as Object Oriented programming language. Explain, tokens,

Introduce C# as Object Oriented programming language. Explain, tokens, Module 2 98 Assignment 1 Introduce C# as Object Oriented programming language. Explain, tokens, lexicals and control flow constructs. 99 The C# Family Tree C Platform Independence C++ Object Orientation

More information

Foxit Reader SDK. Programming Guide

Foxit Reader SDK. Programming Guide Foxit Reader SDK For Windows and Linux Programming Guide Revision 1.4 Foxit Software Company 2005.12 Overview Features Tutorials Calling from Different Programming Languages Reference Redistribution Overview

More information

Introduction to Programming Using Java (98-388)

Introduction to Programming Using Java (98-388) Introduction to Programming Using Java (98-388) Understand Java fundamentals Describe the use of main in a Java application Signature of main, why it is static; how to consume an instance of your own class;

More information

Programming in graphical environment. Introduction

Programming in graphical environment. Introduction Programming in graphical environment Introduction The lecture Additional resources available at: http://www.mini.pw.edu.pl/~maczewsk/windows_2004 Recommended books: Programming Windows - Charles Petzold

More information

Detecting USB Device Insertion and Removal Using Windows API

Detecting USB Device Insertion and Removal Using Windows API Written by Tom Bell Detecting USB Device Insertion and Removal Using Windows API When I needed to know how to detect USB device insertion and removal, I was developing an application for backing up USB

More information

www.openwire.org www.mitov.com Copyright Boian Mitov 2004-2011 Index Installation...3 Where is PlotLab?...3 Creating a new PlotLab project in Visual C++...3 Creating a simple Scope application...13 Creating

More information

A brief introduction to C programming for Java programmers

A brief introduction to C programming for Java programmers A brief introduction to C programming for Java programmers Sven Gestegård Robertz September 2017 There are many similarities between Java and C. The syntax in Java is basically

More information

2. OpenGL in a Window System

2. OpenGL in a Window System 2. OpenGL in a Window System OpenGL is purely a graphics API It provides no support for - performing windowing tasks - obtaining user input - rendering fonts Every windowing system must provide some library

More information

M1-R4: Programing and Problem Solving using C (JAN 2019)

M1-R4: Programing and Problem Solving using C (JAN 2019) M1-R4: Programing and Problem Solving using C (JAN 2019) Max Marks: 100 M1-R4-07-18 DURATION: 03 Hrs 1. Each question below gives a multiple choice of answers. Choose the most appropriate one and enter

More information

C++ Data Types. 1 Simple C++ Data Types 2. 3 Numeric Types Integers (whole numbers) Decimal Numbers... 5

C++ Data Types. 1 Simple C++ Data Types 2. 3 Numeric Types Integers (whole numbers) Decimal Numbers... 5 C++ Data Types Contents 1 Simple C++ Data Types 2 2 Quick Note About Representations 3 3 Numeric Types 4 3.1 Integers (whole numbers)............................................ 4 3.2 Decimal Numbers.................................................

More information

Object-Oriented Programming

Object-Oriented Programming Object-Oriented Programming 1. What is object-oriented programming (OOP)? OOP is a technique to develop logical modules, such as classes that contain properties, methods, fields, and events. An object

More information

References Available Upon Request Jesse Liberty

References Available Upon Request Jesse Liberty References Available Upon Request Jesse Liberty In my previous column, 1 I talked at length about pointers; this month the focus is on references. A reference is an alias to an object. While it is often

More information

Chapter 1 Getting Started

Chapter 1 Getting Started Chapter 1 Getting Started The C# class Just like all object oriented programming languages, C# supports the concept of a class. A class is a little like a data structure in that it aggregates different

More information

5 When a program calls a function, in which type of data structure is memory allocated for the variables in that function?

5 When a program calls a function, in which type of data structure is memory allocated for the variables in that function? 1 The finally block of an exception handler is: -executed when an exception is thrown -always executed when the code leaves any part of the Try statement -always executed -always executed when the code

More information

Using the CFindReplaceDialog class By Tibor Blazko

Using the CFindReplaceDialog class By Tibor Blazko Page 1 of 7 All Topics, MFC / C++ >> Dialog and Windows >> Windows Common dialogs Using the CFindReplaceDialog class By Tibor Blazko How to use the CFindReplaceDialog dialog for text searching Beginner

More information

Advantech Windows CE.net Application Hand on Lab

Advantech Windows CE.net Application Hand on Lab Advantech Windows CE.net Application Hand on Lab Lab : Serial Port Communication Objectives After completing this lab, you will be able to: Create an application to open, initialize the serial port, and

More information

OBJECT ORIENTED PROGRAMMING USING C++

OBJECT ORIENTED PROGRAMMING USING C++ OBJECT ORIENTED PROGRAMMING USING C++ Overview of C++ Overloading Overloading occurs when the same operator or function name is used with different signatures Both operators and functions can be overloaded

More information

Reasoning About Imperative Programs. COS 441 Slides 10

Reasoning About Imperative Programs. COS 441 Slides 10 Reasoning About Imperative Programs COS 441 Slides 10 The last few weeks Agenda reasoning about functional programming It s very simple and very uniform: substitution of equal expressions for equal expressions

More information

Types and Type Inference

Types and Type Inference CS 242 2012 Types and Type Inference Notes modified from John Mitchell and Kathleen Fisher Reading: Concepts in Programming Languages, Revised Chapter 6 - handout on Web!! Outline General discussion of

More information

Type Conversion. and. Statements

Type Conversion. and. Statements and Statements Type conversion changing a value from one type to another Void Integral Floating Point Derived Boolean Character Integer Real Imaginary Complex no fractional part fractional part 2 tj Suppose

More information

In this assignment, you will implement a basic CHORD distributed hash table (DHT) as described in this paper:

In this assignment, you will implement a basic CHORD distributed hash table (DHT) as described in this paper: Project 2: Chord Distributed Hash Table Introduction In this assignment, you will implement a basic CHORD distributed hash table (DHT) as described in this paper: https://pdos.csail.mit.edu/papers/ton:chord/paper-ton.pdf

More information

Proposal for Extending the switch statement

Proposal for Extending the switch statement Doc No: N1741=04-0181 Project: Programming Language C++ Date: Friday, November 05, 2004 Author: Francis Glassborow email: francis@robinton.demon.co.uk Proposal for Extending the switch statement Note this

More information

Creating an MFC Project in Visual Studio 2012

Creating an MFC Project in Visual Studio 2012 Creating an MFC Project in Visual Studio 2012 Step1: Step2: Step3: Step4: Step5: You don t need to continue this wizard any longer, you can press Finish to finish creating your project. We will introduce

More information

P.G.TRB - COMPUTER SCIENCE. c) data processing language d) none of the above

P.G.TRB - COMPUTER SCIENCE. c) data processing language d) none of the above P.G.TRB - COMPUTER SCIENCE Total Marks : 50 Time : 30 Minutes 1. C was primarily developed as a a)systems programming language b) general purpose language c) data processing language d) none of the above

More information

Arrays array array length fixed array fixed length array fixed size array Array elements and subscripting

Arrays array array length fixed array fixed length array fixed size array Array elements and subscripting Arrays Fortunately, structs are not the only aggregate data type in C++. An array is an aggregate data type that lets us access many variables of the same type through a single identifier. Consider the

More information

Project #1 Exceptions and Simple System Calls

Project #1 Exceptions and Simple System Calls Project #1 Exceptions and Simple System Calls Introduction to Operating Systems Assigned: January 21, 2004 CSE421 Due: February 17, 2004 11:59:59 PM The first project is designed to further your understanding

More information

KINGS COLLEGE OF ENGINEERING PUNALKULAM DEPARTMENT OF INFORMATION TECHNOLOGY QUESTION BANK UNIT - I WINDOWS PROGRAMMING PART A (2 MARKS)

KINGS COLLEGE OF ENGINEERING PUNALKULAM DEPARTMENT OF INFORMATION TECHNOLOGY QUESTION BANK UNIT - I WINDOWS PROGRAMMING PART A (2 MARKS) 1 KINGS COLLEGE OF ENGINEERING PUNALKULAM - 613 303 DEPARTMENT OF INFORMATION TECHNOLOGY QUESTION BANK Subject Code & Name: CS1305 Visual Programming Year / Sem : III / VI UNIT - I WINDOWS PROGRAMMING

More information

Before we start - Announcements: There will be a LAB TONIGHT from 5:30 6:30 in CAMP 172. In compensation, no class on Friday, Jan. 31.

Before we start - Announcements: There will be a LAB TONIGHT from 5:30 6:30 in CAMP 172. In compensation, no class on Friday, Jan. 31. Before we start - Announcements: There will be a LAB TONIGHT from 5:30 6:30 in CAMP 172 The lab will be on pointers In compensation, no class on Friday, Jan. 31. 1 Consider the bubble function one more

More information

QUIZ. What is wrong with this code that uses default arguments?

QUIZ. What is wrong with this code that uses default arguments? QUIZ What is wrong with this code that uses default arguments? Solution The value of the default argument should be placed in either declaration or definition, not both! QUIZ What is wrong with this code

More information

softmc Servotronix Motion API Reference Manual Revision 1.0

softmc Servotronix Motion API Reference Manual Revision 1.0 Servotronix Motion API Reference Manual Revision 1.0 Revision History Document Revision Date 1.0 Nov. 2014 Initial release Copyright Notice Disclaimer Trademarks 2014 Servotronix Motion Control Ltd. All

More information

MORE STRINGS AND RECURSION

MORE STRINGS AND RECURSION MORE STRINGS AND RECURSION Problem Solving with Computers-I https://ucsb-cs16-wi17.github.io/ Take out your Homework 13 Q1: How are ordinary arrays of characters and C-strings similar and how are they

More information

Different Ways of Writing Windows Programs

Different Ways of Writing Windows Programs How Windows Works Notes for CS130 Dr. Beeson Event-Driven Programming. In Windows, and also in Java applets and Mac programs, the program responds to user-initiated events: mouse clicks and key presses.

More information

.Net Technologies. Components of.net Framework

.Net Technologies. Components of.net Framework .Net Technologies Components of.net Framework There are many articles are available in the web on this topic; I just want to add one more article over the web by explaining Components of.net Framework.

More information

Revision: 09/21/ East Main Pullman, WA (509) Voice and Fax

Revision: 09/21/ East Main Pullman, WA (509) Voice and Fax Digilent Port Communications Programmers Reference Manual Revision: 09/21/04 246 East Main Pullman, WA 99163 (509) 334 6306 Voice and Fax TM Introduction The DPCUTIL Dynamic Link Library (DLL) provides

More information

Tokens, Expressions and Control Structures

Tokens, Expressions and Control Structures 3 Tokens, Expressions and Control Structures Tokens Keywords Identifiers Data types User-defined types Derived types Symbolic constants Declaration of variables Initialization Reference variables Type

More information

1. Describe History of C++? 2. What is Dev. C++? 3. Why Use Dev. C++ instead of C++ DOS IDE?

1. Describe History of C++? 2. What is Dev. C++? 3. Why Use Dev. C++ instead of C++ DOS IDE? 1. Describe History of C++? The C++ programming language has a history going back to 1979, when Bjarne Stroustrup was doing work for his Ph.D. thesis. One of the languages Stroustrup had the opportunity

More information

Introduction. Overview

Introduction. Overview Digilent Port Communications Programmers Reference Manual Revision: 06/03/05 215 E Main SuiteD Pullman, WA 99163 (509) 334 6306 Voice and Fax TM Introduction The DPCUTIL Dynamic Link Library (DLL) provides

More information

Oracle Utilities Mobile Workforce Management. Plug-Ins Guide Release

Oracle Utilities Mobile Workforce Management. Plug-Ins Guide Release Oracle Utilities Mobile Workforce Management Plug-Ins Guide Release 1.5.0.21 August 2013 Oracle Utilities Mobile Workforce Management, Release 1.5.0.21 Copyright 1994, 2013 Oracle and/or its affiliates.

More information

Data Types Literals, Variables & Constants

Data Types Literals, Variables & Constants C/C++ PROGRAMMING Data Types Literals, Variables & Constants Copyright 2013 Dan McElroy Under the Hood As a DRIVER of an automobile, you may not need to know everything that happens under the hood, although

More information

Call DLL from Limnor Applications

Call DLL from Limnor Applications Call DLL from Limnor Applications There is a lot of computer software in the format of dynamic link libraries (DLL). DLLCaller performer allows your applications to call DLL functions directly. Here we

More information

ISO/IEC TR TECHNICAL REPORT

ISO/IEC TR TECHNICAL REPORT TECHNICAL REPORT ISO/IEC TR 13066-2 First edition 2012-10-15 Information technology Interoperability with Assistive Technology (AT) Part 2: Windows accessibility application programming interface (API)

More information

1 Deletion in singly linked lists (cont d) 1 Other Functions. 1 Doubly Linked Lists. 1 Circular lists. 1 Linked lists vs. arrays

1 Deletion in singly linked lists (cont d) 1 Other Functions. 1 Doubly Linked Lists. 1 Circular lists. 1 Linked lists vs. arrays Unit 3: Linked Lists Part 2: More on Linked Lists 1 Deletion in singly linked lists (cont d) 1 Other Functions Engineering 4892: Data Structures 1 Doubly Linked Lists Faculty of Engineering & Applied Science

More information

Appendix. Grammar. A.1 Introduction. A.2 Keywords. There is no worse danger for a teacher than to teach words instead of things.

Appendix. Grammar. A.1 Introduction. A.2 Keywords. There is no worse danger for a teacher than to teach words instead of things. A Appendix Grammar There is no worse danger for a teacher than to teach words instead of things. Marc Block Introduction keywords lexical conventions programs expressions statements declarations declarators

More information

OOPs Concepts. 1. Data Hiding 2. Encapsulation 3. Abstraction 4. Is-A Relationship 5. Method Signature 6. Polymorphism 7. Constructors 8.

OOPs Concepts. 1. Data Hiding 2. Encapsulation 3. Abstraction 4. Is-A Relationship 5. Method Signature 6. Polymorphism 7. Constructors 8. OOPs Concepts 1. Data Hiding 2. Encapsulation 3. Abstraction 4. Is-A Relationship 5. Method Signature 6. Polymorphism 7. Constructors 8. Type Casting Let us discuss them in detail: 1. Data Hiding: Every

More information

DataViews Visual C++ Reference. DataViews for Windows Version 2.1

DataViews Visual C++ Reference. DataViews for Windows Version 2.1 DataViews Visual C++ Reference DataViews for Windows Version 2.1 GE Fanuc DataViews Headquarters 47 Pleasant Street Northampton, MA 01060 U.S.A. Telephone: (413) 586-4144 FAX: (413) 586-3805 email: info@dvcorp.com

More information

Functions, Pointers, and the Basics of C++ Classes

Functions, Pointers, and the Basics of C++ Classes Functions, Pointers, and the Basics of C++ Classes William E. Skeith III Functions in C++ Vocabulary You should be familiar with all of the following terms already, but if not, you will be after today.

More information

CS 470 Operating Systems Spring 2013 Shell Project

CS 470 Operating Systems Spring 2013 Shell Project CS 470 Operating Systems Spring 2013 Shell Project 40 points Out: January 11, 2013 Due: January 25, 2012 (Friday) The purpose of this project is provide experience with process manipulation and signal

More information

An Introduction to MATLAB

An Introduction to MATLAB An Introduction to MATLAB Day 1 Simon Mitchell Simon.Mitchell@ucla.edu High level language Programing language and development environment Built-in development tools Numerical manipulation Plotting of

More information

Lecture on pointers, references, and arrays and vectors

Lecture on pointers, references, and arrays and vectors Lecture on pointers, references, and arrays and vectors pointers for example, check out: http://www.programiz.com/cpp-programming/pointers [the following text is an excerpt of this website] #include

More information

27 Designing Your Own Program

27 Designing Your Own Program 27 Designing Your Own Program 27.1 Using API s...27-2 27.2 Device Access APIs...27-19 27.3 Cache Buffer Control APIs...27-30 27.4 Queuing Access Control APIs...27-36 27.5 System APIs...27-39 27.6 SRAM

More information

CSC 210, Exam Two Section February 1999

CSC 210, Exam Two Section February 1999 Problem Possible Score 1 12 2 16 3 18 4 14 5 20 6 20 Total 100 CSC 210, Exam Two Section 004 7 February 1999 Name Unity/Eos ID (a) The exam contains 5 pages and 6 problems. Make sure your exam is complete.

More information

CMSC 202 Midterm Exam 1 Fall 2015

CMSC 202 Midterm Exam 1 Fall 2015 1. (15 points) There are six logic or syntax errors in the following program; find five of them. Circle each of the five errors you find and write the line number and correction in the space provided below.

More information

CSCI 171 Chapter Outlines

CSCI 171 Chapter Outlines Contents CSCI 171 Chapter 1 Overview... 2 CSCI 171 Chapter 2 Programming Components... 3 CSCI 171 Chapter 3 (Sections 1 4) Selection Structures... 5 CSCI 171 Chapter 3 (Sections 5 & 6) Iteration Structures

More information

Memory and Pointers written by Cathy Saxton

Memory and Pointers written by Cathy Saxton Memory and Pointers written by Cathy Saxton Basic Memory Layout When a program is running, there are three main chunks of memory that it is using: A program code area where the program itself is loaded.

More information

Custom Component Development Using RenderMonkey SDK. Natalya Tatarchuk 3D Application Research Group ATI Research, Inc

Custom Component Development Using RenderMonkey SDK. Natalya Tatarchuk 3D Application Research Group ATI Research, Inc Custom Component Development Using RenderMonkey SDK Natalya Tatarchuk 3D Application Research Group ATI Research, Inc Overview Motivation Introduction to the SDK SDK Functionality Overview Conclusion 2

More information

Aspect-Oriented Programming with C++ and AspectC++ AOSD 2007 Tutorial. Part V Examples. Examples V/1

Aspect-Oriented Programming with C++ and AspectC++ AOSD 2007 Tutorial. Part V Examples. Examples V/1 Aspect-Oriented Programming with C++ and AspectC++ AOSD 2007 Tutorial Part V V/1 AspectC++ in Practice - Applying the observer protocol Example: a typical scenario for the widely used observer pattern

More information

QUIZ. Write the following for the class Bar: Default constructor Constructor Copy-constructor Overloaded assignment oper. Is a destructor needed?

QUIZ. Write the following for the class Bar: Default constructor Constructor Copy-constructor Overloaded assignment oper. Is a destructor needed? QUIZ Write the following for the class Bar: Default constructor Constructor Copy-constructor Overloaded assignment oper. Is a destructor needed? Or Foo(x), depending on how we want the initialization

More information

Developer Documentation

Developer Documentation Developer Documentation Development of Scanner Applications for ACD Windows CE Second Edition Devices Version: 3.0 Copyright ACD Gruppe This document may not be duplicated or made accessible to third parties

More information

Key Switch Control Software Windows driver software for Touch Panel Classembly Devices

Key Switch Control Software Windows driver software for Touch Panel Classembly Devices IFKSMGR.WIN Key Switch Control Software Windows driver software for Touch Panel Classembly Devices Help for Windows www.interface.co.jp Contents Chapter 1 Introduction 3 1.1 Overview... 3 1.2 Features...

More information

CSC209: Software tools. Unix files and directories permissions utilities/commands Shell programming quoting wild cards files

CSC209: Software tools. Unix files and directories permissions utilities/commands Shell programming quoting wild cards files CSC209 Review CSC209: Software tools Unix files and directories permissions utilities/commands Shell programming quoting wild cards files ... and systems programming C basic syntax functions arrays structs

More information

CSC209: Software tools. Unix files and directories permissions utilities/commands Shell programming quoting wild cards files. Compiler vs.

CSC209: Software tools. Unix files and directories permissions utilities/commands Shell programming quoting wild cards files. Compiler vs. CSC209 Review CSC209: Software tools Unix files and directories permissions utilities/commands Shell programming quoting wild cards files... and systems programming C basic syntax functions arrays structs

More information

CS313D: ADVANCED PROGRAMMING LANGUAGE

CS313D: ADVANCED PROGRAMMING LANGUAGE CS313D: ADVANCED PROGRAMMING LANGUAGE Computer Science department Lecture 2 : C# Language Basics Lecture Contents 2 The C# language First program Variables and constants Input/output Expressions and casting

More information

Visual Programming 1. What is Visual Basic? 2. What are different Editions available in VB? 3. List the various features of VB

Visual Programming 1. What is Visual Basic? 2. What are different Editions available in VB? 3. List the various features of VB Visual Programming 1. What is Visual Basic? Visual Basic is a powerful application development toolkit developed by John Kemeny and Thomas Kurtz. It is a Microsoft Windows Programming language. Visual

More information

Starting Microsoft Visual Studio 6.0 And Exploring Available Controls Tools

Starting Microsoft Visual Studio 6.0 And Exploring Available Controls Tools Starting Microsoft Visual Studio 6.0 And Exploring Available Controls Tools Section 1. Opening Microsoft Visual Studio 6.0 1. Start Microsoft Visual Studio ("C:\Program Files\Microsoft Visual Studio\Common\MSDev98\Bin\MSDEV.EXE")

More information

WinSock, 1 WinSock , ) WinSock API. Microsoft Visual C + + ,, + MFC(Microsoft Foundation Class), Visual C + + Windows Sockets.

WinSock, 1 WinSock , ) WinSock API. Microsoft Visual C + + ,, + MFC(Microsoft Foundation Class), Visual C + + Windows Sockets. 38 2003 6 VC + + WinSock (, 071003) Visual C + + WinSock,Microsoft (Microsoft Foundation Class MFC) Windows Sockets, CAsyncSocket CAsyncSocket CSocket MFC WinSock, WinSock WinSock ; ;CSocket Abstract Visual

More information

MFC Programmer s Guide: Getting Started

MFC Programmer s Guide: Getting Started MFC Programmer s Guide: Getting Started MFC PROGRAMMERS GUIDE... 2 PREPARING THE DEVELOPMENT ENVIRONMENT FOR INTEGRATION... 3 INTRODUCING APC... 4 GETTING VISUAL BASIC FOR APPLICATIONS INTO YOUR MFC PROJECT...

More information

MS Excel VBA Class Goals

MS Excel VBA Class Goals MS Excel VBA 2013 Class Overview: Microsoft excel VBA training course is for those responsible for very large and variable amounts of data, or teams, who want to learn how to program features and functions

More information

Chapter 20: Binary Trees

Chapter 20: Binary Trees Chapter 20: Binary Trees 20.1 Definition and Application of Binary Trees Definition and Application of Binary Trees Binary tree: a nonlinear linked list in which each node may point to 0, 1, or two other

More information

The Compiler So Far. Lexical analysis Detects inputs with illegal tokens. Overview of Semantic Analysis

The Compiler So Far. Lexical analysis Detects inputs with illegal tokens. Overview of Semantic Analysis The Compiler So Far Overview of Semantic Analysis Adapted from Lectures by Profs. Alex Aiken and George Necula (UCB) Lexical analysis Detects inputs with illegal tokens Parsing Detects inputs with ill-formed

More information

IFE: Course in Low Level Programing. Lecture 5

IFE: Course in Low Level Programing. Lecture 5 Lecture 5 Windows API Windows Application Programming Interface (API) is a set of Windows OS service routines that enable applications to exploit the power of Windows operating systems. The functional

More information

Lecture 05 POINTERS 1

Lecture 05 POINTERS 1 Lecture 05 POINTERS 1 Pointers Powerful, but difficult to master Simulate call-by-reference Close relationship with arrays and strings Pointer Variable vs. Normal Variable Normal variables contain a specific

More information

Writing Functions in C

Writing Functions in C Writing Functions in C 1 Test 2, Problem 5 b. Write a function to allocate space for a new instance of your structure, as defined in part a. Write the C code for a function to get space from the heap using

More information

C++ Basics. Data Processing Course, I. Hrivnacova, IPN Orsay

C++ Basics. Data Processing Course, I. Hrivnacova, IPN Orsay C++ Basics Data Processing Course, I. Hrivnacova, IPN Orsay The First Program Comments Function main() Input and Output Namespaces Variables Fundamental Types Operators Control constructs 1 C++ Programming

More information

How to Write a GUI for StateWORKS Applications

How to Write a GUI for StateWORKS Applications F. Wagner February 2004 How to Write a GUI for StateWORKS Applications Graphical User Interface for StateWORKS Run-time Systems Most applications need some sort of graphical user interface (GUI). The GUI

More information

THE CONCEPT OF OBJECT

THE CONCEPT OF OBJECT THE CONCEPT OF OBJECT An object may be defined as a service center equipped with a visible part (interface) and an hidden part Operation A Operation B Operation C Service center Hidden part Visible part

More information

Singly linked lists in C.

Singly linked lists in C. Singly linked lists in C http://www.cprogramming.com/tutorial/c/lesson15.html By Alex Allain Linked lists are a way to store data with structures so that the programmer can automatically create a new place

More information

The role of semantic analysis in a compiler

The role of semantic analysis in a compiler Semantic Analysis Outline The role of semantic analysis in a compiler A laundry list of tasks Scope Static vs. Dynamic scoping Implementation: symbol tables Types Static analyses that detect type errors

More information

COLOGO A Graph Language Reference Manual

COLOGO A Graph Language Reference Manual COLOGO A Graph Language Reference Manual Advisor: Stephen A. Edwards Shen Wang (sw2613@columbia.edu) Lixing Dong (ld2505@columbia.edu) Siyuan Lu (sl3352@columbia.edu) Chao Song (cs2994@columbia.edu) Zhou

More information

Hands-On Lab. Multitouch Gestures - Native. Lab version: Last updated: 12/3/2010

Hands-On Lab. Multitouch Gestures - Native. Lab version: Last updated: 12/3/2010 Hands-On Lab Multitouch Gestures - Native Lab version: 1.0.0 Last updated: 12/3/2010 CONTENTS OVERVIEW... 3 EXERCISE 1: BUILD A MULTITOUCH APPLICATION... 7 Task 1 Create the Win32 Application... 7 Task

More information

DT9000 Development Kit V1.1

DT9000 Development Kit V1.1 DT9000 Development Kit V1.1 Diamond Technologies Getting data where it needs to be. 6 Clock Tower Place Suite 100 Maynard, MA 01754 USA Tel: (866) 837 1931 Tel: (978) 461 1140 FAX: (978) 461 1146 http://www.diamondt.com/

More information

Fast Introduction to Object Oriented Programming and C++

Fast Introduction to Object Oriented Programming and C++ Fast Introduction to Object Oriented Programming and C++ Daniel G. Aliaga Note: a compilation of slides from Jacques de Wet, Ohio State University, Chad Willwerth, and Daniel Aliaga. Outline Programming

More information

Motivation was to facilitate development of systems software, especially OS development.

Motivation was to facilitate development of systems software, especially OS development. A History Lesson C Basics 1 Development of language by Dennis Ritchie at Bell Labs culminated in the C language in 1972. Motivation was to facilitate development of systems software, especially OS development.

More information

HANNAH HOWARD #ABOUTME

HANNAH HOWARD #ABOUTME HANNAH HOWARD #ABOUTME Personal @techgirlwonder hannah@carbon Anecdote: I have ve.com a dog she/her REACTIVE PROGRAMMING: A Better Way to Write Frontend Applications 1. PROBLEM STATEMENT WHAT IS A COMPUTER

More information

DEPARTMENT OF INFORMATION TECHNOLOGY ACADEMIC YEAR EVEN SEMESTER QUESTION BANK. UNIT I WINDOWS PROGRAMMING Part-A (2-MARKS)

DEPARTMENT OF INFORMATION TECHNOLOGY ACADEMIC YEAR EVEN SEMESTER QUESTION BANK. UNIT I WINDOWS PROGRAMMING Part-A (2-MARKS) SUB CODE: CS1253 DEPARTMENT OF INFORMATION TECHNOLOGY ACADEMIC YEAR 2008-2009 EVEN SEMESTER SUB NAME: VISUAL PROGRAMMING QUESTION BANK UNIT I WINDOWS PROGRAMMING 1. Write a simple windows program to print

More information

The development of a CreditCard class

The development of a CreditCard class The development of a CreditCard class (an introduction to object-oriented design in C++) January 20, 2006 Rather than explain the many aspects involved in a fully-fledged, yet complex example, we will

More information

What is the Race Condition? And what is its solution? What is a critical section? And what is the critical section problem?

What is the Race Condition? And what is its solution? What is a critical section? And what is the critical section problem? What is the Race Condition? And what is its solution? Race Condition: Where several processes access and manipulate the same data concurrently and the outcome of the execution depends on the particular

More information

SE350: Operating Systems

SE350: Operating Systems SE350: Operating Systems Tutorial: The Programming Interface Main Points Creating and managing processes fork, exec, wait Example: implementing a shell Shell A shell is a job control system Allows programmer

More information

Topic 7: Algebraic Data Types

Topic 7: Algebraic Data Types Topic 7: Algebraic Data Types 1 Recommended Exercises and Readings From Haskell: The craft of functional programming (3 rd Ed.) Exercises: 5.5, 5.7, 5.8, 5.10, 5.11, 5.12, 5.14 14.4, 14.5, 14.6 14.9, 14.11,

More information