CMPT 470 Based on lecture notes by Woshun Luk

Similar documents
Lecture 5 C Programming Language

Pointers & Arrays. CS2023 Winter 2004

Pointers. CS2023 Winter 2004

APPLESHARE PC UPDATE INTERNATIONAL SUPPORT IN APPLESHARE PC

This file contains an excerpt from the character code tables and list of character names for The Unicode Standard, Version 3.0.

Modules. CS2023 Winter 2004

Cartons (PCCs) Management

ERNST. Environment for Redaction of News Sub-Titles

Adorn. Slab Serif Smooth R E G U LAR. v22622x

1. Oracle Mobile Agents? 2. client-agent-server client-server

Personal Conference Manager (PCM)

HoneyBee User s Guide

Adorn. Serif. Smooth. v22622x. user s guide PART OF THE ADORN POMANDER SMOOTH COLLECTION

Adorn. Slab Serif BOLD. v x. user s gu ide

1 Swing 2006A 5 B? 18. Swing Sun Microsystems AWT. 3.1 JFrame JFrame GHI

Version /10/2015. Type specimen. Bw STRETCH

ClaimSpotter: an Environment to Support Sensemaking with Knowledge Triples

font faq HOW TO INSTALL YOUR FONT HOW TO INSERT SWASHES, ALTERNATES, AND ORNAMENTS

) $ G}] }O H~U. G yhpgxl. Cong

Contrast. user s guide

State of Connecticut Workers Compensation Commission

Adorn. Serif. Smooth. v22622x

BUCKLEY. User s Guide

Getting round your Mac with Shortcut Keys

Sheila. Regular Bold. User s Guide

To provide state and district level PARCC assessment data for the administration of Grades 3-8 Math and English Language Arts.

Cassandra: Distributed Access Control Policies with Tunable Expressiveness

ADORN. Roman. v x. user s gu ide

font faq HOW TO INSTALL YOUR FONT HOW TO INSERT SWASHES, ALTERNATES, AND ORNAMENTS

ASCII Code - The extended ASCII table

Adorn. Serif. v x. user s gu ide

font faq HOW TO INSTALL YOUR FONT HOW TO INSERT SWASHES, ALTERNATES, AND ORNAMENTS

Banner 8 Using International Characters

ConMan. A Web based Conference Manager for Asterisk. How I Managed to get Con'd into skipping my summer vacation by building this thing

III. CLAIMS ADMINISTRATION

Bold U S E R S G U I D E

7DONSODQ. ƒ We called our platform 9 D-II TG: Distributed Internet Traffic Generator

Adorn. Bouquet. v x. user s gu ide

District Institute of Education and Training Lawspet, Puducherry.

USB-ASC232. ASCII RS-232 Controlled USB Keyboard and Mouse Cable. User Manual

