Microsoft com vtable compatibility workaround for g++. Basically adds
an optional 8 bytes padding to COM objects where the RTTI would be.
This commit is contained in:
parent
ddca315388
commit
2305f3c06d
|
@ -152,6 +152,7 @@ static HRESULT WINAPI IAVIFile_fnDeleteStream(IAVIFile*iface,DWORD fccType,LONG
|
|||
}
|
||||
|
||||
struct ICOM_VTABLE(IAVIFile) iavift = {
|
||||
ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
|
||||
IAVIFile_fnQueryInterface,
|
||||
IAVIFile_fnAddRef,
|
||||
IAVIFile_fnRelease,
|
||||
|
@ -330,6 +331,7 @@ HRESULT WINAPI IAVIStream_fnSetInfo(IAVIStream*iface,AVISTREAMINFOW*info,LONG in
|
|||
}
|
||||
|
||||
struct ICOM_VTABLE(IAVIStream) iavist = {
|
||||
ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
|
||||
IAVIStream_fnQueryInterface,
|
||||
IAVIStream_fnAddRef,
|
||||
IAVIStream_fnRelease,
|
||||
|
|
|
@ -455,6 +455,7 @@ static HRESULT WINAPI IContextMenu_fnHandleMenuMsg(
|
|||
*/
|
||||
static struct ICOM_VTABLE(IContextMenu) cmvt =
|
||||
{
|
||||
ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
|
||||
IContextMenu_fnQueryInterface,
|
||||
IContextMenu_fnAddRef,
|
||||
IContextMenu_fnRelease,
|
||||
|
|
|
@ -43,6 +43,7 @@ static HRESULT WINAPI IEnumFORMATETC_fnClone(LPENUMFORMATETC iface, LPENUMFORMAT
|
|||
|
||||
static struct ICOM_VTABLE(IEnumFORMATETC) efvt =
|
||||
{
|
||||
ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
|
||||
IEnumFORMATETC_fnQueryInterface,
|
||||
IEnumFORMATETC_fnAddRef,
|
||||
IEnumFORMATETC_fnRelease,
|
||||
|
@ -363,6 +364,7 @@ static HRESULT WINAPI IDataObject_fnEnumDAdvise(LPDATAOBJECT iface, IEnumSTATDAT
|
|||
|
||||
static struct ICOM_VTABLE(IDataObject) dtovt =
|
||||
{
|
||||
ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
|
||||
IDataObject_fnQueryInterface,
|
||||
IDataObject_fnAddRef,
|
||||
IDataObject_fnRelease,
|
||||
|
|
|
@ -401,7 +401,9 @@ static BOOL WINAPI IEnumIDList_fnDeleteList(
|
|||
* IEnumIDList_fnVTable
|
||||
*/
|
||||
static ICOM_VTABLE (IEnumIDList) eidlvt =
|
||||
{ IEnumIDList_fnQueryInterface,
|
||||
{
|
||||
ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
|
||||
IEnumIDList_fnQueryInterface,
|
||||
IEnumIDList_fnAddRef,
|
||||
IEnumIDList_fnRelease,
|
||||
IEnumIDList_fnNext,
|
||||
|
|
|
@ -217,7 +217,9 @@ static HRESULT WINAPI IExtractIconA_fnExtract(IExtractIconA * iface, LPCSTR pszF
|
|||
}
|
||||
|
||||
static struct ICOM_VTABLE(IExtractIconA) eivt =
|
||||
{ IExtractIconA_fnQueryInterface,
|
||||
{
|
||||
ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
|
||||
IExtractIconA_fnQueryInterface,
|
||||
IExtractIconA_fnAddRef,
|
||||
IExtractIconA_fnRelease,
|
||||
IExtractIconA_fnGetIconLocation,
|
||||
|
@ -289,6 +291,7 @@ static HRESULT WINAPI IEIPersistFile_fnLoad(IPersistFile* iface, LPCOLESTR pszFi
|
|||
|
||||
static struct ICOM_VTABLE(IPersistFile) pfvt =
|
||||
{
|
||||
ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
|
||||
IEIPersistFile_fnQueryInterface,
|
||||
IEIPersistFile_fnAddRef,
|
||||
IEIPersistFile_fnRelease,
|
||||
|
|
|
@ -249,6 +249,7 @@ HRESULT WINAPI IStream_fnClone (IStream * iface, IStream** ppstm)
|
|||
|
||||
static struct ICOM_VTABLE(IStream) rstvt =
|
||||
{
|
||||
ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
|
||||
IStream_fnQueryInterface,
|
||||
IStream_fnAddRef,
|
||||
IStream_fnRelease,
|
||||
|
|
|
@ -246,6 +246,7 @@ static HRESULT WINAPI IPersistFile_fnGetCurFile(const IPersistFile* iface, LPOLE
|
|||
|
||||
static struct ICOM_VTABLE(IPersistFile) pfvt =
|
||||
{
|
||||
ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
|
||||
IPersistFile_fnQueryInterface,
|
||||
IPersistFile_fnAddRef,
|
||||
IPersistFile_fnRelease,
|
||||
|
@ -389,6 +390,7 @@ static HRESULT WINAPI IShellLink_CF_LockServer(IClassFactory* iface, BOOL fLock)
|
|||
}
|
||||
static ICOM_VTABLE(IClassFactory) slcfvt =
|
||||
{
|
||||
ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
|
||||
IShellLink_CF_QueryInterface,
|
||||
IShellLink_CF_AddRef,
|
||||
IShellLink_CF_Release,
|
||||
|
@ -636,7 +638,9 @@ static HRESULT WINAPI IShellLink_fnSetPath(IShellLink * iface, LPCSTR pszFile)
|
|||
*/
|
||||
|
||||
static ICOM_VTABLE(IShellLink) slvt =
|
||||
{ IShellLink_fnQueryInterface,
|
||||
{
|
||||
ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
|
||||
IShellLink_fnQueryInterface,
|
||||
IShellLink_fnAddRef,
|
||||
IShellLink_fnRelease,
|
||||
IShellLink_fnGetPath,
|
||||
|
@ -786,6 +790,7 @@ static HRESULT WINAPI IShellLinkW_CF_LockServer(LPCLASSFACTORY iface, BOOL fLock
|
|||
|
||||
static ICOM_VTABLE(IClassFactory) slwcfvt =
|
||||
{
|
||||
ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
|
||||
IShellLinkW_CF_QueryInterface,
|
||||
IShellLinkW_CF_AddRef,
|
||||
IShellLinkW_CF_Release,
|
||||
|
@ -1049,7 +1054,9 @@ static HRESULT WINAPI IShellLinkW_fnSetPath(IShellLinkW * iface, LPCWSTR pszFile
|
|||
*/
|
||||
|
||||
static ICOM_VTABLE(IShellLinkW) slvtw =
|
||||
{ IShellLinkW_fnQueryInterface,
|
||||
{
|
||||
ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
|
||||
IShellLinkW_fnQueryInterface,
|
||||
IShellLinkW_fnAddRef,
|
||||
IShellLinkW_fnRelease,
|
||||
IShellLinkW_fnGetPath,
|
||||
|
|
|
@ -371,6 +371,7 @@ static HRESULT WINAPI IClassFactory_fnLockServer(LPCLASSFACTORY iface, BOOL fLoc
|
|||
|
||||
static ICOM_VTABLE(IClassFactory) clfvt =
|
||||
{
|
||||
ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
|
||||
IClassFactory_fnQueryInterface,
|
||||
IClassFactory_fnAddRef,
|
||||
IClassFactory_fnRelease,
|
||||
|
|
|
@ -167,6 +167,7 @@ static HRESULT WINAPI ISFDropTarget_Drop(
|
|||
|
||||
static struct ICOM_VTABLE(IDropTarget) dtvt =
|
||||
{
|
||||
ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
|
||||
ISFDropTarget_QueryInterface,
|
||||
ISFDropTarget_AddRef,
|
||||
ISFDropTarget_Release,
|
||||
|
@ -965,7 +966,9 @@ static HRESULT WINAPI IShellFolder_fnGetFolderPath(IShellFolder * iface, LPSTR l
|
|||
}
|
||||
|
||||
static ICOM_VTABLE(IShellFolder) sfvt =
|
||||
{ IShellFolder_fnQueryInterface,
|
||||
{
|
||||
ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
|
||||
IShellFolder_fnQueryInterface,
|
||||
IShellFolder_fnAddRef,
|
||||
IShellFolder_fnRelease,
|
||||
IShellFolder_fnParseDisplayName,
|
||||
|
@ -1067,6 +1070,7 @@ static HRESULT WINAPI ISFPersistFolder_Initialize(
|
|||
|
||||
static ICOM_VTABLE(IPersistFolder) psfvt =
|
||||
{
|
||||
ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
|
||||
ISFPersistFolder_QueryInterface,
|
||||
ISFPersistFolder_AddRef,
|
||||
ISFPersistFolder_Release,
|
||||
|
|
|
@ -1507,7 +1507,9 @@ static HRESULT WINAPI IShellView_fnGetItemObject(IShellView * iface, UINT uItem,
|
|||
}
|
||||
|
||||
static struct ICOM_VTABLE(IShellView) svvt =
|
||||
{ IShellView_fnQueryInterface,
|
||||
{
|
||||
ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
|
||||
IShellView_fnQueryInterface,
|
||||
IShellView_fnAddRef,
|
||||
IShellView_fnRelease,
|
||||
IShellView_fnGetWindow,
|
||||
|
@ -1596,6 +1598,7 @@ static HRESULT WINAPI ISVOleCmdTarget_Exec(
|
|||
|
||||
static ICOM_VTABLE(IOleCommandTarget) ctvt =
|
||||
{
|
||||
ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
|
||||
ISVOleCmdTarget_QueryInterface,
|
||||
ISVOleCmdTarget_AddRef,
|
||||
ISVOleCmdTarget_Release,
|
||||
|
@ -1695,6 +1698,7 @@ static HRESULT WINAPI ISVDropTarget_Drop(
|
|||
|
||||
static struct ICOM_VTABLE(IDropTarget) dtvt =
|
||||
{
|
||||
ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
|
||||
ISVDropTarget_QueryInterface,
|
||||
ISVDropTarget_AddRef,
|
||||
ISVDropTarget_Release,
|
||||
|
@ -1833,6 +1837,7 @@ static HRESULT WINAPI ISVViewObject_GetAdvise(
|
|||
|
||||
static struct ICOM_VTABLE(IViewObject) vovt =
|
||||
{
|
||||
ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
|
||||
ISVViewObject_QueryInterface,
|
||||
ISVViewObject_AddRef,
|
||||
ISVViewObject_Release,
|
||||
|
|
|
@ -1157,7 +1157,9 @@ static HRESULT WINAPI IDirect3DDevice2Impl_GetClipStatus(LPDIRECT3DDEVICE2 iface
|
|||
* OpenGL-specific VTable
|
||||
*/
|
||||
|
||||
static ICOM_VTABLE(IDirect3DDevice2) OpenGL_vtable = {
|
||||
static ICOM_VTABLE(IDirect3DDevice2) OpenGL_vtable =
|
||||
{
|
||||
ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
|
||||
IDirect3DDevice2Impl_QueryInterface,
|
||||
IDirect3DDevice2Impl_AddRef,
|
||||
IDirect3DDevice2Impl_Release,
|
||||
|
@ -1674,7 +1676,9 @@ static HRESULT WINAPI IDirect3DDeviceImpl_GetDirect3D(LPDIRECT3DDEVICE iface,
|
|||
/*******************************************************************************
|
||||
* Direct3DDevice VTable
|
||||
*/
|
||||
static ICOM_VTABLE(IDirect3DDevice) OpenGL_vtable_dx3 = {
|
||||
static ICOM_VTABLE(IDirect3DDevice) OpenGL_vtable_dx3 =
|
||||
{
|
||||
ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
|
||||
IDirect3DDeviceImpl_QueryInterface,
|
||||
IDirect3DDeviceImpl_AddRef,
|
||||
IDirect3DDeviceImpl_Release,
|
||||
|
|
|
@ -843,7 +843,9 @@ static HRESULT WINAPI IDirect3DExecuteBufferImpl_Optimize(LPDIRECT3DEXECUTEBUFFE
|
|||
/*******************************************************************************
|
||||
* IDirect3DLight VTable
|
||||
*/
|
||||
static ICOM_VTABLE(IDirect3DExecuteBuffer) executebuffer_vtable = {
|
||||
static ICOM_VTABLE(IDirect3DExecuteBuffer) executebuffer_vtable =
|
||||
{
|
||||
ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
|
||||
/*** IUnknown methods ***/
|
||||
IDirect3DExecuteBufferImpl_QueryInterface,
|
||||
IDirect3DExecuteBufferImpl_AddRef,
|
||||
|
|
|
@ -244,7 +244,9 @@ static HRESULT WINAPI IDirect3DLightImpl_Initialize(LPDIRECT3DLIGHT iface,
|
|||
/*******************************************************************************
|
||||
* IDirect3DLight VTable
|
||||
*/
|
||||
static ICOM_VTABLE(IDirect3DLight) light_vtable = {
|
||||
static ICOM_VTABLE(IDirect3DLight) light_vtable =
|
||||
{
|
||||
ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
|
||||
/*** IUnknown methods ***/
|
||||
IDirect3DLightImpl_QueryInterface,
|
||||
IDirect3DLightImpl_AddRef,
|
||||
|
|
|
@ -220,7 +220,9 @@ static HRESULT WINAPI IDirect3DMaterialImpl_Initialize(LPDIRECT3DMATERIAL iface,
|
|||
/*******************************************************************************
|
||||
* IDirect3DMaterial VTable
|
||||
*/
|
||||
static ICOM_VTABLE(IDirect3DMaterial) material_vtable = {
|
||||
static ICOM_VTABLE(IDirect3DMaterial) material_vtable =
|
||||
{
|
||||
ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
|
||||
/*** IUnknown methods ***/
|
||||
IDirect3DMaterial2Impl_QueryInterface,
|
||||
IDirect3DMaterial2Impl_AddRef,
|
||||
|
@ -238,7 +240,9 @@ static ICOM_VTABLE(IDirect3DMaterial) material_vtable = {
|
|||
/*******************************************************************************
|
||||
* IDirect3DMaterial2 VTable
|
||||
*/
|
||||
static ICOM_VTABLE(IDirect3DMaterial2) material2_vtable = {
|
||||
static ICOM_VTABLE(IDirect3DMaterial2) material2_vtable =
|
||||
{
|
||||
ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
|
||||
/*** IUnknown methods ***/
|
||||
IDirect3DMaterial2Impl_QueryInterface,
|
||||
IDirect3DMaterial2Impl_AddRef,
|
||||
|
|
|
@ -528,7 +528,9 @@ static HRESULT WINAPI IDirect3DTexture2Impl_Load(LPDIRECT3DTEXTURE2 iface,
|
|||
/*******************************************************************************
|
||||
* IDirect3DTexture2 VTable
|
||||
*/
|
||||
static ICOM_VTABLE(IDirect3DTexture2) texture2_vtable = {
|
||||
static ICOM_VTABLE(IDirect3DTexture2) texture2_vtable =
|
||||
{
|
||||
ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
|
||||
/*** IUnknown methods ***/
|
||||
IDirect3DTexture2Impl_QueryInterface,
|
||||
IDirect3DTexture2Impl_AddRef,
|
||||
|
@ -542,7 +544,9 @@ static ICOM_VTABLE(IDirect3DTexture2) texture2_vtable = {
|
|||
/*******************************************************************************
|
||||
* IDirect3DTexture VTable
|
||||
*/
|
||||
static ICOM_VTABLE(IDirect3DTexture) texture_vtable = {
|
||||
static ICOM_VTABLE(IDirect3DTexture) texture_vtable =
|
||||
{
|
||||
ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
|
||||
/*** IUnknown methods ***/
|
||||
IDirect3DTexture2Impl_QueryInterface,
|
||||
IDirect3DTexture2Impl_AddRef,
|
||||
|
|
|
@ -348,7 +348,9 @@ static HRESULT WINAPI IDirect3DViewport2Impl_SetViewport2(LPDIRECT3DVIEWPORT2 if
|
|||
/*******************************************************************************
|
||||
* IDirect3DViewport1/2 VTable
|
||||
*/
|
||||
static ICOM_VTABLE(IDirect3DViewport2) viewport2_vtable = {
|
||||
static ICOM_VTABLE(IDirect3DViewport2) viewport2_vtable =
|
||||
{
|
||||
ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
|
||||
/*** IUnknown methods ***/
|
||||
IDirect3DViewport2Impl_QueryInterface,
|
||||
IDirect3DViewport2Impl_AddRef,
|
||||
|
|
|
@ -1791,7 +1791,9 @@ static HRESULT WINAPI IDirectDrawSurface4Impl_ChangeUniquenessValue(LPDIRECTDRAW
|
|||
return DD_OK;
|
||||
}
|
||||
|
||||
static ICOM_VTABLE(IDirectDrawSurface4) dga_dds4vt = {
|
||||
static ICOM_VTABLE(IDirectDrawSurface4) dga_dds4vt =
|
||||
{
|
||||
ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
|
||||
IDirectDrawSurface4Impl_QueryInterface,
|
||||
IDirectDrawSurface4Impl_AddRef,
|
||||
DGA_IDirectDrawSurface4Impl_Release,
|
||||
|
@ -1839,7 +1841,9 @@ static ICOM_VTABLE(IDirectDrawSurface4) dga_dds4vt = {
|
|||
IDirectDrawSurface4Impl_ChangeUniquenessValue
|
||||
};
|
||||
|
||||
static ICOM_VTABLE(IDirectDrawSurface4) xlib_dds4vt = {
|
||||
static ICOM_VTABLE(IDirectDrawSurface4) xlib_dds4vt =
|
||||
{
|
||||
ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
|
||||
IDirectDrawSurface4Impl_QueryInterface,
|
||||
IDirectDrawSurface4Impl_AddRef,
|
||||
Xlib_IDirectDrawSurface4Impl_Release,
|
||||
|
@ -1988,7 +1992,9 @@ static HRESULT WINAPI IDirectDrawClipperImpl_IsClipListChanged(
|
|||
return DD_OK;
|
||||
}
|
||||
|
||||
static ICOM_VTABLE(IDirectDrawClipper) ddclipvt = {
|
||||
static ICOM_VTABLE(IDirectDrawClipper) ddclipvt =
|
||||
{
|
||||
ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
|
||||
IDirectDrawClipperImpl_QueryInterface,
|
||||
IDirectDrawClipperImpl_AddRef,
|
||||
IDirectDrawClipperImpl_Release,
|
||||
|
@ -2155,7 +2161,9 @@ static HRESULT WINAPI IDirectDrawPaletteImpl_QueryInterface(
|
|||
return S_OK;
|
||||
}
|
||||
|
||||
static ICOM_VTABLE(IDirectDrawPalette) dga_ddpalvt = {
|
||||
static ICOM_VTABLE(IDirectDrawPalette) dga_ddpalvt =
|
||||
{
|
||||
ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
|
||||
IDirectDrawPaletteImpl_QueryInterface,
|
||||
IDirectDrawPaletteImpl_AddRef,
|
||||
IDirectDrawPaletteImpl_Release,
|
||||
|
@ -2165,7 +2173,9 @@ static ICOM_VTABLE(IDirectDrawPalette) dga_ddpalvt = {
|
|||
DGA_IDirectDrawPaletteImpl_SetEntries
|
||||
};
|
||||
|
||||
static ICOM_VTABLE(IDirectDrawPalette) xlib_ddpalvt = {
|
||||
static ICOM_VTABLE(IDirectDrawPalette) xlib_ddpalvt =
|
||||
{
|
||||
ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
|
||||
IDirectDrawPaletteImpl_QueryInterface,
|
||||
IDirectDrawPaletteImpl_AddRef,
|
||||
IDirectDrawPaletteImpl_Release,
|
||||
|
@ -2319,7 +2329,9 @@ static HRESULT WINAPI IDirect3DImpl_FindDevice(LPDIRECT3D iface,
|
|||
return DD_OK;
|
||||
}
|
||||
|
||||
static ICOM_VTABLE(IDirect3D) d3dvt = {
|
||||
static ICOM_VTABLE(IDirect3D) d3dvt =
|
||||
{
|
||||
ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
|
||||
IDirect3DImpl_QueryInterface,
|
||||
IDirect3DImpl_AddRef,
|
||||
IDirect3DImpl_Release,
|
||||
|
@ -2480,7 +2492,9 @@ static HRESULT WINAPI IDirect3D2Impl_CreateDevice(LPDIRECT3D2 iface,
|
|||
return DDERR_INVALIDPARAMS;
|
||||
}
|
||||
|
||||
static ICOM_VTABLE(IDirect3D2) d3d2vt = {
|
||||
static ICOM_VTABLE(IDirect3D2) d3d2vt =
|
||||
{
|
||||
ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
|
||||
IDirect3D2Impl_QueryInterface,
|
||||
IDirect3D2Impl_AddRef,
|
||||
IDirect3D2Impl_Release,
|
||||
|
@ -4098,7 +4112,9 @@ static HRESULT WINAPI IDirectDraw2Impl_Initialize(LPDIRECTDRAW2 iface,
|
|||
# define XCAST(fun) (void *)
|
||||
#endif
|
||||
|
||||
static ICOM_VTABLE(IDirectDraw) dga_ddvt = {
|
||||
static ICOM_VTABLE(IDirectDraw) dga_ddvt =
|
||||
{
|
||||
ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
|
||||
XCAST(QueryInterface)DGA_IDirectDraw2Impl_QueryInterface,
|
||||
XCAST(AddRef)IDirectDraw2Impl_AddRef,
|
||||
XCAST(Release)DGA_IDirectDraw2Impl_Release,
|
||||
|
@ -4124,7 +4140,9 @@ static ICOM_VTABLE(IDirectDraw) dga_ddvt = {
|
|||
XCAST(WaitForVerticalBlank)IDirectDraw2Impl_WaitForVerticalBlank,
|
||||
};
|
||||
|
||||
static ICOM_VTABLE(IDirectDraw) xlib_ddvt = {
|
||||
static ICOM_VTABLE(IDirectDraw) xlib_ddvt =
|
||||
{
|
||||
ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
|
||||
XCAST(QueryInterface)Xlib_IDirectDraw2Impl_QueryInterface,
|
||||
XCAST(AddRef)IDirectDraw2Impl_AddRef,
|
||||
XCAST(Release)Xlib_IDirectDraw2Impl_Release,
|
||||
|
@ -4194,7 +4212,9 @@ static HRESULT WINAPI Xlib_IDirectDraw2Impl_GetAvailableVidMem(
|
|||
return DD_OK;
|
||||
}
|
||||
|
||||
static ICOM_VTABLE(IDirectDraw2) dga_dd2vt = {
|
||||
static ICOM_VTABLE(IDirectDraw2) dga_dd2vt =
|
||||
{
|
||||
ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
|
||||
DGA_IDirectDraw2Impl_QueryInterface,
|
||||
IDirectDraw2Impl_AddRef,
|
||||
DGA_IDirectDraw2Impl_Release,
|
||||
|
@ -4221,7 +4241,9 @@ static ICOM_VTABLE(IDirectDraw2) dga_dd2vt = {
|
|||
DGA_IDirectDraw2Impl_GetAvailableVidMem
|
||||
};
|
||||
|
||||
static ICOM_VTABLE(IDirectDraw2) xlib_dd2vt = {
|
||||
static ICOM_VTABLE(IDirectDraw2) xlib_dd2vt =
|
||||
{
|
||||
ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
|
||||
Xlib_IDirectDraw2Impl_QueryInterface,
|
||||
IDirectDraw2Impl_AddRef,
|
||||
Xlib_IDirectDraw2Impl_Release,
|
||||
|
@ -4292,7 +4314,9 @@ static HRESULT WINAPI IDirectDraw4Impl_GetDeviceIdentifier(LPDIRECTDRAW4 iface,
|
|||
#endif
|
||||
|
||||
|
||||
static ICOM_VTABLE(IDirectDraw4) dga_dd4vt = {
|
||||
static ICOM_VTABLE(IDirectDraw4) dga_dd4vt =
|
||||
{
|
||||
ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
|
||||
XCAST(QueryInterface)DGA_IDirectDraw2Impl_QueryInterface,
|
||||
XCAST(AddRef)IDirectDraw2Impl_AddRef,
|
||||
XCAST(Release)DGA_IDirectDraw2Impl_Release,
|
||||
|
@ -4323,7 +4347,9 @@ static ICOM_VTABLE(IDirectDraw4) dga_dd4vt = {
|
|||
IDirectDraw4Impl_GetDeviceIdentifier
|
||||
};
|
||||
|
||||
static ICOM_VTABLE(IDirectDraw4) xlib_dd4vt = {
|
||||
static ICOM_VTABLE(IDirectDraw4) xlib_dd4vt =
|
||||
{
|
||||
ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
|
||||
XCAST(QueryInterface)Xlib_IDirectDraw2Impl_QueryInterface,
|
||||
XCAST(AddRef)IDirectDraw2Impl_AddRef,
|
||||
XCAST(Release)Xlib_IDirectDraw2Impl_Release,
|
||||
|
@ -4719,7 +4745,9 @@ static HRESULT WINAPI DDCF_LockServer(LPCLASSFACTORY iface,BOOL dolock) {
|
|||
return S_OK;
|
||||
}
|
||||
|
||||
static ICOM_VTABLE(IClassFactory) DDCF_Vtbl = {
|
||||
static ICOM_VTABLE(IClassFactory) DDCF_Vtbl =
|
||||
{
|
||||
ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
|
||||
DDCF_QueryInterface,
|
||||
DDCF_AddRef,
|
||||
DDCF_Release,
|
||||
|
|
|
@ -6,6 +6,21 @@
|
|||
#ifndef __WINE_WINE_OBJ_BASE_H
|
||||
#define __WINE_WINE_OBJ_BASE_H
|
||||
|
||||
/*****************************************************************************
|
||||
* define ICOM_MSVTABLE_COMPAT
|
||||
* to implement the microsoft com vtable compatibility workaround for g++.
|
||||
*
|
||||
* NOTE: Turning this option on will produce a winelib that is incompatible
|
||||
* with the binary emulator.
|
||||
*
|
||||
* If the compiler supports the com_interface attribute, leave this off, and
|
||||
* define the ICOM_USE_COM_INTERFACE_ATTRIBUTE macro below.
|
||||
*
|
||||
* If you aren't interested in WineLib C++ compatability at all, leave both
|
||||
* options off.
|
||||
*/
|
||||
/* #define ICOM_MSVTABLE_COMPAT 1 */
|
||||
/* #define ICOM_USE_COM_INTERFACE_ATTRIBUTE 1 */
|
||||
|
||||
/*****************************************************************************
|
||||
* Defines the basic types
|
||||
|
@ -13,6 +28,9 @@
|
|||
#include "wtypes.h"
|
||||
|
||||
|
||||
#define LISet32(li, v) ((li).HighPart = (v) < 0 ? -1 : 0, (li).LowPart = (v))
|
||||
#define ULISet32(li, v) ((li).HighPart = 0, (li).LowPart = (v))
|
||||
|
||||
/*****************************************************************************
|
||||
* Macros to declare the GUIDs
|
||||
*/
|
||||
|
@ -312,302 +330,139 @@ inline BOOL operator!=(const GUID& guidOne, const GUID& guidOther)
|
|||
#ifndef ICOM_CINTERFACE
|
||||
/* C++ interface */
|
||||
|
||||
#ifndef ICOM_VIRTUAL_METHODS
|
||||
/* Uses these macros, i.e. do not define ICOM_VIRTUAL_METHODS, if your C++ compiler does not generate
|
||||
* virtual tables with the right layout (i.e. currently most g++ derivatives).
|
||||
*/
|
||||
|
||||
#define ICOM_METHOD(ret,xfn) \
|
||||
private: ret (CALLBACK *fn##xfn)(ICOM_INTERFACE* me); \
|
||||
public: inline ret (CALLBACK xfn)(void) { return ((ICOM_INTERFACE*)t.lpvtbl)->fn##xfn(this); };
|
||||
public: virtual ret (CALLBACK xfn)(void) = 0;
|
||||
|
||||
#define ICOM_METHOD1(ret,xfn,ta,na) \
|
||||
private: ret (CALLBACK *fn##xfn)(ICOM_INTERFACE* me,ta a); \
|
||||
public: inline ret (CALLBACK xfn)(ta a) { return ((ICOM_INTERFACE*)t.lpvtbl)->fn##xfn(this,a); };
|
||||
public: virtual ret (CALLBACK xfn)(ta a) = 0;
|
||||
|
||||
#define ICOM_METHOD2(ret,xfn,ta,na,tb,nb) \
|
||||
private: ret (CALLBACK *fn##xfn)(ICOM_INTERFACE* me,ta a,tb b); \
|
||||
public: inline ret (CALLBACK xfn)(ta a,tb b) { return ((ICOM_INTERFACE*)t.lpvtbl)->fn##xfn(this,a,b); };
|
||||
public: virtual ret (CALLBACK xfn)(ta a,tb b) = 0;
|
||||
|
||||
#define ICOM_METHOD3(ret,xfn,ta,na,tb,nb,tc,nc) \
|
||||
private: ret (CALLBACK *fn##xfn)(ICOM_INTERFACE* me,ta a,tb b,tc c); \
|
||||
public: inline ret (CALLBACK xfn)(ta a,tb b,tc c) { return ((ICOM_INTERFACE*)t.lpvtbl)->fn##xfn(this,a,b,c); };
|
||||
public: virtual ret (CALLBACK xfn)(ta a,tb b,tc c) = 0;
|
||||
|
||||
#define ICOM_METHOD4(ret,xfn,ta,na,tb,nb,tc,nc,td,nd) \
|
||||
private: ret (CALLBACK *fn##xfn)(ICOM_INTERFACE* me,ta a,tb b,tc c,td d); \
|
||||
public: inline ret (CALLBACK xfn)(ta a,tb b,tc c,td d) { return ((ICOM_INTERFACE*)t.lpvtbl)->fn##xfn(this,a,b,c,d); };
|
||||
public: virtual ret (CALLBACK xfn)(ta a,tb b,tc c,td d) = 0;
|
||||
|
||||
#define ICOM_METHOD5(ret,xfn,ta,na,tb,nb,tc,nc,td,nd,te,ne) \
|
||||
private: ret (CALLBACK *fn##xfn)(ICOM_INTERFACE* me,ta a,tb b,tc c,td d,te e); \
|
||||
public: inline ret (CALLBACK xfn)(ta a,tb b,tc c,td d,te e) { return ((ICOM_INTERFACE*)t.lpvtbl)->fn##xfn(this,a,b,c,d,e); };
|
||||
public: virtual ret (CALLBACK xfn)(ta a,tb b,tc c,td d,te e) = 0;
|
||||
|
||||
#define ICOM_METHOD6(ret,xfn,ta,na,tb,nb,tc,nc,td,nd,te,ne,tf,nf) \
|
||||
private: ret (CALLBACK *fn##xfn)(ICOM_INTERFACE* me,ta a,tb b,tc c,td d,te e,tf f); \
|
||||
public: inline ret (CALLBACK xfn)(ta a,tb b,tc c,td d,te e,tf f) { return ((ICOM_INTERFACE*)t.lpvtbl)->fn##xfn(this,a,b,c,d,e,f); };
|
||||
public: virtual ret (CALLBACK xfn)(ta a,tb b,tc c,td d,te e,tf f) = 0;
|
||||
|
||||
#define ICOM_METHOD7(ret,xfn,ta,na,tb,nb,tc,nc,td,nd,te,ne,tf,nf,tg,ng) \
|
||||
private: ret (CALLBACK *fn##xfn)(ICOM_INTERFACE* me,ta a,tb b,tc c,td d,te e,tf f,tg g); \
|
||||
public: inline ret (CALLBACK xfn)(ta a,tb b,tc c,td d,te e,tf f,tg g) { return ((ICOM_INTERFACE*)t.lpvtbl)->fn##xfn(this,a,b,c,d,e,f,g); };
|
||||
public: virtual ret (CALLBACK xfn)(ta a,tb b,tc c,td d,te e,tf f,tg g) = 0;
|
||||
|
||||
#define ICOM_METHOD8(ret,xfn,ta,na,tb,nb,tc,nc,td,nd,te,ne,tf,nf,tg,ng,th,nh) \
|
||||
private: ret (CALLBACK *fn##xfn)(ICOM_INTERFACE* me,ta a,tb b,tc c,td d,te e,tf f,tg g,th h); \
|
||||
public: inline ret (CALLBACK xfn)(ta a,tb b,tc c,td d,te e,tf f,tg g,th h) { return ((ICOM_INTERFACE*)t.lpvtbl)->fn##xfn(this,a,b,c,d,e,f,g,h); };
|
||||
public: virtual ret (CALLBACK xfn)(ta a,tb b,tc c,td d,te e,tf f,tg g,th h) = 0;
|
||||
|
||||
#define ICOM_METHOD9(ret,xfn,ta,na,tb,nb,tc,nc,td,nd,te,ne,tf,nf,tg,ng,th,nh,ti,ni) \
|
||||
private: ret (CALLBACK *fn##xfn)(ICOM_INTERFACE* me,ta a,tb b,tc c,td d,te e,tf f,tg g,th h,ti i); \
|
||||
public: inline ret (CALLBACK xfn)(ta a,tb b,tc c,td d,te e,tf f,tg g,th h,ti i) { return ((ICOM_INTERFACE*)t.lpvtbl)->fn##xfn(this,a,b,c,d,e,f,g,h,i); };
|
||||
public: virtual ret (CALLBACK xfn)(ta a,tb b,tc c,td d,te e,tf f,tg g,th h,ti i) = 0;
|
||||
|
||||
#define ICOM_METHOD10(ret,xfn,ta,na,tb,nb,tc,nc,td,nd,te,ne,tf,nf,tg,ng,th,nh,ti,ni,tj,nj) \
|
||||
private: ret (CALLBACK *fn##xfn)(ICOM_INTERFACE* me,ta a,tb b,tc c,td d,te e,tf f,tg g,th h,ti i,tj j); \
|
||||
public: inline ret (CALLBACK xfn)(ta a,tb b,tc c,td d,te e,tf f,tg g,th h,ti i,tj j) { return ((ICOM_INTERFACE*)t.lpvtbl)->fn##xfn(this,a,b,c,d,e,f,g,h,i,j); };
|
||||
public: virtual ret (CALLBACK xfn)(ta a,tb b,tc c,td d,te e,tf f,tg g,th h,ti i,tj j) = 0;
|
||||
|
||||
|
||||
#define ICOM_CMETHOD(ret,xfn) \
|
||||
private: ret (CALLBACK *fn##xfn)(const ICOM_INTERFACE* me); \
|
||||
public: inline ret (CALLBACK xfn)(void) const { return ((ICOM_INTERFACE*)t.lpvtbl)->fn##xfn(this); };
|
||||
public: virtual ret (CALLBACK xfn)(void) const = 0;
|
||||
|
||||
#define ICOM_CMETHOD1(ret,xfn,ta,na) \
|
||||
private: ret (CALLBACK *fn##xfn)(const ICOM_INTERFACE* me,ta a); \
|
||||
public: inline ret (CALLBACK xfn)(ta a) const { return ((ICOM_INTERFACE*)t.lpvtbl)->fn##xfn(this,a); };
|
||||
public: virtual ret (CALLBACK xfn)(ta a) const = 0;
|
||||
|
||||
#define ICOM_CMETHOD2(ret,xfn,ta,na,tb,nb) \
|
||||
private: ret (CALLBACK *fn##xfn)(const ICOM_INTERFACE* me,ta a,tb b); \
|
||||
public: inline ret (CALLBACK xfn)(ta a,tb b) const { return ((ICOM_INTERFACE*)t.lpvtbl)->fn##xfn(this,a,b); };
|
||||
public: virtual ret (CALLBACK xfn)(ta a,tb b) const = 0;
|
||||
|
||||
#define ICOM_CMETHOD3(ret,xfn,ta,na,tb,nb,tc,nc) \
|
||||
private: ret (CALLBACK *fn##xfn)(const ICOM_INTERFACE* me,ta a,tb b,tc c); \
|
||||
public: inline ret (CALLBACK xfn)(ta a,tb b,tc c) const { return ((ICOM_INTERFACE*)t.lpvtbl)->fn##xfn(this,a,b,c); };
|
||||
public: virtual ret (CALLBACK xfn)(ta a,tb b,tc c) const = 0;
|
||||
|
||||
#define ICOM_CMETHOD4(ret,xfn,ta,na,tb,nb,tc,nc,td,nd) \
|
||||
private: ret (CALLBACK *fn##xfn)(const ICOM_INTERFACE* me,ta a,tb b,tc c,td d); \
|
||||
public: inline ret (CALLBACK xfn)(ta a,tb b,tc c,td d) const { return ((ICOM_INTERFACE*)t.lpvtbl)->fn##xfn(this,a,b,c,d); };
|
||||
public: virtual ret (CALLBACK xfn)(ta a,tb b,tc c,td d) const = 0;
|
||||
|
||||
#define ICOM_CMETHOD5(ret,xfn,ta,na,tb,nb,tc,nc,td,nd,te,ne) \
|
||||
private: ret (CALLBACK *fn##xfn)(const ICOM_INTERFACE* me,ta a,tb b,tc c,td d,te e); \
|
||||
public: inline ret (CALLBACK xfn)(ta a,tb b,tc c,td d,te e) const { return ((ICOM_INTERFACE*)t.lpvtbl)->fn##xfn(this,a,b,c,d,e); };
|
||||
public: virtual ret (CALLBACK xfn)(ta a,tb b,tc c,td d,te e) const = 0;
|
||||
|
||||
#define ICOM_CMETHOD6(ret,xfn,ta,na,tb,nb,tc,nc,td,nd,te,ne,tf,nf) \
|
||||
private: ret (CALLBACK *fn##xfn)(const ICOM_INTERFACE* me,ta a,tb b,tc c,td d,te e,tf f); \
|
||||
public: inline ret (CALLBACK xfn)(ta a,tb b,tc c,td d,te e,tf f) const { return ((ICOM_INTERFACE*)t.lpvtbl)->fn##xfn(this,a,b,c,d,e,f); };
|
||||
public: virtual ret (CALLBACK xfn)(ta a,tb b,tc c,td d,te e,tf f) const = 0;
|
||||
|
||||
#define ICOM_CMETHOD7(ret,xfn,ta,na,tb,nb,tc,nc,td,nd,te,ne,tf,nf,tg,ng) \
|
||||
private: ret (CALLBACK *fn##xfn)(const ICOM_INTERFACE* me,ta a,tb b,tc c,td d,te e,tf f,tg g); \
|
||||
public: inline ret (CALLBACK xfn)(ta a,tb b,tc c,td d,te e,tf f,tg g) const { return ((ICOM_INTERFACE*)t.lpvtbl)->fn##xfn(this,a,b,c,d,e,f,g); };
|
||||
public: virtual ret (CALLBACK xfn)(ta a,tb b,tc c,td d,te e,tf f,tg g) const = 0;
|
||||
|
||||
#define ICOM_CMETHOD8(ret,xfn,ta,na,tb,nb,tc,nc,td,nd,te,ne,tf,nf,tg,ng,th,nh) \
|
||||
private: ret (CALLBACK *fn##xfn)(const ICOM_INTERFACE* me,ta a,tb b,tc c,td d,te e,tf f,tg g,th h); \
|
||||
public: inline ret (CALLBACK xfn)(ta a,tb b,tc c,td d,te e,tf f,tg g,th h) const { return ((ICOM_INTERFACE*)t.lpvtbl)->fn##xfn(this,a,b,c,d,e,f,g,h); };
|
||||
public: virtual ret (CALLBACK xfn)(ta a,tb b,tc c,td d,te e,tf f,tg g,th h) const = 0;
|
||||
|
||||
|
||||
#define ICOM_VMETHOD(xfn) \
|
||||
private: void (CALLBACK *fn##xfn)(ICOM_INTERFACE* me); \
|
||||
public: inline void (CALLBACK xfn)(void) { ((ICOM_INTERFACE*)t.lpvtbl)->fn##xfn(this); };
|
||||
public: virtual void (CALLBACK xfn)(void) = 0;
|
||||
|
||||
#define ICOM_VMETHOD1(xfn,ta,na) \
|
||||
private: void (CALLBACK *fn##xfn)(ICOM_INTERFACE* me,ta a); \
|
||||
public: inline void (CALLBACK xfn)(ta a) { ((ICOM_INTERFACE*)t.lpvtbl)->fn##xfn(this,a); };
|
||||
public: virtual void (CALLBACK xfn)(ta a) = 0;
|
||||
|
||||
#define ICOM_VMETHOD2(xfn,ta,na,tb,nb) \
|
||||
private: void (CALLBACK *fn##xfn)(ICOM_INTERFACE* me,ta a,tb b); \
|
||||
public: inline void (CALLBACK xfn)(ta a,tb b) { ((ICOM_INTERFACE*)t.lpvtbl)->fn##xfn(this,a,b); };
|
||||
public: virtual void (CALLBACK xfn)(ta a,tb b) = 0;
|
||||
|
||||
#define ICOM_VMETHOD3(xfn,ta,na,tb,nb,tc,nc) \
|
||||
private: void (CALLBACK *fn##xfn)(ICOM_INTERFACE* me,ta a,tb b,tc c); \
|
||||
public: inline void (CALLBACK xfn)(ta a,tb b,tc c) { ((ICOM_INTERFACE*)t.lpvtbl)->fn##xfn(this,a,b,c); };
|
||||
public: virtual void (CALLBACK xfn)(ta a,tb b,tc c) = 0;
|
||||
|
||||
#define ICOM_VMETHOD4(xfn,ta,na,tb,nb,tc,nc,td,nd) \
|
||||
private: void (CALLBACK *fn##xfn)(ICOM_INTERFACE* me,ta a,tb b,tc c,td d); \
|
||||
public: inline void (CALLBACK xfn)(ta a,tb b,tc c,td d) { ((ICOM_INTERFACE*)t.lpvtbl)->fn##xfn(this,a,b,c,d); };
|
||||
public: virtual void (CALLBACK xfn)(ta a,tb b,tc c,td d) = 0;
|
||||
|
||||
#define ICOM_VMETHOD5(xfn,ta,na,tb,nb,tc,nc,td,nd,te,ne) \
|
||||
private: void (CALLBACK *fn##xfn)(ICOM_INTERFACE* me,ta a,tb b,tc c,td d,te e); \
|
||||
public: inline void (CALLBACK xfn)(ta a,tb b,tc c,td d,te e) { ((ICOM_INTERFACE*)t.lpvtbl)->fn##xfn(this,a,b,c,d,e); };
|
||||
public: virtual void (CALLBACK xfn)(ta a,tb b,tc c,td d,te e) = 0;
|
||||
|
||||
#define ICOM_VMETHOD6(xfn,ta,na,tb,nb,tc,nc,td,nd,te,ne,tf,nf) \
|
||||
private: void (CALLBACK *fn##xfn)(ICOM_INTERFACE* me,ta a,tb b,tc c,td d,te e,tf f); \
|
||||
public: inline void (CALLBACK xfn)(ta a,tb b,tc c,td d,te e,tf f) { ((ICOM_INTERFACE*)t.lpvtbl)->fn##xfn(this,a,b,c,d,e,f); };
|
||||
public: virtual void (CALLBACK xfn)(ta a,tb b,tc c,td d,te e,tf f) = 0;
|
||||
|
||||
#define ICOM_VMETHOD7(xfn,ta,na,tb,nb,tc,nc,td,nd,te,ne,tf,nf,tg,ng) \
|
||||
private: void (CALLBACK *fn##xfn)(ICOM_INTERFACE* me,ta a,tb b,tc c,td d,te e,tf f,tg g); \
|
||||
public: inline void (CALLBACK xfn)(ta a,tb b,tc c,td d,te e,tf f,tg g) { ((ICOM_INTERFACE*)t.lpvtbl)->fn##xfn(this,a,b,c,d,e,f,g); };
|
||||
public: virtual void (CALLBACK xfn)(ta a,tb b,tc c,td d,te e,tf f,tg g) = 0;
|
||||
|
||||
#define ICOM_VMETHOD8(xfn,ta,na,tb,nb,tc,nc,td,nd,te,ne,tf,nf,tg,ng,th,nh) \
|
||||
private: void (CALLBACK *fn##xfn)(ICOM_INTERFACE* me,ta a,tb b,tc c,td d,te e,tf f,tg g,th h); \
|
||||
public: inline void (CALLBACK xfn)(ta a,tb b,tc c,td d,te e,tf f,tg g,th h) { ((ICOM_INTERFACE*)t.lpvtbl)->fn##xfn(this,a,b,c,d,e,f,g,h); };
|
||||
public: virtual void (CALLBACK xfn)(ta a,tb b,tc c,td d,te e,tf f,tg g,th h) = 0;
|
||||
|
||||
|
||||
#define ICOM_CVMETHOD(xfn) \
|
||||
private: void (CALLBACK *fn##xfn)(const ICOM_INTERFACE* me); \
|
||||
public: inline void (CALLBACK xfn)(void) const { ((ICOM_INTERFACE*)t.lpvtbl)->fn##xfn(this); };
|
||||
public: virtual void (CALLBACK xfn)(void) const = 0;
|
||||
|
||||
#define ICOM_CVMETHOD1(xfn,ta,na) \
|
||||
private: void (CALLBACK *fn##xfn)(const ICOM_INTERFACE* me,ta a); \
|
||||
public: inline void (CALLBACK xfn)(ta a) const { ((ICOM_INTERFACE*)t.lpvtbl)->fn##xfn(this,a); };
|
||||
public: virtual void (CALLBACK xfn)(ta a) const = 0;
|
||||
|
||||
#define ICOM_CVMETHOD2(xfn,ta,na,tb,nb) \
|
||||
private: void (CALLBACK *fn##xfn)(const ICOM_INTERFACE* me,ta a,tb b); \
|
||||
public: inline void (CALLBACK xfn)(ta a,tb b) const { ((ICOM_INTERFACE*)t.lpvtbl)->fn##xfn(this,a,b); };
|
||||
public: virtual void (CALLBACK xfn)(ta a,tb b) const = 0;
|
||||
|
||||
#define ICOM_CVMETHOD3(xfn,ta,na,tb,nb,tc,nc) \
|
||||
private: void (CALLBACK *fn##xfn)(const ICOM_INTERFACE* me,ta a,tb b,tc c); \
|
||||
public: inline void (CALLBACK xfn)(ta a,tb b,tc c) const { ((ICOM_INTERFACE*)t.lpvtbl)->fn##xfn(this,a,b,c); };
|
||||
public: virtual void (CALLBACK xfn)(ta a,tb b,tc c) const = 0;
|
||||
|
||||
#define ICOM_CVMETHOD4(xfn,ta,na,tb,nb,tc,nc,td,nd) \
|
||||
private: void (CALLBACK *fn##xfn)(const ICOM_INTERFACE* me,ta a,tb b,tc c,td d); \
|
||||
public: inline void (CALLBACK xfn)(ta a,tb b,tc c,td d) const { ((ICOM_INTERFACE*)t.lpvtbl)->fn##xfn(this,a,b,c,d); };
|
||||
public: virtual void (CALLBACK xfn)(ta a,tb b,tc c,td d) const = 0;
|
||||
|
||||
#define ICOM_CVMETHOD5(xfn,ta,na,tb,nb,tc,nc,td,nd,te,ne) \
|
||||
private: void (CALLBACK *fn##xfn)(const ICOM_INTERFACE* me,ta a,tb b,tc c,td d,te e); \
|
||||
public: inline void (CALLBACK xfn)(ta a,tb b,tc c,td d,te e) const { ((ICOM_INTERFACE*)t.lpvtbl)->fn##xfn(this,a,b,c,d,e); };
|
||||
public: virtual void (CALLBACK xfn)(ta a,tb b,tc c,td d,te e) const = 0;
|
||||
|
||||
#define ICOM_CVMETHOD6(xfn,ta,na,tb,nb,tc,nc,td,nd,te,ne,tf,nf) \
|
||||
private: void (CALLBACK *fn##xfn)(const ICOM_INTERFACE* me,ta a,tb b,tc c,td d,te e,tf f); \
|
||||
public: inline void (CALLBACK xfn)(ta a,tb b,tc c,td d,te e,tf f) const { ((ICOM_INTERFACE*)t.lpvtbl)->fn##xfn(this,a,b,c,d,e,f); };
|
||||
public: virtual void (CALLBACK xfn)(ta a,tb b,tc c,td d,te e,tf f) const = 0;
|
||||
|
||||
#define ICOM_CVMETHOD7(xfn,ta,na,tb,nb,tc,nc,td,nd,te,ne,tf,nf,tg,ng) \
|
||||
private: void (CALLBACK *fn##xfn)(const ICOM_INTERFACE* me,ta a,tb b,tc c,td d,te e,tf f,tg g); \
|
||||
public: inline void (CALLBACK xfn)(ta a,tb b,tc c,td d,te e,tf f,tg g) const { ((ICOM_INTERFACE*)t.lpvtbl)->fn##xfn(this,a,b,c,d,e,f,g); };
|
||||
public: virtual void (CALLBACK xfn)(ta a,tb b,tc c,td d,te e,tf f,tg g) const = 0;
|
||||
|
||||
#define ICOM_CVMETHOD8(xfn,ta,na,tb,nb,tc,nc,td,nd,te,ne,tf,nf,tg,ng,th,nh) \
|
||||
private: void (CALLBACK *fn##xfn)(const ICOM_INTERFACE* me,ta a,tb b,tc c,td d,te e,tf f,tg g,th h); \
|
||||
public: inline void (CALLBACK xfn)(ta a,tb b,tc c,td d,te e,tf f,tg g,th h) const { ((ICOM_INTERFACE*)t.lpvtbl)->fn##xfn(this,a,b,c,d,e,f,g,h); };
|
||||
public: virtual void (CALLBACK xfn)(ta a,tb b,tc c,td d,te e,tf f,tg g,th h) const = 0;
|
||||
|
||||
#ifdef ICOM_USE_COM_INTERFACE_ATTRIBUTE
|
||||
|
||||
#define ICOM_DEFINE(iface,ibase) \
|
||||
typedef struct iface: public ibase { \
|
||||
iface##_METHODS \
|
||||
};
|
||||
} __attribute__ ((com_interface));
|
||||
|
||||
#else
|
||||
/* This case can be used if the layout of the virtual tables generated by the C++
|
||||
* compiler matches that of Visual C++.
|
||||
*/
|
||||
|
||||
#define ICOM_METHOD(ret,xfn) \
|
||||
virtual ret (CALLBACK xfn)(void) = 0;
|
||||
|
||||
#define ICOM_METHOD1(ret,xfn,ta,na) \
|
||||
virtual ret (CALLBACK xfn)(ta a) = 0;
|
||||
|
||||
#define ICOM_METHOD2(ret,xfn,ta,na,tb,nb) \
|
||||
virtual ret (CALLBACK xfn)(ta a,tb b) = 0;
|
||||
|
||||
#define ICOM_METHOD3(ret,xfn,ta,na,tb,nb,tc,nc) \
|
||||
virtual ret (CALLBACK xfn)(ta a,tb b,tc c) = 0;
|
||||
|
||||
#define ICOM_METHOD4(ret,xfn,ta,na,tb,nb,tc,nc,td,nd) \
|
||||
virtual ret (CALLBACK xfn)(ta a,tb b,tc c,td d) = 0;
|
||||
|
||||
#define ICOM_METHOD5(ret,xfn,ta,na,tb,nb,tc,nc,td,nd,te,ne) \
|
||||
virtual ret (CALLBACK xfn)(ta a,tb b,tc c,td d,te e) = 0;
|
||||
|
||||
#define ICOM_METHOD6(ret,xfn,ta,na,tb,nb,tc,nc,td,nd,te,ne,tf,nf) \
|
||||
virtual ret (CALLBACK xfn)(ta a,tb b,tc c,td d,te e,tf f) = 0;
|
||||
|
||||
#define ICOM_METHOD7(ret,xfn,ta,na,tb,nb,tc,nc,td,nd,te,ne,tf,nf,tg,ng) \
|
||||
virtual ret (CALLBACK xfn)(ta a,tb b,tc c,td d,te e,tf f,tg g) = 0;
|
||||
|
||||
#define ICOM_METHOD8(ret,xfn,ta,na,tb,nb,tc,nc,td,nd,te,ne,tf,nf,tg,ng,th,nh) \
|
||||
virtual ret (CALLBACK xfn)(ta a,tb b,tc c,td d,te e,tf f,tg g,th h) = 0;
|
||||
|
||||
#define ICOM_METHOD9(ret,xfn,ta,na,tb,nb,tc,nc,td,nd,te,ne,tf,nf,tg,ng,th,nh,ti,ni) \
|
||||
virtual ret (CALLBACK xfn)(ta a,tb b,tc c,td d,te e,tf f,tg g,th h,ti i) = 0;
|
||||
|
||||
#define ICOM_METHOD10(ret,xfn,ta,na,tb,nb,tc,nc,td,nd,te,ne,tf,nf,tg,ng,th,nh,ti,ni,tj,nj) \
|
||||
virtual ret (CALLBACK xfn)(ta a,tb b,tc c,td d,te e,tf f,tg g,th h,ti i,tj j) = 0;
|
||||
|
||||
|
||||
#define ICOM_CMETHOD(ret,xfn) \
|
||||
virtual ret (CALLBACK xfn)(void) const = 0;
|
||||
|
||||
#define ICOM_CMETHOD1(ret,xfn,ta,na) \
|
||||
virtual ret (CALLBACK xfn)(ta a) const = 0;
|
||||
|
||||
#define ICOM_CMETHOD2(ret,xfn,ta,na,tb,nb) \
|
||||
virtual ret (CALLBACK xfn)(ta a,tb b) const = 0;
|
||||
|
||||
#define ICOM_CMETHOD3(ret,xfn,ta,na,tb,nb,tc,nc) \
|
||||
virtual ret (CALLBACK xfn)(ta a,tb b,tc c) const = 0;
|
||||
|
||||
#define ICOM_CMETHOD4(ret,xfn,ta,na,tb,nb,tc,nc,td,nd) \
|
||||
virtual ret (CALLBACK xfn)(ta a,tb b,tc c,td d) const = 0;
|
||||
|
||||
#define ICOM_CMETHOD5(ret,xfn,ta,na,tb,nb,tc,nc,td,nd,te,ne) \
|
||||
virtual ret (CALLBACK xfn)(ta a,tb b,tc c,td d,te e) const = 0;
|
||||
|
||||
#define ICOM_CMETHOD6(ret,xfn,ta,na,tb,nb,tc,nc,td,nd,te,ne,tf,nf) \
|
||||
virtual ret (CALLBACK xfn)(ta a,tb b,tc c,td d,te e,tf f) const = 0;
|
||||
|
||||
#define ICOM_CMETHOD7(ret,xfn,ta,na,tb,nb,tc,nc,td,nd,te,ne,tf,nf,tg,ng) \
|
||||
virtual ret (CALLBACK xfn)(ta a,tb b,tc c,td d,te e,tf f,tg g) const = 0;
|
||||
|
||||
#define ICOM_CMETHOD8(ret,xfn,ta,na,tb,nb,tc,nc,td,nd,te,ne,tf,nf,tg,ng,th,nh) \
|
||||
virtual ret (CALLBACK xfn)(ta a,tb b,tc c,td d,te e,tf f,tg g,th h) const = 0;
|
||||
|
||||
|
||||
#define ICOM_VMETHOD(xfn) \
|
||||
virtual void (CALLBACK xfn)(void) = 0;
|
||||
|
||||
#define ICOM_VMETHOD1(xfn,ta,na) \
|
||||
virtual void (CALLBACK xfn)(ta a) = 0;
|
||||
|
||||
#define ICOM_VMETHOD2(xfn,ta,na,tb,nb) \
|
||||
virtual void (CALLBACK xfn)(ta a,tb b) = 0;
|
||||
|
||||
#define ICOM_VMETHOD3(xfn,ta,na,tb,nb,tc,nc) \
|
||||
virtual void (CALLBACK xfn)(ta a,tb b,tc c) = 0;
|
||||
|
||||
#define ICOM_VMETHOD4(xfn,ta,na,tb,nb,tc,nc,td,nd) \
|
||||
virtual void (CALLBACK xfn)(ta a,tb b,tc c,td d) = 0;
|
||||
|
||||
#define ICOM_VMETHOD5(xfn,ta,na,tb,nb,tc,nc,td,nd,te,ne) \
|
||||
virtual void (CALLBACK xfn)(ta a,tb b,tc c,td d,te e) = 0;
|
||||
|
||||
#define ICOM_VMETHOD6(xfn,ta,na,tb,nb,tc,nc,td,nd,te,ne,tf,nf) \
|
||||
virtual void (CALLBACK xfn)(ta a,tb b,tc c,td d,te e,tf f) = 0;
|
||||
|
||||
#define ICOM_VMETHOD7(xfn,ta,na,tb,nb,tc,nc,td,nd,te,ne,tf,nf,tg,ng) \
|
||||
virtual void (CALLBACK xfn)(ta a,tb b,tc c,td d,te e,tf f,tg g) = 0;
|
||||
|
||||
#define ICOM_VMETHOD8(xfn,ta,na,tb,nb,tc,nc,td,nd,te,ne,tf,nf,tg,ng,th,nh) \
|
||||
virtual void (CALLBACK xfn)(ta a,tb b,tc c,td d,te e,tf f,tg g,th h) = 0;
|
||||
|
||||
|
||||
#define ICOM_CVMETHOD(xfn) \
|
||||
virtual void (CALLBACK xfn)(void) const = 0;
|
||||
|
||||
#define ICOM_CVMETHOD1(xfn,ta,na) \
|
||||
virtual void (CALLBACK xfn)(ta a) const = 0;
|
||||
|
||||
#define ICOM_CVMETHOD2(xfn,ta,na,tb,nb) \
|
||||
virtual void (CALLBACK xfn)(ta a,tb b) const = 0;
|
||||
|
||||
#define ICOM_CVMETHOD3(xfn,ta,na,tb,nb,tc,nc) \
|
||||
virtual void (CALLBACK xfn)(ta a,tb b,tc c) const = 0;
|
||||
|
||||
#define ICOM_CVMETHOD4(xfn,ta,na,tb,nb,tc,nc,td,nd) \
|
||||
virtual void (CALLBACK xfn)(ta a,tb b,tc c,td d) const = 0;
|
||||
|
||||
#define ICOM_CVMETHOD5(xfn,ta,na,tb,nb,tc,nc,td,nd,te,ne) \
|
||||
virtual void (CALLBACK xfn)(ta a,tb b,tc c,td d,te e) const = 0;
|
||||
|
||||
#define ICOM_CVMETHOD6(xfn,ta,na,tb,nb,tc,nc,td,nd,te,ne,tf,nf) \
|
||||
virtual void (CALLBACK xfn)(ta a,tb b,tc c,td d,te e,tf f) const = 0;
|
||||
|
||||
#define ICOM_CVMETHOD7(xfn,ta,na,tb,nb,tc,nc,td,nd,te,ne,tf,nf,tg,ng) \
|
||||
virtual void (CALLBACK xfn)(ta a,tb b,tc c,td d,te e,tf f,tg g) const = 0;
|
||||
|
||||
#define ICOM_CVMETHOD8(xfn,ta,na,tb,nb,tc,nc,td,nd,te,ne,tf,nf,tg,ng,th,nh) \
|
||||
virtual void (CALLBACK xfn)(ta a,tb b,tc c,td d,te e,tf f,tg g,th h) const = 0;
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
#define ICOM_DEFINE(iface,ibase) \
|
||||
typedef struct iface: public ibase { \
|
||||
iface##_METHODS \
|
||||
};
|
||||
|
||||
#endif /* ICOM_USE_COM_INTERFACE_ATTRIBUTE */
|
||||
|
||||
#define ICOM_CALL(xfn, p) this_is_a_syntax_error
|
||||
#define ICOM_CALL1(xfn, p,a) this_is_a_syntax_error
|
||||
#define ICOM_CALL2(xfn, p,a,b) this_is_a_syntax_error
|
||||
|
@ -741,6 +596,21 @@ inline BOOL operator!=(const GUID& guidOne, const GUID& guidOther)
|
|||
void (CALLBACK *fn##xfn)(const ICOM_INTERFACE* me,ta a,tb b,tc c,td d,te e,tf f,tg g,th h);
|
||||
|
||||
|
||||
#ifdef ICOM_MSVTABLE_COMPAT
|
||||
#define ICOM_DEFINE(iface,ibase) \
|
||||
typedef struct ICOM_VTABLE(iface) ICOM_VTABLE(iface); \
|
||||
struct iface { \
|
||||
const ICOM_VTABLE(iface)* lpvtbl; \
|
||||
}; \
|
||||
struct ICOM_VTABLE(iface) { \
|
||||
long dummyRTTI1; \
|
||||
long dummyRTTI2; \
|
||||
ibase##_IMETHODS \
|
||||
iface##_METHODS \
|
||||
};
|
||||
#define ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE 0,0,
|
||||
|
||||
#else
|
||||
#define ICOM_DEFINE(iface,ibase) \
|
||||
typedef struct ICOM_VTABLE(iface) ICOM_VTABLE(iface); \
|
||||
struct iface { \
|
||||
|
@ -750,6 +620,8 @@ inline BOOL operator!=(const GUID& guidOne, const GUID& guidOther)
|
|||
ibase##_IMETHODS \
|
||||
iface##_METHODS \
|
||||
};
|
||||
#define ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
|
||||
#endif /* ICOM_MSVTABLE_COMPAT */
|
||||
|
||||
|
||||
#define ICOM_CALL(xfn, p) (p)->lpvtbl->fn##xfn(p)
|
||||
|
@ -761,6 +633,7 @@ inline BOOL operator!=(const GUID& guidOne, const GUID& guidOther)
|
|||
#define ICOM_CALL6(xfn, p,a,b,c,d,e,f) (p)->lpvtbl->fn##xfn(p,a,b,c,d,e,f)
|
||||
#define ICOM_CALL7(xfn, p,a,b,c,d,e,f,g) (p)->lpvtbl->fn##xfn(p,a,b,c,d,e,f,g)
|
||||
#define ICOM_CALL8(xfn, p,a,b,c,d,e,f,g,h) (p)->lpvtbl->fn##xfn(p,a,b,c,d,e,f,g,h)
|
||||
#define ICOM_CALL9(xfn, p,a,b,c,d,e,f,g,h,i) (p)->lpvtbl->fn##xfn(p,a,b,c,d,e,f,g,h,i)
|
||||
#define ICOM_CALL10(xfn, p,a,b,c,d,e,f,g,h,i,j) (p)->lpvtbl->fn##xfn(p,a,b,c,d,e,f,g,h,i,j)
|
||||
|
||||
|
||||
|
@ -797,22 +670,21 @@ typedef struct ICOM_VTABLE(IUnknown) ICOM_VTABLE(IUnknown);
|
|||
struct IUnknown {
|
||||
ICOM_VTABLE(IUnknown)* lpvtbl;
|
||||
};
|
||||
|
||||
struct ICOM_VTABLE(IUnknown) {
|
||||
ICOM_METHOD2(HRESULT,QueryInterface,REFIID,riid, LPVOID*,ppvObj)
|
||||
#ifdef ICOM_MSVTABLE_COMPAT
|
||||
long dummyRTTI1;
|
||||
long dummyRTTI2;
|
||||
#endif /* ICOM_MSVTABLE_COMPAT */
|
||||
|
||||
#else /* ICOM_CINTERFACE */
|
||||
struct IUnknown {
|
||||
#ifndef ICOM_VIRTUAL_METHODS
|
||||
union {
|
||||
const void* lpvtbl;
|
||||
HRESULT (CALLBACK *fnQueryInterface)(IUnknown* me, REFIID riid, LPVOID* ppvObj);
|
||||
} t;
|
||||
inline int QueryInterface(REFIID a, LPVOID* b) { return ((IUnknown*)t.lpvtbl)->t.fnQueryInterface(this,a,b); }
|
||||
#else /* ICOM_VIRTUAL_METHODS */
|
||||
ICOM_METHOD2(HRESULT,QueryInterface,REFIID,riid, LPVOID*,ppvObj)
|
||||
#endif /* ICOM_VIRTUAL_METHODS */
|
||||
|
||||
#endif /* ICOM_CINTERFACE */
|
||||
ICOM_METHOD (ULONG,AddRef)
|
||||
ICOM_METHOD (ULONG,Release)
|
||||
|
||||
ICOM_METHOD2(HRESULT,QueryInterface,REFIID,riid, LPVOID*,ppvObj);
|
||||
ICOM_METHOD (ULONG,AddRef);
|
||||
ICOM_METHOD (ULONG,Release);
|
||||
};
|
||||
#undef ICOM_INTERFACE
|
||||
|
||||
|
@ -823,7 +695,6 @@ struct IUnknown {
|
|||
#define IUnknown_Release(p) ICOM_CALL (Release,p)
|
||||
#endif
|
||||
|
||||
|
||||
/*****************************************************************************
|
||||
* IClassFactory interface
|
||||
*/
|
||||
|
@ -906,21 +777,6 @@ ICOM_DEFINE(IMalloc,IUnknown)
|
|||
#define IMalloc_GetSize(p,a) ICOM_CALL1(GetSize,p,a)
|
||||
#define IMalloc_DidAlloc(p,a) ICOM_CALL1(DidAlloc,p,a)
|
||||
#define IMalloc_HeapMinimize(p) ICOM_CALL (HeapMinimize,p)
|
||||
|
||||
#ifndef __WINE__
|
||||
/* Duplicated for WINELIB */
|
||||
/*** IUnknown methods ***/
|
||||
#define IMalloc_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b)
|
||||
#define IMalloc_AddRef(p) ICOM_CALL (AddRef,p)
|
||||
#define IMalloc_Release(p) ICOM_CALL (Release,p)
|
||||
/*** IMalloc methods ***/
|
||||
#define IMalloc_Alloc(p,a) ICOM_CALL1(Alloc,p,a)
|
||||
#define IMalloc_Realloc(p,a,b) ICOM_CALL2(Realloc,p,a,b)
|
||||
#define IMalloc_Free(p,a) ICOM_CALL1(Free,p,a)
|
||||
#define IMalloc_GetSize(p,a) ICOM_CALL1(GetSize,p,a)
|
||||
#define IMalloc_DidAlloc(p,a) ICOM_CALL1(DidAlloc,p,a)
|
||||
#define IMalloc_HeapMinimize(p) ICOM_CALL (HeapMinimize,p)
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
||||
|
|
|
@ -1196,7 +1196,9 @@ static HRESULT WINAPI IDirectPlayLobby2AImpl_CreateCompoundAddress
|
|||
|
||||
/* Direct Play Lobby 1 (ascii) Virtual Table for methods */
|
||||
/* All lobby 1 methods are exactly the same except QueryInterface */
|
||||
static struct ICOM_VTABLE(IDirectPlayLobby) directPlayLobbyAVT = {
|
||||
static struct ICOM_VTABLE(IDirectPlayLobby) directPlayLobbyAVT =
|
||||
{
|
||||
ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
|
||||
IDirectPlayLobbyAImpl_QueryInterface,
|
||||
XCAST(AddRef)IDirectPlayLobby2AImpl_AddRef,
|
||||
XCAST(Release)IDirectPlayLobby2AImpl_Release,
|
||||
|
@ -1223,7 +1225,9 @@ static struct ICOM_VTABLE(IDirectPlayLobby) directPlayLobbyAVT = {
|
|||
#endif
|
||||
|
||||
/* Direct Play Lobby 1 (unicode) Virtual Table for methods */
|
||||
static ICOM_VTABLE(IDirectPlayLobby) directPlayLobbyWVT = {
|
||||
static ICOM_VTABLE(IDirectPlayLobby) directPlayLobbyWVT =
|
||||
{
|
||||
ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
|
||||
IDirectPlayLobbyW_QueryInterface,
|
||||
XCAST(AddRef)IDirectPlayLobby2WImpl_AddRef,
|
||||
XCAST(Release)IDirectPlayLobby2WImpl_Release,
|
||||
|
@ -1243,7 +1247,9 @@ static ICOM_VTABLE(IDirectPlayLobby) directPlayLobbyWVT = {
|
|||
|
||||
|
||||
/* Direct Play Lobby 2 (ascii) Virtual Table for methods */
|
||||
static ICOM_VTABLE(IDirectPlayLobby2) directPlayLobby2AVT = {
|
||||
static ICOM_VTABLE(IDirectPlayLobby2) directPlayLobby2AVT =
|
||||
{
|
||||
ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
|
||||
IDirectPlayLobby2AImpl_QueryInterface,
|
||||
IDirectPlayLobby2AImpl_AddRef,
|
||||
IDirectPlayLobby2AImpl_Release,
|
||||
|
@ -1262,7 +1268,9 @@ static ICOM_VTABLE(IDirectPlayLobby2) directPlayLobby2AVT = {
|
|||
};
|
||||
|
||||
/* Direct Play Lobby 2 (unicode) Virtual Table for methods */
|
||||
static ICOM_VTABLE(IDirectPlayLobby2) directPlayLobby2WVT = {
|
||||
static ICOM_VTABLE(IDirectPlayLobby2) directPlayLobby2WVT =
|
||||
{
|
||||
ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
|
||||
IDirectPlayLobby2WImpl_QueryInterface,
|
||||
IDirectPlayLobby2WImpl_AddRef,
|
||||
IDirectPlayLobby2WImpl_Release,
|
||||
|
@ -2473,7 +2481,9 @@ HRESULT WINAPI DirectPlay3WImpl_GetPlayerFlags
|
|||
# define XCAST(fun) (void*)
|
||||
#endif
|
||||
|
||||
static ICOM_VTABLE(IDirectPlay2) directPlay2WVT = {
|
||||
static ICOM_VTABLE(IDirectPlay2) directPlay2WVT =
|
||||
{
|
||||
ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
|
||||
DirectPlay2W_QueryInterface,
|
||||
XCAST(AddRef)DirectPlay3WImpl_AddRef,
|
||||
XCAST(Release)DirectPlay3WImpl_Release,
|
||||
|
@ -2517,7 +2527,9 @@ static ICOM_VTABLE(IDirectPlay2) directPlay2WVT = {
|
|||
# define XCAST(fun) (void*)
|
||||
#endif
|
||||
|
||||
static ICOM_VTABLE(IDirectPlay2) directPlay2AVT = {
|
||||
static ICOM_VTABLE(IDirectPlay2) directPlay2AVT =
|
||||
{
|
||||
ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
|
||||
DirectPlay2A_QueryInterface,
|
||||
XCAST(AddRef)DirectPlay3WImpl_AddRef,
|
||||
XCAST(Release)DirectPlay3A_Release,
|
||||
|
@ -2554,7 +2566,9 @@ static ICOM_VTABLE(IDirectPlay2) directPlay2AVT = {
|
|||
#undef XCAST
|
||||
|
||||
|
||||
static ICOM_VTABLE(IDirectPlay3) directPlay3AVT = {
|
||||
static ICOM_VTABLE(IDirectPlay3) directPlay3AVT =
|
||||
{
|
||||
ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
|
||||
DirectPlay3A_QueryInterface,
|
||||
DirectPlay3WImpl_AddRef,
|
||||
DirectPlay3A_Release,
|
||||
|
@ -2605,7 +2619,9 @@ static ICOM_VTABLE(IDirectPlay3) directPlay3AVT = {
|
|||
DirectPlay3A_GetPlayerFlags
|
||||
};
|
||||
|
||||
static ICOM_VTABLE(IDirectPlay3) directPlay3WVT = {
|
||||
static ICOM_VTABLE(IDirectPlay3) directPlay3WVT =
|
||||
{
|
||||
ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
|
||||
DirectPlay3WImpl_QueryInterface,
|
||||
DirectPlay3WImpl_AddRef,
|
||||
DirectPlay3WImpl_Release,
|
||||
|
|
|
@ -430,7 +430,9 @@ static HRESULT WINAPI IDirectSound3DBufferImpl_SetVelocity(
|
|||
return DS_OK;
|
||||
}
|
||||
|
||||
ICOM_VTABLE(IDirectSound3DBuffer) ds3dbvt = {
|
||||
ICOM_VTABLE(IDirectSound3DBuffer) ds3dbvt =
|
||||
{
|
||||
ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
|
||||
/* IUnknown methods */
|
||||
IDirectSound3DBufferImpl_QueryInterface,
|
||||
IDirectSound3DBufferImpl_AddRef,
|
||||
|
@ -691,7 +693,9 @@ static HRESULT WINAPI IDirectSound3DListenerImpl_CommitDeferredSettings(
|
|||
return DS_OK;
|
||||
}
|
||||
|
||||
ICOM_VTABLE(IDirectSound3DListener) ds3dlvt = {
|
||||
ICOM_VTABLE(IDirectSound3DListener) ds3dlvt =
|
||||
{
|
||||
ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
|
||||
/* IUnknown methods */
|
||||
IDirectSound3DListenerImpl_QueryInterface,
|
||||
IDirectSound3DListenerImpl_AddRef,
|
||||
|
@ -766,7 +770,9 @@ static HRESULT WINAPI IDirectSoundNotifyImpl_SetNotificationPositions(
|
|||
return 0;
|
||||
}
|
||||
|
||||
ICOM_VTABLE(IDirectSoundNotify) dsnvt = {
|
||||
ICOM_VTABLE(IDirectSoundNotify) dsnvt =
|
||||
{
|
||||
ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
|
||||
IDirectSoundNotifyImpl_QueryInterface,
|
||||
IDirectSoundNotifyImpl_AddRef,
|
||||
IDirectSoundNotifyImpl_Release,
|
||||
|
@ -1251,7 +1257,9 @@ static HRESULT WINAPI IDirectSoundBufferImpl_QueryInterface(
|
|||
return E_FAIL;
|
||||
}
|
||||
|
||||
static ICOM_VTABLE(IDirectSoundBuffer) dsbvt = {
|
||||
static ICOM_VTABLE(IDirectSoundBuffer) dsbvt =
|
||||
{
|
||||
ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
|
||||
IDirectSoundBufferImpl_QueryInterface,
|
||||
IDirectSoundBufferImpl_AddRef,
|
||||
IDirectSoundBufferImpl_Release,
|
||||
|
@ -1589,7 +1597,9 @@ static HRESULT WINAPI IDirectSoundImpl_Initialize(
|
|||
return DS_OK;
|
||||
}
|
||||
|
||||
static ICOM_VTABLE(IDirectSound) dsvt = {
|
||||
static ICOM_VTABLE(IDirectSound) dsvt =
|
||||
{
|
||||
ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
|
||||
IDirectSoundImpl_QueryInterface,
|
||||
IDirectSoundImpl_AddRef,
|
||||
IDirectSoundImpl_Release,
|
||||
|
|
|
@ -84,6 +84,7 @@ HRESULT WINAPI AntiMonikerImpl_Destroy(AntiMonikerImpl* iface);
|
|||
/* IPersistStream and IMoniker functions. */
|
||||
static ICOM_VTABLE(IMoniker) VT_AntiMonikerImpl =
|
||||
{
|
||||
ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
|
||||
AntiMonikerImpl_QueryInterface,
|
||||
AntiMonikerImpl_AddRef,
|
||||
AntiMonikerImpl_Release,
|
||||
|
@ -113,6 +114,7 @@ static ICOM_VTABLE(IMoniker) VT_AntiMonikerImpl =
|
|||
/* Virtual function table for the IROTData class. */
|
||||
static ICOM_VTABLE(IROTData) VT_ROTDataImpl =
|
||||
{
|
||||
ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
|
||||
AntiMonikerROTDataImpl_QueryInterface,
|
||||
AntiMonikerROTDataImpl_AddRef,
|
||||
AntiMonikerROTDataImpl_Release,
|
||||
|
|
|
@ -68,6 +68,7 @@ HRESULT WINAPI BindCtxImpl_GetObjectIndex(BindCtxImpl* This,IUnknown* punk,LPOLE
|
|||
/* Virtual function table for the BindCtx class. */
|
||||
static ICOM_VTABLE(IBindCtx) VT_BindCtxImpl =
|
||||
{
|
||||
ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
|
||||
BindCtxImpl_QueryInterface,
|
||||
BindCtxImpl_AddRef,
|
||||
BindCtxImpl_Release,
|
||||
|
|
|
@ -127,6 +127,7 @@ HRESULT WINAPI EnumMonikerImpl_CreateEnumMoniker(IMoniker** tabMoniker,ULONG tab
|
|||
|
||||
static ICOM_VTABLE(IMoniker) VT_CompositeMonikerImpl =
|
||||
{
|
||||
ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
|
||||
CompositeMonikerImpl_QueryInterface,
|
||||
CompositeMonikerImpl_AddRef,
|
||||
CompositeMonikerImpl_Release,
|
||||
|
@ -156,6 +157,7 @@ static ICOM_VTABLE(IMoniker) VT_CompositeMonikerImpl =
|
|||
/* Virtual function table for the IROTData class. */
|
||||
static ICOM_VTABLE(IROTData) VT_ROTDataImpl =
|
||||
{
|
||||
ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
|
||||
CompositeMonikerROTDataImpl_QueryInterface,
|
||||
CompositeMonikerROTDataImpl_AddRef,
|
||||
CompositeMonikerROTDataImpl_Release,
|
||||
|
@ -166,6 +168,7 @@ static ICOM_VTABLE(IROTData) VT_ROTDataImpl =
|
|||
/* Virtual function table for the IROTData class */
|
||||
static ICOM_VTABLE(IEnumMoniker) VT_EnumMonikerImpl =
|
||||
{
|
||||
ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
|
||||
EnumMonikerImpl_QueryInterface,
|
||||
EnumMonikerImpl_AddRef,
|
||||
EnumMonikerImpl_Release,
|
||||
|
|
|
@ -354,6 +354,7 @@ static HRESULT WINAPI DataCache_OnStop(
|
|||
*/
|
||||
static ICOM_VTABLE(IUnknown) DataCache_NDIUnknown_VTable =
|
||||
{
|
||||
ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
|
||||
DataCache_NDIUnknown_QueryInterface,
|
||||
DataCache_NDIUnknown_AddRef,
|
||||
DataCache_NDIUnknown_Release
|
||||
|
@ -361,6 +362,7 @@ static ICOM_VTABLE(IUnknown) DataCache_NDIUnknown_VTable =
|
|||
|
||||
static ICOM_VTABLE(IDataObject) DataCache_IDataObject_VTable =
|
||||
{
|
||||
ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
|
||||
DataCache_IDataObject_QueryInterface,
|
||||
DataCache_IDataObject_AddRef,
|
||||
DataCache_IDataObject_Release,
|
||||
|
@ -377,6 +379,7 @@ static ICOM_VTABLE(IDataObject) DataCache_IDataObject_VTable =
|
|||
|
||||
static ICOM_VTABLE(IPersistStorage) DataCache_IPersistStorage_VTable =
|
||||
{
|
||||
ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
|
||||
DataCache_IPersistStorage_QueryInterface,
|
||||
DataCache_IPersistStorage_AddRef,
|
||||
DataCache_IPersistStorage_Release,
|
||||
|
@ -391,6 +394,7 @@ static ICOM_VTABLE(IPersistStorage) DataCache_IPersistStorage_VTable =
|
|||
|
||||
static ICOM_VTABLE(IViewObject2) DataCache_IViewObject2_VTable =
|
||||
{
|
||||
ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
|
||||
DataCache_IViewObject2_QueryInterface,
|
||||
DataCache_IViewObject2_AddRef,
|
||||
DataCache_IViewObject2_Release,
|
||||
|
@ -405,6 +409,7 @@ static ICOM_VTABLE(IViewObject2) DataCache_IViewObject2_VTable =
|
|||
|
||||
static ICOM_VTABLE(IOleCache2) DataCache_IOleCache2_VTable =
|
||||
{
|
||||
ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
|
||||
DataCache_IOleCache2_QueryInterface,
|
||||
DataCache_IOleCache2_AddRef,
|
||||
DataCache_IOleCache2_Release,
|
||||
|
@ -419,6 +424,7 @@ static ICOM_VTABLE(IOleCache2) DataCache_IOleCache2_VTable =
|
|||
|
||||
static ICOM_VTABLE(IOleCacheControl) DataCache_IOleCacheControl_VTable =
|
||||
{
|
||||
ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
|
||||
DataCache_IOleCacheControl_QueryInterface,
|
||||
DataCache_IOleCacheControl_AddRef,
|
||||
DataCache_IOleCacheControl_Release,
|
||||
|
|
|
@ -305,6 +305,7 @@ static HRESULT WINAPI DefaultHandler_SetContainedObject(
|
|||
*/
|
||||
static ICOM_VTABLE(IOleObject) DefaultHandler_IOleObject_VTable =
|
||||
{
|
||||
ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
|
||||
DefaultHandler_QueryInterface,
|
||||
DefaultHandler_AddRef,
|
||||
DefaultHandler_Release,
|
||||
|
@ -333,6 +334,7 @@ static ICOM_VTABLE(IOleObject) DefaultHandler_IOleObject_VTable =
|
|||
|
||||
static ICOM_VTABLE(IUnknown) DefaultHandler_NDIUnknown_VTable =
|
||||
{
|
||||
ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
|
||||
DefaultHandler_NDIUnknown_QueryInterface,
|
||||
DefaultHandler_NDIUnknown_AddRef,
|
||||
DefaultHandler_NDIUnknown_Release,
|
||||
|
@ -340,6 +342,7 @@ static ICOM_VTABLE(IUnknown) DefaultHandler_NDIUnknown_VTable =
|
|||
|
||||
static ICOM_VTABLE(IDataObject) DefaultHandler_IDataObject_VTable =
|
||||
{
|
||||
ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
|
||||
DefaultHandler_IDataObject_QueryInterface,
|
||||
DefaultHandler_IDataObject_AddRef,
|
||||
DefaultHandler_IDataObject_Release,
|
||||
|
@ -356,6 +359,7 @@ static ICOM_VTABLE(IDataObject) DefaultHandler_IDataObject_VTable =
|
|||
|
||||
static ICOM_VTABLE(IRunnableObject) DefaultHandler_IRunnableObject_VTable =
|
||||
{
|
||||
ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
|
||||
DefaultHandler_IRunnableObject_QueryInterface,
|
||||
DefaultHandler_IRunnableObject_AddRef,
|
||||
DefaultHandler_IRunnableObject_Release,
|
||||
|
|
|
@ -89,6 +89,7 @@ int WINAPI FileMonikerImpl_DecomposePath(LPOLESTR str, LPOLESTR** tabStr);
|
|||
/* IPersistStream and IMoniker functions. */
|
||||
static ICOM_VTABLE(IMoniker) VT_FileMonikerImpl =
|
||||
{
|
||||
ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
|
||||
FileMonikerImpl_QueryInterface,
|
||||
FileMonikerImpl_AddRef,
|
||||
FileMonikerImpl_Release,
|
||||
|
@ -118,6 +119,7 @@ static ICOM_VTABLE(IMoniker) VT_FileMonikerImpl =
|
|||
/* Virtual function table for the IROTData class. */
|
||||
static ICOM_VTABLE(IROTData) VT_ROTDataImpl =
|
||||
{
|
||||
ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
|
||||
FileMonikerROTDataImpl_QueryInterface,
|
||||
FileMonikerROTDataImpl_AddRef,
|
||||
FileMonikerROTDataImpl_Release,
|
||||
|
|
|
@ -146,6 +146,7 @@ HRESULT WINAPI HGLOBALStreamImpl_Clone(
|
|||
*/
|
||||
static ICOM_VTABLE(IStream) HGLOBALStreamImpl_Vtbl =
|
||||
{
|
||||
ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
|
||||
HGLOBALStreamImpl_QueryInterface,
|
||||
HGLOBALStreamImpl_AddRef,
|
||||
HGLOBALStreamImpl_Release,
|
||||
|
|
|
@ -69,7 +69,9 @@ static HRESULT WINAPI IUnknown_fnQueryInterface(LPUNKNOWN iface,REFIID refiid,LP
|
|||
return OLE_E_ENUM_NOMORE;
|
||||
}
|
||||
|
||||
static ICOM_VTABLE(IUnknown) uvt = {
|
||||
static ICOM_VTABLE(IUnknown) uvt =
|
||||
{
|
||||
ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
|
||||
IUnknown_fnQueryInterface,
|
||||
IUnknown_fnAddRef,
|
||||
IUnknown_fnRelease
|
||||
|
@ -328,7 +330,9 @@ static LPVOID WINAPI IMalloc_fnHeapMinimize(LPMALLOC iface) {
|
|||
return NULL;
|
||||
}
|
||||
|
||||
static ICOM_VTABLE(IMalloc) VT_IMalloc32 = {
|
||||
static ICOM_VTABLE(IMalloc) VT_IMalloc32 =
|
||||
{
|
||||
ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
|
||||
IMalloc_fnQueryInterface,
|
||||
IMalloc_fnAddRef,
|
||||
IMalloc_fnRelease,
|
||||
|
|
|
@ -88,6 +88,7 @@ static HRESULT WINAPI ItemMonikerROTDataImpl_GetComparaisonData(IROTData* iface,
|
|||
/* IPersistStream and IMoniker functions. */
|
||||
static ICOM_VTABLE(IMoniker) VT_ItemMonikerImpl =
|
||||
{
|
||||
ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
|
||||
ItemMonikerImpl_QueryInterface,
|
||||
ItemMonikerImpl_AddRef,
|
||||
ItemMonikerImpl_Release,
|
||||
|
@ -117,6 +118,7 @@ static ICOM_VTABLE(IMoniker) VT_ItemMonikerImpl =
|
|||
/* Virtual function table for the IROTData class. */
|
||||
static ICOM_VTABLE(IROTData) VT_ROTDataImpl =
|
||||
{
|
||||
ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
|
||||
ItemMonikerROTDataImpl_QueryInterface,
|
||||
ItemMonikerROTDataImpl_AddRef,
|
||||
ItemMonikerROTDataImpl_Release,
|
||||
|
|
|
@ -116,6 +116,7 @@ HRESULT WINAPI HGLOBALLockBytesImpl_Stat(
|
|||
*/
|
||||
static ICOM_VTABLE(ILockBytes) HGLOBALLockBytesImpl_Vtbl =
|
||||
{
|
||||
ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
|
||||
HGLOBALLockBytesImpl_QueryInterface,
|
||||
HGLOBALLockBytesImpl_AddRef,
|
||||
HGLOBALLockBytesImpl_Release,
|
||||
|
|
|
@ -62,6 +62,7 @@ HRESULT WINAPI RunningObjectTableImpl_GetObjectIndex(RunningObjectTableImpl* Thi
|
|||
/* Virtual function table for the IRunningObjectTable class. */
|
||||
static ICOM_VTABLE(IRunningObjectTable) VT_RunningObjectTableImpl =
|
||||
{
|
||||
ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
|
||||
RunningObjectTableImpl_QueryInterface,
|
||||
RunningObjectTableImpl_AddRef,
|
||||
RunningObjectTableImpl_Release,
|
||||
|
|
|
@ -168,6 +168,7 @@ static HRESULT WINAPI OLEFontImpl_GetSizeMax(IPersistStream* iface,
|
|||
*/
|
||||
static ICOM_VTABLE(IFont) OLEFontImpl_VTable =
|
||||
{
|
||||
ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
|
||||
OLEFontImpl_QueryInterface,
|
||||
OLEFontImpl_AddRef,
|
||||
OLEFontImpl_Release,
|
||||
|
@ -199,6 +200,7 @@ static ICOM_VTABLE(IFont) OLEFontImpl_VTable =
|
|||
|
||||
static ICOM_VTABLE(IDispatch) OLEFontImpl_IDispatch_VTable =
|
||||
{
|
||||
ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
|
||||
OLEFontImpl_IDispatch_QueryInterface,
|
||||
OLEFontImpl_IDispatch_AddRef,
|
||||
OLEFontImpl_IDispatch_Release,
|
||||
|
@ -210,6 +212,7 @@ static ICOM_VTABLE(IDispatch) OLEFontImpl_IDispatch_VTable =
|
|||
|
||||
static ICOM_VTABLE(IPersistStream) OLEFontImpl_IPersistStream_VTable =
|
||||
{
|
||||
ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
|
||||
OLEFontImpl_IPersistStream_QueryInterface,
|
||||
OLEFontImpl_IPersistStream_AddRef,
|
||||
OLEFontImpl_IPersistStream_Release,
|
||||
|
|
|
@ -386,6 +386,7 @@ static HRESULT WINAPI DataAdviseHolder_SendOnDataChange(
|
|||
*/
|
||||
static struct ICOM_VTABLE(IDataAdviseHolder) DataAdviseHolderImpl_VTable =
|
||||
{
|
||||
ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
|
||||
DataAdviseHolder_QueryInterface,
|
||||
DataAdviseHolder_AddRef,
|
||||
DataAdviseHolder_Release,
|
||||
|
|
|
@ -28,6 +28,7 @@ DEFAULT_DEBUG_CHANNEL(storage)
|
|||
*/
|
||||
static ICOM_VTABLE(IStream) StgStreamImpl_Vtbl =
|
||||
{
|
||||
ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
|
||||
StgStreamImpl_QueryInterface,
|
||||
StgStreamImpl_AddRef,
|
||||
StgStreamImpl_Release,
|
||||
|
|
|
@ -89,6 +89,7 @@ static DWORD GetCreationModeFromSTGM(DWORD stgm);
|
|||
*/
|
||||
static ICOM_VTABLE(IStorage) Storage32Impl_Vtbl =
|
||||
{
|
||||
ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
|
||||
StorageBaseImpl_QueryInterface,
|
||||
StorageBaseImpl_AddRef,
|
||||
StorageBaseImpl_Release,
|
||||
|
@ -114,6 +115,7 @@ static ICOM_VTABLE(IStorage) Storage32Impl_Vtbl =
|
|||
*/
|
||||
static ICOM_VTABLE(IStorage) Storage32InternalImpl_Vtbl =
|
||||
{
|
||||
ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
|
||||
StorageBaseImpl_QueryInterface,
|
||||
StorageBaseImpl_AddRef,
|
||||
StorageBaseImpl_Release,
|
||||
|
@ -139,6 +141,7 @@ static ICOM_VTABLE(IStorage) Storage32InternalImpl_Vtbl =
|
|||
*/
|
||||
static ICOM_VTABLE(IEnumSTATSTG) IEnumSTATSTGImpl_Vtbl =
|
||||
{
|
||||
ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
|
||||
IEnumSTATSTGImpl_QueryInterface,
|
||||
IEnumSTATSTGImpl_AddRef,
|
||||
IEnumSTATSTGImpl_Release,
|
||||
|
|
|
@ -291,7 +291,9 @@ static HRESULT WINAPI IDirectInputAImpl_RunControlPanel(LPDIRECTINPUTA iface,
|
|||
return DI_OK;
|
||||
}
|
||||
|
||||
static ICOM_VTABLE(IDirectInputA) ddiavt= {
|
||||
static ICOM_VTABLE(IDirectInputA) ddiavt =
|
||||
{
|
||||
ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
|
||||
IDirectInputAImpl_QueryInterface,
|
||||
IDirectInputAImpl_AddRef,
|
||||
IDirectInputAImpl_Release,
|
||||
|
@ -1096,7 +1098,9 @@ static HRESULT WINAPI SysMouseAImpl_SetProperty(LPDIRECTINPUTDEVICE2A iface,
|
|||
}
|
||||
|
||||
|
||||
static ICOM_VTABLE(IDirectInputDevice2A) SysKeyboardAvt={
|
||||
static ICOM_VTABLE(IDirectInputDevice2A) SysKeyboardAvt =
|
||||
{
|
||||
ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
|
||||
IDirectInputDevice2AImpl_QueryInterface,
|
||||
IDirectInputDevice2AImpl_AddRef,
|
||||
IDirectInputDevice2AImpl_Release,
|
||||
|
@ -1126,7 +1130,9 @@ static ICOM_VTABLE(IDirectInputDevice2A) SysKeyboardAvt={
|
|||
IDirectInputDevice2AImpl_SendDeviceData,
|
||||
};
|
||||
|
||||
static ICOM_VTABLE(IDirectInputDevice2A) SysMouseAvt={
|
||||
static ICOM_VTABLE(IDirectInputDevice2A) SysMouseAvt =
|
||||
{
|
||||
ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
|
||||
IDirectInputDevice2AImpl_QueryInterface,
|
||||
IDirectInputDevice2AImpl_AddRef,
|
||||
SysMouseAImpl_Release,
|
||||
|
|
Loading…
Reference in New Issue