An important consideration is to perform the proper casting. The source code to do this:
IXGIS_LayerVector ll ;
IXGIS_ShapePoint shp ;
IXGIS_Utils utl ;
IXGIS_ParamsSectionVector prm ;
IXGIS_ParamsMarker prmmrk ;
utl.CreateDispatch( "TatukGIS_DK.XGIS_Utils" ) ;
ll.CreateDispatch( "TatukGIS_DK.XGIS_LayerVector" ) ;
gis.Add( ll ) ;
// layer defaults
( ( (IXGIS_ParamsMarker)( (IXGIS_ParamsSectionVector)ll.get_Params() ).get_Marker() ) ).put_Color( RGB(0,255,255 ) ) ;
shp = ll.CreateShape( gis.XgisShapeTypePoint ) ;
shp.AddPart() ;
shp.AddPoint( utl.GisPoint( 0, 0 ) ) ;
( ( (IXGIS_ParamsMarker)( (IXGIS_ParamsSectionVector)shp.get_Params() ).get_Marker() ) ).put_Color( RGB(255,0,255 ) ) ;
shp = ll.CreateShape( gis.XgisShapeTypePoint ) ;
shp.AddPart() ;
shp.AddPoint( utl.GisPoint( 1, 1 ) ) ;
( ( (IXGIS_ParamsMarker)( (IXGIS_ParamsSectionVector)shp.get_Params() ).get_Marker() ) ).put_Color( RGB(0,255,0 ) ) ;
shp = ll.CreateShape( gis.XgisShapeTypePoint ) ;
shp.AddPart() ;
shp.AddPoint( utl.GisPoint( 2, 2 ) ) ;
// comment out so layer default will be used
// ( (IXGIS_ParamsMarker)( (IXGIS_ParamsSectionVector)shp.get_Params() ).get_Marker() ) ).put_Color( RGB(0,0,255 ) ) ;
gis.FullExtent() ;