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

Roy Shea roy at cs.hmc.edu
Thu Sep 27 12:21:22 CDT 2007


Howdy,

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 cs.hmc.edu> 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
http://support.microsoft.com/?kbid=923845, 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
wine.

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!
-Roy




More information about the wine-devel mailing list