Re[3]: Соглашения о вызовах ф-ций
От: Аноним  
Дата: 27.11.03 16:19
Оценка:
Здравствуйте, Yarrr, Вы писали:
[]
Y> — Перехват вызова метода СОМ объекта (DirectX) в чужой проге. (как ни странно, но при вызове параметры пихаются слева направо)
[]

Тогда Вам паскальная конвенция не нужна. COM-методы всегда используют конвенцию, заданную макросом STDMETHODCALLTYPE, который определен как stdcall:

/* basetypes.h */
....
#define STDMETHODCALLTYPE       __stdcall
....
#define STDMETHOD(method)       virtual HRESULT STDMETHODCALLTYPE method
....



Для примера (если не верите ):

/* ddraw.h */

DECLARE_INTERFACE_( IDirectDraw, IUnknown )
{
    /*** IUnknown methods ***/
    STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR * ppvObj) PURE;
    STDMETHOD_(ULONG,AddRef) (THIS)  PURE;
    STDMETHOD_(ULONG,Release) (THIS) PURE;
    /*** IDirectDraw methods ***/
    STDMETHOD(Compact)(THIS) PURE;
    STDMETHOD(CreateClipper)(THIS_ DWORD, LPDIRECTDRAWCLIPPER FAR*, IUnknown FAR * ) PURE;
    ......
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.