Tidestone Read Me File

# First Impression 6.0 Version Read Me

Thank you for your interest in this version of First Impression. This document provides general information about this version of First Impression.

Please read this document completely before using First Impression.

## Contents

- About the Installation Program
- Installing the Product
- What Does the Installation Program Do?
- New Features in First Impression 6.0
- List of bugs fixed in First Impression 6.0
- List of Installed Files
- Redistributing Applications
- Moving the ActiveX Control
- Using the UnInstaller
- Visual Basic Programmers Please Note
- Visual C++ Programmers Please Note
- Stand-Alone Applications
- PowerBuilder Programmers Please Note
- Contact Us

### About the Installation Program

First Impression was developed for Windows 95, 98 and NT 4.0 machines. The installation program will only install on Windows 95, Windows 98 and Windows NT 4.0 machines.

Previous major versions of First Impression (eg. 2.0, 5.0) can reside on the same machine as this release of First Impression.

Back to Table of Contents

### Installing the Product

The installation program creates new directories and copies product files to your hard disk.

To install a Tidestone ActiveX control on your hard disk:

1. Locate and double-click SETUP.EXE.
2. Follow the instructions on your screen.

Back to Table of Contents

### What Does The Installation Program Do?

The installation program performs the following tasks during the installation process:

- Allows you to identify the components you want to install, select a directory to hold the program files, and a folder in which to place the program on your desktop.
- Copies the files to your hard disk.
- Updates system files in your Windows system directory or the location of your choice.
- Registers the ActiveX control with the Windows Registration Database. This makes the control visible and available to your development environment.

Back to Table of Contents

### New Features in First Impression 6.0

- Multiple Y Axes: First Impression has a new chart type where multiple Y axes can be specified. For example, one chart could contain a day's activity for two or more different stocks.
- Date/Time Axes: First Impression will now support date/time axes instead of just date axes on Hi-lo charts.
- Apartment Threading Model support: Developers who use First Impression in Internet-related applications can benefit from First Impression's new ability to handle multiple data streams.
- Tested in Visual Studio 6.0: First Impression has been tested in the Visual Basic 6.0 and Visual C++ 6.0 portions of Visual Studio 6.0.

Back to Table of Contents

### List of bugs fixed in First Impression 6.0

- Fixed printing problem from VB.
- Removed help button from Edit Chart DataGrid.

Back to Table of Contents

### List of Installed Files

The following files are installed in the First Impression program directory (Tidestone\FirstImp6) by default:

Filename | Description
--- | ---
TTFI6.OCX | First Impression 32-bit ActiveX control
TTFIWZ6.DLL | First Impression Wizard
TTFI6.CNT | Developer's On-Line Documentation Contents File
TTFI6.HLP | Developer's On-Line Documentation
TTFI6.H | Visual C++ Contant File
TTFI6.DEP | Visual Basic Dependency File
DELSL1.ISU | Deinstaller Log
README.HTM | This File

In addition, the following subdirectories are created in the program directory to hold sample code or redistributable files.

Directory | Description
--- | ---
VB6 | Microsoft Visual Basic 6.0 examples.
VB5 | Microsoft Visual Basic 5.0 examples.
PB6 | Powerbuilder 6.5 examples.
REDIST32 | Holds redistributable system .DLL files that must be present for First Impression to function properly in 32-bit environments.

Back to Table of Contents

### Redistributing Applications

The table below shows all the files necessary for First Impression to operate properly. If you have purchased First Impression and are deploying an application, you must ensure that the first three groups of files listed below exist on your client's machine and are the proper version. The correct versions of these files are provided on the product CD. If your client's machine has older versions of these files, you should update them.

| 32-Bit Files
--- | ---
1 | TTFI6.OCX
2 | AXDIST.EXE* 40COMUPD.EXE ** OLEAUT32.DLL OLEPRO32.DLL STDOLE2.TLB
3 | OLE32.DLL
4 | KERNEL32.DLL USER32.DLL GDI32.DLL VERSION.DLL ADVAPI32.DLL

This first group of files are the First Impression redistributable files. These files may be in the Windows system directory, or on the computer's path. The .OCX file must be registered on each user's machine. The First Impression Setup program registers the OCX on your development machine. To register the OCX on the user machines, use the REGSVR32.EXE utilities. These utilities are available from Microsoft. To run these utilities type the following at the command prompt on each user's machine:

`regsvr32 filename`

The second group of files are Microsoft redistributable files necessary for this ActiveX control to operate. Your programming environment should have installed and registered these files. If they were not installed, or they are older versions, the First Impression installer updated and registered them. These files were then copied to the REDIST32 directory in the installation directory, depending on which installation options were chosen. Copy these files from your development machine to your users machines. You may run the installer again and install only these files. These files must be present on your user's machines.

