Use a more compatible technique to declare COM interfaces methods,
using Microsoft's STDMETHOD macros instead of the Wine-specific
ICOM_METHOD ones.

diff --git a/include/oledlg.h b/include/oledlg.h
index 0feb8e9..1d74815 100644
--- a/include/oledlg.h
+++ b/include/oledlg.h
@@ -640,53 +640,49 @@
 /*****************************************************************************
  * IOleUILinkContainer interface
  */
-#define ICOM_INTERFACE   IOleUILinkContainerA
+#define INTERFACE   IOleUILinkContainerA
 #define IOleUILinkContainerA_METHODS \
-    ICOM_METHOD1(DWORD,GetNextLink,               DWORD,dwLink) \
-    ICOM_METHOD2(HRESULT,SetLinkUpdateOptions,    DWORD,dwLink,  DWORD,dwUpdateOpt) \
-    ICOM_METHOD2(HRESULT,GetLinkUpdateOptions,    DWORD,dwLink,  DWORD*,lpdwUpdateOpt) \
-    ICOM_METHOD5(HRESULT,SetLinkSource,           DWORD,dwLink,  LPSTR,lpszDisplayName, \
-                ULONG,lenFileName,  ULONG*,pchEaten,  BOOL,fValidateSource) \
-    ICOM_METHOD7(HRESULT,GetLinkSource,           DWORD,dwLink, \
-                LPSTR*,lplpszDisplayName,  ULONG*,lplenFileName, \
-                LPSTR*,lplpszFullLinkType,  LPSTR*,lplpszShortLinkType, \
-                BOOL*,lpfSourceAvailable,  BOOL*,lpfIsSelected) \
-    ICOM_METHOD1(HRESULT,OpenLinkSource,          DWORD,dwLink) \
-    ICOM_METHOD3(HRESULT,UpdateLink,              DWORD,dwLink, \
-                BOOL,fErrorMessage,  BOOL,fReserved) \
-    ICOM_METHOD1(HRESULT,CancelLink,							DWORD,dwLink)
+    STDMETHOD_(DWORD,GetNextLink)(THIS_ DWORD dwLink) PURE; \
+    STDMETHOD(SetLinkUpdateOptions)(THIS_ DWORD dwLink, DWORD dwUpdateOpt) PURE; \
+    STDMETHOD(GetLinkUpdateOptions)(THIS_ DWORD dwLink, DWORD *lpdwUpdateOpt) PURE; \
+    STDMETHOD(SetLinkSource)(THIS_ DWORD dwLink, LPSTR lpszDisplayName, \
+                ULONG lenFileName, ULONG *pchEaten, BOOL fValidateSource) PURE; \
+    STDMETHOD(GetLinkSource)(THIS_ DWORD dwLink, LPSTR *lplpszDisplayName, ULONG *lplenFileName, \
+                LPSTR *lplpszFullLinkType,  LPSTR *lplpszShortLinkType, \
+                BOOL *lpfSourceAvailable,  BOOL *lpfIsSelected) PURE; \
+    STDMETHOD(OpenLinkSource)(THIS_ DWORD dwLink) PURE; \
+    STDMETHOD(UpdateLink)(THIS_ DWORD dwLink, BOOL fErrorMessage, BOOL fReserved) PURE; \
+    STDMETHOD(CancelLink)(THIS_ DWORD dwLink) PURE;
 #define IOleUILinkContainerA_IMETHODS \
     IUnknown_IMETHODS \
     IOleUILinkContainerA_METHODS
 ICOM_DEFINE(IOleUILinkContainerA, IUnknown)
-#undef ICOM_INTERFACE
+#undef INTERFACE
 
-#define ICOM_INTERFACE   IOleUILinkContainerW
+#define INTERFACE   IOleUILinkContainerW
 #define IOleUILinkContainerW_METHODS \
