

| Type | Description | |||
| item as Variant | A variant expression that indicates a argument's index or an argument's name. | |||
| OleEventParam | An OleEventParam object that contains the name and the value for the argument. |
The following VB sample prints the events that an inside ActiveX control fires:
Private Sub ExMenu1_OleEvent(ByVal ID As Long, ByVal Ev As EXMENULibCtl.IOleEvent)
With ExMenu1.Item(ID)
Debug.Print (.Caption)
End With
With Ev
Debug.Print .Name
Dim i As Long
For i = 0 To .CountParam - 1
With .Param(i)
Debug.Print .Name & " = " & .Value
End With
Next
End With
End SubThe following C++ sample prints the events that an inside ActiveX control fires:
#import <exmenu.dll>
void OnOleEventExmenu1(long ID, LPDISPATCH Ev)
{
EXMENULib::IOleEventPtr spEvent( Ev );
OutputDebugString( spEvent->GetName() );
for ( long i = 0; i < spEvent->CountParam; i++ )
{
EXMENULib::IOleEventParamPtr spParam = NULL;
spEvent->get_Param( COleVariant( i ), &spParam );
CString strOutput;
strOutput.Format( "%s = %s", spParam->Name.operator const char *(), V2S( &spParam->Value ) );
OutputDebugString( strOutput );
}
}The C++ sample requires #import <exmenu.dll> to import definitions for OleEvent and OleEvenParam objects. It generates the EXMENULib namespace that includes all objects for the ExMenu component.
The V2S function converts a VARIANT value to a string expression:
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;
}The following VB.NET sample prints the events that an inside ActiveX control fires:
Private Sub AxExMenu1_OleEvent(ByVal sender As Object, ByVal e As AxEXMENULib._IMenuEvents_OleEventEvent) Handles AxExMenu1.OleEvent
With AxExMenu1.item(e.iD)
Debug.Print(.Caption)
End With
With e.ev
Debug.WriteLine(.Name())
Dim i As Integer
For i = 0 To .CountParam - 1
With .Param(i)
Debug.WriteLine(.Name + " = " + .Value.ToString())
End With
Next
End With
End SubThe following C# sample prints the events that an inside ActiveX control fires:
private void axExMenu1_OleEvent(object sender, AxEXMENULib._IMenuEvents_OleEventEvent e)
{
System.Diagnostics.Debug.WriteLine(axExMenu1[e.iD].Caption);
System.Diagnostics.Debug.WriteLine(e.ev.Name);
for (int i = 0; i < e.ev.CountParam; i++)
{
EXMENULib.OleEventParam param = e.ev[i];
System.Diagnostics.Debug.WriteLine( param.Name + " = " + param.Value.ToString());
}
}The following VFP sample prints the events that an inside ActiveX control fires:
*** ActiveX Control Event ***
LPARAMETERS id, ev
With thisform.ExMenu1.Item(ID)
wait window nowait (.Caption)
EndWith
With Ev
wait window nowait .Name
local i
For i = 0 To .CountParam - 1
With .Param(i)
wait window nowait .Name && + " = " + Str(.Value)
EndWith
Next
EndWith