2005/5/10

     
 

ACDK COM+ Readme

artefaktur

ACDKX COM+ is a middleware between ACDK Objects and COM+ objects. You can use all ACDK Objects in Windows Languages, like Visual Basic, C#, VBScript, etc. You can also use all COM+ Objects in ACDK and all scripting languages like lisp, perl, tcl, python.



Content of this chapter:

   General
     Title
     Version
     Short Description
     Dependencies
     Namespaces
     Authors
     License
   Description
   Notes
   Todo
   Changes



 General

 Title

ACDKX COM+

 Version

Distribution version: 4.14.
Package version: 4.14.0.

 Short Description

  ACDKX COM+ is a middleware between ACDK Objects and 
COM+ objects. You can use all ACDK Objects in Windows
Languages, like Visual Basic, C#, VBScript, etc. You
can also use all COM+ Objects in ACDK and all scripting
languages like lisp, perl, tcl, python.    

 Dependencies

       ACDK Core
 ACDK Net
    

 Namespaces

       acdkx::com
    

 Authors

      Roger Rene Kommer (kommer@artefaktur.com).    

 License

ACDK Free Edition License ( License).

 Description

acdkx_com is a dynamic bridge between Windows COM and any ACDK objects.

With this bridge not only any COM objects can be accessed by  any ACDK DMI client language (like C++, CfgScript, Perl, Python, CORBA, Tcl, Lisp), but also make all ACDK Objects (implemented in C++, CfgScript, CORBA)  available as COM objects.


Here a sample to instrument word through ACDK Perl:

sub require_class($)
{
  my ($cls) = @_;
  my $cl = acdk::new("acdk/lang/ClassLoader");
  $cl->findClass($cls);
}

require_class('acdkx/com/CoObject');
$word = acdk::invoke_static('acdkx/com/CoObject', 'New', 'Word.Application');
$word->poke('Visible', 1);
$doc = $word->peek('Documents')->Add();
$sel = $word->peek('ActiveWindow')->peek('Selection');
$sel->TypeText("This is ");
$sel->peek('Font')->poke('Bold', 1);
$sel->TypeText("ACDK");
$sel->peek('Font')->poke('Bold', 0);
$sel->TypeText(" instrumenting Word through acdk_perl");
acdk::invoke_static('acdk/lang/Thread', 'sleep', 3000);
$word->Quit(0);
See also  acdkx::com::AcdkObject Manual.

On the other side the class AcObject implements a generic COM+ component Acdk.Object, which can be used to control all ACDK Objects.


Here a simple sample how to access ACDK Object via Visual Basic:

Private Sub Form_Load()
  Dim acdk As Object
  Set acdk = CreateObject("Acdk.Object")
  Dim sb As Object
  Set sb = acdk.New("acdk/lang/StringBuffer", "Hello ")
  sb.append "from VB"
  MsgBox sb.toString()
End Sub
See also  acdkx::com::ComObject Manual.

 Notes

  Please refer for special installation teasks to  Install  

 Todo

  Cannot compile with BCC 5.5.1, probably
due namespace problems:
acdkx\com\IUnknown.cpp:
Error E2356 acdkx\com\IUnknown.cpp 45: 
  Type mismatch in redeclaration of '__stdcall IUnknown::QueryInterface(const _GUID  &,void * *)'
Error E2344 acdkx\com\IUnknown.h 99: 
  Earlier declaration of '__stdcall IUnknown::QueryInterface(const _GUID &,void * *)'

 Changes

    ===========================================================
4.10.0
  Nothing
  
===========================================================
4.01.1
- Ajustments to modified metainfo
- minor documentation changes.

See also  ChangeLog.

=========================================================== 4.00.1 - Ajustments to Unicode and revised metainfo.

=========================================================== 2.00.1 - Initial release.