#pragma once

#pragma managed

#using <Bentley.MicroStation.dll>
#using <Bentley.GeometryNET.Structs.dll>
#using <Bentley.DgnPlatformNET.dll>
#using <Bentley.Interop.MicroStationDGN.dll>

#include <Mstn\MdlApi\MdlApi.h>
#include <Mstn\ISessionMgr.h>
#include <Mstn\MdlApi\mselems.h>
#include <msclr/gcroot.h>
#include <Mstn\MdlApi\dloadlib.h>

USING_NAMESPACE_BENTLEY_DGNPLATFORM;
USING_NAMESPACE_BENTLEY_MSTNPLATFORM;
USING_NAMESPACE_BENTLEY_MSTNPLATFORM_ELEMENT;
using namespace msclr;
namespace GeoNet = Bentley::GeometryNET;
namespace DgnNetEle = Bentley::DgnPlatformNET::Elements;
namespace InteropMstn = Bentley::Interop::MicroStationDGN;

namespace SampleMixed
{
		public ref class ElementDerive :public DgnNetEle::Element
		{
		public:
			ElementDerive(ElementHandleP);
		};

		public ref class ElementOperation
		{
		public:
			static DgnNetEle::Element^  ConvertToDgnNetEle(InteropMstn::Element^ ele);
			
			static InteropMstn::Element^ ElementOperation::ConvertToInteropEle(DgnNetEle::Element^ ele);
		};
}