property OleEvent.CountParam as Long

Retrieves the count of the OLE event's arguments.

   Long A long value that indicates the count of the arguments.  

The following sample enumerates the arguments of an OLE event when ItemOLEEvent is fired.

Private Sub G2antt1_ItemOleEvent(ByVal Item As EXG2ANTTLibCtl.HITEM, ByVal Ev As EXG2ANTTLibCtl.IOleEvent)
   Debug.Print "Event name:" & Ev.Name
   If (Ev.CountParam = 0) Then
      Debug.Print "The event has no arguments."
      Debug.Print "The event has the following arguments:"
      Dim i As Long
      For i = 0 To Ev.CountParam - 1
         Debug.Print Ev(i).Name; " = " & Ev(i).Value
   End If
End Sub

The following VC sample displays the events that an ActiveX control is firing while it is hosted by an item:

 #import <exg2antt.dll> rename( "GetItems", "exGetItems" )

static CString V2S( VARIANT* pv, LPCTSTR szDefault = _T("") )
	if ( pv )
		if ( pv->vt == VT_ERROR )
			return szDefault;

		COleVariant vt;
		vt.ChangeType( VT_BSTR, pv );
		return V_BSTR( &vt );
	return szDefault;

void OnItemOleEventG2antt1(long Item, LPDISPATCH Ev) 
	EXG2ANTTLib::IOleEventPtr spEvent( Ev );
	CString strOutput;
	strOutput.Format( "Event's name: %s\n", spEvent->Name.operator const char *() );
	OutputDebugString( strOutput ); 
	if ( spEvent->CountParam == 0 )
		OutputDebugString( "The event has no parameters." ); 
		for ( long i = 0; i < spEvent->CountParam; i++ )
			EXG2ANTTLib::IOleEventParamPtr spParam = spEvent->GetParam( COleVariant( i ) );
			strOutput.Format( "Name: %s, Value: %s\n", spParam->Name.operator const char *(), V2S( &spParam->Value ) );
			OutputDebugString( strOutput ); 
	OutputDebugString( "" ); 

The #import clause is required to get the wrapper classes for IOleEvent and IOleEventParam objects, that are not defined by the MFC class wizard. The same #import statement defines the EXG2ANTTLib namespace that include all objects and types of the control's TypeLibrary. In case your exg2antt.dll library is located to another place than the system folder or well known path, the path to the library should be provided, in order to let the VC finds the type library.  

The following VB.NET sample displays the events that an ActiveX control is firing while it is hosted by an item:

Private Sub AxG2antt1_ItemOleEvent(ByVal sender As Object, ByVal e As AxEXG2ANTTLib._IG2anttEvents_ItemOleEventEvent) Handles AxG2antt1.ItemOleEvent
    Debug.WriteLine("Event's name: " & e.ev.Name)
    Dim i As Long
    For i = 0 To e.ev.CountParam - 1
        Dim eP As EXG2ANTTLib.OleEventParam
        eP = e.ev(i)
        Debug.WriteLine("Name: " & e.ev.Name & " Value: " & eP.Value)
End Sub

The following C# sample displays the events that an ActiveX control is firing while it is hosted by an item:

private void axG2antt1_ItemOleEvent(object sender, AxEXG2ANTTLib._IG2anttEvents_ItemOleEventEvent e)
	System.Diagnostics.Debug.WriteLine( "Event's name: " + e.ev.Name.ToString() );
	for ( int i= 0; i < e.ev.CountParam ; i++ )
		EXG2ANTTLib.IOleEventParam evP = e.ev[i];
		System.Diagnostics.Debug.WriteLine( "Name: " + evP.Name.ToString() + ", Value: " + evP.Value.ToString() );

The following VFP sample displays the events that an ActiveX control fires when it is hosted by an item:

*** ActiveX Control Event ***

local s
s = "Event's name: " + ev.Name
for i = 0 to ev.CountParam - 1
		s = s +  "Name: " + ev.Param(i).Name + " ,Value: " + Str(ev.Param(i).Value)
wait window nowait s

Send comments on this topic.
1999-2018 Exontrol.COM, Software. All rights reserved.