Home   Index   About
Ultimate Pack


Custom Search
LINES

SAMPLE: Lines: OLE Automation Server that implements collections

LINES is an OLE Automation server application that implements collections. LINES allows a collection on lines to be drawn on a pane using OLE Automation. It exposes the following objects.

Application object:

Properties
Application
FullName
Name
Pane Returns the pane in the drawing window.
Parent
Visible
Methods
CreateLine Returns a newly created Line object with no start or end point.
CreatePoint Returns a newly created Point object initialized to (0,0).

Pane object: Properties
Lines Returns a collection of all of the Line objects in the drawing.
Points Returns a collection of all of the Point objects in the drawing.
MaxX Returns the maximum visible X coordinate value in twips.
MaxY Returns the maximum visible Y coordinate value in twips.
Methods
Clear Removes all of the Lines and Points from the drawing and refreshes the client area. The result is a blank slate, as if the application had just been launched.
Refresh Clears the drawing area and redraws each of the lines in the Lines collection.

Line object:

Properties
Color An RGB color.
EndPoint A Point object inidcating the end point for the line.
StartPoint A Point object indicating the start point for the line.
Thickness A thickness, represented in twips.

Point object:

Properties
x
y

Lines collection: Standard collection properties and methods. Objects that are added must be of type Line. Objects returned are of type Line.
Add and Remove cause redrawing of the pane.
Adding a line causes two points to be added to the Points collection.
Removing a line may cause one or more points to be removed from the points collection.

Points collection:

Standard collection properties and methods. Objects returned are of type Point.
This collection does not allow addition and removal of members.
The Points collection does not have duplicates. If there are two lines in the drawing
which share an end point (x, y), (x, y) only appears in the collection once.

The sample the following features:

  • Supports dual interfaces which allows access of automation properties and methods through vtable binding and through IDispatch.
    · Provides Rich Error information for vtable-binding controllers. This is does by implementing ISupportErrorInfo and using IErrorInfo.
    · Implements 2 collections. · Implements active object registration using RegisterActiveObject and RevokeActiveObject. · Implements correct shut-down behavior. · Includes a .reg file which contains Lines.Application as progID. · When created for automation, is invisible initially.

To compile: -----------

Requires OLE 2.02 or later. Use the external makefile called makefile to compile. In Win16, run the WXSRVER.EXE from \OLE2\BIN before running the makefile. The makefile invokes mktyplib.exe that reads lines.odl and creates the type library, lines.tlb. It then compliles the source files.

To run: -------

Change lines.reg to provide the full path of lines.exe and lines.tlb. Register lines.reg in the registration database by double-clicking it. The VB directory contains VB 3.0 files to control this sample. Load vb.mak into VB 3.0 and run. This will launch and control LINES. VB 3.0 uses late binding (not vtable-binding) to control LINES. A vtable-binding controller for LINES can be built along the lines of the HELLCTRL sample.

Files: ------

LINES.ODL Object description language that describes the objects that LINES exposes. TLB.H Header file generated by mktyplib.exe MAKEFILE Makefile for project.

Other files implement the LINES automation server. ===========================================================================


Last news from Greatis Software

Nostalgia .Net     Nostalgia .Net     .Net is powerful, but not all-powerful, so sometimes we need to use Win32 API for our .Net applications. It's simple enough with Platform Invoke if you have Win32 skill, but we do not always have time to dig the ancient documentation, declare the special types that are compatible with Win32, find the values of the Win32's constants and so on. Nostalgia .Net offers several simple-to-use classes, and components that will allow you to forget about the headache of Win32 and just use the power of Win32 in your application the same way as you use the native. Net classes.  More »

Recommended software for developers

Ultimate Pack for Delphi and C++ Builder     Ultimate Pack     Component pack for Delphi and C++ Builder that contains runtime form designer, runtime object inspector, print suite and much more for the very special price.  More »

Form Designer .Net     Form Designer .Net     Unique runtime form design solution that allows to edit any form in .Net WinForms application at runtime with full source codes for only 300 euro!  More »

Print Suite .Net     Print Suite .Net     Print Suite .Net is a set of components for easy printing texts, images and grids from your WinForms applications. Full C# source codes are available  More »

Gradient Controls .Net     Gradient Controls .Net     Gradient Controls .Net offers controls with gradient background feature. Labels, panels and so on... Full C# source codes are available  More »

iGrid     Greatis iGrid     iGrid plots drawing grid right over your desktop, so you can use it everywhere, with any drawing application without any special plugins for different graphic editors.  More »


All the contacts and projects

Dmitry Vasiliev (just.dmitry)

Related Links

Software for Visual Studio .NET developers
Software for Delphi and C++ Builder developers
Software for Visual Basic 6 developers
Delphi Tips&Tricks
MegaDetailed.NET

More Online Helps

Win32 Programmer's Reference
Win32 Multimedia Programmer's Reference
OLE Programmer's Reference
Microsoft Windows Pen API Programmer's Reference
Microsoft Windows Sockets 2 Reference
Microsoft Windows Telephony API (TAPI) Programmer's Reference
Unix Manual Pages

Free Tech Secrets ;) Copyright © 2008-2012 Free Tech Secrets ;) greatis just4fun network just4fun