Our ActiveX controls require OLE2 support to be installed on a machine. In order to run an application containing one of our controls you must ensure OLE2 has been installed on the user's machine. The third group of files in the table list the OLE2 files accessed by First Impression. Normally, copying these files to the user machine is all that is required. However, some older Windows machines do not have the new OLE2 files installed. You must then install full OLE2 support and ensure that these files are properly registered on the machine. OLE2 files can be downloaded from Microsoft. Microsoft's installer should handle registration for you, but you can also register the files manually using the REGSVR32.EXE. The result code from REGSVR32 will indicate whether any of the files need to be registered.

The fourth group of files should be present on any system running Windows. You should not remove or update these files. They are included only to form a complete list of filed needed to use this ActiveX control.

Special Note:Some developers develop an application on one machine and then move it to another to build an executable. If you are building an executable containing one of our components, you must be sure that the component is properly installed on the make machine. The license key that is copied from the registry when an executable is built is only available when the component has been properly installed on a machine.

* AXDist.exe is a Microsoft program that installs the URLMon.dll and dependencies in the Windows System directory. It makes the required registry settings on Windows NT 4.0, Windows 98 and Windows 95 machines. These files are needed in order to use the URL property on machines running IE 3 or earlier. You do not need to redistribute the AXDist.exe if you are not planning to use the URL property or if you are deploying to a machine that has IE 4 or later on it.

Please note that Microsoft Corporation has found a problem with the AXDist.exe program in IE 4. For more information, see article Q185375 on the Microsoft Support web pages.

Tidestone's installer deals with this potential problem by checking to see if IE 4 is on the machine. This is accomplished by searching for Urlmon.dll in the Window's System directory. If Urlmon.dll is not located in the Windows System directory, then IE 3 or earlier (or no version of IE) is on the machine, and the Tidestone installer asks if you want to run AXDist.exe. You only need to run AXDist.exe if you are planning to us the URL property. If Urlmon.dll is located in the Windows System directory, then IE 4 or later is on the machine, and the Tidestone installer does not prompt if you want to run AXDist.exe.

Please be aware of these issues if you are planning to redistribute your software with these dlls to end-users who may be using different versions of IE.

** 40COMUPD.EXE is an executable created by Microsoft Corporation that installs COMCTL32.DLL and its supporting files. If you selected the "32 bit Redistributables" option during the installation process, please refer to Redist32.txt for more information. More information can also be found on Microsoft's web site.

Back to Table of Contents

### Moving the ActiveX Control

During the installation process, the ActiveX control and the directory in which it is installed are registered in the Windows Registration Database in Windows 95 and Windows NT. This makes the ActiveX control visible and available to your development environment. However, if you move the ActiveX control to a different directory, or rename the directory that contains it, the information in the registry is no longer valid. This may cause the ActiveX control to be unable to locate its help file. If you find it necessary to move the ActiveX control or rename its directory, use the REGSVR32.EXE utilities provided with most Microsoft development products to reregister the ActiveX control in its new location.

The ActiveX control, DLL, and HLP files must always be in the system directory or on your path.

Back to Table of Contents

### Using the UnInstaller

First Impression files can be removed from your system with the Add\Remove Programs item or by double-clicking the UnInstaller icon in the Tidestone folder in the Start menu. Using the UnInstaller will remove all files and Registration Database entries made during the installation. If you are using Visual Basic, it will create a support cache file (TTFI6.OCA) that must be removed manually.

The UnInstaller creates a log of operations during the installation which it "undoes" to "uninstall" the product. You should run the UnInstaller before running the installation program additional times. If you run the installation program a second time without using the UnInstaller first, only the options selected in the second install will be written to the UnInstall log and later be uninstalled. For the UnInstaller to work properly, you should reinstall your original options in addition to the options you wish to install.

The Windows Start menu is not always updated immediately by the operating system. This means that sometimes uninstalled shortcuts do not always disappear right away. Because of this limitation, an uninstalled shortcut can temporarily continue to appear in the Start menu even though it really has been uninstalled. If you wait for a while, run some other programs, or restart the system, the shortcut should eventually disappear from the Start menu.

To verify that the program has been uninstalled:

1. From the Start menu, go to Settings/Taskbar/Start Menu Programs/Advanced.
2. When the Explorer displays, click on the existing program folder.
3. Check to see if the shortcut exists in the program folder. If it does not, then the shortcut has been uninstalled correctly, but the Start menu has not been updated correctly.

Back to Table of Contents

### Visual Basic Programmers Please Note

Projects created using previous versions of First Impression

In order to use any projects created with a previous version of the First Impression ActiveX control, you need to perform the following steps after successfully installing First Impression 6.0:

1. Replace all previous versions of First Impression on a Visual Basic form with First Impression 6. In the Component Library, First Impression 6 is listed as Tidestone First Impression 6.0 Library.
2. Save the project.

For more information about upgrading from previous versions of First Impression, check Tidestone's website at http://www.tidestone.com

Multiple versions of First Impression present on a Visual Basic form