-    ICOM_METHOD1(DWORD,GetNextLink,               DWORD,dwLink) \
-    ICOM_METHOD2(HRESULT,SetLinkUpdateOptions,    DWORD,dwLink,  DWORD,dwUpdateOpt) \
-    ICOM_METHOD2(HRESULT,GetLinkUpdateOptions,    DWORD,dwLink,  DWORD*,lpdwUpdateOpt) \
-    ICOM_METHOD5(HRESULT,SetLinkSource,           DWORD,dwLink,  LPWSTR,lpszDisplayName, \
-                ULONG,lenFileName,  ULONG*,pchEaten,  BOOL,fValidateSource) \
-    ICOM_METHOD7(HRESULT,GetLinkSource,           DWORD,dwLink, \
-                LPWSTR*,lplpszDisplayName,  ULONG*,lplenFileName, \
-                LPWSTR*,lplpszFullLinkType,  LPWSTR*,lplpszShortLinkType, \
-                BOOL*,lpfSourceAvailable,  BOOL*,lpfIsSelected) \
-    ICOM_METHOD1(HRESULT,OpenLinkSource,          DWORD,dwLink) \
-    ICOM_METHOD3(HRESULT,UpdateLink,              DWORD,dwLink, \
-                BOOL,fErrorMessage,  BOOL,fReserved) \
-    ICOM_METHOD1(HRESULT,CancelLink,							DWORD,dwLink)
+    STDMETHOD_(DWORD,GetNextLink)(THIS_ DWORD dwLink) PURE; \
+    STDMETHOD(SetLinkUpdateOptions)(THIS_ DWORD dwLink,  DWORD dwUpdateOpt) PURE; \
+    STDMETHOD(GetLinkUpdateOptions)(THIS_ DWORD dwLink,  DWORD *lpdwUpdateOpt) PURE; \
+    STDMETHOD(SetLinkSource)(THIS_ DWORD dwLink,  LPWSTR lpszDisplayName, \
+                ULONG lenFileName,  ULONG *pchEaten,  BOOL fValidateSource) PURE; \
+    STDMETHOD(GetLinkSource)(THIS_ DWORD dwLink, LPWSTR *lplpszDisplayName, ULONG *lplenFileName, \
+                LPWSTR *lplpszFullLinkType,  LPWSTR *lplpszShortLinkType, \
+                BOOL *lpfSourceAvailable,  BOOL *lpfIsSelected) PURE; \
+    STDMETHOD(OpenLinkSource)(THIS_ DWORD dwLink) PURE; \
+    STDMETHOD(UpdateLink)(THIS_ DWORD dwLink, BOOL fErrorMessage, BOOL fReserved) PURE; \
+    STDMETHOD(CancelLink)(THIS_ DWORD dwLink) PURE;
 #define IOleUILinkContainerW_IMETHODS \
     IUnknown_IMETHODS \
     IOleUILinkContainerW_METHODS
 ICOM_DEFINE(IOleUILinkContainerW, IUnknown)
-#undef ICOM_INTERFACE
+#undef INTERFACE
 
 DECL_WINELIB_TYPE_AW(IOleUILinkContainer)
 DECL_WINELIB_TYPE_AW(POLEUILINKCONTAINER)
 DECL_WINELIB_TYPE_AW(LPOLEUILINKCONTAINER)
 
-#if ICOM_INTERFACE
+#if ICOM_CINTERFACE
 /*** IUnknown methods ***/
 #define IOleUILinkContainer_QueryInterface(p,a,b)          ICOM_CALL2(QueryInterface,p,a,b)
 #define IOleUILinkContainer_AddRef(p)                      ICOM_CALL (AddRef,p)
@@ -706,23 +702,23 @@
 /*****************************************************************************
  * IOleUILinkInfo interface
  */
-#define ICOM_INTERFACE   IOleUILinkInfoA
+#define INTERFACE   IOleUILinkInfoA
 #define IOleUILinkInfoA_METHODS \
-    ICOM_METHOD2(HRESULT,GetLastUpdate,           DWORD,dwLink,  FILETIME*,lpLastUpdate)
+    STDMETHOD(GetLastUpdate)(THIS_ DWORD dwLink,  FILETIME *lpLastUpdate) PURE;
 #define IOleUILinkInfoA_IMETHODS \
     IOleUILinkContainerA_IMETHODS \
     IOleUILinkInfoA_METHODS
 ICOM_DEFINE(IOleUILinkInfoA, IOleUILinkContainerA)
-#undef ICOM_INTERFACE
+#undef INTERFACE
 
-#define ICOM_INTERFACE   IOleUILinkInfoW
+#define INTERFACE   IOleUILinkInfoW
 #define IOleUILinkInfoW_METHODS \
-    ICOM_METHOD2(HRESULT,GetLastUpdate,           DWORD,dwLink,  FILETIME*,lpLastUpdate)
+    STDMETHOD(GetLastUpdate)(THIS_ DWORD dwLink,  FILETIME *lpLastUpdate) PURE;
 #define IOleUILinkInfoW_IMETHODS \
     IOleUILinkContainerW_IMETHODS \
     IOleUILinkInfoW_METHODS
 ICOM_DEFINE(IOleUILinkInfoW, IOleUILinkContainerW)
-#undef  ICOM_INTERFACE
+#undef  INTERFACE
 
 DECL_WINELIB_TYPE_AW(IOleUILinkInfo)
 DECL_WINELIB_TYPE_AW(POLEUILINKINFO)
@@ -748,41 +744,37 @@
 /*****************************************************************************
  * IOleUIObjInfo interface
  */
-#define ICOM_INTERFACE   IOleUIObjInfoA
+#define INTERFACE   IOleUIObjInfoA
 #define IOleUIObjInfoA_METHODS \
