mirror of
https://github.com/reactos/reactos.git
synced 2025-02-22 16:36:33 +00:00
[RICHED20] Simplify MSVC thiscall & stdcall wrappers.
Imports Wine commit b64511c00a5.
This commit is contained in:
parent
343d6ea6dc
commit
49fbaa758e
5 changed files with 35 additions and 268 deletions
|
@ -25,10 +25,6 @@ list(APPEND SOURCE
|
||||||
writer.c
|
writer.c
|
||||||
precomp.h)
|
precomp.h)
|
||||||
|
|
||||||
if(MSVC AND (ARCH STREQUAL "i386"))
|
|
||||||
list(APPEND SOURCE msvc-thiscall.c)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
list(APPEND riched20_rc_deps
|
list(APPEND riched20_rc_deps
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/riched_tom.rgs
|
${CMAKE_CURRENT_SOURCE_DIR}/riched_tom.rgs
|
||||||
${CMAKE_CURRENT_BINARY_DIR}/riched_tom.tlb)
|
${CMAKE_CURRENT_BINARY_DIR}/riched_tom.tlb)
|
||||||
|
|
|
@ -1,121 +0,0 @@
|
||||||
#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 __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 DEFINE_STDCALL_WRAPPER(num,func,args) \
|
|
||||||
__declspec(naked) void __stdcall_##func(_tag_##func p1) \
|
|
||||||
{ \
|
|
||||||
__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_TxGetCurTargetX,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)
|
|
|
@ -1,143 +0,0 @@
|
||||||
|
|
||||||
|
|
||||||
#define __ASM_STDCALL_FUNC(name,args,code)
|
|
||||||
|
|
||||||
#define typeof(X_) __typeof_ ## X_
|
|
||||||
|
|
||||||
struct HDC__;
|
|
||||||
struct ITextHost;
|
|
||||||
struct tagRECT;
|
|
||||||
struct _RECTL;
|
|
||||||
struct _charformatw;
|
|
||||||
struct _paraformat;
|
|
||||||
struct tagPOINT;
|
|
||||||
enum _TXTBACKSTYLE;
|
|
||||||
struct tagSIZE;
|
|
||||||
struct ITextServices;
|
|
||||||
struct tagDVTARGETDEVICE;
|
|
||||||
struct IDropTarget;
|
|
||||||
|
|
||||||
#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_TxGetCurTargetX))(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
|
|
|
@ -502,6 +502,16 @@ DECLSPEC_HIDDEN HRESULT WINAPI ITextHostImpl_TxGetSelectionBarWidth(ITextHost *i
|
||||||
#ifdef __i386__ /* thiscall functions are i386-specific */
|
#ifdef __i386__ /* thiscall functions are i386-specific */
|
||||||
|
|
||||||
#define THISCALL(func) (void *) __thiscall_ ## func
|
#define THISCALL(func) (void *) __thiscall_ ## func
|
||||||
|
#ifdef _MSC_VER
|
||||||
|
#define DEFINE_THISCALL_WRAPPER(func,args) \
|
||||||
|
__declspec(naked) HRESULT __thiscall_##func(void) \
|
||||||
|
{ \
|
||||||
|
__asm pop eax \
|
||||||
|
__asm push ecx \
|
||||||
|
__asm push eax \
|
||||||
|
__asm jmp func \
|
||||||
|
}
|
||||||
|
#else /* _MSC_VER */
|
||||||
#define DEFINE_THISCALL_WRAPPER(func,args) \
|
#define DEFINE_THISCALL_WRAPPER(func,args) \
|
||||||
extern HRESULT __thiscall_ ## func(void); \
|
extern HRESULT __thiscall_ ## func(void); \
|
||||||
__ASM_GLOBAL_FUNC(__thiscall_ ## func, \
|
__ASM_GLOBAL_FUNC(__thiscall_ ## func, \
|
||||||
|
@ -509,6 +519,7 @@ DECLSPEC_HIDDEN HRESULT WINAPI ITextHostImpl_TxGetSelectionBarWidth(ITextHost *i
|
||||||
"pushl %ecx\n\t" \
|
"pushl %ecx\n\t" \
|
||||||
"pushl %eax\n\t" \
|
"pushl %eax\n\t" \
|
||||||
"jmp " __ASM_NAME(#func) __ASM_STDCALL(args) )
|
"jmp " __ASM_NAME(#func) __ASM_STDCALL(args) )
|
||||||
|
#endif /* _MSC_VER */
|
||||||
|
|
||||||
#else /* __i386__ */
|
#else /* __i386__ */
|
||||||
|
|
||||||
|
@ -560,6 +571,17 @@ DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxGetSelectionBarWidth,8)
|
||||||
#ifdef __i386__ /* thiscall functions are i386-specific */
|
#ifdef __i386__ /* thiscall functions are i386-specific */
|
||||||
|
|
||||||
#define STDCALL(func) (void *) __stdcall_ ## func
|
#define STDCALL(func) (void *) __stdcall_ ## func
|
||||||
|
#ifdef _MSC_VER
|
||||||
|
#define DEFINE_STDCALL_WRAPPER(num,func,args) \
|
||||||
|
__declspec(naked) HRESULT __stdcall_##func(void) \
|
||||||
|
{ \
|
||||||
|
__asm pop eax \
|
||||||
|
__asm pop ecx \
|
||||||
|
__asm push eax \
|
||||||
|
__asm mov eax, [ecx] \
|
||||||
|
__asm jmp dword ptr [eax + 4*num] \
|
||||||
|
}
|
||||||
|
#else /* _MSC_VER */
|
||||||
#define DEFINE_STDCALL_WRAPPER(num,func,args) \
|
#define DEFINE_STDCALL_WRAPPER(num,func,args) \
|
||||||
extern HRESULT __stdcall_ ## func(void); \
|
extern HRESULT __stdcall_ ## func(void); \
|
||||||
__ASM_GLOBAL_FUNC(__stdcall_ ## func, \
|
__ASM_GLOBAL_FUNC(__stdcall_ ## func, \
|
||||||
|
@ -568,6 +590,7 @@ DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxGetSelectionBarWidth,8)
|
||||||
"pushl %eax\n\t" \
|
"pushl %eax\n\t" \
|
||||||
"movl (%ecx), %eax\n\t" \
|
"movl (%ecx), %eax\n\t" \
|
||||||
"jmp *(4*(" #num "))(%eax)" )
|
"jmp *(4*(" #num "))(%eax)" )
|
||||||
|
#endif /* _MSC_VER */
|
||||||
|
|
||||||
DEFINE_STDCALL_WRAPPER(3,ITextHostImpl_TxGetDC,4)
|
DEFINE_STDCALL_WRAPPER(3,ITextHostImpl_TxGetDC,4)
|
||||||
DEFINE_STDCALL_WRAPPER(4,ITextHostImpl_TxReleaseDC,8)
|
DEFINE_STDCALL_WRAPPER(4,ITextHostImpl_TxReleaseDC,8)
|
||||||
|
|
|
@ -36,6 +36,16 @@
|
||||||
#ifdef __i386__ /* thiscall functions are i386-specific */
|
#ifdef __i386__ /* thiscall functions are i386-specific */
|
||||||
|
|
||||||
#define THISCALL(func) (void *) __thiscall_ ## func
|
#define THISCALL(func) (void *) __thiscall_ ## func
|
||||||
|
#ifdef _MSC_VER
|
||||||
|
#define DEFINE_THISCALL_WRAPPER(func,args) \
|
||||||
|
__declspec(naked) HRESULT __thiscall_##func(void) \
|
||||||
|
{ \
|
||||||
|
__asm pop eax \
|
||||||
|
__asm push ecx \
|
||||||
|
__asm push eax \
|
||||||
|
__asm jmp func \
|
||||||
|
}
|
||||||
|
#else /* _MSC_VER */
|
||||||
#define DEFINE_THISCALL_WRAPPER(func,args) \
|
#define DEFINE_THISCALL_WRAPPER(func,args) \
|
||||||
extern HRESULT __thiscall_ ## func(void); \
|
extern HRESULT __thiscall_ ## func(void); \
|
||||||
__ASM_GLOBAL_FUNC(__thiscall_ ## func, \
|
__ASM_GLOBAL_FUNC(__thiscall_ ## func, \
|
||||||
|
@ -43,6 +53,8 @@
|
||||||
"pushl %ecx\n\t" \
|
"pushl %ecx\n\t" \
|
||||||
"pushl %eax\n\t" \
|
"pushl %eax\n\t" \
|
||||||
"jmp " __ASM_NAME(#func) __ASM_STDCALL(args) )
|
"jmp " __ASM_NAME(#func) __ASM_STDCALL(args) )
|
||||||
|
#endif /* _MSC_VER */
|
||||||
|
|
||||||
#else /* __i386__ */
|
#else /* __i386__ */
|
||||||
|
|
||||||
#define THISCALL(func) func
|
#define THISCALL(func) func
|
||||||
|
|
Loading…
Reference in a new issue