Your e-Business Quality Partner eValid™ -- Automated Web Quality Solution
Browser-Based, Client-Side, Functional Testing & Validation,
Load & Performance Tuning, Page Timing, Website Analysis,
and Rich Internet Application Monitoring.

eValid -- Programmatic Interface (EPI) Header Definition
eValid Home

EPI CPP Header File (epi.h)
// epi.h : main header file for the epi DLL
//
// (c) Copyright 2012 by Software Research, Inc.
//

#pragma once

#ifndef __AFXWIN_H__
    #error include 'stdafx.h' before including this file for PCH
#endif

#include "resource.h"    	// main symbols


// {98D93A58-2889-43a5-A182-47DEE781D41E}
static const GUID IID_IEvalid =
{ 0x98d93a58, 0x2889, 0x43a5, { 0xa1, 0x82, 0x47, 0xde, 0xe7, 0x81, 0xd4, 0x1e } };

// {AA66F14C-FFC2-4940-B27A-CAB6D1ECA258}
static const GUID CLSID_Evalid =
{ 0xaa66f14c, 0xffc2, 0x4940, { 0xb2, 0x7a, 0xca, 0xb6, 0xd1, 0xec, 0xa2, 0x58 } };

interface IEvalid : public IUnknown
{
    virtual HRESULT __stdcall get_ElementAttribute( long wid, long idx, 
    	BSTR name, BSTR frame_path, BSTR * value ) = 0;
    virtual HRESULT __stdcall get_ElementAttribute( long wid, long idx, 
    	BSTR name, BSTR frame_path, long * value ) = 0;
    virtual HRESULT __stdcall get_ElementAttribute( long wid, long idx, 
    	BSTR name, BSTR frame_path, VARIANT_BOOL * value ) = 0;

    virtual HRESULT __stdcall put_ElementAttribute( long wid, long idx, 
    	BSTR name, BSTR value, BSTR frame_path ) = 0;
    virtual HRESULT __stdcall put_ElementAttribute( long wid, long idx, 
    	BSTR name, long value, BSTR frame_path ) = 0;
    virtual HRESULT __stdcall put_ElementAttribute( long wid, long idx, 
    	BSTR name, VARIANT_BOOL value, BSTR frame_path ) = 0;

    virtual HRESULT __stdcall get_NumElements( long wid, 
    	BSTR frame_path, long * value ) = 0;
    virtual HRESULT __stdcall get_LastPlaybackStatus( BSTR * status ) = 0;
    virtual HRESULT __stdcall get_LastPlaybackLog( struct 
    	IEvalidLogCollection ** p ) = 0;
    virtual HRESULT __stdcall get_LastPlaybackLog( BSTR * log ) = 0;

    // Navigation
    virtual HRESULT __stdcall FollowLink( long wid, long idx, 
    	BSTR visible_text, BSTR url, BSTR frame_path ) = 0;
    virtual HRESULT __stdcall GoBackTo( long wid, long step, 
    	BSTR url, BSTR frame_path ) = 0;
    virtual HRESULT __stdcall GoForwardTo( long wid, long step, 
    	BSTR url, BSTR frame_path ) = 0;
    virtual HRESULT __stdcall GotoLink( long wid, BSTR url, 
    	BSTR frame_path ) = 0;
    virtual HRESULT __stdcall InitLink( BSTR url ) = 0;
    virtual HRESULT __stdcall Redirect( long wid, BSTR url, 
    	BSTR frame_path ) = 0;
    virtual HRESULT __stdcall Reload( long wid ) = 0;

    // Timing & StopWatch
    virtual HRESULT __stdcall Delay( long msecs ) = 0;
    virtual HRESULT __stdcall ElapsedTime( BSTR message ) = 0;
    virtual HRESULT __stdcall ElapsedTime( void ) = 0;
    virtual HRESULT __stdcall Wait( long msecs ) = 0;
    virtual HRESULT __stdcall PauseTimer( void ) = 0;
    virtual HRESULT __stdcall ResumeTimer( void ) = 0;
    virtual HRESULT __stdcall ResetTimer( void ) = 0;

