* include/basetyps.h: Likewise.
(_COM_interface): New define.
(interface): Define to _COM_interface, conditional on !__OBJC__.
Replace 'interface' with '_COM_interface', throughout.
* include/comcat.h: Replace 'interface' with '_COM_interface', throughout.
* include/commdlg.h: Replace __OBJC__ guard with _OBJC_NO_COM.
* include/docobj.h: Replace 'interface' with '_COM_interface', throughout.
* include/mshtml.h: Likewise.
* include/oaidl.h: Likewise.
* include/objfwd.h: Likewise.
* include/objidl.h: Likewise.
* include/ocidl.h: Likwise.
* include/olectl.h: Likewise.
* include/oleidl.h: Likewise.
* include/shlobj.h: Likewise.
* include/shlwapi.h: Replace __OBJC__ guard with _OBJC_NO_COM.
* include/vfw.h: Likewise.
* include/windows.h. Likewise. Add comment.
* include/directx/d3d9.h: Replace 'interface' with '_COM_interface',
throughout.
* lib/test.c: Replace __OBJC__ guard with _OBJC_NO_COM.
Add test for conflict with '@interface'
+2006-07-25 Danny Smith <dannysmith@users.sourceforge.net>
+
+ * include/aclui.h: Replace __OBJC__ guard with _OBJC_NO_COM.
+ * include/basetyps.h: Likewise.
+ (_COM_interface): New define.
+ (interface): Define to _COM_interface, conditional on !__OBJC__.
+ Replace 'interface' with '_COM_interface', throughout.
+ * include/comcat.h: Replace 'interface' with '_COM_interface', throughout.
+ * include/commdlg.h: Replace __OBJC__ guard with _OBJC_NO_COM.
+ * include/docobj.h: Replace 'interface' with '_COM_interface', throughout.
+ * include/mshtml.h: Likewise.
+ * include/oaidl.h: Likewise.
+ * include/objfwd.h: Likewise.
+ * include/objidl.h: Likewise.
+ * include/ocidl.h: Likwise.
+ * include/olectl.h: Likewise.
+ * include/oleidl.h: Likewise.
+ * include/shlobj.h: Likewise.
+ * include/shlwapi.h: Replace __OBJC__ guard with _OBJC_NO_COM.
+ * include/vfw.h: Likewise.
+ * include/windows.h. Likewise. Add comment.
+ * include/directx/d3d9.h: Replace 'interface' with '_COM_interface',
+ throughout.
+
+ * lib/test.c: Replace __OBJC__ guard with _OBJC_NO_COM.
+ Add test for conflict with '@interface'
+
+
2006-07-22 ipsoner <ipsoner@users.sourceforge.net>
* include/wincrypt.h (szOID_RSA, szOID_PKCS, szOID_RSA_HASH,
2006-07-22 Chris Sutcliffe <ir0nh34d@users.sourceforge.net>
- * lib/uuid.c: Remove.
+ * lib/uuid.c: Remove.
2006-07-20 Elias Naur <elias_naur@users.sourceforge.net>
#pragma GCC system_header
#endif
-#ifndef __OBJC__
+#ifndef _OBJC_NO_COM
#include <objbase.h>
#include <commctrl.h>
#include <accctrl.h>
#pragma GCC system_header
#endif
-#ifndef __OBJC__
+#ifndef _OBJC_NO_COM_
# ifdef __cplusplus
# define EXTERN_C extern "C"
# else
# define STDAPIV_(t) EXTERN_C t STDAPIVCALLTYPE
# define STDMETHODIMPV HRESULT STDMETHODVCALLTYPE
# define STDMETHODIMPV_(t) t STDMETHODVCALLTYPE
-# define interface struct
+/* Newer MS compilers support the __interface keyword, but
+ that has a specific meaning that is enforced by the compiler.
+ For now, just get 'interface' out of the global namespace
+ for __OBJC__ */
+# define _COM_interface struct
+# ifndef __OBJC__
+# define interface _COM_interface
+# endif
# if defined(__cplusplus) && !defined(CINTERFACE)
# define STDMETHOD(m) virtual HRESULT STDMETHODCALLTYPE m
# define STDMETHOD_(t,m) virtual t STDMETHODCALLTYPE m
g++ vtables are now COM-compatible by default
*/
# if defined(__GNUC__) && __GNUC__ < 3 && !defined(NOCOMATTRIBUTE)
-# define DECLARE_INTERFACE(i) interface __attribute__((com_interface)) i
-# define DECLARE_INTERFACE_(i,b) interface __attribute__((com_interface)) i : public b
+# define DECLARE_INTERFACE(i) _COM_interface __attribute__((com_interface)) i
+# define DECLARE_INTERFACE_(i,b) _COM_interface __attribute__((com_interface)) i : public b
# else
-# define DECLARE_INTERFACE(i) interface i
-# define DECLARE_INTERFACE_(i,b) interface i : public b
+# define DECLARE_INTERFACE(i) _COM_interface i
+# define DECLARE_INTERFACE_(i,b) _COM_interface i : public b
# endif
# else
# define STDMETHOD(m) HRESULT(STDMETHODCALLTYPE *m)
# define CONST_VTABLE
# endif
# define DECLARE_INTERFACE(i) \
- typedef interface i { CONST_VTABLE struct i##Vtbl *lpVtbl; } i; \
+ typedef _COM_interface i { CONST_VTABLE struct i##Vtbl *lpVtbl; } i; \
typedef CONST_VTABLE struct i##Vtbl i##Vtbl; \
CONST_VTABLE struct i##Vtbl
# define DECLARE_INTERFACE_(i,b) DECLARE_INTERFACE(i)
# define BEGIN_INTERFACE
# define END_INTERFACE
-# define FWD_DECL(i) typedef interface i i
+# define FWD_DECL(i) typedef _COM_interface i i
# if defined(__cplusplus) && !defined(CINTERFACE)
# define IENUM_THIS(T)
# define IENUM_THIS_(T)
}
# define DECLARE_ENUMERATOR(T) DECLARE_ENUMERATOR_(IEnum##T,T)
-#endif /* __OBJC__ */
+#endif /* _OBJC_NO_COM_ */
#ifdef _GUID_DEFINED
# warning _GUID_DEFINED is deprecated, use GUID_DEFINED instead
#define DEFINE_GUID(n,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) GUID_EXT const GUID n
#define DEFINE_OLEGUID(n,l,w1,w2) DEFINE_GUID(n,l,w1,w2,0xC0,0,0,0,0,0,0,0x46)
#endif
-#endif
+#endif
#endif
EXTERN_C const IID IID_IEnumGUID;
-typedef interface IEnumGUID *LPENUMGUID;
+typedef _COM_interface IEnumGUID *LPENUMGUID;
#define INTERFACE IEnumGUID
DECLARE_INTERFACE_(IEnumGUID,IUnknown)
#define IID_IEnumCLSID IID_IEnumGUID
EXTERN_C const IID IID_ICatInformation;
-typedef interface ICatInformation *LPCATINFORMATION;
+typedef _COM_interface ICatInformation *LPCATINFORMATION;
EXTERN_C const IID IID_ICatRegister;
-typedef interface ICatRegister *LPCATREGISTER;
+typedef _COM_interface ICatRegister *LPCATREGISTER;
EXTERN_C const IID IID_IEnumCATEGORYINFO;
-typedef interface IEnumCATEGORYINFO *LPENUMCATEGORYINFO;
+typedef _COM_interface IEnumCATEGORYINFO *LPENUMCATEGORYINFO;
EXTERN_C const CLSID CLSID_StdComponentCategoriesMgr;
HANDLE hPrintTemplate;
HANDLE hSetupTemplate;
} PRINTDLGW,*LPPRINTDLGW;
-#if (WINVER >= 0x0500) && !defined (__OBJC__)
+#if (WINVER >= 0x0500) && !defined (_OBJC_NO_COM)
#include <unknwn.h> /* for LPUNKNOWN */
#include <prsht.h> /* for HPROPSHEETPAGE */
typedef struct tagPRINTPAGERANGE {
BOOL WINAPI PrintDlgW(LPPRINTDLGW);
HWND WINAPI ReplaceTextA(LPFINDREPLACEA);
HWND WINAPI ReplaceTextW(LPFINDREPLACEW);
-#if (WINVER >= 0x0500) && !defined (__OBJC__)
+#if (WINVER >= 0x0500) && !defined (_OBJC_NO_COM)
HRESULT WINAPI PrintDlgExA(LPPRINTDLGEXA);
HRESULT WINAPI PrintDlgExW(LPPRINTDLGEXW);
#endif /* WINVER >= 0x0500 */
#define PageSetupDlg PageSetupDlgW
#define PrintDlg PrintDlgW
#define ReplaceText ReplaceTextW
-#if (WINVER >= 0x0500) && !defined (__OBJC__)
+#if (WINVER >= 0x0500) && !defined (_OBJC_NO_COM)
typedef PRINTDLGEXW PRINTDLGEX, *LPPRINTDLGEX;
#define PrintDlgEx PrintDlgExW
#endif /* WINVER >= 0x0500 */
#define PageSetupDlg PageSetupDlgA
#define PrintDlg PrintDlgA
#define ReplaceText ReplaceTextA
-#if (WINVER >= 0x0500) && !defined (__OBJC__)
+#if (WINVER >= 0x0500) && !defined (_OBJC_NO_COM)
typedef PRINTDLGEXA PRINTDLGEX, *LPPRINTDLGEX;
#define PrintDlgEx PrintDlgExA
#endif /* WINVER >= 0x0500 */
};
#endif
-typedef interface IDirect3D9 IDirect3D9;
-typedef interface IDirect3DDevice9 IDirect3DDevice9;
-typedef interface IDirect3DVolume9 IDirect3DVolume9;
-typedef interface IDirect3DSwapChain9 IDirect3DSwapChain9;
-typedef interface IDirect3DResource9 IDirect3DResource9;
-typedef interface IDirect3DSurface9 IDirect3DSurface9;
-typedef interface IDirect3DVertexBuffer9 IDirect3DVertexBuffer9;
-typedef interface IDirect3DIndexBuffer9 IDirect3DIndexBuffer9;
-typedef interface IDirect3DBaseTexture9 IDirect3DBaseTexture9;
-typedef interface IDirect3DCubeTexture9 IDirect3DCubeTexture9;
-typedef interface IDirect3DTexture9 IDirect3DTexture9;
-typedef interface IDirect3DVolumeTexture9 IDirect3DVolumeTexture9;
-typedef interface IDirect3DVertexDeclaration9 IDirect3DVertexDeclaration9;
-typedef interface IDirect3DVertexShader9 IDirect3DVertexShader9;
-typedef interface IDirect3DPixelShader9 IDirect3DPixelShader9;
-typedef interface IDirect3DStateBlock9 IDirect3DStateBlock9;
-typedef interface IDirect3DQuery9 IDirect3DQuery9;
+typedef _COM_interface IDirect3D9 IDirect3D9;
+typedef _COM_interface IDirect3DDevice9 IDirect3DDevice9;
+typedef _COM_interface IDirect3DVolume9 IDirect3DVolume9;
+typedef _COM_interface IDirect3DSwapChain9 IDirect3DSwapChain9;
+typedef _COM_interface IDirect3DResource9 IDirect3DResource9;
+typedef _COM_interface IDirect3DSurface9 IDirect3DSurface9;
+typedef _COM_interface IDirect3DVertexBuffer9 IDirect3DVertexBuffer9;
+typedef _COM_interface IDirect3DIndexBuffer9 IDirect3DIndexBuffer9;
+typedef _COM_interface IDirect3DBaseTexture9 IDirect3DBaseTexture9;
+typedef _COM_interface IDirect3DCubeTexture9 IDirect3DCubeTexture9;
+typedef _COM_interface IDirect3DTexture9 IDirect3DTexture9;
+typedef _COM_interface IDirect3DVolumeTexture9 IDirect3DVolumeTexture9;
+typedef _COM_interface IDirect3DVertexDeclaration9 IDirect3DVertexDeclaration9;
+typedef _COM_interface IDirect3DVertexShader9 IDirect3DVertexShader9;
+typedef _COM_interface IDirect3DPixelShader9 IDirect3DPixelShader9;
+typedef _COM_interface IDirect3DStateBlock9 IDirect3DStateBlock9;
+typedef _COM_interface IDirect3DQuery9 IDirect3DQuery9;
#undef INTERFACE
#define INTERFACE IDirect3D9
DWORD cmdf;
} OLECMD;
-typedef interface IOleInPlaceSite *LPOLEINPLACESITE;
-typedef interface IEnumOleDocumentViews *LPENUMOLEDOCUMENTVIEWS;
+typedef _COM_interface IOleInPlaceSite *LPOLEINPLACESITE;
+typedef _COM_interface IEnumOleDocumentViews *LPENUMOLEDOCUMENTVIEWS;
EXTERN_C const IID IID_IContinueCallback;
EXTERN_C const IID IID_IEnumOleDocumentViews;
extern "C" {
#endif
-typedef interface IHTMLElementCollection *LPHTMLELEMENTCOLLECTION;
-typedef interface IHTMLElement *LPHTMLELEMENT;
-typedef interface IHTMLSelectionObject *LPHTMLSELECTIONOBJECT;
-typedef interface IHTMLFramesCollection *LPHTMLFRAMESCOLLECTION;
-typedef interface IHTMLLocation *LPHTMLLOCATION;
-typedef interface IHTMLWindow2 *LPHTMLWINDOW2;
-typedef interface IHTMLStyleSheetsCollection *LPHTMLSTYLESHEETSCOLLECTION;
-typedef interface IHTMLStyleSheet *LPHTMLSTYLESHEET;
-typedef interface IHTMLStyle *LPHTMLSTYLE;
-typedef interface IHTMLFiltersCollection *LPHTMLFILTERSCOLLECTION;
-typedef interface IHTMLLinkElement *LPHTMLLINKELEMENT;
-typedef interface IHTMLImgElement *LPHTMLIMGELEMENT;
-typedef interface IHTMLImageElementFactory *LPHTMLIMAGEELEMENTFACTORY;
-typedef interface IHTMLEventObj *LPHTMLEVENTOBJ;
-typedef interface IHTMLScreen *LPHTMLSCREEN;
-typedef interface IHTMLOptionElementFactory *LPHTMLOPTIONELEMENTFACTORY;
-typedef interface IOmHistory *LPOMHISTORY;
-typedef interface IOmNavigator *LPOMNAVIGATOR;
+typedef _COM_interface IHTMLElementCollection *LPHTMLELEMENTCOLLECTION;
+typedef _COM_interface IHTMLElement *LPHTMLELEMENT;
+typedef _COM_interface IHTMLSelectionObject *LPHTMLSELECTIONOBJECT;
+typedef _COM_interface IHTMLFramesCollection *LPHTMLFRAMESCOLLECTION;
+typedef _COM_interface IHTMLLocation *LPHTMLLOCATION;
+typedef _COM_interface IHTMLWindow2 *LPHTMLWINDOW2;
+typedef _COM_interface IHTMLStyleSheetsCollection *LPHTMLSTYLESHEETSCOLLECTION;
+typedef _COM_interface IHTMLStyleSheet *LPHTMLSTYLESHEET;
+typedef _COM_interface IHTMLStyle *LPHTMLSTYLE;
+typedef _COM_interface IHTMLFiltersCollection *LPHTMLFILTERSCOLLECTION;
+typedef _COM_interface IHTMLLinkElement *LPHTMLLINKELEMENT;
+typedef _COM_interface IHTMLImgElement *LPHTMLIMGELEMENT;
+typedef _COM_interface IHTMLImageElementFactory *LPHTMLIMAGEELEMENTFACTORY;
+typedef _COM_interface IHTMLEventObj *LPHTMLEVENTOBJ;
+typedef _COM_interface IHTMLScreen *LPHTMLSCREEN;
+typedef _COM_interface IHTMLOptionElementFactory *LPHTMLOPTIONELEMENTFACTORY;
+typedef _COM_interface IOmHistory *LPOMHISTORY;
+typedef _COM_interface IOmNavigator *LPOMNAVIGATOR;
EXTERN_C const IID IID_IHTMLLinkElement;
#define INTERFACE IHTMLLinkElement
#define IMPLTYPEFLAG_FRESTRICTED 4
#define IMPLTYPEFLAG_FDEFAULTVTABLE 8
-typedef interface ITypeLib *LPTYPELIB;
-typedef interface ITypeLib2 *LPTYPELIB2;
-typedef interface ICreateTypeInfo *LPCREATETYPEINFO;
-typedef interface ICreateTypeInfo2 *LPCREATETYPEINFO2;
-typedef interface ICreateTypeLib *LPCREATETYPELIB;
-typedef interface ICreateTypeLib2 *LPCREATETYPELIB2;
-typedef interface ITypeComp *LPTYPECOMP;
-typedef interface ITypeInfo *LPTYPEINFO;
-typedef interface ITypeInfo2 *LPTYPEINFO2;
-typedef interface IErrorInfo *LPERRORINFO;
-typedef interface IDispatch *LPDISPATCH;
-typedef interface IEnumVARIANT *LPENUMVARIANT;
-typedef interface ICreateErrorInfo *LPCREATEERRORINFO;
-typedef interface ISupportErrorInfo *LPSUPPORTERRORINFO;
-typedef interface IRecordInfo *LPRECORDINFO;
+typedef _COM_interface ITypeLib *LPTYPELIB;
+typedef _COM_interface ITypeLib2 *LPTYPELIB2;
+typedef _COM_interface ICreateTypeInfo *LPCREATETYPEINFO;
+typedef _COM_interface ICreateTypeInfo2 *LPCREATETYPEINFO2;
+typedef _COM_interface ICreateTypeLib *LPCREATETYPELIB;
+typedef _COM_interface ICreateTypeLib2 *LPCREATETYPELIB2;
+typedef _COM_interface ITypeComp *LPTYPECOMP;
+typedef _COM_interface ITypeInfo *LPTYPEINFO;
+typedef _COM_interface ITypeInfo2 *LPTYPEINFO2;
+typedef _COM_interface IErrorInfo *LPERRORINFO;
+typedef _COM_interface IDispatch *LPDISPATCH;
+typedef _COM_interface IEnumVARIANT *LPENUMVARIANT;
+typedef _COM_interface ICreateErrorInfo *LPCREATEERRORINFO;
+typedef _COM_interface ISupportErrorInfo *LPSUPPORTERRORINFO;
+typedef _COM_interface IRecordInfo *LPRECORDINFO;
extern const IID IID_ITypeLib;
extern const IID IID_ITypeLib2;
#ifdef __cplusplus
extern "C" {
#endif
-typedef interface IMoniker *LPMONIKER;
-typedef interface IStream *LPSTREAM;
-typedef interface IMarshal *LPMARSHAL;
-typedef interface IMalloc *LPMALLOC;
-typedef interface IMallocSpy *LPMALLOCSPY;
-typedef interface IMessageFilter *LPMESSAGEFILTER;
-typedef interface IPersist *LPPERSIST;
-typedef interface IPersistStream *LPPERSISTSTREAM;
-typedef interface IRunningObjectTable *LPRUNNINGOBJECTTABLE;
-typedef interface IBindCtx *LPBINDCTX,*LPBC;
-typedef interface IAdviseSink *LPADVISESINK;
-typedef interface IAdviseSink2 *LPADVISESINK2;
-typedef interface IDataObject *LPDATAOBJECT;
-typedef interface IDataAdviseHolder *LPDATAADVISEHOLDER;
-typedef interface IEnumMoniker *LPENUMMONIKER;
-typedef interface IEnumFORMATETC *LPENUMFORMATETC;
-typedef interface IEnumSTATDATA *LPENUMSTATDATA;
-typedef interface IEnumSTATSTG *LPENUMSTATSTG;
-typedef interface IEnumSTATPROPSTG LPENUMSTATPROPSTG;
-typedef interface IEnumString *LPENUMSTRING;
-typedef interface IEnumUnknown *LPENUMUNKNOWN;
-typedef interface IStorage *LPSTORAGE;
-typedef interface IPersistStorage *LPPERSISTSTORAGE;
-typedef interface ILockBytes *LPLOCKBYTES;
-typedef interface IStdMarshalInfo *LPSTDMARSHALINFO;
-typedef interface IExternalConnection *LPEXTERNALCONNECTION;
-typedef interface IRunnableObject *LPRUNNABLEOBJECT;
-typedef interface IROTData *LPROTDATA;
-typedef interface IPersistFile *LPPERSISTFILE;
-typedef interface IRootStorage *LPROOTSTORAGE;
-typedef interface IRpcChannelBuffer *LPRPCCHANNELBUFFER;
-typedef interface IRpcProxyBuffer *LPRPCPROXYBUFFER;
-typedef interface IRpcStubBuffer *LPRPCSTUBBUFFER;
-typedef interface IPropertyStorage *LPPROPERTYSTORAGE;
-typedef interface IEnumSTATPROPSETSTG *LPENUMSTATPROPSETSTG;
-typedef interface IPropertySetStorage *LPPROPERTYSETSTORAGE;
-typedef interface IClientSecurity *LPCLIENTSECURITY;
-typedef interface IServerSecurity *LPSERVERSECURITY;
-typedef interface IClassActivator *LPCLASSACTIVATOR;
-typedef interface IFillLockBytes *LPFILLLOCKBYTES;
-typedef interface IProgressNotify *LPPROGRESSNOTIFY;
-typedef interface ILayoutStorage *LPLAYOUTSTORAGE;
+typedef _COM_interface IMoniker *LPMONIKER;
+typedef _COM_interface IStream *LPSTREAM;
+typedef _COM_interface IMarshal *LPMARSHAL;
+typedef _COM_interface IMalloc *LPMALLOC;
+typedef _COM_interface IMallocSpy *LPMALLOCSPY;
+typedef _COM_interface IMessageFilter *LPMESSAGEFILTER;
+typedef _COM_interface IPersist *LPPERSIST;
+typedef _COM_interface IPersistStream *LPPERSISTSTREAM;
+typedef _COM_interface IRunningObjectTable *LPRUNNINGOBJECTTABLE;
+typedef _COM_interface IBindCtx *LPBINDCTX,*LPBC;
+typedef _COM_interface IAdviseSink *LPADVISESINK;
+typedef _COM_interface IAdviseSink2 *LPADVISESINK2;
+typedef _COM_interface IDataObject *LPDATAOBJECT;
+typedef _COM_interface IDataAdviseHolder *LPDATAADVISEHOLDER;
+typedef _COM_interface IEnumMoniker *LPENUMMONIKER;
+typedef _COM_interface IEnumFORMATETC *LPENUMFORMATETC;
+typedef _COM_interface IEnumSTATDATA *LPENUMSTATDATA;
+typedef _COM_interface IEnumSTATSTG *LPENUMSTATSTG;
+typedef _COM_interface IEnumSTATPROPSTG LPENUMSTATPROPSTG;
+typedef _COM_interface IEnumString *LPENUMSTRING;
+typedef _COM_interface IEnumUnknown *LPENUMUNKNOWN;
+typedef _COM_interface IStorage *LPSTORAGE;
+typedef _COM_interface IPersistStorage *LPPERSISTSTORAGE;
+typedef _COM_interface ILockBytes *LPLOCKBYTES;
+typedef _COM_interface IStdMarshalInfo *LPSTDMARSHALINFO;
+typedef _COM_interface IExternalConnection *LPEXTERNALCONNECTION;
+typedef _COM_interface IRunnableObject *LPRUNNABLEOBJECT;
+typedef _COM_interface IROTData *LPROTDATA;
+typedef _COM_interface IPersistFile *LPPERSISTFILE;
+typedef _COM_interface IRootStorage *LPROOTSTORAGE;
+typedef _COM_interface IRpcChannelBuffer *LPRPCCHANNELBUFFER;
+typedef _COM_interface IRpcProxyBuffer *LPRPCPROXYBUFFER;
+typedef _COM_interface IRpcStubBuffer *LPRPCSTUBBUFFER;
+typedef _COM_interface IPropertyStorage *LPPROPERTYSTORAGE;
+typedef _COM_interface IEnumSTATPROPSETSTG *LPENUMSTATPROPSETSTG;
+typedef _COM_interface IPropertySetStorage *LPPROPERTYSETSTORAGE;
+typedef _COM_interface IClientSecurity *LPCLIENTSECURITY;
+typedef _COM_interface IServerSecurity *LPSERVERSECURITY;
+typedef _COM_interface IClassActivator *LPCLASSACTIVATOR;
+typedef _COM_interface IFillLockBytes *LPFILLLOCKBYTES;
+typedef _COM_interface IProgressNotify *LPPROGRESSNOTIFY;
+typedef _COM_interface ILayoutStorage *LPLAYOUTSTORAGE;
#ifdef __cplusplus
}
#endif
DECLARE_ENUMERATOR(STATPROPSTG);
DECLARE_ENUMERATOR(STATSTG);
DECLARE_ENUMERATOR_(IEnumString,LPOLESTR);
-DECLARE_ENUMERATOR_(IEnumMoniker,interface IMoniker*);
+DECLARE_ENUMERATOR_(IEnumMoniker,_COM_interface IMoniker*);
DECLARE_ENUMERATOR_(IEnumUnknown,IUnknown*);
EXTERN_C const IID IID_ISequentialStream;
STDMETHOD(CreateStub)(THIS_ REFIID,LPUNKNOWN,LPRPCSTUBBUFFER*) PURE;
};
#undef INTERFACE
-typedef interface IPSFactoryBuffer *LPPSFACTORYBUFFER;
+typedef _COM_interface IPSFactoryBuffer *LPPSFACTORYBUFFER;
EXTERN_C const IID IID_ILockBytes;
#define INTERFACE ILockBytes
#include <ole2.h>
-typedef interface IErrorLog *LPERRORLOG;
-typedef interface IPropertyBag *LPPROPERTYBAG;
-typedef interface IPropertyBag2 *LPPROPERTYBAG2;
-typedef interface IEnumConnections *LPENUMCONNECTIONS;
-typedef interface IConnectionPoint *LPCONNECTIONPOINT;
-typedef interface IEnumConnectionPoints *LPENUMCONNECTIONPOINTS;
-typedef interface IPropertyPageSite *LPPROPERTYPAGESITE;
-typedef interface IFont *LPFONT;
-typedef interface IFontDisp *LPFONTDISP;
-typedef interface IOleUndoManager *LPOLEUNDOMANAGER;
+typedef _COM_interface IErrorLog *LPERRORLOG;
+typedef _COM_interface IPropertyBag *LPPROPERTYBAG;
+typedef _COM_interface IPropertyBag2 *LPPROPERTYBAG2;
+typedef _COM_interface IEnumConnections *LPENUMCONNECTIONS;
+typedef _COM_interface IConnectionPoint *LPCONNECTIONPOINT;
+typedef _COM_interface IEnumConnectionPoints *LPENUMCONNECTIONPOINTS;
+typedef _COM_interface IPropertyPageSite *LPPROPERTYPAGESITE;
+typedef _COM_interface IFont *LPFONT;
+typedef _COM_interface IFontDisp *LPFONTDISP;
+typedef _COM_interface IOleUndoManager *LPOLEUNDOMANAGER;
#ifndef OLE2ANSI
typedef TEXTMETRICW TEXTMETRICOLE;
typedef struct tagQACONTAINER
{
ULONG cbSize;
- interface IOleClientSite *pClientSite;
- interface IAdviseSinkEx *pAdviseSink;
- interface IPropertyNotifySink *pPropertyNotifySink;
+ _COM_interface IOleClientSite *pClientSite;
+ _COM_interface IAdviseSinkEx *pAdviseSink;
+ _COM_interface IPropertyNotifySink *pPropertyNotifySink;
IUnknown *pUnkEventSink;
DWORD dwAmbientFlags;
OLE_COLOR colorFore;
OLE_COLOR colorBack;
- interface IFont *pFont;
- interface IOleUndoManager *pUndoMgr;
+ _COM_interface IFont *pFont;
+ _COM_interface IOleUndoManager *pUndoMgr;
DWORD dwAppearance;
LONG lcid;
HPALETTE hpal;
- interface IBindHost *pBindHost;
- interface IOleControlSite *pOleControlSite;
- interface IServiceProvider *pServiceProvider;
+ _COM_interface IBindHost *pBindHost;
+ _COM_interface IOleControlSite *pOleControlSite;
+ _COM_interface IServiceProvider *pServiceProvider;
} QACONTAINER;
typedef struct tagQACONTROL
{
#define DISPID_PICT_HEIGHT 5
#define DISPID_PICT_RENDER 6
-typedef interface IOleControl *LPOLECONTROL;
-typedef interface IOleControlSite *LPOLECONTROLSITE;
-typedef interface ISimpleFrameSite *LPSIMPLEFRAMESITE;
-typedef interface IPersistPropertyBag *LPPERSISTPROPERTYBAG;
-typedef interface IPersistStreamInit *LPPERSISTSTREAMINIT;
-typedef interface IPersistMemory *LPPERSISTMEMORY;
-typedef interface IPropertyNotifySink* LPPROPERTYNOTIFYSINK;
-typedef interface IProvideClassInfo *LPPROVIDECLASSINFO;
-typedef interface IProvideClassInfo2 *LPPROVIDECLASSINFO2;
-typedef interface IConnectionPointContainer *LPCONNECTIONPOINTCONTAINER;
-typedef interface IClassFactory2 *LPCLASSFACTORY2;
-typedef interface ISpecifyPropertyPages *LPSPECIFYPROPERTYPAGES;
-typedef interface IPerPropertyBrowsing *LPPERPROPERTYBROWSING;
-typedef interface IPropertyPage *LPPROPERTYPAGE;
-typedef interface IPropertyPage2 *LPPROPERTYPAGE2;
+typedef _COM_interface IOleControl *LPOLECONTROL;
+typedef _COM_interface IOleControlSite *LPOLECONTROLSITE;
+typedef _COM_interface ISimpleFrameSite *LPSIMPLEFRAMESITE;
+typedef _COM_interface IPersistPropertyBag *LPPERSISTPROPERTYBAG;
+typedef _COM_interface IPersistStreamInit *LPPERSISTSTREAMINIT;
+typedef _COM_interface IPersistMemory *LPPERSISTMEMORY;
+typedef _COM_interface IPropertyNotifySink* LPPROPERTYNOTIFYSINK;
+typedef _COM_interface IProvideClassInfo *LPPROVIDECLASSINFO;
+typedef _COM_interface IProvideClassInfo2 *LPPROVIDECLASSINFO2;
+typedef _COM_interface IConnectionPointContainer *LPCONNECTIONPOINTCONTAINER;
+typedef _COM_interface IClassFactory2 *LPCLASSFACTORY2;
+typedef _COM_interface ISpecifyPropertyPages *LPSPECIFYPROPERTYPAGES;
+typedef _COM_interface IPerPropertyBrowsing *LPPERPROPERTYBROWSING;
+typedef _COM_interface IPropertyPage *LPPROPERTYPAGE;
+typedef _COM_interface IPropertyPage2 *LPPROPERTYPAGE2;
-typedef interface IPicture *LPPICTURE;
-typedef interface IPictureDisp *LPPICTUREDISP;
+typedef _COM_interface IPicture *LPPICTURE;
+typedef _COM_interface IPictureDisp *LPPICTUREDISP;
typedef long OLE_XPOS_PIXELS;
typedef long OLE_YPOS_PIXELS;
typedef long OLE_XSIZE_PIXELS;
#define MK_ALT 32
-typedef interface IParseDisplayName *LPPARSEDISPLAYNAME;
-typedef interface IOleContainer *LPOLECONTAINER;
-typedef interface IOleClientSite *LPOLECLIENTSITE;
-typedef interface IOleObject *LPOLEOBJECT;
-typedef interface IDropTarget *LPDROPTARGET;
-typedef interface IDropSource *LPDROPSOURCE;
-typedef interface IEnumOleUndoUnits *LPENUMOLEUNDOUNITS;
-typedef interface IEnumOLEVERB *LPENUMOLEVERB;
-typedef interface IOleWindow *LPOLEWINDOW;
-typedef interface IOleInPlaceUIWindow *LPOLEINPLACEUIWINDOW;
-typedef interface IOleInPlaceActiveObject *LPOLEINPLACEACTIVEOBJECT;
-typedef interface IOleInPlaceFrame *LPOLEINPLACEFRAME;
-typedef interface IOleAdviseHolder *LPOLEADVISEHOLDER;
-typedef interface IViewObject *LPVIEWOBJECT;
-typedef interface IViewObject2 *LPVIEWOBJECT2;
-typedef interface IOleCache *LPOLECACHE;
-typedef interface IOleCache2 *LPOLECACHE2;
-typedef interface IOleCacheControl *LPOLECACHECONTROL;
+typedef _COM_interface IParseDisplayName *LPPARSEDISPLAYNAME;
+typedef _COM_interface IOleContainer *LPOLECONTAINER;
+typedef _COM_interface IOleClientSite *LPOLECLIENTSITE;
+typedef _COM_interface IOleObject *LPOLEOBJECT;
+typedef _COM_interface IDropTarget *LPDROPTARGET;
+typedef _COM_interface IDropSource *LPDROPSOURCE;
+typedef _COM_interface IEnumOleUndoUnits *LPENUMOLEUNDOUNITS;
+typedef _COM_interface IEnumOLEVERB *LPENUMOLEVERB;
+typedef _COM_interface IOleWindow *LPOLEWINDOW;
+typedef _COM_interface IOleInPlaceUIWindow *LPOLEINPLACEUIWINDOW;
+typedef _COM_interface IOleInPlaceActiveObject *LPOLEINPLACEACTIVEOBJECT;
+typedef _COM_interface IOleInPlaceFrame *LPOLEINPLACEFRAME;
+typedef _COM_interface IOleAdviseHolder *LPOLEADVISEHOLDER;
+typedef _COM_interface IViewObject *LPVIEWOBJECT;
+typedef _COM_interface IViewObject2 *LPVIEWOBJECT2;
+typedef _COM_interface IOleCache *LPOLECACHE;
+typedef _COM_interface IOleCache2 *LPOLECACHE2;
+typedef _COM_interface IOleCacheControl *LPOLECACHECONTROL;
typedef enum tagBINDSPEED
{
#endif /* _WIN32_IE >= 0x0500 */
-typedef interface IShellBrowser *LPSHELLBROWSER;
-typedef interface IShellView *LPSHELLVIEW;
+typedef _COM_interface IShellBrowser *LPSHELLBROWSER;
+typedef _COM_interface IShellView *LPSHELLVIEW;
#define INTERFACE IShellBrowser
DECLARE_INTERFACE_(IShellBrowser,IOleWindow)
extern "C" {
#endif
-#ifndef __OBJC__
+#ifndef _OBJC_NO_COM
#include <objbase.h>
#include <shlobj.h>
#endif
WINSHLWAPI LPWSTR WINAPI StrRChrW(LPCWSTR,LPCWSTR,WCHAR);
WINSHLWAPI LPSTR WINAPI StrRChrIA(LPCSTR,LPCSTR,WORD);
WINSHLWAPI LPWSTR WINAPI StrRChrIW(LPCWSTR,LPCWSTR,WCHAR);
-#ifndef __OBJC__
+#ifndef _OBJC_NO_COM
WINSHLWAPI HRESULT WINAPI StrRetToBufA(LPSTRRET,LPCITEMIDLIST,LPSTR,UINT);
WINSHLWAPI HRESULT WINAPI StrRetToBufW(LPSTRRET,LPCITEMIDLIST,LPWSTR,UINT);
WINSHLWAPI HRESULT WINAPI StrRetToStrA(LPSTRRET,LPCITEMIDLIST,LPSTR*);
WINSHLWAPI void WINAPI PathUnquoteSpacesA(LPSTR);
WINSHLWAPI void WINAPI PathUnquoteSpacesW(LPWSTR);
WINSHLWAPI HRESULT WINAPI SHAutoComplete(HWND,DWORD);
-#ifndef __OBJC__
+#ifndef _OBJC_NO_COM
WINSHLWAPI HRESULT WINAPI SHCreateStreamOnFileA(LPCSTR,DWORD,struct IStream**);
WINSHLWAPI HRESULT WINAPI SHCreateStreamOnFileW(LPCWSTR,DWORD,struct IStream**);
WINSHLWAPI struct IStream* WINAPI SHOpenRegStream2A(HKEY,LPCSTR,LPCSTR,DWORD);
WINSHLWAPI DWORD WINAPI SHQueryInfoKeyW(HKEY,LPDWORD,LPDWORD,LPDWORD,LPDWORD);
WINSHLWAPI DWORD WINAPI SHQueryValueExA(HKEY,LPCSTR,LPDWORD,LPDWORD,LPVOID,LPDWORD);
WINSHLWAPI DWORD WINAPI SHQueryValueExW(HKEY,LPCWSTR,LPDWORD,LPDWORD,LPVOID,LPDWORD);
-#ifndef __OBJC__
+#ifndef _OBJC_NO_COM
WINSHLWAPI HRESULT WINAPI SHGetThreadRef(IUnknown**);
WINSHLWAPI HRESULT WINAPI SHSetThreadRef(IUnknown*);
WINSHLWAPI BOOL WINAPI SHSkipJunction(IBindCtx*,const CLSID*);
#define StrPBrk StrPBrkW
#define StrRChr StrRChrW
#define StrRChrI StrRChrIW
-#ifndef __OBJC__
+#ifndef _OBJC_NO_COM
#define StrRetToBuf StrRetToBufW
#define StrRetToStr StrRetToStrW
#endif
#define PathUnExpandEnvStrings PathUnExpandEnvStringsW
#define PathUnmakeSystemFolder PathUnmakeSystemFolderW
#define PathUnquoteSpaces PathUnquoteSpacesW
-#ifndef __OBJC__
+#ifndef _OBJC_NO_COM
#define SHCreateStreamOnFile SHCreateStreamOnFileW
#define SHOpenRegStream SHOpenRegStreamW
#define SHOpenRegStream2 SHOpenRegStream2W
#define StrPBrk StrPBrkA
#define StrRChr StrRChrA
#define StrRChrI StrRChrIA
-#ifndef __OBJC__
+#ifndef _OBJC_NO_COM
#define StrRetToBuf StrRetToBufA
#define StrRetToStr StrRetToStrA
#endif
#define PathUnExpandEnvStrings PathUnExpandEnvStringsA
#define PathUnmakeSystemFolder PathUnmakeSystemFolderA
#define PathUnquoteSpaces PathUnquoteSpacesA
-#ifndef __OBJC__
+#ifndef _OBJC_NO_COM
#define SHCreateStreamOnFile SHCreateStreamOnFileA
#define SHOpenRegStream SHOpenRegStreamA
#define SHOpenRegStream2 SHOpenRegStream2A
#ifndef _MMSYSTEM_H
#include <mmsystem.h>
#endif
-#if !defined (_OLE2_H) && !defined (__OBJC__)
+#if !defined (_OLE2_H) && !defined (_OBJC_NO_COM)
#include <ole2.h>
#endif
DWORD dwInterleaveEvery;
} AVICOMPRESSOPTIONS, *LPAVICOMPRESSOPTIONS,*PAVICOMPRESSOPTIONS;
-#if !defined (__OBJC__)
+#if !defined (_OBJC_NO_COM)
#define DEFINE_AVIGUID(name,l,w1,w2) DEFINE_GUID(name,l,w1,w2,0xC0,0,0,0,0,0,0,0x46)
DEFINE_AVIGUID(IID_IAVIFile,0x00020020,0,0);
DEFINE_AVIGUID(IID_IAVIStream,0x00020021,0,0);
};
#undef INTERFACE
typedef IGetFrame *PGETFRAME;
-#endif /* !defined (__OBJC__) */
+#endif /* !defined (_OBJC_NO_COM) */
DWORD VFWAPI VideoForWindowsVersion(VOID);
LONG VFWAPI InitVFW(VOID);
void VFWAPI ICSeqCompressFrameEnd(PCOMPVARS);
LPVOID VFWAPI ICSeqCompressFrame(PCOMPVARS,UINT,LPVOID,BOOL*,LONG*);
void VFWAPI ICCompressorFree(PCOMPVARS);
-#if !defined (__OBJC__)
+#if !defined (_OBJC_NO_COM)
ULONG WINAPI AVIStreamAddRef(PAVISTREAM);
ULONG WINAPI AVIStreamRelease(PAVISTREAM);
HRESULT WINAPI AVIStreamCreate(PAVISTREAM*,LONG,LONG,CLSID*);
HRESULT WINAPI AVIClearClipboard(VOID);
HRESULT WINAPI AVIGetFromClipboard(PAVIFILE*);
HRESULT WINAPI AVIPutFileOnClipboard(PAVIFILE);
-#endif /* __OBJC__ */
+#endif /* _OBJC_NO_COM */
#ifdef OFN_READONLY
BOOL WINAPI GetOpenFileNamePreviewA(LPOPENFILENAMEA);
BOOL WINAPI GetOpenFileNamePreviewW(LPOPENFILENAMEW);
#endif /* (_WIN32_WINNT >= 0x0400) */
#endif
#ifndef NOGDI
-#if !defined (__OBJC__)
+/* In older versions we disallowed COM declarations in __OBJC__
+ because of conflicts with @interface directive. Define _OBJC_NO_COM
+ to keep this behaviour. */
+#if !defined (_OBJC_NO_COM)
#if (__GNUC__ >= 3) || defined (__WATCOMC__)
#include <ole2.h>
#endif
-#endif /* __OBJC__ */
+#endif /* _OBJC_NO_COM */
#endif
#endif /* WIN32_LEAN_AND_MEAN */
/*
* ws2spi.h
*
- * Winsock 2 Service Provider interface.
+ * Winsock 2 Service Provider Interface.
*
*
* THIS SOFTWARE IS NOT COPYRIGHTED
#include <httpext.h>
#include <icm.h>
#include <imagehlp.h>
-#include <initguid.h>
#include <ipexport.h>
#include <iphlpapi.h>
#include <ipifcons.h>
#include <windns.h>
#include <usp10.h>
-#ifndef __OBJC__ /* problems with BOOL */
+#ifndef _OBJC_NO_COM
+#include <initguid.h>
#include <ole2.h>
#include <comcat.h>
#include <shlobj.h>
#include <servprov.h>
#include <aclui.h>
#include <mlang.h>
-#else
-#undef BOOL
#endif
-#include <stdio.h>
+#ifdef __OBJC__
+#undef BOOL
+
+@interface class1 {
+ int e;
+}
+@end
+
+@implementation class1
+@end
+#endif
int main()
{