WinMOPS’ MCD File Format

I’ve recently assigned the project of porting existing WinMOPS screens to web-based ASP.NET infrastructure. The objective is to reduce and eventually eliminate the need by the user to do remote desktop to view some plant processes. Instead, they will use the browser to view the plant process in the form of *.ASPX pages in the future.

There are several alternatives or possibility to accomplish this task, ranging from creating the new *.ASPX screens based on the existing to just incorporate the existing MOPS screen to the .NET infrastructure.

So I decided first to explore the second approach because it will cut the significant development time especially in the designing and testing phase.

The existing WinMOPS screens consists of files with *.MCD extension and I think it would be great when I just write the routines to parse this file on my web application before it shown to the user’s browser.

To simplify the task at hand, I activate my WinMOPS and creates just the empty screen that consist of nothing but the default white canvas, saves it and examine its structure using the hex editor.

Before long, I realize that the structure is actually in the form of Compound Binary Format or popularly also known as Structured Storage. In this case, I can view it using applications that understands this format :

You can see that *.MCD file comprises of several streams : Bitmaps, Contents, Metafiles, etc.

WinMOPS users can create the screen using Bitmaps or Metafiles and it is stored in Bitmaps and Metafiles stream object in the storage. Before performing the manipulations of the images, the user first has to import the bitmap or metafile files into the structure.

The process of storing and retrieving the bitmap and metafiles object is using MFC’s serialization techniques. Each of the records has the name and the length or size properties.

There are also customized objects that is created inside the WinMOPS applications such as lines, etc, and the procedures of retrieving this objects is stored inside “WinMOPS Display” in the form script.

In this case, It is possible to perform the conversion of the display objects just by parsing the scripts inside this stream on the ASP.NET server side, but the significant time will be required to perform the mapping of the objects to the objects usually found in ASP.NET web applications such as text files etc.

In the end, by comparing the required time to either develop new screens and mapping process, I can decide which solution is the most suitable 🙂


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: