#ifndef _UNKNWN_H #define _UNKNWN_H #include "wtypes.h" #define E_NOINTERFACE ((HRESULT)0x80004002L) #define E_POINTER ((HRESULT)0x80004003L) #define E_FAIL ((HRESULT)0x80004005L) #define E_INVALIDARG ((HRESULT)0x80070057L) #ifndef __IUnknown_INTERFACE_DEFINED__ #define __IUnknown_INTERFACE_DEFINED__ #define INTERFACE IUnknown DECLARE_INTERFACE(IUnknown) { STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; STDMETHOD_(ULONG,AddRef)(THIS) PURE; STDMETHOD_(ULONG,Release)(THIS) PURE; }; #undef INTERFACE typedef IUnknown *LPUNKNOWN; EXTERN_C const IID IID_IUnknown; #endif #ifndef __IClassFactory_INTERFACE_DEFINED__ #define __IClassFactory_INTERFACE_DEFINED__ #define INTERFACE IClassFactory DECLARE_INTERFACE_(IClassFactory,IUnknown) { STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; STDMETHOD_(ULONG,AddRef)(THIS) PURE; STDMETHOD_(ULONG,Release)(THIS) PURE; STDMETHOD(CreateInstance)(THIS_ LPUNKNOWN,REFIID,PVOID*) PURE; STDMETHOD(LockServer)(THIS_ BOOL_) PURE; }; #undef INTERFACE typedef IClassFactory *LPCLASSFACTORY; #endif typedef void* LPTYPEINFO; #define INTERFACE IDispatch DECLARE_INTERFACE_(IDispatch,IUnknown) { STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; STDMETHOD_(ULONG,AddRef)(THIS) PURE; STDMETHOD_(ULONG,Release)(THIS) PURE; STDMETHOD(GetTypeInfoCount)(THIS_ UINT*) PURE; STDMETHOD(GetTypeInfo)(THIS_ UINT,LCID,LPTYPEINFO*) PURE; STDMETHOD(GetIDsOfNames)(THIS_ REFIID,LPOLESTR*,UINT,LCID,DISPID*) PURE; STDMETHOD(Invoke)(THIS_ DISPID,REFIID,LCID,WORD,void*,void*,void*,UINT*) PURE; }; #undef INTERFACE typedef IDispatch *LPDISPATCH; #define INTERFACE IErrorInfo DECLARE_INTERFACE_(IErrorInfo, IUnknown) { STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; STDMETHOD_(ULONG,AddRef)(THIS) PURE; STDMETHOD_(ULONG,Release)(THIS) PURE; STDMETHOD(GetGUID)(THIS_ GUID*) PURE; STDMETHOD(GetSource)(THIS_ BSTR*) PURE; STDMETHOD(GetDescription)(THIS_ BSTR*) PURE; STDMETHOD(GetHelpFile)(THIS_ BSTR*) PURE; STDMETHOD(GetHelpContext)(THIS_ DWORD*) PURE; }; #undef INTERFACE typedef IErrorInfo *LPERRORINFO; EXTERN_C const IID IID_IErrorInfo; #endif