Visual C++ 6.0 Syntax

In Version 6.0 of Visual C++, the MicroSoft Foundation Class (MFC) library provides an ActiveX interface. 
This topic describes how to use the interface with the LEADTOOLS ActiveX.

To add a LEAD Main ActiveX Control to your application, refer to the example in Loading and Displaying an Image . 
Alternatively, to create an instance of the LEAD control at run time, use the Create function, which has the following prototype:

BOOL Create( 
 LPCTSTR lpszWindowName, DWORD dwStyle,
 const RECT&rect, CWnd* pParentWnd, UINT nID,
 CFile* pPersist = NULL, BOOL bStorage = FALSE,
 BSTR bstrLicKey = NULL);
 
Provide parameters as follows:

lpszWindowName
 Use "", because the control window does not need a name.
 
dwStyle
 Use 0 for the default style.
 
&rect
 Use the CRect function. For example: CRect(0,0,50,50).
 
pParentWnd
 Use this to refer to the current window.
 
nID
 Use 0 for the default ID.
 
pPersist
 Use NULL.
 
bStorage
 Use FALSE.
 
bstrLicKey
 Use the LEADTOOLS license string, which is always the first line in the ltocx.lic file. 
 For example: "LEADTOOLS OCX Copyright (c) 1991-2008 LEAD Technologies, Inc." If you do not specify this string correctly, 
 the ActiveX will not work when you distribute your application.
 

For example:

CLEAD *m_Lead1=NULL;
static const WCHAR BASED_CODE _szLicString[] =
	L"LEADTOOLS OCX Copyright (c) 1991-2008 LEAD Technologies, Inc.";
m_Lead1 = new CLEAD;
// pass the license string to the CLEAD:: Create function.
// The CLEAD::Create expects a BSTR parameter and SysAllocString converts the
// WCHAR[] to a BSTR
BSTR lpLic = SysAllocString(_szLicString);
m_Lead1-> CreateControl ("", 0,CRect(0,0,2200,2200),this,0,NULL,FALSE,lpLic);
m_Lead1->ShowWindow(SW_HIDE);
SysFreeString(lpLic);

When getting or setting a property value, you must use a function that is created by adding a prefix to the property name.

To set a property value, the syntax is as follows: 

m_controlname.Setpropertyname(value);

For example:

m_Lead1->SetRubberBandLeft(value);

To get a property value, the syntax is as follows: 

value = m_controlname.Getpropertyname();

For example:

HeightFactor = m_Lead1.GetBitmapHeight();

To set a property array value, the syntax is as follows: 

m_controlname.Setpropertyname(index, value);

For example:

m_Lead1.SetRemapTable(MyIndex, (255 * Offset) / CurrentRange);

To get a property array value, the syntax is as follows: 

value = m_controlname.Getpropertyname(index);

For example:

m_Lead1.SetBitmap(m_Lead1.GetColorPlanes(3)); // Copy the K plane

In Version 5.0 of Visual C++, the MicroSoft compiler also has a #import directive, which can be used to import 
type library information from an ActiveX control or COM Object.

To add any of the LEAD ActiveX Objects to your application you can use the following:

// get information for LEAD Raster Variant Object
#import  no_namespace, named_guids
// get information for LEAD Raster Twain Object
#import  no_namespace, named_guids

Then, you can create instances of the objects. The following shows how to create an instance of ILEADRasterTwain_U.

ILEADRasterTwain_U * pRasterTwain;
HRESULT hr = ::CoCreateInstance(CLSID_LEADRasterTwain_U, NULL, CLSCTX_ALL, IID_ILEADRasterTwain_U, (void **)&pRasterTwain);
if (FAILED(hr) || !pRasterTwain)
{
	::MessageBox (NULL, _TEXT("Failed to create a Raster Twain Object"), _TEXT("Error"), MB_OK);
	return;
}

Note that there are 3 different ways that you can access a COM Object's properties when you use the #import statement.

To set a property value, the syntax is as follows: 

1) pObject->put_propertyname(value);
2) pObject->Putpropertyname(value);
3) pObject->propertyname = value;

For example:
      
pRasterTwain->put_EnableMethodErrors(FALSE); //1
pRasterTwain->PutEnableMethodErrors(FALSE); //2
pRasterTwain->EnableMethodErrors = FALSE; //3

To get a property value, the syntax is as follows: 

1) pObject->Get_propertyname(&value);
2) value = pObject->Getpropertyname();
3) value = pObject->propertyname;

For example:

VARIANT_BOOL bVal;
pRasterTwain ->get_EnableMethodErrors(&bVal); //1
bVal = pRasterTwain ->GetEnableMethodErrors();//2
bVal = pRasterTwain ->EnableMethodErrors;     //3