// Sum.h : Declaration of the CSum #pragma once #include "resource.h" // main symbols // ISum [ object, uuid("6D168EF5-B934-4777-892E-2B3E7B940779"), dual, helpstring("ISum Interface"), pointer_default(unique) ] __interface ISum : IDispatch { [id(1), helpstring("method add")] HRESULT add([in] DOUBLE left, [in] DOUBLE right, [out] DOUBLE* result); }; // CSum [ coclass, threading("apartment"), vi_progid("ATLattrib.Sum"), progid("ATLattrib.Sum.1"), version(1.0), uuid("3ADD6447-7AAE-4904-B21B-BB4F83CA62CA"), helpstring("Sum Class") ] class ATL_NO_VTABLE CSum : public ISum { public: CSum() { } DECLARE_PROTECT_FINAL_CONSTRUCT() HRESULT FinalConstruct() { return S_OK; } void FinalRelease() { } public: STDMETHOD(add)(DOUBLE left, DOUBLE right, DOUBLE* result); };