The problem might be in the prototypes of the functions.
If you look at the errors generated by the compiler you will observe that only the functions that have signed char type as one of the parameters are not recognized by compiler. You defined that parameters as signed char, but compiler looks for just char. Thus it doesn't recognize the functions you implemented in the class. In C++ there are 3 distinct types: signed char, unsigned char and char. Some compilers treat char as signed (such as VS compiler) and the other ones as unsigned. Anyway they are distinct types.
So please check the actual prototypes of the functions in header files generated by MIDL compiler and not those that are in correspondent IDL file that describes the interfaces. By definition, MIDL char is unsigned while VS C++ char is signed, that is why /char switch is used in MIDL compiler.
Please look here for the description of /char switch.