`
`11 Working
`
`with OLE Embedded and OLE Linked Objects
`
`The selected and open appearances
`apply only to the objects ap
`on the display
`the container
`If the user chooses
`to print
`pearance
`while an OLE embedded
`is open or active use the presenta
`object
`tion form of objects
`the open nor active hatched
`neither
`pattern
`in the printed document
`should
`because
`neither pattern is
`appear
`part of the content
`
`While an OLE embedded
`is open
`functioning
`object
`it is still
`member of its containet
`It can still be selected or unselected
`and
`to appro priate container commands At any time the
`can respond
`user may open any number of OLE embedded
`objects When
`the
`user closes its container window deactivate and close the windows
`for any open OLE embedded
`objects
`
`Editing an OLE Linked Object
`
`An OLE linked object
`particular location moved
`can be stored in
`or copied and has its own properties Container actions can
`be
`So an OLE
`applied to the OLE linked object
`unit of content
`as
`supplies commands
`as Cut Copy Delete and
`container
`such
`and interface elements
`as handles drop-down
`such
`Properties
`for the OLE linked
`pop up menu items and property sheets
`objects it contains
`
`and
`
`that
`
`another
`
`to the commands that activate
`The container also provides access
`the
`OLE linked object
`the commands that provide access to
`including
`by the OLE linked object These commands are
`content
`represented
`the same as those that have been registered for the link sources type
`an OLE linked object
`represents and provides access to
`Because
`resides elsewhere editing an OLE linked object
`object
`takes the user back to the link source Therefore the com
`always
`an OLE linked object
`mand used to edit
`the command
`is the same as
`of its linked source object For example the menu of
`linked object
`is an OLE embed
`include both Open and Edit
`if its link source
`can
`The Open command opens
`ded object
`the embedded
`object
`just
`as
`carrying out the command on the OLE embedded
`object does The
`the container window of the OLE embedded
`Edit command opens
`for OLE visual editing
`object and activates Ihe object
`
`316
`
`The Windows
`
`Interface
`
`Guidelines
`
`for Software
`
`Design
`
`338
`
`
`
`Working
`
`with OLE Embedded and OLE Linked Objects Chapter
`
`11
`
`Figure 11.28 shows
`linked bitmap image of
`the result of opening
`in its own window for editing Note that
`horn The image appears
`changes made to the horn are reflected not only in its host container
`the Classical CD Review document but
`in every other document
`that contains an OLE linked object
`linked to that same portion of the
`Horns document This illustrates
`both the power and the potential
`in documents
`danger of using links
`
`OLE
`
`linked
`
`object
`
`OLE
`
`container
`
`window
`
`1l1Il
`
`Erie
`
`dii
`
`yie Jnsert
`
`Format
`
`Ioolx
`
`Table
`
`Help
`
`dcii
`
`Link source window
`
`Ella
`
`Edit Vie
`
`image
`
`Upho
`
`Help
`
`________
`\\
`
`_____
`
`playLPalba
`fox Antendan
`multimedia
`
`exn
`erdi tI
`
`gezuuse
`coutanu
`
`abthtyto
`
`Collction
`
`nifm atm and
`
`1flFlTEflLUU
`
`For Help
`
`did- Help Topic
`
`on the Help He
`
`JTh
`
`il
`
`Figure
`
`11.28 Editing
`
`link source
`
`At first glance editing an OLE linked object seems to appear similar
`ro an opened OLE embedded
`separate primary window
`object
`the container of an OLE linked
`the data However
`displaying
`opens
`object does not render the link representation using the open hatched
`The
`the link source does not reside at this location
`pattern because
`
`The Windows
`
`Interface
`
`Guidelines
`
`for Software Design
`
`317
`
`339
`
`
`
`Chapter
`
`11 Working
`
`with OLE Embedded and OLE Linked Objects
`
`OLE linked object
`is not the real object only
`to be visually present
`in other
`locations Editing the
`the source
`the link sonrce
`linked object
`is functionally identical
`to opening
`Similarly the title bar text of the link sources window does not use
`as an open OLE embedded
`object because
`the convention
`the link
`object Therefore the windows
`and
`is an independent
`operate
`If the link sources window is
`cf each other
`close independently
`already visible the OLE linked object notifies
`the link source
`activate bringing the existing window to the top of the
`
`stand-in that enables
`
`to
`
`order
`
`source
`
`Note that
`
`the container of the OLE linked object does display mes
`the link source For example
`the container
`sages related to opening
`be accessed
`if the link source cannot
`message
`
`displays
`
`Automatic
`
`and Manual Updating
`When the user creates an OLE link by default
`it is an automatic
`is whenever
`the source
`data changes the links visual
`link that
`without
`information
`requiring any additional
`representation changes
`from the user Therefore do not display an Update Automatic
`Links Now message box If the update takes
`significant time
`message box indicating
`the progress
`you can display
`
`to complete
`of the update
`
`can set
`
`ever when links
`If users wish to exercise cnntrol
`are updated they
`the linked obj acts update property to manual Doing so
`command to update the link
`the user choose an explicit
`requires that
`The link can also be updated
`part of the link
`as
`representation
`fields or recalc action or other command that
`containers
`update
`the presentation in the containers window
`implies updating
`
`318
`
`The Windows Interface
`
`Guidelines
`
`for Software Design
`
`340
`
`
`
`Working
`
`with OLE Embedded and OLE Linked Objects
`
`Chapter
`
`11
`
`Operations and Links
`The operations available for an OLE linked object are supplied by
`its container and its source When
`command sup
`the user chooses
`the container application
`handles
`the opera
`plied by its container
`commands such
`as Cut
`tion For example the container processes
`Copy or Properties When
`command supplied
`the user chooses
`passed back
`by its source the operation is conceptually
`registered
`In this sense activating an
`to the linked source object
`OLE linked object activates
`its source object
`
`for processing
`
`In certain cases the linked object exhibits the result of an operation
`can be brought
`to the top of
`in other cases the linked source object
`the operation For example carrying out com
`to handle
`the
`order
`mands such
`as Play or Rewind on
`sound recording ap
`link to
`in place However if the user
`on the linked object
`to operate
`pear
`command to alter the links representation of its sources
`chooses
`such as Edit or Open the link source
`is exposed and re
`to the operation instead of the linked object
`itself
`
`content
`
`sponds
`
`support editing in place
`
`If
`
`link source
`
`is contained
`
`sound in place but cannot
`link source to properly respond
`to editing operations
`fully
`objects and its
`the source object with all of its containing
`activate
`container For example when the user double-clicks
`linked object
`whose default operation is Edit the source or its container
`opens
`displaying the linked source object
`for editing If the source is
`ready
`already open the window displaying the source
`becomes
`active This
`window
`convention
`the standard
`follows
`for activating
`already
`is the window comes
`order You can
`open that
`to the top of the
`the view in the window scrolling
`focus within
`or changing
`adjust
`the window as necessary
`for easy user
`the source object
`to present
`The linked source window and linked object window
`interaction
`and close independently
`of each other
`
`link can play
`For
`
`operate
`
`within
`
`document
`read-only
`box advising
`message
`display
`that edits cannot
`saved
`
`user
`
`be
`
`the source file
`
`the
`
`to
`
`The Windows Interface
`
`Guidelines
`
`for Software
`
`Design
`
`319
`
`341
`
`
`
`Chapter
`
`11 Working
`
`with OLE Embedded and OLE Linked Objects
`
`Types and Links
`An OLE linked object
`cached copy of its sources type at
`includes
`the time of the last update When
`the type of
`linked source object
`derived from that source object contain the old
`changes all links
`type and operations until either
`an update occurs or the linked source
`can potentially display obso
`Because out-of-date
`is activated
`links
`mismatch can occur When
`lete operations to the user
`the user
`command for an OLE linked object
`chooses
`the linked object
`type of the linked source
`compares the cached
`lype with the current
`If they are the same the OLE linked object
`forwards
`the operation
`on to the source If they are different
`the linked object
`container
`In response the container
`
`informs its
`
`can either
`
`Carry out the new types operation
`the old link is syntactically identical
`the sources new type
`istered
`for
`
`if the operation issued from
`to one of the operations reg
`
`message box if the issued operation is no longer sup
`Display
`ported by the link sources new type as shown in Figure 11.44
`
`case the OLE linked object adopts the sources new type
`In either
`the container displays the new types operations in
`and subsequently
`the OLE linked object menu
`
`It
`
`Link Management
`An OLE linked object
`such as the name of its
`includes properties
`basis which is ei
`source its sources type and the links updating
`or manual An OLE linked object also has
`set of
`ther automatic
`commands related to these properties
`is the responsibility of the
`to provide the user access to these
`container of the linked object
`this an OLE container pro
`commands and properties
`To support
`for all of its OLE objects You can optionally
`vides
`property sheet
`Links dialog box for viewing and altering
`the proper
`also include
`simultaneously
`
`ties of several
`
`links
`
`320
`
`The Windows Interface
`
`Guidelines
`
`for Software Design
`
`342
`
`
`
`Working
`
`with OLE Embedded and OLE Linked Objects
`
`Chapter
`
`11
`
`Accessing Properties of OLE Objects
`
`Like other types of objects OLE embedded
`and linked objects have
`The container of an OLE object
`is responsible for provid
`properties
`The fol
`ing the user interface for access to the objects properties
`lowing sections describe how to provide user access to the properties
`of OLE objects
`
`The Properties Command
`Design OLE containers to include
`Properties command and prop
`sheets for any OLE objects it contains
`If the container applica
`erty
`Properties command for its own native data
`tion already includes
`also use it to support selected OLE embedded
`or linked
`you can
`objects Otherwise add the command to the drop down and pop-up
`the other commands for the object
`menu you provide for accessing
`by menu separator
`as shown in Figure 11.29
`preceded
`
`Dedicated
`object menu
`
`Object commands
`on Edit
`drop-down menu
`
`listed
`
`Pop-up menu
`for object
`
`ride
`
`Eepeat
`
`ci
`
`Lopy
`
`Paste
`
`Paste
`
`Link
`
`Paste paciaI..
`
`Links
`
`Figure
`
`11.29 The Properties
`
`command
`
`Opes
`
`343
`
`The Windows Interface
`
`Guidelines
`
`for Software Design
`
`321
`
`
`
`Chapter
`
`11 Working
`
`with OLE Embedded and OLE Linked Objects
`
`When the user chooses
`the Properties command
`sheet containing all
`the salient properties
`plays
`property
`ues organized
`for the selected object Figure 11.30
`by category
`for an OLE object
`shows examples property sheet pages
`
`the container dis
`and val
`
`Document
`
`Properties
`
`Figure
`
`11.30 OLE embedded
`
`object
`
`property
`
`sheet
`
`sheets and the con
`Follow the format
`the system uses for property
`type name in the title
`ventions outlined in this guide Use the short
`har for an 01
`the name with the word
`linked object precede
`Linked as
`in Linked Worksheet
`Include
`General
`property
`page displaying the icon name type size and location of the object
`Convert command button to provide access to the
`Also include
`dialog box On
`View page
`type conversion
`display properties
`associated with the view and presentation of the OLE object within
`These include scaling or position properties
`and
`the container
`whether
`to display the object
`in its content
`or as an
`presentation
`Icon command
`icon The Display As Icon field includes
`Change
`of the
`the icon presentation
`button that allows the user to customize
`Icon dialog box is shown
`object The Change
`in Figure 11.31
`
`322
`
`The Windows
`
`Interface
`
`Guidelines
`
`for Software Design
`
`344
`
`
`
`Working
`
`with OLE Embedded and OLE Linked Objects
`
`Chapter
`
`11
`
`Figure
`
`11.31 The Change
`
`Icon dialog
`
`box
`
`For OLE linked objects also include
`Link page
`in its property
`and coniniands
`sheet containing the essential
`link parameters
`shown
`in Figure II .32
`
`as
`
`Liener.sl Vis
`
`Linked To
`
`.D Uci_JEfieF
`
`ii \S haror_\REVIEc./.D
`
`change Source..
`
`Update
`
`AutrrriaticaIIk
`
`511104
`
`Lad Update
`
`Date
`
`I_IflkriiJAn
`
`Time LIrt.rIirr
`
`O(cid:0)er
`
`Source
`
`Update
`
`Nob
`
`Break
`
`Lint
`
`__..g.liJJ
`
`tfltLt11L_._
`
`4.st1AthLL..-
`
`Figure
`
`11.32 The Link
`
`page for the property
`
`sheet of an OLE
`
`linked
`
`object
`
`The Windows Interface
`
`Guidelines
`
`for Software Design
`
`323
`
`345
`
`
`
`Chapter
`
`11 Working
`
`with OLE Embedded and OLE Linked Objects
`
`For the typical OLE link include the source name the Update set
`the Last Update timestamp and com
`ting automatic or manual
`mand buttons that provide the following
`link operations
`
`Break Link effectii ely disconnects
`
`the selected link
`
`Update Now forces the selected link to connect
`the latest
`information
`
`retrieve
`
`to its sources
`
`and
`
`Open Source
`
`opens
`
`the link source
`
`for the selected link
`
`dialog box similar to the common Open
`Source
`invokes
`Change
`dialog box to allow the user to respecify the link source
`
`The Links Command
`In addition to property sheets OLE containers can optionally in
`Links command that provides access to
`dialog box for
`clude
`and managing multiple links Figure 11.33 shows
`the
`displaying
`Links dialog box The list box in the dialog box displays the links
`in the container Each line in the list contains the link sources name
`type short type name and whether
`the link sources object
`the link
`be found
`link source
`or manually If
`cannot
`status column
`in the update
`
`updates automatically
`Unavailable
`
`appears
`
`Figure
`
`11.33 The Links
`
`dialog
`
`box
`
`the Links command when the current selection
`If the user chooses
`linked object or objects display that
`link or links as
`includes
`selected in the Links dialog box and scroll
`to display the first
`the list
`selected link at the top of the list box
`
`324
`
`The Windows
`
`Interface
`
`Guidelines
`
`for Software Design
`
`346
`
`
`
`Working
`
`with OLE Embedded and OLE Linked Objects
`
`Chapter
`
`11
`
`each
`
`Allow 15 characters for the short type name field and enough
`space
`for Automatic and Manual
`As the user selects
`to appear completely
`its type name and updating
`basis appear
`link in the list
`in
`at the bottom of the dialog box The dialog box also
`command buttons included in the Link
`includes link management
`page of OLE linked object property sheets Break Link Update
`Now Open Source and Cbange Source
`
`their entirety
`
`the Open Source button to be the default command button
`Define
`when the input
`focus
`double-click
`is within the list of links Support
`link source
`ing an item in the list
`
`that
`
`as
`
`shortcut
`
`for opening
`
`the Change Source button displays
`version of the Open
`Clicking
`dialog box that allows the user to change
`the source of
`link by
`source name
`filename If the user enters
`file or typing
`selecting
`that does not exist and chooses
`message box is
`the default button
`as shown in Figure 11.34
`displayed with the following message
`
`Figure
`
`11.34
`
`message box for an invalid source
`
`Yes display the Change Source dialog box to
`If the user chooses
`the string If the user chooses No store
`the unparsed dis
`correct
`play name of the link source until
`the user links
`successfully
`the dangling reference The
`newly created object
`that satisfies
`container application
`can also choose
`to allow the user to connect
`
`to
`
`only to valid links
`
`link source or its directory and other linked
`If the user changes
`to the same original
`objects in the same container are connected
`the user the option to make the
`source the container may offer
`use the mes
`To support
`for the other references
`this option
`changes
`sage box as shown in Figure 11.35
`
`link
`
`The Windows Interface
`
`Guidelines
`
`for Software
`
`Design
`
`325
`
`347
`
`
`
`Chapter
`
`11 Working
`
`with OLE En bedded
`
`and OLE Linked Objects
`
`kC(cid:0) amer
`
`Name
`
`link
`
`Thi
`
`F-ia been chanaed
`The electeij
`doc.i_imerit cntain additional
`fl5fflØ Do ou vant
`bangs additinal
`
`liriki
`
`to
`
`link
`
`ia
`
`No
`
`Figure
`
`11.35 Changing additional
`
`links with
`
`the same source
`
`Converting Types
`
`to convert
`
`Users may want
`the
`type so they can edit
`an objects
`To support
`the users converting
`object with
`application
`different
`an OLE nhject
`frnm
`registered type pro
`current
`type to another
`vide Convert dialog box as shown
`in Figure 11.36 The user ac
`cesses the Convert dialog box by including
`Convert button beside
`the Type field in an objects property sheet
`
`Figure
`
`11.36 The Convert dialog
`
`box
`
`type of the object and
`This dialog box displays the current
`This list
`with all possible conversions
`of all types regis
`is composed
`of reading the selected objects format but
`tered as capable
`this does
`of reverse conversion If the
`the possibility
`not necessarily
`guarantee
`the OK button the
`new type from the list and chooses
`user selects
`to the new type If the ob
`selected object
`is converted
`the conversion
`is open the container
`closes it before beginning
`
`ject
`
`immediately
`
`list box
`
`on
`
`recom
`Previous
`guidelines
`mended including
`Convert
`command
`the menu for
`se
`lected OLE
`You may continue
`oblect
`to support this however
`access through
`
`button
`
`of
`the object
`erty sheet
`ferred method
`
`providing
`in the prop
`is the pre
`
`326
`
`The Windows
`
`Interface
`
`Guidelines
`
`for Software Design
`
`348
`
`
`
`Working
`
`with OLE Embedded and OLE Linked Objects
`
`Chapter
`
`11
`
`Make sure the application that supplies the conversion
`minimal
`impact in the user interface
`the
`That
`is avoid displaying
`primary window but do provide
`progress indicator
`applications
`message box with appropriate controls so that
`the user can monitor
`the conversion
`or internipt
`process
`
`does
`
`so with
`
`If the conversion
`
`result
`
`in any lost data or informa
`of the type could
`should
`the type conversion
`tion the application
`you use to support
`that data will be lost and
`warning message box indicating
`display
`by the user before continuing Make the mes
`request confirmation
`the nature of the information
`as possible about
`as specific
`sage
`might be lost for example Text properties will not be preserved
`in no data loss the warning message is
`If the conversion
`
`will
`
`result
`
`not necessary
`
`that
`
`choosing
`
`selects
`
`the
`
`type the Convert dialog box offers
`In addition to converting
`the type association for the object by
`user the option to change
`the Activate As option When
`the user chooses
`this option
`the OK button the objects
`type from the list and chooses
`type is now treated as
`the new type This differs from type conver
`the same but its activation
`sion in that
`the objects
`type remains
`conimand is now handled
`by
`It also differs
`application
`different
`is converted
`
`that
`
`the object
`in that converting
`type only affects
`Changing the activation
`single object of the type
`association of
`it for all OLE embedded
`type For example
`objects of that
`format document
`text document only
`converting
`to
`document However if the user chooses
`the
`the converted
`affects
`Activate As option to change
`the association for the rich-text
`is by the same
`object so they will be activated as
`text object
`that
`application registered for editing text objects all OLE embedded
`format objects will be also be activated this way
`rich text
`
`changes
`
`rich-text
`
`format
`
`At the bottom of the Convert dialog box text describes the outcome
`of the choices
`the user selects Table
`11.3 outlines the syntax of the
`to use within the Convert dialog box
`
`descriptive text
`
`The Windows
`
`Interface
`
`Guidelines
`
`for Software Design
`
`327
`
`349
`
`
`
`Chapter
`
`11 Working
`
`with OLE Embedded and OLE Linked Objects
`
`Table 11.3 Descriptive
`
`Text
`
`for Convert Dialog
`
`Box
`
`Function
`
`Resulting
`
`text
`
`Convert
`
`type to
`
`the selected
`new type
`
`objects
`
`Convert
`
`the selected
`new type
`type to
`as an icon
`play the object
`
`objects
`and dis
`
`Permanently
`Type Name
`object
`
`the selected Existing
`changes
`to New Type Name
`
`object
`
`the selected
`changes
`Permanently
`Existing
`to New Type Nome
`Type Name
`object
`object The object will be displayed as an
`icon
`
`No type change
`the select
`ed type is the same as its
`existing type
`
`Cbange
`
`the activation
`
`association
`
`for the selected
`
`objects type
`
`Change
`
`the activation
`
`association
`
`for the selected
`
`and display
`objects type
`as an icon
`
`the object
`
`The New Type Name
`same as the type of
`the selected object
`its type will not be converted
`
`you selected
`
`is the
`
`so
`
`Type Name object will be
`Every Existing
`as New Type Name object but
`activated
`not be converted to the new type
`
`Type Name
`Every Existing
`object will be
`New Type Name object but
`activated
`as
`converted to the new type The selected
`object will be displayed as an icon
`
`Disable the Convert option for
`conversion
`linked object because
`on the link source Also disable Activate As
`link must occur
`for
`option if no types are registered for alternative
`activation
`If the user
`nor change
`can neither convert
`the activation
`association
`Convert command that displays this dialog box
`
`disable the
`
`328
`
`The Windows
`
`Interface
`
`Guidelines
`
`for Software Design
`
`350
`
`
`
`Working
`
`with OLE Embedded and OLE Linked Objects
`
`Chapter
`
`11
`
`Using Handles
`
`for an OLE embedded
`or linked object
`container displays handles
`is selected individually When
`when the object
`is selected
`an object
`and not active
`its cached metafile
`only the scaling of the object
`be supported If
`container uses handles
`for indicating
`selection but
`does not support scaling of the image use the hollow form of handles
`
`can
`
`is activated for OLE visual editing
`an OLE embedded
`When
`object
`it displays its own handles Display the handles within the active
`pattern as shown
`in Figure 11.37
`hatched
`
`For more
`
`information
`
`about
`
`of handles
`the appearance
`see Chapter 13 Visual Design
`
`hh //////////
`
`fl7J/W//J///J/////fl/flfl/Jfl/7//7
`
`LJ..H
`L..U.
`Disc vs LPSales$
`U.S c4pact
`198
`18552K
`26571K
`45223K
`
`LgJJ
`Lii (cid:0)ps
`LPs
`Total
`
`1983
`
`6345K
`
`37663K
`
`1991
`
`32657K
`17429K
`50066K
`
`Figure
`
`11.37 An active
`
`OLE embedded
`
`object
`
`with handles
`
`is defined by the OLE
`The interpretation of dragging
`the handle
`embedded
`The recommended
`operation is crop
`objects application
`ping where you expose more or less of the OLE embedded
`objects
`or un
`and adjust
`the viewport
`content
`If cropping
`is inappropriate
`the context of the object
`use an operation that better
`supportable
`If no operation is meaning
`or simply support scaling of the object
`ful but handles
`are required to indicate selection while activated
`use the hollow handle
`
`fits
`
`appearance
`
`The Windows Interface
`
`Guidelines
`
`for Software Design
`
`329
`
`351
`
`
`
`Chapter
`
`11 Working
`
`with OLE Embedded and OLE Linked objects
`
`Undo Operations for Active and Open Objects
`
`different
`
`that
`
`is
`
`can
`
`Because
`is different
`objects that
`underlying
`applications
`take control of window during OLE visual editing managing com
`how are the actions
`like Undo or Redo present
`mands
`question
`performed within an edited OLE embedded
`reconciled with
`object
`actions performed on the native data of the container with the Undo
`command The recommended
`undo model
`single undo stack per
`open window
`whether
`be reversed
`is all actions that
`by OLE embedded
`accumulate
`objects or their container
`generated
`on the same undo stale sequence Therefore choosing Undo from
`the containers menus or an active objects menus
`reverses the
`either
`last undoable action performed in that open window regardless of
`inside or outside the OLE embedded
`whether
`it occurred
`If
`object
`and the last action in the window oc
`the container has the focus
`curred within an OLE embedded
`object when the user chooses
`Undo activate the embedded
`reverse the action and leave
`object
`the embedded
`object active
`
`is objects that have
`The same rule applies to open objects
`that
`open window
`into their own window Because
`been opened
`each
`single stack of undoable states actions performed in an
`manages
`to that objects window and consequently
`must
`open object are local
`from there actions performed in the open object even if
`be undone
`do not contribute to the undo
`they create updates
`in the container
`state of the container
`
`registered command of
`Carrying out
`or using
`shortcut equivalent
`reversible action therefore
`is not
`does not add to
`undo stack For example if the user
`containers
`be undone
`from its container
`this action cannot
`an object
`opens
`The resulting window must be closed
`
`selected but
`
`inactive
`
`object
`
`it
`
`directly
`
`to remove it
`
`two windows container Window
`Figure 11.38 shows
`an active 01
`and an open embedded
`embedded
`in
`object
`object
`Window
`the two windows nine actions have been per
`Between
`formed in the order and at the location indicated by the numbers
`the windows
`The resulting undo
`stacks are displayed beneath
`
`which has
`
`330
`
`The Windows
`
`Interface
`
`Guidelines
`
`for Software Design
`
`352
`
`
`
`Working
`
`with OLE Embedded and OLE Linked Objects Chapter
`
`11
`
`OLE embedded
`
`object
`
`Open OLE
`
`embedded
`
`object
`
`Active
`
`WindowA
`
`Window
`
`Figure
`
`11.38 Undo
`
`stacks
`
`for active
`
`and open OLE embedded
`
`objects
`
`The sequence
`sarily imply an
`can be undone
`
`shown in Figure 11.38 does not neces
`of undo states
`level undo It
`is merely
`timeline of actions that
`or more levels depending on what
`the con
`
`at
`
`tamer object cooperation
`
`supports
`
`The active object actions and native data actions within Window
`into the same stack while the actions in Win
`have been serialized
`dow
`have accumulated onto its own separate
`stack
`
`single window not to actions
`The actions discussed
`so far apply to
`as OLE drag and drop For
`span multiple windows such
`that
`single
`action that spans multiple windows the ideal
`design allows the user
`to undo the action from the last window involved This is because in
`
`The Windows Interface
`
`Guidelines
`
`for Software Design
`
`331
`
`353
`
`
`
`The system supplies most of
`boxes described
`the message
`For more
`in this chapter
`tion about how to support
`the OLE documentation
`the Win32 SDK
`
`included
`
`in
`
`informa
`
`these see
`
`Chapter
`
`11 Working
`
`with OLE Eiæbedded and OLE Linked Objects
`
`the user fDcuses on that window when desiring to reverse
`most cases
`an item from Window
`the action So if the user drags and drops
`the action appends to Window Bs undo thread and
`into Window
`undoing it undoes the entire OLE drag and drop operation Unfortu
`undo coordina
`nately the system does not support multiple window
`tion So for multiple window action create independent
`undo
`actions in each window involved in the action
`
`Displaying Messages
`
`This section includes recommendations
`about other messages to
`display for OLE interaction
`using message boxes and status
`line
`messages Use the following messages in addition to those
`earlier
`in this chapter
`
`described
`
`Object Application MesSageS
`
`the following messages to notify the user about
`Display
`where an OLE objects application
`is not accessible
`
`situations
`
`Objects Application Cannot Run Standalone
`Some OLE objects are designed
`to be used only as components
`container and have no value
`within
`opened directly If the
`in being
`user attempts to open or run an OLE objects application that cannot
`display the message box shown
`standalone
`run as
`application
`Figure 11.39
`
`in
`
`Figure
`
`11.39 Objects ppIication
`
`cannot
`
`be run standalone message
`
`332
`
`The Windows
`
`Interface
`
`Guidelines
`
`for Software
`
`Design
`
`354
`
`
`
`Working
`
`with OLE Embedded and OLE Linked Objects
`
`Chapter
`
`11
`
`Objects Application Busy
`An objects application can
`be running but busy for several rea
`sons For example it can be busy printing waiting for user input
`modal message box or the application has stopped
`responding
`the system If the objects application
`is busy display the message
`box shown in Figure 11.40
`
`to
`
`to
`
`flf
`
`This
`
`action
`
`not
`
`ca
`Name
`
`be completed
`
`beca
`
`cc
`
`bi.uy
`
`Choose Stitch To to acUvale oaknMe
`
`nd correct
`
`the
`
`probrant
`
`5sitchj_j
`
`fletry
`
`Cancel
`
`Figure
`
`11.40 Objects
`
`application
`
`is busy message
`
`Objects Application Unavailable
`
`If the user attempts to activate an object and the container
`for example because
`the
`locate the requested
`the network server where
`type is not registered or because
`display the message box shown
`
`objects application
`
`cannot
`
`objects
`
`the application resides is unavailable
`
`in Figure 11.41
`
`Ii
`
`The .$plicahon
`.k pr(cid:0)t1vetLixelis
`
`hØceenan
`
`1111111
`thi
`
`to activate
`
`unavailable
`
`100 can actiate it as or conert
`ol object
`
`type
`
`to another
`
`it
`
`________________________
`
`________________________
`
`Figure
`
`11.41 Objects
`
`application
`
`is unavailable message
`
`Choosing the Activate As button displays the Convert dialog box
`preset with the Activate As option and
`list of current
`types the user
`can use to associate with activating the object Choosing the Convert
`button displays the Convert dialog box with the Convert option set
`and the list of types the user can choose to change
`the type of the
`be able
`Ideally an application that
`the type should
`object
`registers
`to read and write that
`format without any loss of information
`
`If it
`
`The Windows Interface
`
`Guidelines
`
`for Software Design
`
`333
`
`355
`
`
`
`Chapter
`
`11 Working
`
`with OLE Embedded and OLE Linked Objects
`
`cannot
`
`the information
`
`type the application
`of the original
`preserve
`message box warning the user
`handling the type emulation displays
`about what
`and optionally allows the
`information
`it cannot
`preserve
`
`user to convert
`
`the objects
`
`type
`
`If
`
`container supports inside-out activation for an object display
`this message when the user tries to interact with that object not
`when its container
`This avoids
`the display of the message
`is opened
`to the user who only intends to view the content
`
`OLE Linked Object Messages
`
`Display the following messages to notify the user about
`related to interaction with OLE linked objects
`
`situations
`
`Link Source Files Unavailable
`
`When
`
`container
`
`either
`
`because
`
`the user chooses
`
`its OLE linked objects
`requests an update for
`an explicit Update command or as
`the result of another
`action such
`Recalc
`forces an
`operation that
`as
`update if the link source files for some OLE links are unavailable to
`in Figure 11.42
`provide the update display the message box shown
`
`Figure
`
`When
`
`11.42 Link source files
`
`the user chooses
`
`are unavailable message
`the OK button close the dialog box without
`
`updating
`
`the links
`
`if you want
`the source you
`the user changing
`Optionally
`to support
`supply your own message box that also includes
`Properties button
`Links button or both in the message box Choosing the Properties
`for the link see Figure 11.32
`button displays the property sheet
`with Unavailable
`in the Update field The user can
`then use the
`
`334
`
`The Windows Interface
`
`Guidelines
`
`for Software Design
`
`356
`
`
`
`Working
`
`with OLE Embedded and OLE Linked Objects
`
`Chapter
`
`11
`
`the file or choose other com
`Source button to search for
`Change
`related to the link When
`mands
`this Links button
`the user chooses
`display your Links dialog box following
`the same conventions
`the property sheet
`
`as
`
`for
`
`command to an OLE linked object
`Similarly if the user issues
`shown
`with an unavailable source display the warning message
`
`in
`
`Figure 11.43t4O
`
`his action
`
`selected
`
`cannot
`be completed
`hnk source is presently
`
`th
`
`because
`
`unavailable
`
`IIHIiHiJli 1I1IIIIllll1I
`
`Figure
`
`11.43 Selected link source is unavailable message
`
`You can also supply your own message
`Properties or Links button that enables
`Display the OLE linked objects
`
`if you want
`to provide
`the source
`the user to change
`as Unavailable
`update status
`
`Link Source Type Changed
`
`If
`
`link sources type has changed
`but it is not yet reflected for an
`OLE linked object
`command that does not
`and the user chooses
`the new type display the message box shown in Figure 11.44
`support
`
`The Fik is no longer
`and
`cannot
`respond
`ohoore.a
`
`oic nca(cid:0)
`
`.od.tŁc.tpe
`to the ie coisiniand
`command
`
`difFerent
`
`OK
`
`Figure
`
`11.44 Link sources
`
`type has changed message
`
`The Windows Interface
`
`Guidelines
`
`for Software
`
`Design
`
`335
`
`357
`
`
`
`Chapter
`
`11 Working
`
`with OLE Embedded and OLE Linked Objects
`
`Link Updating
`
`While links are updating display the progress indicator message box
`shown
`in Figure 11.45 The Stop button interrupts
`the update
`process
`and prevents
`of additional
`links
`
`any updating
`
`Figure
`
`11.45 Progress indicator while links update message
`
`Status Line Messages
`
`Table
`
`line messages for commands on
`11.4 lists suggested
`container menu commonly the File menu of an
`the primary
`opened object
`
`status
`
`Table 11.4 Primary Container Menu Status
`
`Line Messages
`
`Command
`
`Status
`
`line message
`
`If
`
`the
`
`open
`
`object
`
`is within
`
`with
`
`other
`
`Return
`
`be
`
`an MDI
`application
`open documents the Exit
`To command should
`simply
`Exit There is no guarantee of
`successful Return
`To Container-
`Document after exiting
`
`because
`
`the
`
`container might be one of the other
`documents
`in that MDI
`instance
`
`Update Container-
`Document
`
`the appearance of this Type Name
`Updates
`Container-Document
`
`in
`
`Close
`
`Return to
`
`Container-Document
`
`Closes Object Name
`Document
`
`and returns to Container-
`
`Save Copy As
`
`Saves
`
`copy of Type Name
`
`in
`
`separate
`
`file
`
`Exit
`
`Return to
`
`Container-Document
`
`Exits Object Application and returns to
`Container-Document
`
`11 .5 lists the recommended
`Table
`menu of containers of OLE embedded
`
`status
`
`line messages for