    // Cache Management
    virtual HRESULT __stdcall DeleteCache( void ) = 0;
    virtual HRESULT __stdcall DeleteCookies( void ) = 0;

    // Wait Time/Date Manipulation
    virtual HRESULT __stdcall IdleTimer( BSTR state ) = 0;
    virtual HRESULT __stdcall WaitDate( long month, long day ) = 0;
    virtual HRESULT __stdcall WaitDateTime( long month, long day, 
    	long hour, long minute ) = 0;
    virtual HRESULT __stdcall WaitHH( long value ) = 0;
    virtual HRESULT __stdcall WaitMM( long value ) = 0;
    virtual HRESULT __stdcall WaitModHH( long value ) = 0;
    virtual HRESULT __stdcall WaitModMM( long value ) = 0;
    virtual HRESULT __stdcall WaitTime( long hour, long minute ) = 0;
    virtual HRESULT __stdcall WaitTimeMod( long hour, long minute ) = 0;
    virtual HRESULT __stdcall WaitRandomUniform( long lo, long hi ) = 0;

    // Synchronization Support
    virtual HRESULT __stdcall clSyncRect( long wid, long x, long y, 
    	long w, long h, long checksum ) = 0;
    virtual HRESULT __stdcall xySyncRect( long wid, long x, long y, 
    	long w, long h, long checksum ) = 0;
    virtual HRESULT __stdcall SyncOnScreenRect( long x, long y, 
    	long w, long h, long checksum, 
    	long fx, long fy, long fw, long fh ) = 0;
    virtual HRESULT __stdcall SyncOnText( long wid, BSTR text, 
    	BSTR frame_path ) = 0;
    virtual HRESULT __stdcall SyncOnURL( BSTR url ) = 0;
    virtual HRESULT __stdcall Lock( long n = 60000 ) = 0;
    virtual HRESULT __stdcall Unlock( void ) = 0;

    // Playback Oriented
    virtual HRESULT __stdcall Adaptive( BSTR state ) = 0;
    virtual HRESULT __stdcall Breakpoint( void ) = 0;
    virtual HRESULT __stdcall Breakpoint( BSTR name ) = 0;
    virtual HRESULT __stdcall PlayValue( BSTR key, long value ) = 0;
    virtual HRESULT __stdcall MessageBox( BSTR message ) = 0;
    virtual HRESULT __stdcall MessageWindow( BSTR message ) = 0;
    virtual HRESULT __stdcall MessageWindow( BSTR message, long time ) = 0;
    virtual HRESULT __stdcall MessageWindow( BSTR message, long time, 
    	long x, long y, long w, long h ) = 0;
    virtual HRESULT __stdcall SecureDataID( BSTR name ) = 0;
    virtual HRESULT __stdcall AuthenticateUser( long wid, BSTR name, 
    	BSTR pass ) = 0;
    virtual HRESULT __stdcall EnterSecureZone( void ) = 0;
    virtual HRESULT __stdcall ExitSecureZone( void ) = 0;
    virtual HRESULT __stdcall SetUserAgent( BSTR agent ) = 0;
    virtual HRESULT __stdcall WaitRedirect( long wid, BSTR url, 
    	BSTR frame_path ) = 0;

