[GRASS5] [bug #1845] (grass) COMer - Programming Language for Component Development

Request Tracker grass-bugs at intevation.de
Mon May 5 05:20:48 EDT 2003


this bug's URL: http://intevation.de/rt/webrt?serial_num=1845
-------------------------------------------------------------------------

This is a multipart MIME message.

--= Multipart Boundary 0505031720
Content-Type: text/plain;
	charset="ISO-8859-1"
Content-Transfer-Encoding: 8bit

COMer - Programming Language for Component Development 



If you are a Windows Programmer, I would like to introduce something
intersting to you.
COMer is a native programming language for COM component development.
A COM component can be easily made in COMer as follow: [File:MyCom.cm]
#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
The design of COMer is native to the concept of the Component Object Model
(COM) machanism. 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.
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.
E.g: [File:MyCom.cmdef]
module: inprocsvr
source { MyCom.cm }
Then, by the following command line (cmc is the COMer compiler program):
> cmc MyCom.cmdef
COMer compiler will generate the following C++ files:
Main.cpp
MyCom.h
MyCom.cpp
MyCom.def
Makefile
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!
Lets try it! You will like it!
Home Page: 
http://www.dexterity.com.hk/COMer/
Download Trial Version: 
http://www.dexterity.com.hk/COMer/Download/Download.asp
Dexterity Technologies Limited
http://www.dexterity.com.hk/

--= Multipart Boundary 0505031720
Content-Type: text/html;
	charset="ISO-8859-1"
Content-Transfer-Encoding: 8bit

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD><TITLE>COMer - Programming Language for Component
Development</TITLE>
<DEFANGED_META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
 <!-- <DEFANGED_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}
-->
 --> </DEFANGED_STYLE>

<DEFANGED_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>&nbsp;</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 intersting 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 &amp;dVal)
    {
      dVal = m_dValue &lt;&lt; 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) machanism. 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>&gt; 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>&nbsp;</TD></TR></TBODY></TABLE></BODY></HTML>

--= Multipart Boundary 0505031720--


--- Headers Follow ---

>From comer at dexteritytech.com  Mon May  5 11:20:40 2003
Return-Path: <comer at dexteritytech.com>
Delivered-To: grass-bugs at lists.intevation.de
Received: from mail.intevation.de (aktaia [212.95.126.10])
	by lists.intevation.de (Postfix) with ESMTP id 5D046139C6
	for <grass-bugs at lists.intevation.de>; Mon,  5 May 2003 11:20:40 +0200 (CEST)
Received: from 192.168.10.10 (pcd743161.netvigator.com [218.103.19.161])
	by mail.intevation.de (Postfix) with SMTP id 8B9E136D86
	for <grass-bugs at intevation.de>; Mon,  5 May 2003 11:20:37 +0200 (CEST)
From: "Dexterity COMer Studio" <comer at dexteritytech.com>
To: <grass-bugs at intevation.de>
Subject: COMer - Programming Language for Component Development
Sender: "Dexterity COMer Studio" <comer at dexteritytech.com>
Mime-Version: 1.0
Content-Type: multipart/alternative;
	boundary="= Multipart Boundary 0505031720"
Date: Mon, 5 May 2003 17:20:37 +0800
Reply-To: "Dexterity COMer Studio" <comer at dexteritytech.com>
Message-Id: <20030505092037.8B9E136D86 at mail.intevation.de>
X-Spam-Status: No, hits=1.0 required=5.0
	tests=HTML_FONT_COLOR_BLUE,HTML_FONT_FACE_ODD,SPAM_PHRASE_01_02
	version=2.44
X-Spam-Level: *

-------------------------------------------- Managed by Request Tracker




More information about the grass-dev mailing list