// Test.h : Declaration of the CTest #pragma once #include "resource.h" // main symbols #include "atlcomcli.h" // ITest [ object, uuid("720F46ED-0319-4E3A-BFED-EF6DE1B6E4F7"), dual, helpstring("ITest Interface"), pointer_default(unique) ] __interface ITest : IDispatch { [id(1), helpstring("method putString")] HRESULT putString([in] BSTR bstr); [id(2), helpstring("method getString")] HRESULT getString([out] BSTR* bstr); }; // CTest [ coclass, threading("apartment"), vi_progid("AttribATL.Test"), progid("AttribATL.Test.1"), version(1.0), uuid("CC51A06F-70D1-4113-A821-3756FC45ADF9"), helpstring("Test Class") ] class ATL_NO_VTABLE CTest : public ITest { public: CTest() { } DECLARE_PROTECT_FINAL_CONSTRUCT() HRESULT FinalConstruct() { return S_OK; } void FinalRelease() { } public: STDMETHOD(putString)(BSTR bstr); STDMETHOD(getString)(BSTR* bstr); private: CComBSTR _bstr; };