Retrieves or sets the value of the event's parameter.
Type | Description | |||
Variant | A variant value that indicates the value of the event's parameter. |
Private Sub Pivot1_OleEvent(ByVal Ev As EXPIVOTLibCtl.IOleEvent) Debug.Print "Event name:" & Ev.Name If (Ev.CountParam = 0) Then Debug.Print "The event has no arguments." Else 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 Next End If End Sub
The C++ example below captures and displays the events triggered by an ActiveX control while it is hosted:
#import <expivot.dll> 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 OnOleEventPivot1( LPDISPATCH Ev) { EXPIVOTLib::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." ); else { for ( long i = 0; i < spEvent->CountParam; i++ ) { EXPIVOTLib::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 EXPIVOTLib namespace that include all objects and types of the control's TypeLibrary. In case your expivot.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 VB.NET example below captures and displays the events triggered by an ActiveX control while it is hosted:
Private Sub AxPivot1_OleEvent(ByVal sender As Object, ByVal e As AxEXPIVOTLib._IPivotEvents_OleEventEvent) Handles AxPivot1.OleEvent Debug.WriteLine("Event's name: " & e.ev.Name) Dim i As Long For i = 0 To e.ev.CountParam - 1 Dim eP As EXPIVOTLib.OleEventParam eP = e.ev(i) Debug.WriteLine("Name: " & e.ev.Name & " Value: " & eP.Value) Next End Sub
The C# example below captures and displays the events triggered by an ActiveX control while it is hosted:
private void axPivot1_OleEvent(object sender, AxEXPIVOTLib._IPivotEvents_OleEventEvent e) { System.Diagnostics.Debug.WriteLine( "Event's name: " + e.ev.Name.ToString() ); for ( int i= 0; i < e.ev.CountParam ; i++ ) { EXPIVOTLib.IOleEventParam evP = e.ev[i]; System.Diagnostics.Debug.WriteLine( "Name: " + evP.Name.ToString() + ", Value: " + evP.Value.ToString() ); } }
The VFP example below captures and displays the events triggered by an ActiveX control while it is hosted:
*** ActiveX Control Event *** LPARAMETERS ev 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) endfor wait window nowait s