Home
Name Modified Size InfoDownloads / Week
v3c-dcom-0.5.1-07.tar.gz 2013-04-19 442.5 kB
v3c-dcom-0.5.1-06.tar.gz 2012-11-30 441.3 kB
v3c-dcom-0.5.1-05.tar.gz 2012-11-13 442.0 kB
v3c-dcom-0.5.1-04.tar.gz 2012-07-10 440.9 kB
v3c-dcom-0.5.1-03.tar.gz 2012-07-07 440.1 kB
v3c-dcom-0.5.1-02.tar.gz 2012-04-23 443.2 kB
v3c-dcom-0.5.0-02.tar.gz 2012-04-01 433.9 kB
v3c-dcom-0.5.0-01.tar.gz 2012-04-01 434.4 kB
v3c-dcom-0.4.0-02.tar.gz 2011-12-13 429.9 kB
v3c-dcom-0.4.0-01.tar.gz 2011-12-12 429.8 kB
v3c-dcom-0.3.2-01.tar.gz 2011-06-16 394.3 kB
README 2010-12-19 2.5 kB
v3c-dcom-0.2.6-08.tar.gz 2010-12-19 396.3 kB
Totals: 13 Items   5.2 MB 0
Introduction
============
This project began it's existance from a requirement for an in-process Component
Object Model but as the name implies, it may end up being a lot more!

This is the first version to not require Wine (http://www.winehq.org), for the
following reasons.
 * Wine is a hefty download. Leaving it out meant that v3c-dcom could be useful
   by more people, on more platforms.
 * Wine and Samba (http://www.samba.org) both implement aspects of COM in their
   own ways. Having a common code base could be better.
   v3c-dcom could be that common code base.
 * The code generated by widl isn't a perfect match for the macros I've defined,
   and besides the current version doesn't need the marshalling / proxy code
   that widl generates.

Features
========
* Multiple independent contexts of execution - I call them "sandboxes".
* No controlling server process.
* Clients use file locking to co-operate through libv3c-dcom.
* A utility program v3c-dcom-regsvr provides
  1. The ability to register and de-register in-process-servers (shared
     libraries) with a particular sandbox.
     Absolute paths aren't required - I thought this might be useful.
  2. Create new sandboxes.
     Sandboxes are files - when you've finished with one, you can delete it.

How it works
============
libv3cdcom gets the name of the sandbox from the following locations:
 * The command line. Other options are only attempted if this isn't supplied.
 * A file specified by the environment variable V3C_DCOM_SANDBOX_1_0
 * ~/.v3c-dcom/v3c-dcom.sb
   Installation won't create this directory.
 * $PREFIX/var/v3c-dcom/v3c-dcom.sb
   $PREFIX/var is for "modifiable single-machine data" (from ./configure --help).
   Installation won't create this directory - there are no pre-existing
   components, at least not yet.

It uses file-level locking to access the sandbox.

Calls to CoCreateInstance() look up the provided information to locate the
shared library that implements the component, loads it and calls the class
factory to create an instance. Voila!

As there is no concept of apartments (yet) everything is assumed to be
in no apartment, so no message queue, no "hidden window".

The future
==========
I'm working on v3c-repo which will provide type libraries.
With this will come marshalling and language binding - including scripting.

Next, the sandboxes will undergo a revision to contain a "real" registry layout,
not just the simplified hkey-classes-root it has now.
Source: README, updated 2010-12-19