import "oaidl.idl"; cpp_quote("DEFINE_GUID(IID_IAutoSock, 0xbcc31109,0xe14a,0x11d2,0x83,0x5e,0x00,0x80,0xc7,0xe1,0x1d,0x99);") cpp_quote("DEFINE_GUID(LIBID_AutoSockLib, 0x9ca6ce5e,0xe14a,0x11d2,0x83,0x5e,0x00,0x80,0xc7,0xe1,0x1d,0x99);") cpp_quote("DEFINE_GUID(CLSID_AutoSock, 0x28cb3d0e,0xe14a,0x11d2,0x83,0x5e,0x00,0x80,0xc7,0xe1,0x1d,0x99);") #define PROPERTY_RW(type, name, prid) \ [propget, id(prid)] \ HRESULT name([out, retval] type * pRetVal); \ \ [propput, id(prid)] \ HRESULT name([in] type NewVal) #define PROPERTY_RO(type, name, prid) \ [propget, id(prid)] \ HRESULT name([out, retval] type * pRetVal) #define PROPERTY_WO(type, name, prid) \ [propput, id(prid)] \ HRESULT name([in] type NewVal) [ uuid(bcc31109-e14a-11d2-835e-0080c7e11d99), object, dual, pointer_default(unique) ] interface IAutoSock : IDispatch { HRESULT Connect(BSTR IpAddress); HRESULT Send(BSTR Data); HRESULT Recv([out, retval]BSTR *ppRetVal); HRESULT Close(); }; [ uuid(9ca6ce5e-e14a-11d2-835e-0080c7e11d99), version(1.0) ] library AutoSockLib { importlib("stdole32.tlb"); importlib("stdole2.tlb"); [uuid(28cb3d0e-e14a-11d2-835e-0080c7e11d99)] coclass AutoSock { [default] interface IAutoSock; }; };