bits[1/3]: Minimal Background Intelligent Transfer Service (bits) implementation

Roy Shea roy at
Thu Sep 27 12:21:22 CDT 2007


On Thu, Sep 27, 2007 at 02:55:40PM +0200, Stefan D?singer wrote:
> Am Donnerstag, 27. September 2007 12:58:46 schrieb Alexandre Julliard:
> > Roy Shea <roy at> writes:
> > > Resubmission of a bare bones bits implementation.
> >
> > There is no bits.dll on any Windows version I've checked. Where does
> > this dll come from?
> It is an extra download, but requires a WGA check.

Argh!  My bad.  I just finished looking into this a bit more and here
is my current understanding.  

You can download "bits" from Microsoft, but I don't think you are
going to get a bits.dll out of it.  The dll that I'm working on is
intended to stand in for the collection of dlls available at, although most Windows users
should already have the dlls:

Qmgr.dll -> Very old version of bits that appears to be heading
towards deprecation.

Bitsprx2.dll -> Base version of bits that I'm trying to implement for

Bitsprx3.dll -> Version 2.0 of bits adding features to the base
version (gotta love the off by one numbering scheme!).

Bitsprx4.dll -> Newest extensions to bits available on some systems.

As far as I can tell the Bitsprx2.dll is generated from Bits.Idl, that
is equivalent to the bits.idl I'm developing.  Since my dll is not
acting as a proxy, at least as I understand proxy dlls (I'm still
digging through COM books), I thought it would be more accurate to not
include the "prx" in the name of my dll.  Simply changing the name
from bits.dll to bitsprx2.dll is easy enough, but I worry that the
semantics between a regular dll and a proxy dll would cause confusion
or problems.

My understanding of proxies is that they allow "cross-apartment
access" to a COM object.  Ideally, I'd like to first get in process
support of bits (CLSCTX_INPROC_SERVER object instantiation), and then
worry about support across apartments.

I am new to both COM and Wine and I may be a bit off in my
understanding of some of these points.  I would love any advice on how
to get my current code in shape for Wine.  In particular, should I
provide a full proxy version of bits and resubmit it as Bitsprx2.dll
or should I introduce basic functionality first, perhaps through
bits.dll or something else, and then jump in on the proxy code.

Thanks for the advice!

More information about the wine-devel mailing list