mlang: A very basic implementation of the IMLangLineBreakConsole interface and IMLangString interface.
diff --git a/include/mlang.idl b/include/mlang.idl index fabcc59..2b236c7 100644 --- a/include/mlang.idl +++ b/include/mlang.idl
@@ -222,6 +222,94 @@ } [ + object, + uuid(c04d65ce-b70d-11d0-b188-00aa0038c969), + pointer_default(unique) +] +interface IMLangString : IUnknown +{ +#ifdef NEWMLSTR + HRESULT LockMLStr( + [in] long lPos, + [in] DWORD dwFlags, + [out] DWORD* pdwCookie, + [out] long* plActualPos, + [out] long* plActualLen); + + HRESULT UnlockMLStr( + [in] DWORD dwCookie); +#else + HRESULT Sync( + [in] BOOL fNoAccess); +#endif + HRESULT GetLength( + [out, retval] long* plLen); + HRESULT SetMLStr( + [in] long lDestPos, + [in] long lDestLen, + [in] IUnknown *pSrcMLStr, + [in] long lSrcPos, + [in] long lSrcLen); +#ifdef NEWMLSTR + HRESULT RegisterAttr( + [in] IUnknown *pUnk, + [out] DWORD* pdwCookie); + HRESULT UnregisterAttr( + [in] DWORD dwCookie); + HRESULT EnumAttr( + [out] IEnumUnknown **ppEnumUnk); + HRESULT FindAttr( + [in] REFIID riid, + [in] LPARAM lParam, + [out] IUnknown **ppUnk); +#else + HRESULT GetMLStr( + [in] long lSrcPos, + [in] long lSrcLen, + [in] IUnknown *pUnkOuter, + [in] DWORD dwClsContext, + [in] const IID* piid, + [out] IUnknown** ppDestMLStr, + [out] long* plDestPos, + [out] long* plDestLen); +#endif +} + +[ + object, + uuid(f5be2ee1-bfd7-11d0-b188-00aa0038c969), + pointer_default(unique) +] +interface IMLangLineBreakConsole : IUnknown +{ + HRESULT BreakLineML( + [in] IMLangString* pSrcMLStr, + [in] long lSrcPos, + [in] long lSrcLen, + [in] long cMinColumns, + [in] long cMaxColumns, + [out] long* plLineLen, + [out] long* plSkipLen); + + HRESULT BreakLineW( + [in] LCID locale, + [in, size_is(cchSrc)] const WCHAR* pszSrc, + [in] long cchSrc, + [in] long cMaxColumns, + [out] long* pcchLine, + [out] long* pcchSkip ); + + HRESULT BreakLineA( + [in] LCID locale, + [in] UINT uCodePage, + [in, size_is(cchSrc)] const CHAR* pszSrc, + [in] long cchSrc, + [in] long cMaxColumns, + [out] long* pcchLine, + [out] long* pcchSkip); +} + +[ object, uuid(275c23e3-3747-11d0-9fea-00aa003f8646), pointer_default(unique)