    // Element-Oriented Events
    virtual HRESULT __stdcall ElementClick( long wid, long idx, BSTR id, 
    	BSTR text, BSTR frame_path, VARIANT_BOOL nav = VARIANT_FALSE ) = 0;
    virtual HRESULT __stdcall ElementClick( long wid, long idx, long x, 
    	long y, BSTR id, BSTR text, BSTR frame_path, 
    	VARIANT_BOOL nav = VARIANT_FALSE ) = 0;
    virtual HRESULT __stdcall ElementDblClick( long wid, long idx, 
    	BSTR id, BSTR text, BSTR frame_path, VARIANT_BOOL 
    	nav = VARIANT_FALSE ) = 0;
    virtual HRESULT __stdcall ElementDblClick( long wid, long idx, 
    	long x, long y, BSTR id, BSTR text, BSTR frame_path, 
	VARIANT_BOOL nav = VARIANT_FALSE ) = 0;
    virtual HRESULT __stdcall ElementMouseDown( long wid, long idx, 
    	BSTR id, BSTR text, BSTR frame_path, 
	VARIANT_BOOL nav = VARIANT_FALSE ) = 0;
    virtual HRESULT __stdcall ElementMouseDown( long wid, long idx,
    	long x, long y, BSTR id, BSTR text, BSTR frame_path, 
	VARIANT_BOOL nav = VARIANT_FALSE ) = 0;
    virtual HRESULT __stdcall ElementMouseUp( long wid, long idx,
    	BSTR id, BSTR text, BSTR frame_path, VARIANT_BOOL nav = VARIANT_FALSE ) = 0;
    virtual HRESULT __stdcall ElementMouseUp( long wid, long idx,
    	long x, long y, BSTR id, BSTR text, BSTR frame_path, 
	VARIANT_BOOL nav = VARIANT_FALSE ) = 0;
    virtual HRESULT __stdcall ElementMouseOut( long wid, long idx, 
    	long x, long y, BSTR id, BSTR frame_path,
	VARIANT_BOOL nav = VARIANT_FALSE ) = 0;
    virtual HRESULT __stdcall ElementMouseOver( long wid, long idx,
    	long x, long y, BSTR id, BSTR frame_path, 
	VARIANT_BOOL nav = VARIANT_FALSE ) = 0;
    virtual HRESULT __stdcall ButtonClick( long wid, long idx,
    	BSTR id, BSTR name, BSTR label, BSTR frame_path, 
	VARIANT_BOOL nav = VARIANT_FALSE ) = 0;
    virtual HRESULT __stdcall GotoLinkSubmit( long wid, BSTR urldata, 
    	BSTR frame_path ) = 0;
    virtual HRESULT __stdcall InputImageClick( long wid, long idx, 
    	BSTR url, BSTR alt, BSTR frame_path, VARIANT_BOOL nav = VARIANT_FALSE ) = 0;
    virtual HRESULT __stdcall InputValue( long wid, long idx,
    	BSTR type, BSTR id, BSTR name, BSTR extra1, BSTR extra2, 
	BSTR frame_path, VARIANT_BOOL nav = VARIANT_FALSE ) = 0;
    virtual HRESULT __stdcall SubmitClick( long wid, long idx,
    	BSTR id, BSTR name, BSTR label, BSTR frame_path, 
	VARIANT_BOOL no_nav = VARIANT_TRUE ) = 0;
    virtual HRESULT __stdcall ResetClick( long wid, long idx,
    	BSTR id, BSTR name, BSTR label, BSTR frame_path, 
	VARIANT_BOOL nav = VARIANT_FALSE ) = 0;

    // LinkCheck Wizard
    virtual HRESULT __stdcall DynamicLinkCheck( long wid ) = 0;
    virtual HRESULT __stdcall DynamicLinkCheckX( long wid ) = 0;