OOstaExcel.ir. J. Abbasi Syooki. HTML Number. Device Control 1 (oft. XON) Device Control 3 (oft. Negative Acknowledgement

Probabilistic analysis of algorithms: What s it good for?

Communication and processing of text in the Kildin Sámi, Komi, and Nenets, and Russian languages.

KBD-SFTCFG. Instruction Manual Software for the IntuiKey Series Digital Keyboard Software Version 1.80

For information on how to access the swashes and alternates, visit LauraWorthingtonType.com/faqs

Second Year March 2017

Using non-latin alphabets in Blaise

font faq HOW TO INSTALL YOUR FONT HOW TO INSERT SWASHES, ALTERNATES, AND ORNAMENTS

Oracle Primavera P6 Enterprise Project Portfolio Management Performance and Sizing Guide. An Oracle White Paper December 2011

Chap. 3. Chap. 3. Recall and Precision Alternative Measures. TREC Collection CACM and ISI Collections CFC (Cystic Fibrosis Collection)

IPv6 Servic es. LONG Net w ork

ESCAPE SEQUENCE G0: ESC 02/08 04/13 C0: C1: NAME Extended African Latin alphabet coded character set for bibliographic information interchange

Using USB Hot-Plug For UMTS Short Message Service. Technical Brief from Missing Link Electronics:

Appendix C. Numeric and Character Entity Reference

Communication and processing of text in the Chuvash, Erzya Mordvin, Komi, Hill Mari, Meadow Mari, Moksha Mordvin, Russian, and Udmurt languages.

Using SmartXplorer to achieve timing closure

User Guide for Greek GGT-Fonts Revision date: 23 May, 2011

7. IP. » &!'() (IS: intermediate system) !"#$% *+'() (ES: end system) Copyright 2000, Suguru Yamaguchi, All right reserved

O Type of array element

Regular Bold. Shadow Regular plus Shadow. Spumante

A Mixed Fragmentation Algorithm for Distributed Object Oriented Databases 1

File Structures N F. Chapter 1-1. z M.Folk and B.Zoellick, File Structures, Addison Wesley.

You 2 Software

Quantum. Name: Quantum. Classification: Display Sans Serif. Designer: Hitesh Malaviya (Rocky) Designed in: Styles: 5.

CHAPTER 7 COM and.net

Chemistry Hour Exam 2

A COMPARISON BETWEEN OBJECT-ORIENTED DATABASE SYSTEMS AND INFORMATION SYSTEM SHELLS

UNIVERSITY OF THE FREE STATE DEPARTMENT OF COMPUTER SCIENCE AND INFORMATICS CSIS1614. DATE: 5 March 2015 MARKS: 100 SECTION A (36)

Introduction. ActiveX, OLE, and the Internet

Sklonar. Number of fonts in a family: 3 (Light, Medium, Bold) Number of glyphs per font: 411 Release date: 2016

The course that gives CMU its Zip! Web Services Nov 26, Topics HTTP Serving static content Serving dynamic content

Curvature of subdivision surfaces

Banks Tupas Certification Service for Service Providers

KbdKaz 500 layout tables

Editors: prof. Ing. Iveta Ubrežiová, CSc., Ing. Drahoslav Lančarič, PhD., Ing. Ingrida Košičiarová, PhD. ISBN

Banks' TUPAS certification service for service providers

Myriad Pro Light. Lining proportional. Latin capitals. Alphabetic. Oldstyle tabular. Oldstyle proportional. Superscript ⁰ ¹ ² ³ ⁴ ⁵ ⁶ ⁷ ⁸ ⁹,.

Rapid Prototyping of flexible Embedded Systems on multi-dsp Architectures

UNIVERSITY OF THE FREE STATE DEPARTMENT OF COMPUTER SCIENCE AND INFORMATICS CSIS1614

124 DISTO pro 4 / pro 4 a-1.0.0zh

]a a. ] v. A. Silberschatz, H. Korth and S. Sudarshan, Database System Concepts (3rd Edition), The McGraw Hill Company, 1997.

A Survey of Current CLOS MOP Implementations

Effective Sequential Pattern Mining Algorithms for Dense Database

MAT 22B-001: Differential Equations

Concurrent Execution

Tumble Dryer. Programming. UniLinc Control Refer to Page 4 for Model Identification

Automatic Verification of Finite State Concurrent Systems

The Coptic Standard Character Code (CSCC)

Dynascrip The Dynascript Manual And Typesetting Guide A n o t h e r O r i g i n a l

This proposal is limited to the addition and rearrangement of some of the Korean character part of ISO/IEC (UCS2).

Calligraphic Packing. Craig S. Kaplan. Computer Graphics Lab David R. Cheriton School of Computer Science University of Waterloo. GI'07 May 28, 2007

NGN Charging issues NGN charging overview Some of IP charging projects and international activities Proposals for NGN charging

Kulturista. Case Sensitive Forms (case) Localized Forms (locl) Standard Ligatures (liga) Kulturista Introduction 1/5. Definition.

A Flexible Agent-Based Framework for Process Management

Regular Bold. User s Guide

