OSDN Git Service

* include/aclui.h: Replace __OBJC__ guard with _OBJC_NO_COM.
authordannysmith <dannysmith>
Tue, 25 Jul 2006 00:22:19 +0000 (00:22 +0000)
committerdannysmith <dannysmith>
Tue, 25 Jul 2006 00:22:19 +0000 (00:22 +0000)
* 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'

20 files changed:
winsup/w32api/ChangeLog
winsup/w32api/include/aclui.h
winsup/w32api/include/basetyps.h
winsup/w32api/include/comcat.h
winsup/w32api/include/commdlg.h
winsup/w32api/include/directx/d3d9.h
winsup/w32api/include/docobj.h
winsup/w32api/include/mshtml.h
winsup/w32api/include/oaidl.h
winsup/w32api/include/objfwd.h
winsup/w32api/include/objidl.h
winsup/w32api/include/ocidl.h
winsup/w32api/include/olectl.h
winsup/w32api/include/oleidl.h
winsup/w32api/include/shlobj.h
winsup/w32api/include/shlwapi.h
winsup/w32api/include/vfw.h
winsup/w32api/include/windows.h
winsup/w32api/include/ws2spi.h
winsup/w32api/lib/test.c

index 3400025..2b2dc8b 100644 (file)
@@ -1,3 +1,31 @@
+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,
@@ -61,7 +89,7 @@
 
 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>
 
index 7502d91..144711f 100644 (file)
@@ -4,7 +4,7 @@
 #pragma GCC system_header
 #endif
 
-#ifndef __OBJC__
+#ifndef _OBJC_NO_COM
 #include <objbase.h>
 #include <commctrl.h>
 #include <accctrl.h>
index ac60153..7c38b39 100644 (file)
@@ -4,7 +4,7 @@
 #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)
@@ -68,7 +75,7 @@
 #   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)
@@ -76,7 +83,7 @@
 # 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
@@ -169,4 +176,4 @@ typedef unsigned long PROPID;
 #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 