If you want to keep multiple versions of First Impression installed as components in Visual Basic, you will need to ensure that code that refers to objects specifies which version of First Impression you want to use. This is because of the names of the objects are the same in both versions so Visual Basic has no way of knowing which version of First Impression you want to use. The following example, which uses the Plot object, specifies that the 6.0 version of the object should be used:

    Dim plot As vtchartlib6.plot

Another way to fix this problem is to use either the 5.0 or the 6.0 version of the software, but not both.

Back to Table of Contents

### Visual C++ Programmers Please Note

In order to use any projects created with a previous version of the First Impression ActiveX control, you need to perform the following steps after successfully installing First Impression:

1. Delete any wrapper classes for the OCX and any reference to it from your project directory.
2. Delete your DEBUG folder and make a change to the control in the resource and save it.
3. Comment out any #include statements that reference the wrapper header files.
4. Go to the Build menu and choose Update All Dependencies.
5. Go to the Component Gallery.
6. Go to the OLE Controls Panel.
7. Select Tidestone First Impression.
8. Click Insert. This will update your Class.

Licensed Control Information

When you place a control on a form at design time, the licensing information is cached in the resource file of the container application.

Dynamically creating a licensed control requires license key information.

1. Create a dummy application such as a FormView or a Dialog based application.
2. Draw the control on the form.
3. Obtain the control's class factory (CoGetClassObject).
4. Call IClassFactory2::RequestLicKey.
5. Paste the resulting key value into the real container's code.

This would be placed as the last parameter of the Create statement.

The first parameter to the call of CLSIDFromProgID needs to be changed to the ID name of the Control you are using. You can obtain this ID by running REGEDIT.EXE and searching for the class name of the control you are currently using. Use that as the string for the OLESTR.

    //The following example shows how to do this for the First Impression
    //Control. Place this code in a command button on the same form as the control.

        CLSID  		clsid;
        CString 		m_strLicense;
        IClassFactory2* pClassFactory;

        if (SUCCEEDED(CLSIDFromProgID(OLESTR("VtChartLib6.VtChart.6"),
    &clsid)) && SUCCEEDED(CoGetClassObject(clsid, CLSCTX_INPROC_SERVER,
    NULL,IID_IClassFactory2, reinterpret_cast(&pClassFactory))))
        {
            BSTR bstrLic;
            bstrLic = 0;
            if (SUCCEEDED(pClassFactory->RequestLicKey(0, &bstrLic)))
            {
                m_strLicense = bstrLic;
                SysFreeString(bstrLic);
            }
            else
            {
                m_strLicense = _T("");
            }
            pClassFactory->Release();
        }
        else
        {
            m_strLicense = _T("");
        }
        AfxMessageBox(m_strLicense);

Pass the string that the message box contains as the last parameter to the Create function in your dynamically created control's application.

Example

    BSTR LicenseKey = SysAllocString(OLESTR(m_strLicense));
    //Use the string value of m_strLicense that was shown in the
    //message box

    if (TTFI.Create("First Impression", dwStyle, rect, this, 1000,
    NULL, FALSE, LicenseKey) == 0)
            return 0;
    SysFreeString(LicenseKey);

Back to Table of Contents

### Stand-Alone Applications

In order for drag-and-drop functionality to work in stand-alone applications, you will need to add OleInitialize and OleUninitialize to your stand-alone application.

The OleInitialize and OleUninitialize functions need to be added to any C++ application that uses First Impression.

Specifically, you should call ::OleInitialize(NULL) in the start up code. ::OleUninitialize() should be called in the exit code of the application.

Back to Table of Contents

### PowerBuilder Programmers Please Note

A keyword name collision currently exists in PowerBuilder with events that have a cancel parameter. PowerBuilder generates an informational error message during compile for applications with OLE controls using such events. The PowerBuilder error message is as follows:

(0006) Information C0148: The identifier 'cancel' conflicts with an existing property with this name. The new definition of 'cancel' will take precedence and the prior value will be ignored until this version of 'cancel' goes out of scope.

Action: This is a just a warning; it will not affect the execution of your code. PowerBuilder PTrack Number 343867

Back to Table of Contents

## Contact Us

## Company
Headquarters

### Tidestone Technologies
12980 Metcalf, Suite 300
Overland Park, KS 66213
(913) 851-2200
FAX (913) 851-1390

## European
Headquarters

### Tidestone Technologies Europe
11 Eldon Way
Paddock Wood
Kent, UK TN12 6BE
+44 1892 834343
FAX +44 1892 835843

#### United States Sales

PHONE: (913) 851-2200
FAX: (913) 851-1390
EMAIL: sales@tidestone.com

#### United States Developer Services

PHONE: (913) 851-2200
FAX: (913) 851-1390
WEB: http://www.tidestone.com

#### European Sales

PHONE: +44 1892 834343
FAX: +44 1892 835843
EMAIL: sales@tidestone.co.uk

#### European Developer Services

PHONE: +44 1892 834343
FAX: +44 1892 835843
EMAIL: support@tidestone.co.uk

Back to Table of Contents