[RICHED20]
authorTimo Kreuzer <timo.kreuzer@reactos.org>
Sat, 12 Feb 2011 01:40:32 +0000 (01:40 +0000)
committerTimo Kreuzer <timo.kreuzer@reactos.org>
Sat, 12 Feb 2011 01:40:32 +0000 (01:40 +0000)
Fix compilation with MSVC
the small fix in txtsrv.c should be sent to wine (tm)

svn path=/branches/cmake-bringup/; revision=50664

dll/win32/riched20/CMakeLists.txt
dll/win32/riched20/msvc-thiscall.c [new file with mode: 0644]
dll/win32/riched20/msvc.h [new file with mode: 0644]
dll/win32/riched20/txtsrv.c

index 6120008..2d107ab 100644 (file)
@@ -30,14 +30,15 @@ list(APPEND SOURCE
     version.rc
     ${CMAKE_CURRENT_BINARY_DIR}/riched20.def)
 
+if(MSVC)
+    list(APPEND SOURCE msvc-thiscall.c)
+    set_source_files_properties(txthost.c txtsrv.c PROPERTIES COMPILE_FLAGS "/FImsvc.h")
+endif()
+
 add_library(riched20 SHARED ${SOURCE})
 set_module_type(riched20 win32dll)
 target_link_libraries(riched20 wine uuid)
 
