How can I add a popup or a submenu?
VBA (MS Access, Excell...)
With ExMenu1
	With .Items.Add("Popup",2).SubMenu
		.Add "Item 1"
		.Add "Item 2"
	End With
	.Refresh 
End With
VB6
With ExMenu1
	With .Items.Add("Popup",2).SubMenu
		.Add "Item 1"
		.Add "Item 2"
	End With
	.Refresh 
End With
VB.NET
With Exmenu1
	With .Items.Add("Popup",2).SubMenu
		.Add("Item 1")
		.Add("Item 2")
	End With
	.Refresh()
End With
VB.NET for /COM
With AxExMenu1
	With .Items.Add("Popup",2).SubMenu
		.Add("Item 1")
		.Add("Item 2")
	End With
	.Refresh()
End With
C++
/*
	Copy and paste the following directives to your header file as
	it defines the namespace 'EXMENULib' for the library: 'ExMenu 1.0 Control Library'
	#import <ExMenu.dll>
	using namespace EXMENULib;
*/
EXMENULib::IExMenuPtr spExMenu1 = GetDlgItem(IDC_EXMENU1)->GetControlUnknown();
EXMENULib::IMenuPtr var_Menu = spExMenu1->GetItems()->Add(L"Popup",long(2),vtMissing)->GetSubMenu();
	var_Menu->Add(L"Item 1",vtMissing,vtMissing);
	var_Menu->Add(L"Item 2",vtMissing,vtMissing);
spExMenu1->Refresh();
C++ Builder
Exmenulib_tlb::IMenuPtr var_Menu = ExMenu1->Items->Add(L"Popup",TVariant(2),TNoParam())->SubMenu;
	var_Menu->Add(L"Item 1",TNoParam(),TNoParam());
	var_Menu->Add(L"Item 2",TNoParam(),TNoParam());
ExMenu1->Refresh();
C#
exontrol.EXMENULib.exmenu var_Menu = exmenu1.Items.Add("Popup",2,null).SubMenu;
	var_Menu.Add("Item 1",null,null);
	var_Menu.Add("Item 2",null,null);
exmenu1.Refresh();
JavaScript
<OBJECT classid="clsid:7BE68958-94A9-4BCF-B556-8B31738F6FC2" id="ExMenu1"></OBJECT>
<SCRIPT LANGUAGE="JScript">
	var var_Menu = ExMenu1.Items.Add("Popup",2,null).SubMenu;
		var_Menu.Add("Item 1",null,null);
		var_Menu.Add("Item 2",null,null);
	ExMenu1.Refresh();
</SCRIPT>
C# for /COM
EXMENULib.Menu var_Menu = axExMenu1.Items.Add("Popup",2,null).SubMenu;
	var_Menu.Add("Item 1",null,null);
	var_Menu.Add("Item 2",null,null);
axExMenu1.Refresh();
X++ (Dynamics Ax 2009)
public void init()
{
	COM com_Menu,com_item;
	anytype var_Menu,var_item;
	;
	super();
	var_item = COM::createFromObject(exmenu1.Items()).Add("Popup",COMVariant::createFromInt(2)); com_item = var_item;
	var_Menu = com_item.SubMenu(); com_Menu = var_Menu;
		com_Menu.Add("Item 1");
		com_Menu.Add("Item 2");
	exmenu1.Refresh();
}
Delphi 8 (.NET only)
with AxExMenu1 do
begin
	with Items.Add('Popup',TObject(2),Nil).SubMenu do
	begin
		Add('Item 1',Nil,Nil);
		Add('Item 2',Nil,Nil);
	end;
	Refresh();
end
Delphi (standard)
with ExMenu1 do
begin
	with Items.Add('Popup',OleVariant(2),Null).SubMenu do
	begin
		Add('Item 1',Null,Null);
		Add('Item 2',Null,Null);
	end;
	Refresh();
end
VFP
with thisform.ExMenu1
	with .Items.Add("Popup",2).SubMenu
		.Add("Item 1")
		.Add("Item 2")
	endwith
	.Refresh
endwith
dBASE Plus
local oExMenu,var_Menu
oExMenu = form.Activex1.nativeObject
var_Menu = oExMenu.Items.Add("Popup",2).SubMenu
	var_Menu.Add("Item 1")
	var_Menu.Add("Item 2")
oExMenu.Refresh()
XBasic (Alpha Five)
Dim oExMenu as P
Dim var_Menu as P
oExMenu = topparent:CONTROL_ACTIVEX1.activex
var_Menu = oExMenu.Items.Add("Popup",2).SubMenu
	var_Menu.Add("Item 1")
	var_Menu.Add("Item 2")
oExMenu.Refresh()
Visual Objects
local var_Menu as IMenu
var_Menu := oDCOCX_Exontrol1:Items:Add("Popup",2,nil):SubMenu
	var_Menu:Add("Item 1",nil,nil)
	var_Menu:Add("Item 2",nil,nil)
oDCOCX_Exontrol1:Refresh()
PowerBuilder
OleObject oExMenu,var_Menu
oExMenu = ole_1.Object
var_Menu = oExMenu.Items.Add("Popup",2).SubMenu
	var_Menu.Add("Item 1")
	var_Menu.Add("Item 2")
oExMenu.Refresh()
Visual DataFlex
Procedure OnCreate
	Forward Send OnCreate
	Variant voMenu
	Get ComItems to voMenu
	Handle hoMenu
	Get Create (RefClass(cComMenu)) to hoMenu
	Set pvComObject of hoMenu to voMenu
		Variant voitem
		Get ComAdd of hoMenu "Popup" 2 Nothing to voitem
		Handle hoitem
		Get Create (RefClass(cComitem)) to hoitem
		Set pvComObject of hoitem to voitem
			Variant voMenu1
			Get ComSubMenu of hoitem to voMenu1
			Handle hoMenu1
			Get Create (RefClass(cComMenu)) to hoMenu1
			Set pvComObject of hoMenu1 to voMenu1
				Get ComAdd of hoMenu1 "Item 1" Nothing Nothing to Nothing
				Get ComAdd of hoMenu1 "Item 2" Nothing Nothing to Nothing
			Send Destroy to hoMenu1
		Send Destroy to hoitem
	Send Destroy to hoMenu
	Send ComRefresh
End_Procedure
XBase++
#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oExMenu
	LOCAL oMenu
	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}
	oExMenu := XbpActiveXControl():new( oForm:drawingArea )
	oExMenu:CLSID  := "Exontrol.ExMenu.1" /*{7BE68958-94A9-4BCF-B556-8B31738F6FC2}*/
	oExMenu:create(,, {10,60},{610,370} )
		oMenu := oExMenu:Items():Add("Popup",2):SubMenu()
			oMenu:Add("Item 1")
			oMenu:Add("Item 2")
		oExMenu:Refresh()
	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN