I was working on COM/ATL. I need to use a class object as return value so that it can be used in managed code. I am able to define structure in idl file and also able to use it as return parameter when creating methods. Below is the partial idl file implementation:
import "oaidl.idl";
import "ocidl.idl";
//Structure for message mapping of activation and deactivation
//Structures are working properly
[uuid(E2240D8B-EB97-4ACD-AC96-21F2EAFFE100)]
struct tagActivationManaged
{
WORD wMsgId;
WORD wStatus;
WORD wClient;
WORD wClientId;
};
//same manner if creating class it throws error.
[uuid(2ED2E59C-9362-46b2-80D8-471AD69BA5D5)]
class AuthenticationMessage
{
public:
Word message;
}
do I need to change any settings in MIDL.
NB: I am new to COM programming.
You just can't do that - there're no C++ flavor classes in IDL. If you want to return an object of some class from a function you have to declare an
interface
and possibly acoclass
(the latter may not be required depending on your sitiation) and make the function return that interface.