I tried passing the structure given below

typedef struct _dcmureturn
{
INT m_CCRactivestep;
INT m_numburntlamps;
INT m_CCRshudowncause;
BOOL m_CCRpowerloss;
BOOL m_CCR_VA_drop_tenpc;
BOOL m_CCRfail_comanded_op_current;
BOOL m_CCR_status;
ULONG m_CCR_rms_op_current;
ULONG m_CCR_rms_op_voltage;

}DCMURETURN;

as [out] parameter in my interface shown below {from .idl file}

***************************************************************************

interface Iccr : IDispatch
{
[id(1), helpstring("method switchon")] HRESULT switchon([in] BSTR cricuitID, [in] INT step, [in] INT spare);
[id(2), helpstring("method getstatus")] HRESULT getstatus([in] BSTR circuitID, [out] DCMURETURN* pdcmuret);
};


*****************************************************************************

I get the following warning during compilation


"warning MIDL2039 : interface does not conform to [oleautomation] attribute : [ Parameter 'pdcmuret' of Procedure 'getstatus' ( Interface 'Iccr' ) ]"



The DCMURETURN structure is declared in the same .idl file.



I also get two other warnings

(1) warning C4244: '=' : conversion from 'const double' to 'unsigned long', possible loss of data

(2) : warning C4244: '=' : conversion from 'const double' to 'unsigned long', possible loss of data



I urgently require help on this. If you can help please do.

NOTE: I am new to COM/DCOM