-if(MSVC)
-    set_target_properties(riched20 PROPERTIES COMPILE_FLAGS "/FIwine/typeof.h")
-endif(MSVC)
-
 add_importlibs(riched20
     msvcrt
     ole32
diff --git a/dll/win32/riched20/msvc-thiscall.c b/dll/win32/riched20/msvc-thiscall.c
new file mode 100644 (file)
index 0000000..9442e0f
--- /dev/null
@@ -0,0 +1,124 @@
+#include "config.h"
+#include "editor.h"
+
+#define DEFINE_THISCALL_WRAPPER(func,args) \
+    typedef struct {int x[args/4];} _tag_##func; \
+    void __stdcall func(_tag_##func p1); \
+    __declspec(naked) void __stdcall __thiscall_##func(_tag_##func p1) \
+    { \
+        __asm pop eax \
+        __asm push ecx \
+        __asm push eax \
+        __asm jmp func \
+    }
+
+DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxGetDC,4)
+DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxReleaseDC,8)
+DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxShowScrollBar,12)
+DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxEnableScrollBar,12)
+DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxSetScrollRange,20)
+DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxSetScrollPos,16)
+DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxInvalidateRect,12)
+DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxViewChange,8)
+DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxCreateCaret,16)
+DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxShowCaret,8)
+DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxSetCaretPos,12)
+DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxSetTimer,12)
+DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxKillTimer,8)
+DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxScrollWindowEx,32)
+DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxSetCapture,8)
+DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxSetFocus,4)
+DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxSetCursor,12)
+DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxScreenToClient,8)
+DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxClientToScreen,8)
+DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxActivate,8)
+DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxDeactivate,8)
+DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxGetClientRect,8)
+DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxGetViewInset,8)
+DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxGetCharFormat,8)
+DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxGetParaFormat,8)
+DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxGetSysColor,8)
+DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxGetBackStyle,8)
+DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxGetMaxLength,8)
+DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxGetScrollBars,8)
+DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxGetPasswordChar,8)
+DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxGetAcceleratorPos,8)
+DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxGetExtent,8)
+DEFINE_THISCALL_WRAPPER(ITextHostImpl_OnTxCharFormatChange,8)
+DEFINE_THISCALL_WRAPPER(ITextHostImpl_OnTxParaFormatChange,8)
+DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxGetPropertyBits,12)
+DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxNotify,12)
+DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxImmGetContext,4)
+DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxImmReleaseContext,8)
+DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxGetSelectionBarWidth,8)
+
+#define STDCALL(func) __stdcall_ ## func
+#define DEFINE_STDCALL_WRAPPER(num,func,args) \
+    __declspec(naked) void __stdcall __stdcall_##func(_tag_##func p1) \
+    { \
+        __asm pop eax \
+        __asm pop eax \
+        __asm pop ecx \
+        __asm push eax \
+        __asm mov eax, [ecx] \
+        __asm jmp dword ptr [eax + 4*num] \
+    }
+
+DEFINE_STDCALL_WRAPPER(3,ITextHostImpl_TxGetDC,4)
+DEFINE_STDCALL_WRAPPER(4,ITextHostImpl_TxReleaseDC,8)
+DEFINE_STDCALL_WRAPPER(5,ITextHostImpl_TxShowScrollBar,12)
+DEFINE_STDCALL_WRAPPER(6,ITextHostImpl_TxEnableScrollBar,12)
+DEFINE_STDCALL_WRAPPER(7,ITextHostImpl_TxSetScrollRange,20)
+DEFINE_STDCALL_WRAPPER(8,ITextHostImpl_TxSetScrollPos,16)
+DEFINE_STDCALL_WRAPPER(9,ITextHostImpl_TxInvalidateRect,12)
+DEFINE_STDCALL_WRAPPER(10,ITextHostImpl_TxViewChange,8)
+DEFINE_STDCALL_WRAPPER(11,ITextHostImpl_TxCreateCaret,16)
+DEFINE_STDCALL_WRAPPER(12,ITextHostImpl_TxShowCaret,8)
+DEFINE_STDCALL_WRAPPER(13,ITextHostImpl_TxSetCaretPos,12)
+DEFINE_STDCALL_WRAPPER(14,ITextHostImpl_TxSetTimer,12)
+DEFINE_STDCALL_WRAPPER(15,ITextHostImpl_TxKillTimer,8)
+DEFINE_STDCALL_WRAPPER(16,ITextHostImpl_TxScrollWindowEx,32)
+DEFINE_STDCALL_WRAPPER(17,ITextHostImpl_TxSetCapture,8)
+DEFINE_STDCALL_WRAPPER(18,ITextHostImpl_TxSetFocus,4)
+DEFINE_STDCALL_WRAPPER(19,ITextHostImpl_TxSetCursor,12)
+DEFINE_STDCALL_WRAPPER(20,ITextHostImpl_TxScreenToClient,8)
+DEFINE_STDCALL_WRAPPER(21,ITextHostImpl_TxClientToScreen,8)
+DEFINE_STDCALL_WRAPPER(22,ITextHostImpl_TxActivate,8)
+DEFINE_STDCALL_WRAPPER(23,ITextHostImpl_TxDeactivate,8)
+DEFINE_STDCALL_WRAPPER(24,ITextHostImpl_TxGetClientRect,8)
+DEFINE_STDCALL_WRAPPER(25,ITextHostImpl_TxGetViewInset,8)
+DEFINE_STDCALL_WRAPPER(26,ITextHostImpl_TxGetCharFormat,8)
+DEFINE_STDCALL_WRAPPER(27,ITextHostImpl_TxGetParaFormat,8)
+DEFINE_STDCALL_WRAPPER(28,ITextHostImpl_TxGetSysColor,8)
+DEFINE_STDCALL_WRAPPER(29,ITextHostImpl_TxGetBackStyle,8)
+DEFINE_STDCALL_WRAPPER(30,ITextHostImpl_TxGetMaxLength,8)
+DEFINE_STDCALL_WRAPPER(31,ITextHostImpl_TxGetScrollBars,8)
+DEFINE_STDCALL_WRAPPER(32,ITextHostImpl_TxGetPasswordChar,8)
+DEFINE_STDCALL_WRAPPER(33,ITextHostImpl_TxGetAcceleratorPos,8)
+DEFINE_STDCALL_WRAPPER(34,ITextHostImpl_TxGetExtent,8)
+DEFINE_STDCALL_WRAPPER(35,ITextHostImpl_OnTxCharFormatChange,8)
+DEFINE_STDCALL_WRAPPER(36,ITextHostImpl_OnTxParaFormatChange,8)
+DEFINE_STDCALL_WRAPPER(37,ITextHostImpl_TxGetPropertyBits,12)
+DEFINE_STDCALL_WRAPPER(38,ITextHostImpl_TxNotify,12)
+DEFINE_STDCALL_WRAPPER(39,ITextHostImpl_TxImmGetContext,4)
+DEFINE_STDCALL_WRAPPER(40,ITextHostImpl_TxImmReleaseContext,8)
+DEFINE_STDCALL_WRAPPER(41,ITextHostImpl_TxGetSelectionBarWidth,8)
+
+DEFINE_THISCALL_WRAPPER(fnTextSrv_TxSendMessage,20)
+DEFINE_THISCALL_WRAPPER(fnTextSrv_TxDraw,52)
+DEFINE_THISCALL_WRAPPER(fnTextSrv_TxGetHScroll,24)
+DEFINE_THISCALL_WRAPPER(fnTextSrv_TxGetVScroll,24)
+DEFINE_THISCALL_WRAPPER(fnTextSrv_OnTxSetCursor,40)
+DEFINE_THISCALL_WRAPPER(fnTextSrv_TxQueryHitPoint,44)
+DEFINE_THISCALL_WRAPPER(fnTextSrv_OnTxInplaceActivate,8)
+DEFINE_THISCALL_WRAPPER(fnTextSrv_OnTxInplaceDeactivate,4)
+DEFINE_THISCALL_WRAPPER(fnTextSrv_OnTxUIActivate,4)
+DEFINE_THISCALL_WRAPPER(fnTextSrv_OnTxUIDeactivate,4)
+DEFINE_THISCALL_WRAPPER(fnTextSrv_TxGetText,8)
+DEFINE_THISCALL_WRAPPER(fnTextSrv_TxSetText,8)
+DEFINE_THISCALL_WRAPPER(fnTextSrv_TxGetCurrentTargetX,8)
+DEFINE_THISCALL_WRAPPER(fnTextSrv_TxGetBaseLinePos,8)
+DEFINE_THISCALL_WRAPPER(fnTextSrv_TxGetNaturalSize,36)
+DEFINE_THISCALL_WRAPPER(fnTextSrv_TxGetDropTarget,8)
+DEFINE_THISCALL_WRAPPER(fnTextSrv_OnTxPropertyBitsChange,12)
+DEFINE_THISCALL_WRAPPER(fnTextSrv_TxGetCachedSize,12)
diff --git a/dll/win32/riched20/msvc.h b/dll/win32/riched20/msvc.h
new file mode 100644 (file)
index 0000000..251a7ce
--- /dev/null
@@ -0,0 +1,138 @@
+
+
+#define __ASM_STDCALL_FUNC(name,args,code)
+
+#define typeof(X_) __typeof_ ## X_
+
+struct ITextHost;
+struct _RECT;
+struct _CHARFORMATW;
+struct _PARAFORMAT;
+struct _POINT;
+struct _SIZEL;
+struct HDC__;
+
+#define WINAPI __stdcall
+#define HRESULT int
+#define HDC struct HDC__*
+#define BOOL int
+#define HIMC void*
+#define ITextHost struct ITextHost
+#define INT int
+#define UINT unsigned int
+#define HBITMAP void*
+#define LPCRECT const struct tagRECT *
+#define LPRECT struct tagRECT *
+#define LPCRECTL const struct _RECTL*
+#define CHARFORMATW struct _charformatw
+#define PARAFORMAT struct _paraformat
+#define DWORD unsigned int /* HACK */
+#define COLORREF DWORD
+#define LONG int /* HACK */
+#define WPARAM unsigned long
+#define LPARAM long
+#define HRGN void*
+#define HCURSOR void*
+#define LPPOINT struct tagPOINT*
+#define TXTBACKSTYLE enum _TXTBACKSTYLE
+#define WCHAR unsigned short
+#define BSTR WCHAR*
+#define LPCWSTR const WCHAR *
+#define SIZEL struct tagSIZE
+#define LPSIZEL struct tagSIZE*
+#define ITextServices struct ITextServices
+#define LRESULT long
+#define DVTARGETDEVICE struct tagDVTARGETDEVICE
+
+typedef HDC (WINAPI typeof(ITextHostImpl_TxGetDC))(ITextHost * iface);
+typedef int (WINAPI typeof(ITextHostImpl_TxReleaseDC))(ITextHost *iface,HDC hdc);
+typedef BOOL (WINAPI typeof(ITextHostImpl_TxShowScrollBar))(ITextHost *iface,INT fnBar,BOOL fShow);
+typedef BOOL (WINAPI typeof(ITextHostImpl_TxEnableScrollBar))(ITextHost *iface,INT fuSBFlags,INT fuArrowflags);
+typedef BOOL (WINAPI typeof(ITextHostImpl_TxSetScrollRange))(ITextHost *iface,INT fnBar,LONG nMinPos,INT nMaxPos,BOOL fRedraw);
+typedef BOOL (WINAPI typeof(ITextHostImpl_TxSetScrollPos))(ITextHost *iface,INT fnBar,INT nPos,BOOL fRedraw);
+typedef void (WINAPI typeof(ITextHostImpl_TxInvalidateRect))(ITextHost *iface,LPCRECT prc,BOOL fMode);
+typedef void (WINAPI typeof(ITextHostImpl_TxViewChange))(ITextHost *iface,BOOL fUpdate);
+typedef BOOL (WINAPI typeof(ITextHostImpl_TxCreateCaret))(ITextHost *iface,HBITMAP hbmp,INT xWidth, INT yHeight);
+typedef BOOL (WINAPI typeof(ITextHostImpl_TxShowCaret))(ITextHost *iface, BOOL fShow);
+typedef BOOL (WINAPI typeof(ITextHostImpl_TxSetCaretPos))(ITextHost *iface,INT x, INT y);
+typedef BOOL (WINAPI typeof(ITextHostImpl_TxSetTimer))(ITextHost *iface,UINT idTimer, UINT uTimeout);
+typedef void (WINAPI typeof(ITextHostImpl_TxKillTimer))(ITextHost *iface,UINT idTimer);
+typedef void (WINAPI typeof(ITextHostImpl_TxScrollWindowEx))(ITextHost *iface,INT dx, INT dy,LPCRECT lprcScroll,LPCRECT lprcClip,HRGN hRgnUpdate,LPRECT lprcUpdate,UINT fuScroll);
+typedef void (WINAPI typeof(ITextHostImpl_TxSetCapture))(ITextHost *iface,BOOL fCapture);
+typedef void (WINAPI typeof(ITextHostImpl_TxSetFocus))(ITextHost *iface);
+typedef void (WINAPI typeof(ITextHostImpl_TxSetCursor))(ITextHost *iface,HCURSOR hcur,BOOL fText);
+typedef BOOL (WINAPI typeof(ITextHostImpl_TxScreenToClient))(ITextHost *iface,LPPOINT lppt);
+typedef BOOL (WINAPI typeof(ITextHostImpl_TxClientToScreen))(ITextHost *iface,LPPOINT lppt);
+typedef HRESULT (WINAPI typeof(ITextHostImpl_TxActivate))(ITextHost *iface,LONG *plOldState);
+typedef HRESULT (WINAPI typeof(ITextHostImpl_TxDeactivate))(ITextHost *iface,LONG lNewState);
+typedef HRESULT (WINAPI typeof(ITextHostImpl_TxGetClientRect))(ITextHost *iface,LPRECT prc);
+typedef HRESULT (WINAPI typeof(ITextHostImpl_TxGetViewInset))(ITextHost *iface,LPRECT prc);
+typedef HRESULT (WINAPI typeof(ITextHostImpl_TxGetCharFormat))(ITextHost *iface,const CHARFORMATW **ppCF);
+typedef HRESULT (WINAPI typeof(ITextHostImpl_TxGetParaFormat))(ITextHost *iface,const PARAFORMAT **ppPF);
+typedef COLORREF (WINAPI typeof(ITextHostImpl_TxGetSysColor))(ITextHost *iface,int nIndex);
+typedef HRESULT (WINAPI typeof(ITextHostImpl_TxGetBackStyle))(ITextHost *iface,TXTBACKSTYLE *pStyle);
+typedef HRESULT (WINAPI typeof(ITextHostImpl_TxGetMaxLength))(ITextHost *iface,DWORD *pLength);
+typedef HRESULT (WINAPI typeof(ITextHostImpl_TxGetScrollBars))(ITextHost *iface,DWORD *pdwScrollBar);
+typedef HRESULT (WINAPI typeof(ITextHostImpl_TxGetPasswordChar))(ITextHost *iface,WCHAR *pch);
+typedef HRESULT (WINAPI typeof(ITextHostImpl_TxGetAcceleratorPos))(ITextHost *iface,LONG *pch);
+typedef HRESULT (WINAPI typeof(ITextHostImpl_TxGetExtent))(ITextHost *iface,LPSIZEL lpExtent);
+typedef HRESULT (WINAPI typeof(ITextHostImpl_OnTxCharFormatChange))(ITextHost *iface,const CHARFORMATW *pcf);
+typedef HRESULT (WINAPI typeof(ITextHostImpl_OnTxParaFormatChange))(ITextHost *iface,const PARAFORMAT *ppf);
+typedef HRESULT (WINAPI typeof(ITextHostImpl_TxGetPropertyBits))(ITextHost *iface,DWORD dwMask,DWORD *pdwBits);
+typedef HRESULT (WINAPI typeof(ITextHostImpl_TxNotify))(ITextHost *iface,DWORD iNotify,void *pv);
+typedef HIMC (WINAPI typeof(ITextHostImpl_TxImmGetContext))(ITextHost *iface);
+typedef void (WINAPI typeof(ITextHostImpl_TxImmReleaseContext))(ITextHost *iface,HIMC himc);
+typedef HRESULT (WINAPI typeof(ITextHostImpl_TxGetSelectionBarWidth))(ITextHost *iface,LONG *lSelBarWidth);
+
+typedef HRESULT (WINAPI typeof(fnTextSrv_TxSendMessage))(ITextServices *iface,UINT msg,WPARAM wparam,LPARAM lparam,LRESULT* plresult);
+typedef HRESULT (WINAPI typeof(fnTextSrv_TxDraw))(ITextServices *iface,DWORD dwDrawAspect,LONG lindex,void* pvAspect,DVTARGETDEVICE* ptd,HDC hdcDraw,HDC hdcTargetDev,LPCRECTL lprcBounds,LPCRECTL lprcWBounds,LPRECT lprcUpdate,BOOL (__stdcall * pfnContinue)(DWORD),DWORD dwContinue,LONG lViewId);
+typedef HRESULT (WINAPI typeof(fnTextSrv_TxGetHScroll))(ITextServices *iface,LONG* plMin,LONG* plMax,LONG* plPos,LONG* plPage,BOOL* pfEnabled);
+typedef HRESULT (WINAPI typeof(fnTextSrv_TxGetVScroll))(ITextServices *iface,LONG* plMin,LONG* plMax,LONG* plPos,LONG* plPage,BOOL* pfEnabled);
+typedef HRESULT (WINAPI typeof(fnTextSrv_OnTxSetCursor))(ITextServices *iface,DWORD dwDrawAspect,LONG lindex,void* pvAspect,DVTARGETDEVICE* ptd,HDC hdcDraw,HDC hicTargetDev,LPCRECT lprcClient,INT x, INT y);
+typedef HRESULT (WINAPI typeof(fnTextSrv_TxQueryHitPoint))(ITextServices *iface,DWORD dwDrawAspect,LONG lindex,void* pvAspect,DVTARGETDEVICE* ptd,HDC hdcDraw,HDC hicTargetDev,LPCRECT lprcClient,INT x, INT y,DWORD* pHitResult);
+typedef HRESULT (WINAPI typeof(fnTextSrv_OnTxInplaceActivate))(ITextServices *iface,LPCRECT prcClient);
+typedef HRESULT (WINAPI typeof(fnTextSrv_OnTxInplaceDeactivate))(ITextServices *iface);
+typedef HRESULT (WINAPI typeof(fnTextSrv_OnTxUIActivate))(ITextServices *iface);
+typedef HRESULT (WINAPI typeof(fnTextSrv_OnTxUIDeactivate))(ITextServices *iface);
+typedef HRESULT (WINAPI typeof(fnTextSrv_TxGetText))(ITextServices *iface,BSTR* pbstrText);
+typedef HRESULT (WINAPI typeof(fnTextSrv_TxSetText))(ITextServices *iface,LPCWSTR pszText);
+typedef HRESULT (WINAPI typeof(fnTextSrv_TxGetCurrentTargetX))(ITextServices *iface,LONG* x);
+typedef HRESULT (WINAPI typeof(fnTextSrv_TxGetBaseLinePos))(ITextServices *iface,LONG* x);
+typedef HRESULT (WINAPI typeof(fnTextSrv_TxGetNaturalSize))(ITextServices *iface,DWORD dwAspect,HDC hdcDraw,HDC hicTargetDev,DVTARGETDEVICE* ptd,DWORD dwMode,const SIZEL* psizelExtent,LONG* pwidth,LONG* pheight);
+typedef HRESULT (WINAPI typeof(fnTextSrv_TxGetDropTarget))(ITextServices *iface,struct IDropTarget** ppDropTarget);
+typedef HRESULT (WINAPI typeof(fnTextSrv_OnTxPropertyBitsChange))(ITextServices *iface,DWORD dwMask,DWORD dwBits);
+typedef HRESULT (WINAPI typeof(fnTextSrv_TxGetCachedSize))(ITextServices *iface,DWORD* pdwWidth,DWORD* pdwHeight);
+
+#undef WINAPI
+#undef HRESULT
+#undef HDC
+#undef BOOL
+#undef COLORREF
+#undef HIMC
+#undef ITextHost
+#undef INT
+#undef UINT
+#undef HBITMAP
+#undef LPCRECT
+#undef LPRECT
+#undef LPCRECTL
+#undef CHARFORMATW
+#undef PARAFORMAT
+#undef DWORD
+#undef LONG
+#undef WPARAM
+#undef LPARAM
+#undef HRGN
+#undef HCURSOR
+#undef LPPOINT
+#undef TXTBACKSTYLE
+#undef WCHAR
+#undef BSTR
+#undef LPCWSTR
+#undef SIZEL
+#undef LPSIZEL
+#undef ITextServices
+#undef LRESULT
+#undef DVTARGETDEVICE
+
+//#undef typeof
index 7ab2af4..8db45e8 100644 (file)
@@ -88,7 +88,10 @@ HRESULT WINAPI CreateTextServices(IUnknown  * pUnkOuter,
    ITextImpl->lpVtbl = &textservices_Vtbl;
    ITextImpl->editor = ME_MakeEditor(pITextHost, FALSE);
    ITextImpl->editor->exStyleFlags = 0;
-   ITextImpl->editor->rcFormat = (RECT){0,0,0,0};
+   ITextImpl->editor->rcFormat.left = 0;
+   ITextImpl->editor->rcFormat.top = 0;
+   ITextImpl->editor->rcFormat.right = 0;
+   ITextImpl->editor->rcFormat.bottom = 0;
    ME_HandleMessage(ITextImpl->editor, WM_CREATE, 0, 0, TRUE, &hres);
 
    if (pUnkOuter)