right. 48 hours later, i've got a first version of freedce-win32 to try out, which i'm actually a bit frightened of running.
just in case it works :)
thank goodness for pthreads-win32, otherwise i'd be up small creek.
major things todo: in ipnaf.c (actually ipnaf_linux.c or even better ipnaf_win32.c) it's necessary to write an IP-interface-enumeration function.
this function presumably will call GetIpAddrTable and go over all the addresses including netmasks and broadcast addresses returning information that the rpc runtime can then "listen" on - one by one.
no, freedce doesn't go listening on 0.0.0.0 it binds to all "towers" whatever they're called.
because i've commented this code out (stubbed) i am not expecting freedce-win32 to work straight off.
once this is working, putting it in place of rpcrt4 should be relatively straightforward (and mostly very very mind numbingly boring) - a matter of "back-converting" and following the lead of dceport.h - microsoft's "wrapper" header file that allows application developers to port DCE/RPC applications to MSRPC.
i say "lead" because it's woefully inadequate, representing about 10% of the functions and structs that actually need "converting", because dceport.h contains the "publicly accessible" functions.
once _that's_ done, then there will be two remaining tasks:
1) check that pthreads-win32 works under wine (!) and if so, job done, otherwise it's _yet_ another emulation layer to write, but at least the source code of pthreads-win32 represents a damn good starting point
2) mash freedce's typelib output to be compatible with MSRPC binaries.
this latter is no small task (but at least it could be considered).
the data structures have been _totally_ mashed, by microsoft.
gotta run.
later.
l.