<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD><TITLE>COMer - Programming Language for Component
Development</TITLE>
<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
<STYLE type=text/css>
<!--
.Title { font-family: Verdana, Arial, Helvetica, sans-serif; font-size:
16px; font-weight: bold; color: #000000}
.Description { font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 8pt}
-->
</STYLE>
<META content="MSHTML 6.00.2800.1170" name=GENERATOR></HEAD>
<BODY text=#000000 bgColor=#ffffff>
<TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
<TBODY>
<TR>
<TD width=20 bgColor=#ffcc99 height=50></TD>
<TD width=600 bgColor=#ffcc99 height=50>
<P class=Title>COMer - Programming Language for Component
Development</P></TD>
<TD height=50> </TD></TR></TBODY></TABLE>
<TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
<TBODY>
<TR>
<TD height=15></TD></TR></TBODY></TABLE>
<TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
<TBODY>
<TR>
<TD width=620>
<TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
<TBODY>
<TR>
<TD width=1 bgColor=#ffcc99 height=1></TD>
<TD bgColor=#ffcc99 height=1></TD>
<TD width=1 bgColor=#ffcc99 height=1></TD></TR>
<TR>
<TD width=1 bgColor=#ffcc99 height=20></TD>
<TD height=20></TD>
<TD width=1 bgColor=#ffcc99 height=20></TD></TR>
<TR>
<TD width=1 bgColor=#ffcc99></TD>
<TD>
<BLOCKQUOTE class=Description>
<P>If you are a Windows Programmer, I would like to introduce
something interesting to you.</P>
<P><B>COMer</B> is a native programming language for COM
component
development.</P>
<P>A COM component can be easily made in COMer as follow:
[File:
MyCom.cm]</P><PRE><FONT face="Courier New, Courier, mono"
color=#3333ff size=2>#ifndef _MYCOM_CM
#define _MYCOM_CM
/*
* A COM Class
*/
[ clsid = "{EF6CD47E-B844-4219-B582-6F9FE16D45F6}",
progid = "Dexterity.MyCom1.1",
helpstring = "Dexterity Com1 Class",
export, unhandle ]
com CMyCom1
{
/*
* An Interface implemented in this class
*/
[iid="{A123799B-1D8B-4efb-8D43-42AE582767C1}"]
interface IMyInterface
{
method SetValue(int dVal)
{
m_dValue = dVal;
done;
}
method GetDoubleValue(int &dVal)
{
dVal = m_dValue << 1;
done;
}
}
/*
* Instance variables
*/
instvars
{
int m_dValue;
}
}
#endif</FONT></PRE>
<P>The design of COMer is native to the concept of the
Component
Object Model (COM) mechanism. COM classes are defined as in
the
way that COM specifies. Interfaces are specified or defined
within
a COM class and the methods of the interfaces are defined
within
the interfaces. It is simple.</P>
<P>A special characteristic of COMer is that the COMer
compiler
generates C++ source code files as its final outputs.
Therefore,
you can use C++ code within the COMer classes, like Lex, Yacc
or
MIDL. To build the component, what you need to do is to
specify
one more file only to indicate the module of the component to
build.</P>
<P>E.g: [File:MyCom.cmdef]</P><PRE><FONT face="Courier New,
Courier, mono" color=#3333ff size=2>module: inprocsvr
source { MyCom.cm }</FONT></PRE>
<P>Then, by the following command line (cmc is the COMer
compiler
program):</P><PRE><FONT face="Courier New, Courier, mono"
color=#3333ff size=2>> cmc MyCom.cmdef</FONT></PRE>
<P>COMer compiler will generate the following C++
files:</P><PRE><FONT face="Courier New, Courier, mono" color=#3333ff
size=2>Main.cpp
MyCom.h
MyCom.cpp
MyCom.def
Makefile</FONT></PRE>
<P>Finally, you only need to build these C++ files by using
the
generated makefile by C++ build tools. The component
'MyCom.dll'
will then be made. It's so simple!</P>
<P>Lets try it! You will like it!</P>
<P>Home Page: <BR><A
href="http://www.dexterity.com.hk/COMer/">http://www.dexterity.com.hk/COMer/
</A></P>
<P>Download Trial Version: <BR><A
href="http://www.dexterity.com.hk/COMer/Download/Download.asp">http://www.de
xterity.com.hk/COMer/Download/Download.asp</A></P>
<P><B>Dexterity Technologies Limited</B><BR><A
href="http://www.dexterity.com.hk/">http://www.dexterity.com.hk/</A></P></BL
OCKQUOTE></TD>
<TD width=1 bgColor=#ffcc99></TD></TR>
<TR>
<TD width=1 bgColor=#ffcc99 height=20></TD>
<TD height=20></TD>
<TD width=1 bgColor=#ffcc99 height=20></TD></TR>
<TR>
<TD width=1 bgColor=#ffcc99 height=1></TD>
<TD bgColor=#ffcc99 height=1></TD>
<TD width=1 bgColor=#ffcc99
height=1></TD></TR></TBODY></TABLE></TD>
<TD> </TD></TR></TBODY></TABLE>
<TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
<TBODY>
<TR>
<TD height=15></TD></TR></TBODY></TABLE>
<TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
<TBODY>
<TR>
<TD width=620>
<TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
<TBODY>
<TR>
<TD width=1 bgColor=#ffcc99 height=1></TD>
<TD bgColor=#ffcc99 height=1></TD>
<TD width=1 bgColor=#ffcc99 height=1></TD></TR>
<TR>
<TD width=1 bgColor=#ffcc99 height=20></TD>
<TD height=20></TD>
<TD width=1 bgColor=#ffcc99 height=20></TD></TR>
<TR>
<TD width=1 bgColor=#ffcc99></TD>
<TD>
<BLOCKQUOTE class=Description>
<P>If you don't want to receive any more message from us,
please
send an e-mail to <A
href="mailto:comer@dexteritytech.com?subject=Unsubscribe">comer@dexteritytec
h.com</A>
to unsubscribe.
<P>Please <B>don't reply</B> this e-mail.
<P>We apologize for any inconvenience caused.
</P></BLOCKQUOTE></TD>
<TD width=1 bgColor=#ffcc99></TD></TR>
<TR>
<TD width=1 bgColor=#ffcc99 height=20></TD>
<TD height=20></TD>
<TD width=1 bgColor=#ffcc99 height=20></TD></TR>
<TR>
<TD width=1 bgColor=#ffcc99 height=1></TD>
<TD bgColor=#ffcc99 height=1></TD>
<TD width=1 bgColor=#ffcc99
height=1></TD></TR></TBODY></TABLE></TD>
<TD> </TD></TR></TBODY></TABLE></BODY></HTML>