    // Validation
    virtual HRESULT __stdcall ValidateClipboardText( BSTR text ) = 0;
    virtual HRESULT __stdcall ValidateDocumentBodyText( long wid, 
    	long offset, BSTR text, BSTR frame_path ) = 0;
    virtual HRESULT __stdcall ValidateDocumentChecksum( long wid, 
    	long checksum, BSTR frame_path ) = 0;
    virtual HRESULT __stdcall ValidateDocumentElements( long wid, 
    	long num, BSTR frame_path ) = 0;
    virtual HRESULT __stdcall ValidateDocumentLastModified( long wid, 
    	BSTR date, BSTR frame_path ) = 0;
    virtual HRESULT __stdcall ValidateDocumentSize( long wid, long size, 
    	BSTR frame_path ) = 0;
    virtual HRESULT __stdcall ValidateDocumentTitle( long wid, BSTR title, 
    	BSTR frame_path ) = 0;
    virtual HRESULT __stdcall ValidateDocumentURL( long wid, BSTR url, 
    	BSTR frame_path ) = 0;
    virtual HRESULT __stdcall ValidateSelectedObjProperty( long wid, long idx,
    	BSTR name, BSTR value, BSTR frame_path ) = 0;
    virtual HRESULT __stdcall ValidateSelectedObjProperty( long wid, long idx,
    	BSTR id_value, BSTR name, BSTR value, BSTR frame_path ) = 0;
    virtual HRESULT __stdcall ValidateSelectedObjProperty( long wid, long idx,
    	BSTR id_name, BSTR id_value, BSTR name, BSTR value, BSTR frame_path ) = 0;
    virtual HRESULT __stdcall ValidateSavedScreenRect( long wid, 
    	BSTR uniqueID, long x, long y, long w, long h ) = 0;
    virtual HRESULT __stdcall ValidateSavedSelectedImage( long wid, 
    	BSTR uniqueID, long idx, BSTR frame_path ) = 0;
    virtual HRESULT __stdcall ValidateSavedSelectedText( long wid, 
    	BSTR uniqueID, long idx, long offset, long length, 
	BSTR frame_path ) = 0;
    virtual HRESULT __stdcall ValidateSavedWindow( long wid, 
    	BSTR uniqueID ) = 0;
    virtual HRESULT __stdcall ValidateSavedWindowFace( long wid, 
    	BSTR uniqueID ) = 0;
    virtual HRESULT __stdcall ValidateSelectedApplet( long wid, long idx, 
    	BSTR name, BSTR jclass, long w, long h, BSTR frame_path ) = 0;
    virtual HRESULT __stdcall ValidateSelectedCell( long wid, long idx, 
    	BSTR text, BSTR frame_path ) = 0;
    virtual HRESULT __stdcall ValidateSelectedID( long wid, 
    	BSTR id, BSTR frame_path ) = 0;
    virtual HRESULT __stdcall ValidateSelectedImage( long wid, long idx, 
    	BSTR url, long size, long w, long h, BSTR date, BSTR frame_path ) = 0;
    virtual HRESULT __stdcall ValidateSelectedText( long wid, long idx, 
    	long offset, BSTR selected_text, BSTR frame_path ) = 0;
    virtual HRESULT __stdcall ValidateSelectedValueRange( long wid, long idx, 
    	long offset, long low_value, long hi_value, BSTR frame_path ) = 0;
    virtual HRESULT __stdcall ValidateSelectedValuePercent( long wid, long idx, 
    	long offset, BSTR text, long range, BSTR frame_path ) = 0;

    // String Matching
    virtual HRESULT __stdcall MatchString(long wid, BSTR text, long key, 
    	BSTR frame_path ) = 0;
    virtual HRESULT __stdcall MatchNotString(long wid, BSTR text, long key, 
    	BSTR frame_path ) = 0;

    // DOM-Based Synchronization Support
    virtual HRESULT __stdcall SyncNotOnElementProperty( long wid, 
    	BSTR name, BSTR value, BSTR frame_path ) = 0;
    virtual HRESULT __stdcall SyncNotOnSelectedObjProperty( long wid, 
    	long idx, BSTR name, BSTR value, BSTR frame_path ) = 0;
    virtual HRESULT __stdcall SyncNotOnSelectedObjProperty( long wid, long idx,
    	BSTR id_value, BSTR name, BSTR value, BSTR frame_path ) = 0;
    virtual HRESULT __stdcall SyncNotOnSelectedObjProperty( long wid, long idx, 
    	BSTR id_name, BSTR id_value, BSTR name, BSTR value, BSTR frame_path ) = 0; 
	virtual HRESULT __stdcall SyncOnElementProperty( long wid, BSTR name, 
    	BSTR value, BSTR frame_path ) = 0;
    virtual HRESULT __stdcall SyncOnSelectedObjProperty( long wid, long idx, 
    	BSTR name, BSTR value, BSTR frame_path ) = 0;
    virtual HRESULT __stdcall SyncOnSelectedObjProperty( long wid, long idx,
    	BSTR id_value, BSTR name, BSTR value, BSTR frame_path ) = 0;
    virtual HRESULT __stdcall SyncOnSelectedObjProperty( long wid, long idx,
    	BSTR id_name, BSTR id_value, BSTR name, BSTR value, BSTR frame_path ) = 0;

