Hi Konstantin,
> IElementSegment interface too? I have changed it in try2 > > > Also, one question about retval attributes. There can be only one > attribute in > one method? For example, in IMarkupPointer interface: > HRESULT Right( > [in] BOOL fMove, > [out] MARKUP_CONTEXT_TYPE *pContext, > [out] IHTMLElement **ppElement, > [out] long *pcch, > [retval, out] OLECHAR *pchText); > It is correct now? Try 1 contained four attributes "retval" in this > method... > I function can only have one [retval] per function, and the rest should be out. In this case there isn't a retval. Here is for prototype for Right, note the pcch is an [in, out] HRESULT Right([in] BOOL fMove,[out] MARKUP_CONTEXT_TYPE* pContext,[out] IHTMLElement** ppElement,[in, out] long* pcch,[out, size_is(*pcch)] OLECHAR* pchText) Have a look at http://msdn.microsoft.com/en-us/library/aa703614(VS.85).aspx for the IMarkupPointer interface. Best Regards Alistair Leslie-Hughes