Ancillary Software Development at GSI. Michael Reese. Outline: Motivation Old Software New Software

Information management for MST cleanroom processes

Concurrent Architectures - Unix: Sockets, Select & Signals

Visualization (human) Analysis (computer) Documents, Textures, Biometrics, Object recognition

FIT TO PRINT S M A R T F A B R I C R E N TA L E X H I B I T S

Transcription:

* ) ( & 2XWOLQH &RPSRQHQ 2EMHF 0RGXOHV CMPT 470 ased on lecture notes by Woshun Luk What is a DLL? What is a COM object? Linking two COM objects Client-Server relationships between two COM objects COM interfaces ActiveX Control The Future of COM 7KUH 6WHS L 3URJUD 3URJUD /LEUDU /LQNLQJ ([HFXWLRQ A Program library is a library of pre-written pre-compiled procedures (not executables that is not XXXexe in a Windows World) When a program calls a procedure in a program library it is loaded into the process where the program runs Compilation: source code is compiled into binary code Linking: external symbols inside the program (eg Systems and program library procedure names) are resolved Loading: the linked binary code is loaded into the address space of a process for execution

- ()* 3URJUD QWHUSUHWDWLRQ \QDPLFOLQ /LEUDU // As an alternative to compilation the source code or its intermediate representation is interpreted during the runtime External symbols are also resolved during runtime ie late binding Compilation vs Interpretation The former is more efficient while the latter is more flexible Static-link: the procedure is linked to the calling program before execution Once linked it becomes part of the program Dynamic-link: the procedure is linked to the calling program only when it is called Procedures with dll extension will be loaded by the windows operating system at the load time :K // :K 2 // Since only one copy of DLL is needed it saves memory and disk space Minor updates and bug mixing may be done without compiling and re-linking DLL is about code reuse DLL is too difficult to write for an average application programmer (There can be only one instance of DLL in the entire system) Component object model (COM) has evolved to become the fundamental technology for binary code sharing among applications on MS platform In a way a COM object is a DLL plus &

0 / *( - 0 2EMHFWV COM as a programming standard specifies how objects in binary code are invoked and communicate with each other COM supports three types of object: In-process (dll) Local (exe in local machine) Remote (dll or exe in remote machine) COM is programming language neutral COM is not cross-platform From the outside world a COM object is black box which exposes the following: properties: information about the object behavior: methods: functions implemented in the object events: external actions that an object will handle in a certain manner Many MS apps are COM objects (Office IE) DLL usually has no GUI 7DNH 7Z W 7DQJR &RQQHFWLQ 7Z 2EMHFWV Two communicating objects are in a clientserver relationship server: the COM object being called client: the calling program This relationship is manifested as: Object Linking/Embedding (OLE) control OLE document The client must find out where the server is located Type conversion is often required when parameters are passed between the client and the server Object instances must be created and destroyed as demanded by the client or server Error and status reports must be generated on demand Automation (or OLE/COM automation) )* (& (

) ( 6 * 7 8 7 7 5 / 234 & IR 2EMHFWV 2U R W /RFDW WK REMHFW 2EMHF QYRFDWLRQ 7Z :D\V Each (COM) object belongs a certain type (instance/class) Each object type has a (globally) unique ID ie CLSID (class ID) Each interface of an object type has a unique ID ie IID (interface ID) Together CLSID IID makes GUID (Globally unique ID) GUIDs are stored in the registry of an NT workstation which is accessible to the user C way (aka the COM way) supports early binding express method parameters in language neutral way (eg IDL interface definition language) V (or VScript) way (aka the Automation way) support late binding rely on type library for parameter type conversion One trend is to provide objects which may be invoked in either way (aka dual interfaces) &UHDWLR DQ HVWUXFWLR R 2EMHF QVWDQFH 2/ XWRPDWLRQ COM objects may be created by an application program It is the responsibility of the application program to destroy the object when it is done and if you forget you get a memory leak One overview at http://modenaintergateca/personal/iago/ol etut/olep3htm OLE automation is Microsofts technology for cross-application macro programming It is a standard The server is usually a full-fledged application eg Word Excel and IE The client (automation controller) is usually a V program or a script (eg V for Application) 0 /- /

* & () 2/ GRFXPHQW 2/ &RQWURO OLE control (the server) is usually an in-process DLL OLE document is a way to link up two applications (eg WORD and EXCEL) through the medium of a OLE compound document object The object (server) is either embedded into or linked to the client (ie container) The server exposes usually visually a set of methods (eg EDIT) which may be called through the container by the end user These methods will be executed on the server on the application which produces the server that runs in the address space of the container (client) This tight integration is preferred because the client provides ambient support to the server (eg font display location and background color) the client and server work together to handle external events (eg mouse clicks or keyboard entries) QWHUIDFHV QWHUIDFHV According to COM objects communicates with each other via prescribed interfaces A COM object has two types of interfaces: System supplied interface (COM interface) User written (custom) interface like a DLL exposes methods and properties ie an interface for communication with outside world There may be more than one custom interfaces for a COM object Since server and client are typically written in isolation they must be written such that they can communicate with each other in a specific way Typically the server and client each provide specific COM interfaces for the other to call Tools such as MFC and ATL are useful for highpowered COM objects In-process GUI-less COM objects are easy to write in Vasic &

COM is the meat and potatoes of DNA Run-time licensing Reduced footprint (for quick downloading) Digital certification - H @ K K A> G = A@ =?> [ Y VU Y \ V e [ U Rd c b U m i i srq Ž ~ Š ~ ~ Ÿ Ÿ œ œ «º ³ ¼» ± º ž ¹ œž º ³ ² Å º ¹ ² ¾ ± Ê ¾ À± º³»º º ³ ¾ Æ ² ¼  Äà ÅÀ ² Á ºÇ ³ ¾ Ƽ ¾¾º ³ Å Å À» ³ Å ºÌ ± ± ³ ¹ Ë À À± Þ Ò Ð ÒÓ ÎÔ Ù Ñ Ô Ø Ñ ÒØ Ó Ï Ð Ñ ìè ëà ë ê ò â ó æ êé è ç ü ú ú ù ù üü ø ù ø ú ù ù * )( ) 0 R )XWXU 7K LQWHUHW Microsoft has its LVWULEXWH UFKLWHFWXUH The NET initiative is a new architecture oth DNA and NET will co-exist Article from Infoworld http://wwwinfoworldcom/articles/tc/xml/0/0 3/9/0039tcwindowsxml &RQWURO FWLYH An ActiveX control is an OLE control that supports the following features: Initialization security Scripting security IE is an example of ActiveX control container Tutorial (ancient history) http://wwwinfospherescaltechedu/mailing_lists/ja va/msg00207html 7HVW &HQWUH QIR:RUO 7 <DJHU : 98 & 0 7 6 035-2 3 4 0 &/0 - * & )( M A A)P O L AF MN FKL JI H A DE AF C @ ;< = Z eefg R\ S ^]_a` V \ [ R Y Z WX RV SRU ST RQ k r{ qmp q o{ z y m y w x j)v rp iut srq n op l m k j h i ƒ ~ ~ } ~ ~) Ž ~)ˆ ƒ ~ } ~ Ž ~ Ž ~ ª Ÿš š º³ À ¾º³» ½ ²³ ± ¾ º Å Â ±uỳ º Å ÉÃ È º Å ±uá ¾ º À ³ ³ ³ ß Ö Î Ú)Ý ÛÎ Ü Ù Ù Ø Î Ú Ô Ò Ö Ô Õ Î Ò ÍÎ ÏÐ ö ñò õî ò ë ô àâæ ì ñò ï î ïð ë ìí éë ì â æä ã äå á à â ú ú ú þ øùú ú ùú ú ú ú ùú ú ù üú þ øù ù ùú ü & -