From mboxrd@z Thu Jan 1 00:00:00 1970 Received: (from majordomo@localhost) by pauillac.inria.fr (8.7.6/8.7.3) id XAA29129; Sat, 10 May 2003 23:28:39 +0200 (MET DST) X-Authentication-Warning: pauillac.inria.fr: majordomo set sender to owner-caml-list@pauillac.inria.fr using -f Received: from concorde.inria.fr (concorde.inria.fr [192.93.2.39]) by pauillac.inria.fr (8.7.6/8.7.3) with ESMTP id XAA28436 for ; Sat, 10 May 2003 23:28:38 +0200 (MET DST) Received: from 192.168.10.10 (pcd743161.netvigator.com [218.103.19.161]) by concorde.inria.fr (8.11.1/8.11.1) with SMTP id h4ALSaH12520 for ; Sat, 10 May 2003 23:28:36 +0200 (MET DST) Message-Id: <200305102128.h4ALSaH12520@concorde.inria.fr> From: "Dexterity Technologies Limited" To: Subject: [Caml-list] COMer - Programming Language for Component Development Mime-Version: 1.0 Content-Type: multipart/alternative; boundary="= Multipart Boundary 0511030528" Date: Sun, 11 May 2003 05:28:36 +0800 Reply-To: "Dexterity Technologies Limited" X-Spam: no; 0.00; ifndef:01 clsid:99 844:99 implemented:01 iid:99 model:01 outputs:01 midl:01 3333:99 compiler:01 command:98 int:01 interfaces:01 asp:98 makefile:02 Sender: owner-caml-list@pauillac.inria.fr Precedence: bulk This is a multipart MIME message. --= Multipart Boundary 0511030528 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 interesting 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) 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. 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/ If you don't want to receive any more message from us, please send an e-mail to comer@dexteritytech.com to unsubscribe. Please don't reply this e-mail. We apologize for any inconvenience caused. --= Multipart Boundary 0511030528 Content-Type: text/html; charset="ISO-8859-1" Content-Transfer-Encoding: 8bit COMer - Programming Language for Component Development

COMer - Programming Language for Component Development

 

If you are a Windows Programmer, I would like to introduce something interesting 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) 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.

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.de xterity.com.hk/COMer/Download/Download.asp

Dexterity Technologies Limited
http://www.dexterity.com.hk/

 

If you don't want to receive any more message from us, please send an e-mail to comer@dexteritytec h.com to unsubscribe.

Please don't reply this e-mail.

We apologize for any inconvenience caused.

 
--= Multipart Boundary 0511030528-- ------------------- To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/ Beginner's list: http://groups.yahoo.com/group/ocaml_beginners From mboxrd@z Thu Jan 1 00:00:00 1970 Received: (from majordomo@localhost) by pauillac.inria.fr (8.7.6/8.7.3) id XAA29103; Sat, 10 May 2003 23:49:50 +0200 (MET DST) X-Authentication-Warning: pauillac.inria.fr: majordomo set sender to owner-caml-list@pauillac.inria.fr using -f Received: from nez-perce.inria.fr (nez-perce.inria.fr [192.93.2.78]) by pauillac.inria.fr (8.7.6/8.7.3) with ESMTP id XAA29757 for ; Sat, 10 May 2003 23:49:49 +0200 (MET DST) Received: from amber.ccs.neu.edu (amber.ccs.neu.edu [129.10.116.51]) by nez-perce.inria.fr (8.11.1/8.11.1) with ESMTP id h4ALnmT14754 for ; Sat, 10 May 2003 23:49:48 +0200 (MET DST) Received: from denali.ccs.neu.edu (denali.ccs.neu.edu [129.10.116.200]) by amber.ccs.neu.edu (Postfix) with ESMTP id 66E9473EE9; Sat, 10 May 2003 17:49:47 -0400 (EDT) Received: by denali.ccs.neu.edu (Postfix, from userid 215) id 3046013CC9; Sat, 10 May 2003 17:49:44 -0400 (EDT) Subject: Re: [Caml-list] COMer - Programming Language for Component Development To: sender@dexteritytech.com Date: Sat, 10 May 2003 17:49:43 -0400 (EDT) Cc: caml-list@inria.fr In-Reply-To: <200305102128.h4ALSaH12520@concorde.inria.fr> from "Dexterity Technologies Limited" at May 11, 2003 05:28:36 AM Reply-To: steck@ccs.neu.edu X-Face: $K;!}gfR*UlL{MBaB*P%P==a_0%6QpYDNSH}P9}b+q5l6Z MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Message-Id: <20030510214944.3046013CC9@denali.ccs.neu.edu> From: steck@ccs.neu.edu (Paul Steckler) X-Spam: no; 0.00; caml-list:01 haskell:01 off-topic:01 emacs:01 native:02 wrote:03 mode:07 programming:07 programmer:08 components:08 certainly:09 interesting:09 something:09 language:10 message:89 Sender: owner-caml-list@pauillac.inria.fr Precedence: bulk Dexterity Technologies Limited wrote: > If you are a Windows Programmer, I would like to introduce something > interesting 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] > ... Well, this message is certainly off-topic for this list. But I'll bite. Why would I want to use this language to create COM components instead of, say, Haskell or C++? The code presented looks pretty much like C/C++. Is there any tool support for the language? An emacs mode? -- Paul ------------------- To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/ Beginner's list: http://groups.yahoo.com/group/ocaml_beginners