    // Extracting DOM, Page, and Screen Content
    virtual HRESULT __stdcall SaveSelectedObjProperties( long wid, 
    	long offset, long count, BSTR filename, BSTR frame_path ) = 0;
    virtual HRESULT __stdcall SaveSelectedObjProperties( long wid, 
    	long offset, long count, BSTR filename, BSTR frame_path, BSTR all ) = 0;
    virtual HRESULT __stdcall SaveHTML( long wid, BSTR filename, 
    	BSTR frame_path ) = 0;
    virtual HRESULT __stdcall SaveFullHTML( long wid, BSTR filename, 
    	BSTR frame_path ) = 0;
    virtual HRESULT __stdcall SaveMessage( BSTR filename, BSTR message ) = 0;
    virtual HRESULT __stdcall SaveMessage( BSTR filename, BSTR message, 
    	BSTR append ) = 0;
    virtual HRESULT __stdcall SaveSelectedText( long wid, BSTR filename, 
    	long idx, 
    	long pos, long length, BSTR frame_path ) = 0;
    virtual HRESULT __stdcall SaveSelectedText( long wid, BSTR filename, 
    	long idx, long pos, long length, BSTR frame_path, BSTR append ) = 0;
    virtual HRESULT __stdcall SaveSelectedImage( long wid, BSTR filename, 
    	long idx, BSTR frame_path ) = 0;
    virtual HRESULT __stdcall CompareImages( BSTR base, BSTR response ) = 0;
    virtual HRESULT __stdcall SaveVisibleText( long wid, BSTR filename, 
    	BSTR frame_path ) = 0;
    virtual HRESULT __stdcall SaveWindow( long wid, BSTR uniqueID ) = 0;
    virtual HRESULT __stdcall SaveWindowFace( long wid, BSTR uniqueID ) = 0;

    // Index Motion Commands
    virtual HRESULT __stdcall IndexElementClick( long wid, 
    	BSTR frame_path, VARIANT_BOOL nav = VARIANT_FALSE ) = 0;
    virtual HRESULT __stdcall IndexFindElement( long wid, 
    	BSTR dir, BSTR name, BSTR frame_path, long * index ) = 0;
    virtual HRESULT __stdcall IndexFindElement( long wid, 
    	BSTR dir, BSTR name, BSTR value, BSTR frame_path, long * index ) = 0;
    virtual HRESULT __stdcall IndexFollowLink( long wid, 
    	BSTR frame_path, VARIANT_BOOL no_nav = VARIANT_FALSE ) = 0;
    virtual HRESULT __stdcall IndexMove( long number, long * index = NULL ) = 0;
    virtual HRESULT __stdcall IndexSet( long idx ) = 0;
    virtual HRESULT __stdcall IndexSubmitClick( long wid, 
    	BSTR frame_path ) = 0;
    virtual HRESULT __stdcall IndexInputValue( long wid, BSTR type, 
    	BSTR extra1, BSTR extra2, BSTR frame_path, 
	VARIANT_BOOL nav = VARIANT_FALSE ) = 0; 
    // Absolute Position Commands (Application Mode)
    virtual HRESULT __stdcall xyLClick( long wid, long x, long y, 
    	long time, VARIANT_BOOL nav = VARIANT_FALSE ) = 0;
    virtual HRESULT __stdcall xyMouseOver( long wid, long x, long y ) = 0;
    virtual HRESULT __stdcall xyLDrag( long wid, long x, long y, 
    	long x1, long y1, long time, VARIANT_BOOL nav = VARIANT_FALSE ) = 0;
    virtual HRESULT __stdcall xyRClick( long wid, long x, long y ) = 0;
    virtual HRESULT __stdcall clLClick( long wid, long x, long y, 
    	long time, VARIANT_BOOL nav = VARIANT_FALSE ) = 0;
    virtual HRESULT __stdcall clLDrag( long wid, long x, long y, 
    	long x1, long y1, long time, VARIANT_BOOL nav = VARIANT_FALSE ) = 0;
    virtual HRESULT __stdcall clMouseOver( long wid, long x, long y ) = 0;
    virtual HRESULT __stdcall clRClick( long wid, long x, long y ) = 0;
    virtual HRESULT __stdcall clValidateSavedScreenRect( long wid, 
    	BSTR uniqueID, long x, long y, long w, long h ) = 0;

