I am working with a 32-bit ERP application, called WJ. The purpose of WJ is for the user to enter all his hourlies and expenses that are later used to create an invoice.
Invoice creation works by way of a Word document communicating with WJ over DDE and collecting all the required information, i.e. the Word document acting as the DDE client and WJ as the DDE server. This is currently done using VBA.
My goal is to replace the VBA code or parts of it with a compiled library that can be referenced from VBA.
I prefer for this library to be written in C#. Unfortunately, however, Microsoft does not offer a .NET library for DDE, one must write all the interop calls themselves. Or they can use the publicly available library NDDE by B. Gideon which has already done most of the work.
I tried this and as it turns out, NDDE seems to have issues when dealing with Unicode that I cannot solve myself. I described a small part of the problem on StackOverflow. See [login to view URL]
I am looking for a developer who can help me with this. Your task is to create a C# library, a proof of concept, that can be referenced from MS Word and that is able to communicate with the DDE server of WJ. The library must be capable to perform the following DDE transactions:
- Connecting to the DDE Server and disconnecting from it (XTYP_CONNECT and XTYP_DISCONNECT)
- Executing DDE commands (XTYP_EXECUTE)
- Querying the DDE Server (XTYP_REQUEST)
- Sending data to the DDE Server (XTYP_POKE)
The developer can choose freely if he wants to use NDDE in parts or as a whole or if he/she feels more comfortable writing the required interop calls himself/herself. The choice should be made in favor of reduced cost and complexity. In any case, it is expected of the developer to deliver well commented code that is following the SOLID principles.
Upon acceptance, you will receive the application and test data so that you can work on this problem on your own infrastructure and in your own schedule.
For the project, a fixed fee will be paid. If there is interest on both sides, the developer will be tasked to fully develop the solution. Please provide your hourly fee at which you are willing to continue working on the same code after the project is finished.