Pete, .Net is becoming a serious platform. The free downloadable express editions enable a lot of people to start on programming or pick-up programming again. The .Net "common language runtime" provides a foundation for language interoperability. Because all .Net languages can follow the common type system rules, the usage of types can be consistent across languages. Would you consider to make a .NET DLL containing FSUIPC_Open, FSUIPC_Read, FSUIPC_Write, FSUIPC_WriteS, FSUIPC_Process, FSUIPC_Close ? You can write and maitain it in "C" but every one who wants to use an other .Net language can also use it. For you this probably is not a major step, but it would be a giant leap for us .Net "hobby" programmers :D Regards, Herman.