    // Window Management
    virtual HRESULT __stdcall FontSize( long n ) = 0;
    virtual HRESULT __stdcall ScreenSize( long w, long h ) = 0;
    virtual HRESULT __stdcall SubFrameSet( long wid, BSTR title ) = 0;

    // Keyboard & Desktop Operations
    virtual HRESULT __stdcall EnterKey( long wid, long idx, BSTR id, 
    	BSTR frame_path, VARIANT_BOOL nav = FALSE ) = 0;

    // Script Manipulation and Annotatation
    virtual HRESULT __stdcall ExitNow( void ) = 0;
    virtual HRESULT __stdcall StopAndExit( void ) = 0;

    virtual HRESULT __stdcall SaveRecord( BSTR file, BSTR string, 
    	VARIANT_BOOL overwrite = VARIANT_FALSE ) = 0;
};


// {B714EE26-5804-401f-B73A-4225185D2C32}
static const GUID IID_IEvalidLog =
{ 0xb714ee26, 0x5804, 0x401f, { 0xb7, 0x3a, 0x42, 0x25, 0x18, 0x5d, 0x2c, 0x32 } };

interface IEvalidLog : public IUnknown
{
    virtual HRESULT __stdcall get_date( BSTR * date ) = 0;
    virtual HRESULT __stdcall get_time( BSTR * time ) = 0;
    virtual HRESULT __stdcall get_seqNum( long * num ) = 0;
    virtual HRESULT __stdcall get_cmdNum( long * num ) = 0;
    virtual HRESULT __stdcall get_lineNum( long * num ) = 0;
    virtual HRESULT __stdcall get_projectName( BSTR * name ) = 0;
    virtual HRESULT __stdcall get_groupName( BSTR * name ) = 0;
    virtual HRESULT __stdcall get_testName( BSTR * name ) = 0;
    virtual HRESULT __stdcall get_status( BSTR * status ) = 0;
    virtual HRESULT __stdcall get_accumTime( long * time ) = 0;
    virtual HRESULT __stdcall get_fineTime( long * time ) = 0;
    virtual HRESULT __stdcall get_totalCmdTime( long * time ) = 0;
    virtual HRESULT __stdcall get_message( BSTR * message ) = 0;
};


// {D1336145-92E3-4dc8-9DE7-EB6214A0C24D}
static const GUID IID_IEvalidLogCollection =
{ 0xd1336145, 0x92e3, 0x4dc8, { 0x9d, 0xe7, 0xeb, 0x62, 0x14, 0xa0, 0xc2, 0x4d } };

interface IEvalidLogCollection : public IUnknown
{
    virtual HRESULT __stdcall get_length( long * p ) = 0;
    virtual HRESULT __stdcall item( long index, IEvalidLog ** p ) = 0;
};