COM/ATL programming expert to fix source code

Avg Bid (USD)
Project Budget (USD)
$30 - $250

Project Description:
Example project I posted is in VC6++ so you should be skilled in it and wrap around existing code!!

First download this ActiveX control:

Once you install the package, you will find MFC example source code in installation dir....

I tried making console version, but there are some errors... I took console example project from almost same ActiveX control(

...but there are some errors, and some features need to be added..
I am adding my VC6 project and also an application which sends some data to serial port, so you can test if project is working as it should..

In order for project to work, you must install DEMO of Serial Port Monitor AX.. Don't mix it with Serial Sniffer AX(from which I just took skeleton for console c++ application)!!!!!!
By installing DEMO, you will register spsniffer.dll on machine, as well as registering appropriate drivers automatically!!! Now you can proceed to testing the app...

This is what needs to be done(check example MFC project in installation dir of AX control to know exactly what and how needs to be done,to check methods etc.):
- make appropriate fixes to my supplied project
- test software on Windows XP,7,server 2003 etc...
- "switch (dispidMember){ ............ }" is most problematic part... I took this part from which is similar ActiveX control, but it's not same, so it doesn't work as it should.. That part needs to be rewritten from scratch..
For ex. I tried to write "CASE 12:" inside loop and (char*)pDispParams->rgvarg[1].bstrVal keeps previous value...
So, if first caught package was 123456789BBB , and second one was AAA , you will get this output value: AAA456789BBB .. Seems rgvarg[1].bstrVal is not cleared on something..
- Next, inside WinMain, I need program done in this way(check HELP file in installation dir of AX control for these few methods and properties):

numberofports=CountPorts(); // to check number of ALL available Serial ports, since program needs to monitor ALL available serial ports
portname=GetPortName(); // to get name of targeted port
call property IsSniffed() to check if port is already sniffed.. Shouldn't be, but test anyway, it's the proper way..
CreateThread[number_of_thread] , portname; // my project currently make 2 threads manually for COM1 and COM2, so I need it to be done dynamically
keep program running until it's closed by force or machine is rebooted/shut down
shut down threads and stop monitoring on program termination

- Another big problem I have now, is that I can't catch program termination successfully, so it doesn't stop monitoring properly.. And consequences of that are program freeze, OS freeze etc. I guess someone else will know how to handle MessageTranslate/Dispatch properly,,,
- write results from all monitored ports into one file.. So check for sharing violation etc.

- implement error checks
- check if spsniffer.dll is imported successfully and act accordingly.
- check what happens if massive amount of data starts passing through on multiple ports
- check how unicode strings get written
- check what happens when large amount of data is read/written on ports, to see if AX control crashes

- pay attention though that port monitoring doesn't end on port closing/opening!!! as it will auto-monitor on open/close.. Monitoring needs to end only on program termination!!!
- also, if spsniffer.dll can be included in application itself instead of it being in same directory as EXE, that would be nice...

Skills required:
C Programming, C++ Programming
Additional Files: main.rar
About the employer:
Public Clarification Board
Bids are hidden by the project creator. Log in as the employer to view bids or to bid on this project.
You will not be able to bid on this project if you are not qualified in one of the job categories. To see your qualifications click here.

Hire xuhaijiao
$ 210
in 7 days
$ 147
in 3 days
Hire mosc
$ 166
in 7 days
$ 221
in 10 days
$ 103
in 5 days