-    ICOM_METHOD6(HRESULT,GetObjectInfo,            DWORD,dwObject, DWORD*,lpdwObjSize, LPSTR*,lplpszLabel, \
-                LPSTR*,lplpszType, LPSTR*,lplpszShortType, LPSTR*,lplpszLocation) \
-    ICOM_METHOD6(HRESULT,GetConvertInfo,           DWORD,dwObject, CLSID*,lpClassID, WORD*,lpwFormat, \
-                CLSID*,lpConvertDefaultClassID, LPCLSID*,lplpClsidExclude, UINT*,lpcClsidExclude) \
-    ICOM_METHOD2(HRESULT,ConvertObject,            DWORD,dwObject,  REFCLSID,clsidNew) \
-    ICOM_METHOD4(HRESULT,GetViewInfo,              DWORD,dwObject, \
-                HGLOBAL*,phMetaPict,  DWORD*,pdvAspect,  INT*,pnCurrentScale) \
-    ICOM_METHOD5(HRESULT,SetViewInfo,              DWORD,dwObject, \
-                HGLOBAL,hMetaPict,  DWORD,dvAspect, \
-                INT,nCurrentScale,  BOOL,bRelativeToOrig)
+    STDMETHOD(GetObjectInfo)(THIS_ DWORD dwObject, DWORD *lpdwObjSize, LPSTR *lplpszLabel, \
+                LPSTR *lplpszType, LPSTR *lplpszShortType, LPSTR *lplpszLocation) PURE; \
+    STDMETHOD(GetConvertInfo)(THIS_ DWORD dwObject, CLSID *lpClassID, WORD *lpwFormat, \
+                CLSID *lpConvertDefaultClassID, LPCLSID *lplpClsidExclude, UINT *lpcClsidExclude) PURE; \
+    STDMETHOD(ConvertObject)(THIS_ DWORD dwObject,  REFCLSID clsidNew) PURE; \
+    STDMETHOD(GetViewInfo)(THIS_ DWORD dwObject, HGLOBAL *phMetaPict, DWORD *pdvAspect, INT *pnCurrentScale) PURE; \
+    STDMETHOD(SetViewInfo)(THIS_ DWORD dwObject, HGLOBAL hMetaPict, DWORD dvAspect, \
+                INT nCurrentScale, BOOL bRelativeToOrig) PURE;
 #define IOleUIObjInfoA_IMETHODS \
     IUnknown_IMETHODS \
     IOleUIObjInfoA_METHODS
 ICOM_DEFINE(IOleUIObjInfoA, IUnknown)
-#undef ICOM_INTERFACE
+#undef INTERFACE
 
-#define ICOM_INTERFACE   IOleUIObjInfoW
+#define INTERFACE   IOleUIObjInfoW
 #define IOleUIObjInfoW_METHODS \
-    ICOM_METHOD6(HRESULT,GetObjectInfo,            DWORD,dwObject, DWORD*,lpdwObjSize, LPWSTR*,lplpszLabel, \
-                LPWSTR*,lplpszType,  LPWSTR*,lplpszShortType,  LPWSTR*,lplpszLocation) \
-    ICOM_METHOD6(HRESULT,GetConvertInfo,           DWORD,dwObject, CLSID*,lpClassID, WORD*,lpwFormat, \
-                CLSID*,lpConvertDefaultClassID, LPCLSID*,lplpClsidExclude, UINT*,lpcClsidExclude) \
-    ICOM_METHOD2(HRESULT,ConvertObject,            DWORD,dwObject,  REFCLSID,clsidNew) \
-    ICOM_METHOD4(HRESULT,GetViewInfo,              DWORD,dwObject, \
-                HGLOBAL*,phMetaPict,  DWORD*,pdvAspect,  INT*,pnCurrentScale) \
-    ICOM_METHOD5(HRESULT,SetViewInfo,              DWORD,dwObject, \
-                HGLOBAL,hMetaPict,  DWORD,dvAspect, \
-                INT,nCurrentScale,  BOOL,bRelativeToOrig)
+    STDMETHOD(GetObjectInfo)(THIS_ DWORD dwObject, DWORD *lpdwObjSize, LPWSTR *lplpszLabel, \
+                LPWSTR *lplpszType,  LPWSTR *lplpszShortType,  LPWSTR *lplpszLocation) PURE; \
+    STDMETHOD(GetConvertInfo)(THIS_ DWORD dwObject, CLSID *lpClassID, WORD *lpwFormat, \
+                CLSID *lpConvertDefaultClassID, LPCLSID *lplpClsidExclude, UINT *lpcClsidExclude) PURE; \
+    STDMETHOD(ConvertObject)(THIS_ DWORD dwObject,  REFCLSID clsidNew) PURE; \
+    STDMETHOD(GetViewInfo)(THIS_ DWORD dwObject, HGLOBAL *phMetaPict, DWORD *pdvAspect, INT *pnCurrentScale) PURE; \
+    STDMETHOD(SetViewInfo)(THIS_ DWORD dwObject, HGLOBAL hMetaPict, DWORD dvAspect, \
+                INT nCurrentScale, BOOL bRelativeToOrig) PURE;
 #define IOleUIObjInfoW_IMETHODS \
     IUnknown_IMETHODS \
     IOleUIObjInfoW_METHODS
 ICOM_DEFINE(IOleUIObjInfoW, IUnknown)
-#undef ICOM_INTERFACE
+#undef INTERFACE
 
 DECL_WINELIB_TYPE_AW(IOleUIObjInfo)
 DECL_WINELIB_TYPE_AW(POLEUIOBJINFO)
@@ -839,8 +831,3 @@
 
 
 #endif  /* __WINE_OLEDLG_H */
-
-
-
-
-