ibm-information-center/dist/eclipse/plugins/i5OS.ic.rzakx_5.4.0.1/rzakxcpluspluscntrolflow.htm

74 lines
4.9 KiB
HTML

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang="en-us" xml:lang="en-us">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="copyright" content="(C) Copyright IBM Corporation 2005" />
<meta name="DC.rights.owner" content="(C) Copyright IBM Corporation 2005" />
<meta name="security" content="public" />
<meta name="Robots" content="index,follow" />
<meta http-equiv="PICS-Label" content='(PICS-1.1 "http://www.icra.org/ratingsv02.html" l gen true r (cz 1 lz 1 nz 1 oz 1 vz 1) "http://www.rsac.org/ratingsv01.html" l gen true r (n 0 s 0 v 0 l 0) "http://www.classify.org/safesurf/" l gen true r (SS~~000 1))' />
<meta name="DC.Type" content="concept" />
<meta name="DC.Title" content="iSeries Navigator structure and flow of control for C++ plug-ins" />
<meta name="abstract" content="The internal architecture of the iSeries Navigator product is intended to serve as an integration point for an extensible, broad-based operations interface for the iSeries server." />
<meta name="description" content="The internal architecture of the iSeries Navigator product is intended to serve as an integration point for an extensible, broad-based operations interface for the iSeries server." />
<meta name="DC.Relation" scheme="URI" content="rzakxplugincplus.htm" />
<meta name="DC.Format" content="XHTML" />
<meta name="DC.Identifier" content="rzakxcpluspluscntrolflow" />
<meta name="DC.Language" content="en-us" />
<!-- All rights reserved. Licensed Materials Property of IBM -->
<!-- US Government Users Restricted Rights -->
<!-- Use, duplication or disclosure restricted by -->
<!-- GSA ADP Schedule Contract with IBM Corp. -->
<link rel="stylesheet" type="text/css" href="./ibmdita.css" />
<link rel="stylesheet" type="text/css" href="./ic.css" />
<title>iSeries Navigator
structure and flow of control for C++ plug-ins</title>
</head>
<body id="rzakxcpluspluscntrolflow"><a name="rzakxcpluspluscntrolflow"><!-- --></a>
<!-- Java sync-link --><script language="Javascript" src="../rzahg/synch.js" type="text/javascript"></script>
<h1 class="topictitle1">iSeries Navigator
structure and flow of control for C++ plug-ins</h1>
<div><p>The internal architecture of the iSeries™ Navigator product is intended
to serve as an integration point for an extensible, broad-based operations
interface for the iSeries server.</p>
<p>Each functional component of the interface is packaged as an ActiveX server
DLL. iSeries Navigator
uses Microsoft's Component Object Model (COM) technology to activate only
the component implementations that currently are needed to service a user
request. This avoids the problem of having to load the entire product at start
up, thereby consuming the majority of Windows<sup>®</sup> resources, and impacting performance
of the entire system. Multiple servers may register their request to add menu
items and dialogs to a given object type in the Navigator hierarchy.</p>
<p>Plug-ins work by responding to method calls from iSeries Navigator that are generated
in response to user actions. For example, when a user right-clicks on an object
in the Navigator hierarchy, the Navigator constructs a context menu for the
object, and displays the menu on the screen. The Navigator obtains the menu
items by calling each plug-in that has registered its intention to supply
context menu items for the selected object type.</p>
<p>The functions that are implemented by a plug-in logically are grouped into
"interfaces." An interface is a set of logically related methods on a class
that iSeries Navigator
can call to perform a specific function. The Component Object Model supports
the definition of interfaces in C++ through the declaration of an abstract
class that defines a set of pure virtual functions. Classes that call the
interface are known as implementation classes. Implementation classes subclass
the abstract class definition and provide C++ code for each of the functions
defined on the interface.</p>
<p>A given implementation class may implement as many interfaces as the developer
chooses. When creating a new project workspace for an ActiveX server DLL in
the Developer Studio, the AppWizard generates macros that facilitate interface
implementation. Each interface is declared as a nested class on a containing
implementation class. The nested class has no member data and does not use
any functions other than those that are defined on its interface. Its methods
typically call functions on the implementation class to get and set state
data, and to perform the actual work that is defined by the interface specification.</p>
</div>
<div>
<div class="familylinks">
<div class="parentlink"><strong>Parent topic:</strong> <a href="rzakxplugincplus.htm" title="Use the following topics to learn about the flow of control in iSeries Navigator for C++.">C++ Reference</a></div>
</div>
</div>
</body>
</html>