index 2ca9a5f..b5d982b 100644 (file)
@@ -16,7 +16,7 @@ extern "C"{
 #endif
 
 EXTERN_C const IID IID_IEnumGUID;
-typedef interface IEnumGUID *LPENUMGUID;
+typedef _COM_interface IEnumGUID *LPENUMGUID;
 
 #define INTERFACE IEnumGUID
 DECLARE_INTERFACE_(IEnumGUID,IUnknown)
@@ -79,13 +79,13 @@ EXTERN_C const CATID CATID_DesignTimeUIActivatableControl;
 #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;
 
index dfce3cf..4c38774 100644 (file)
@@ -466,7 +466,7 @@ typedef struct tagPDW {
        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 {
@@ -540,7 +540,7 @@ BOOL WINAPI PrintDlgA(LPPRINTDLGA);
 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 */
@@ -569,7 +569,7 @@ typedef PRINTDLGW PRINTDLG,*LPPRINTDLG;
 #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 */
@@ -597,7 +597,7 @@ typedef PRINTDLGA PRINTDLG,*LPPRINTDLG;
 #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 */
index 0a9a0a5..920c129 100644 (file)
@@ -98,23 +98,23 @@ extern const GUID IID_IDirect3DQuery9;
 };
 #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
index 77761c5..e6666bf 100644 (file)
@@ -70,8 +70,8 @@ typedef struct _tagOLECMD {
        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;
index 91ff198..a91eefa 100644 (file)
@@ -8,24 +8,24 @@
 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
index 3fc0434..8aecd1b 100644 (file)
@@ -58,21 +58,21 @@ extern "C" {
 #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;
index 8fede73..41d80d6 100644 (file)
@@ -9,48 +9,48 @@
 #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
index 4ac935a..8d70404 100644 (file)
@@ -458,7 +458,7 @@ DECLARE_ENUMERATOR(STATPROPSETSTG);
 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;
@@ -854,7 +854,7 @@ DECLARE_INTERFACE_(IPSFactoryBuffer,IUnknown)
        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
index 0e63987..79f6b43 100644 (file)
@@ -10,16 +10,16 @@ extern "C" {
 
 #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;
@@ -73,21 +73,21 @@ typedef enum tagQACONTAINERFLAGS
 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
 {
index f0b86bc..f6e915f 100644 (file)
@@ -225,24 +225,24 @@ extern "C" {
 #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;
index e5962cf..bade579 100644 (file)
@@ -12,24 +12,24 @@ extern "C" {
 
 #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
 {
index 1c41ac9..9609105 100644 (file)
@@ -1102,8 +1102,8 @@ typedef IPersistFolder3 *LPPERSISTFOLDER3;
 
 #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)
index 764af95..fbb170e 100644 (file)
@@ -8,7 +8,7 @@
 extern "C" {
 #endif
 
-#ifndef __OBJC__
+#ifndef _OBJC_NO_COM
 #include <objbase.h>
 #include <shlobj.h>
 #endif
@@ -166,7 +166,7 @@ WINSHLWAPI LPSTR WINAPI StrRChrA(LPCSTR,LPCSTR,WORD);
 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*);
@@ -297,7 +297,7 @@ WINSHLWAPI BOOL WINAPI PathUnmakeSystemFolderW(LPWSTR);
 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);
@@ -318,7 +318,7 @@ WINSHLWAPI DWORD WINAPI SHQueryInfoKeyA(HKEY,LPDWORD,LPDWORD,LPDWORD,LPDWORD);
 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*);
@@ -443,7 +443,7 @@ HRESULT WINAPI DllInstall(BOOL,LPCWSTR);
 #define StrPBrk StrPBrkW
 #define StrRChr StrRChrW
 #define StrRChrI StrRChrIW
-#ifndef __OBJC__
+#ifndef _OBJC_NO_COM
 #define StrRetToBuf StrRetToBufW
 #define StrRetToStr StrRetToStrW
 #endif
@@ -509,7 +509,7 @@ HRESULT WINAPI DllInstall(BOOL,LPCWSTR);
 #define PathUnExpandEnvStrings PathUnExpandEnvStringsW
 #define PathUnmakeSystemFolder PathUnmakeSystemFolderW
 #define PathUnquoteSpaces PathUnquoteSpacesW
-#ifndef __OBJC__
+#ifndef _OBJC_NO_COM
 #define SHCreateStreamOnFile SHCreateStreamOnFileW
 #define SHOpenRegStream SHOpenRegStreamW
 #define SHOpenRegStream2 SHOpenRegStream2W
@@ -585,7 +585,7 @@ HRESULT WINAPI DllInstall(BOOL,LPCWSTR);
 #define StrPBrk StrPBrkA
 #define StrRChr StrRChrA
 #define StrRChrI StrRChrIA
-#ifndef __OBJC__
+#ifndef _OBJC_NO_COM
 #define StrRetToBuf StrRetToBufA
 #define StrRetToStr StrRetToStrA
 #endif
@@ -651,7 +651,7 @@ HRESULT WINAPI DllInstall(BOOL,LPCWSTR);
 #define PathUnExpandEnvStrings PathUnExpandEnvStringsA
 #define PathUnmakeSystemFolder PathUnmakeSystemFolderA
 #define PathUnquoteSpaces PathUnquoteSpacesA
-#ifndef __OBJC__
+#ifndef _OBJC_NO_COM
 #define SHCreateStreamOnFile SHCreateStreamOnFileA
 #define SHOpenRegStream SHOpenRegStreamA
 #define SHOpenRegStream2 SHOpenRegStream2A
index 842c4e9..755edfc 100644 (file)
@@ -10,7 +10,7 @@
 #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
 
@@ -633,7 +633,7 @@ typedef struct _AVICOMPRESSOPTIONS {
        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);
@@ -720,7 +720,7 @@ DECLARE_INTERFACE_(IGetFrame, IUnknown)
 };
 #undef INTERFACE
 typedef IGetFrame *PGETFRAME;
-#endif /* !defined (__OBJC__) */
+#endif /* !defined (_OBJC_NO_COM) */
 
 DWORD VFWAPI VideoForWindowsVersion(VOID);
 LONG VFWAPI InitVFW(VOID);
@@ -746,7 +746,7 @@ BOOL VFWAPI ICSeqCompressFrameStart(PCOMPVARS,LPBITMAPINFO);
 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*);
@@ -811,7 +811,7 @@ HRESULT WINAPI AVIFileEndRecord(PAVIFILE);
 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);
index dde83a3..97e037e 100644 (file)
 #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 */
index 4f7a01e..7961710 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * ws2spi.h
  *
- * Winsock 2 Service Provider interface.
+ * Winsock 2 Service Provider Interface.
  *
  *
  * THIS SOFTWARE IS NOT COPYRIGHTED
index f4959b4..2db731b 100644 (file)
@@ -31,7 +31,6 @@
 #include <httpext.h>
 #include <icm.h>
 #include <imagehlp.h>
-#include <initguid.h>
 #include <ipexport.h>
 #include <iphlpapi.h>
 #include <ipifcons.h>
@@ -86,7 +85,8 @@
 #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()
 {