mirror of
https://github.com/libretro/RetroArch.git
synced 2024-12-02 05:16:33 +00:00
768 lines
22 KiB
C
768 lines
22 KiB
C
#if !defined( _XOBJBASE_H_ )
|
|
#define _XOBJBASE_H_
|
|
|
|
#include <sal.h>
|
|
|
|
#if _MSC_VER > 1000
|
|
#pragma once
|
|
#endif
|
|
|
|
#define __RPC_FAR
|
|
|
|
typedef unsigned char byte;
|
|
typedef unsigned char boolean;
|
|
|
|
typedef double DOUBLE;
|
|
|
|
#ifdef CONST_VTABLE
|
|
#define CONST_VTBL const
|
|
#else
|
|
#define CONST_VTBL
|
|
#endif
|
|
|
|
/****************************************************************************
|
|
* Special things for VC5 Com support
|
|
****************************************************************************/
|
|
|
|
#ifndef DECLSPEC_SELECTANY
|
|
#if (_MSC_VER >= 1100)
|
|
#define DECLSPEC_SELECTANY __declspec(selectany)
|
|
#else
|
|
#define DECLSPEC_SELECTANY
|
|
#endif
|
|
#endif
|
|
|
|
#ifndef DECLSPEC_NOVTABLE
|
|
#define DECLSPEC_NOVTABLE
|
|
#endif
|
|
|
|
#ifndef DECLSPEC_UUID
|
|
#define DECLSPEC_UUID(x)
|
|
#endif
|
|
|
|
#define MIDL_INTERFACE(x) struct DECLSPEC_UUID(x) DECLSPEC_NOVTABLE
|
|
|
|
#if _MSC_VER >= 1100
|
|
#define EXTERN_GUID(itf,l1,s1,s2,c1,c2,c3,c4,c5,c6,c7,c8) \
|
|
EXTERN_C const IID DECLSPEC_SELECTANY itf = {l1,s1,s2,{c1,c2,c3,c4,c5,c6,c7,c8}}
|
|
#else
|
|
#define EXTERN_GUID(itf,l1,s1,s2,c1,c2,c3,c4,c5,c6,c7,c8) EXTERN_C const IID itf
|
|
#endif
|
|
|
|
#include <pshpack8.h>
|
|
|
|
#define WINOLEAPI EXTERN_C DECLSPEC_IMPORT HRESULT STDAPICALLTYPE
|
|
#define WINOLEAPI_(type) EXTERN_C DECLSPEC_IMPORT type STDAPICALLTYPE
|
|
|
|
/****** Interface Declaration ***********************************************/
|
|
|
|
/*
|
|
* These are macros for declaring interfaces. They exist so that
|
|
* a single definition of the interface is simulataneously a proper
|
|
* declaration of the interface structures (C++ abstract classes)
|
|
* for both C and C++.
|
|
*
|
|
* DECLARE_INTERFACE(iface) is used to declare an interface that does
|
|
* not derive from a base interface.
|
|
* DECLARE_INTERFACE_(iface, baseiface) is used to declare an interface
|
|
* that does derive from a base interface.
|
|
*
|
|
* By default if the source file has a .c extension the C version of
|
|
* the interface declaratations will be expanded; if it has a .cpp
|
|
* extension the C++ version will be expanded. if you want to force
|
|
* the C version expansion even though the source file has a .cpp
|
|
* extension, then define the macro "CINTERFACE".
|
|
* eg. cl -DCINTERFACE file.cpp
|
|
*
|
|
*
|
|
* Example C expansion:
|
|
*
|
|
* typedef struct IClassFactory
|
|
* {
|
|
* const struct IClassFactoryVtbl FAR* lpVtbl;
|
|
* } IClassFactory;
|
|
*
|
|
* typedef struct IClassFactoryVtbl IClassFactoryVtbl;
|
|
*
|
|
* struct IClassFactoryVtbl
|
|
* {
|
|
* HRESULT (STDMETHODCALLTYPE * QueryInterface) (
|
|
* IClassFactory FAR* This,
|
|
* IID FAR* riid,
|
|
* LPVOID FAR* ppvObj) ;
|
|
* ULONG (STDMETHODCALLTYPE * AddRef) (IClassFactory FAR* This) ;
|
|
* ULONG (STDMETHODCALLTYPE * Release) (IClassFactory FAR* This) ;
|
|
* HRESULT (STDMETHODCALLTYPE * CreateInstance) (
|
|
* IClassFactory FAR* This,
|
|
* LPUNKNOWN pUnkOuter,
|
|
* IID FAR* riid,
|
|
* LPVOID FAR* ppvObject);
|
|
* HRESULT (STDMETHODCALLTYPE * LockServer) (
|
|
* IClassFactory FAR* This,
|
|
* BOOL fLock);
|
|
* };
|
|
*/
|
|
|
|
#define interface struct
|
|
|
|
#define STDMETHOD(method) HRESULT (STDMETHODCALLTYPE * method)
|
|
#define STDMETHOD_(type,method) type (STDMETHODCALLTYPE * method)
|
|
#define STDMETHODV(method) HRESULT (STDMETHODVCALLTYPE * method)
|
|
#define STDMETHODV_(type,method) type (STDMETHODVCALLTYPE * method)
|
|
|
|
#if !defined(BEGIN_INTERFACE)
|
|
#define BEGIN_INTERFACE
|
|
#define END_INTERFACE
|
|
#endif
|
|
|
|
|
|
#define PURE
|
|
#define THIS_ INTERFACE FAR* This,
|
|
#define THIS INTERFACE FAR* This
|
|
#ifdef CONST_VTABLE
|
|
#undef CONST_VTBL
|
|
#define CONST_VTBL const
|
|
#define DECLARE_INTERFACE(iface) typedef interface iface { \
|
|
const struct iface##Vtbl FAR* lpVtbl; \
|
|
} iface; \
|
|
typedef const struct iface##Vtbl iface##Vtbl; \
|
|
const struct iface##Vtbl
|
|
#else
|
|
#undef CONST_VTBL
|
|
#define CONST_VTBL
|
|
#define DECLARE_INTERFACE(iface) typedef interface iface { \
|
|
struct iface##Vtbl FAR* lpVtbl; \
|
|
} iface; \
|
|
typedef struct iface##Vtbl iface##Vtbl; \
|
|
struct iface##Vtbl
|
|
#endif
|
|
#define DECLARE_INTERFACE_(iface, baseiface) DECLARE_INTERFACE(iface)
|
|
|
|
|
|
|
|
|
|
|
|
/****** Additional basic types **********************************************/
|
|
|
|
|
|
#ifndef FARSTRUCT
|
|
#define FARSTRUCT
|
|
#endif // FARSTRUCT
|
|
|
|
|
|
|
|
#ifndef HUGEP
|
|
#if defined(_WIN32) || defined(_MPPC_)
|
|
#define HUGEP
|
|
#else
|
|
#define HUGEP __huge
|
|
#endif // WIN32
|
|
#endif // HUGEP
|
|
|
|
|
|
#include <stdlib.h>
|
|
|
|
#define LISet32(li, v) ((li).HighPart = (v) < 0 ? -1 : 0, (li).LowPart = (v))
|
|
|
|
#define ULISet32(li, v) ((li).HighPart = 0, (li).LowPart = (v))
|
|
|
|
|
|
#if defined(_WIN32) && !defined(OLE2ANSI)
|
|
typedef WCHAR OLECHAR;
|
|
|
|
typedef /* [string] */ OLECHAR __RPC_FAR *LPOLESTR;
|
|
|
|
typedef /* [string] */ const OLECHAR __RPC_FAR *LPCOLESTR;
|
|
|
|
#define OLESTR(str) L##str
|
|
|
|
#else
|
|
|
|
typedef char OLECHAR;
|
|
typedef LPSTR LPOLESTR;
|
|
typedef LPCSTR LPCOLESTR;
|
|
#define OLESTR(str) str
|
|
#endif
|
|
|
|
|
|
/* Forward Declarations */
|
|
|
|
#ifndef __IUnknown_FWD_DEFINED__
|
|
#define __IUnknown_FWD_DEFINED__
|
|
typedef interface IUnknown IUnknown;
|
|
#endif /* __IUnknown_FWD_DEFINED__ */
|
|
|
|
|
|
#ifndef __IUnknown_INTERFACE_DEFINED__
|
|
#define __IUnknown_INTERFACE_DEFINED__
|
|
|
|
|
|
/* interface IUnknown */
|
|
/* [unique][uuid][object][local] */
|
|
|
|
typedef /* [unique] */ IUnknown __RPC_FAR *LPUNKNOWN;
|
|
typedef /* [unique] */ IUnknown __RPC_FAR *PUNKNOWN;
|
|
|
|
//////////////////////////////////////////////////////////////////
|
|
// IID_IUnknown and all other system IIDs are provided in UUID.LIB
|
|
// Link that library in with your proxies, clients and servers
|
|
//////////////////////////////////////////////////////////////////
|
|
|
|
EXTERN_C const IID IID_IUnknown;
|
|
|
|
typedef struct IUnknownVtbl
|
|
{
|
|
BEGIN_INTERFACE
|
|
|
|
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *QueryInterface )(
|
|
IUnknown __RPC_FAR * This,
|
|
/* [in] */ __in REFIID riid,
|
|
/* [iid_is][out] */ __deref_out void __RPC_FAR *__RPC_FAR *ppvObject);
|
|
|
|
ULONG ( STDMETHODCALLTYPE __RPC_FAR *AddRef )(
|
|
IUnknown __RPC_FAR * This);
|
|
|
|
ULONG ( STDMETHODCALLTYPE __RPC_FAR *Release )(
|
|
IUnknown __RPC_FAR * This);
|
|
|
|
END_INTERFACE
|
|
} IUnknownVtbl;
|
|
|
|
interface IUnknown
|
|
{
|
|
CONST_VTBL struct IUnknownVtbl __RPC_FAR *lpVtbl;
|
|
};
|
|
|
|
|
|
#define IUnknown_QueryInterface(This,riid,ppvObject) \
|
|
(This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
|
|
|
|
#define IUnknown_AddRef(This) \
|
|
(This)->lpVtbl -> AddRef(This)
|
|
|
|
#define IUnknown_Release(This) \
|
|
(This)->lpVtbl -> Release(This)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* interface __MIDL_itf_unknwn_0005 */
|
|
/* [local] */
|
|
|
|
#endif // VC6 hack
|
|
|
|
|
|
#ifndef __ISequentialStream_FWD_DEFINED__
|
|
#define __ISequentialStream_FWD_DEFINED__
|
|
typedef interface ISequentialStream ISequentialStream;
|
|
#endif /* __ISequentialStream_FWD_DEFINED__ */
|
|
|
|
|
|
#ifndef __ISequentialStream_INTERFACE_DEFINED__
|
|
#define __ISequentialStream_INTERFACE_DEFINED__
|
|
|
|
/* interface ISequentialStream */
|
|
/* [unique][uuid][object] */
|
|
|
|
|
|
EXTERN_C const IID IID_ISequentialStream;
|
|
|
|
typedef struct ISequentialStreamVtbl
|
|
{
|
|
BEGIN_INTERFACE
|
|
|
|
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *QueryInterface )(
|
|
ISequentialStream __RPC_FAR * This,
|
|
/* [in] */ __in REFIID riid,
|
|
/* [iid_is][out] */ __deref_out void __RPC_FAR *__RPC_FAR *ppvObject);
|
|
|
|
ULONG ( STDMETHODCALLTYPE __RPC_FAR *AddRef )(
|
|
ISequentialStream __RPC_FAR * This);
|
|
|
|
ULONG ( STDMETHODCALLTYPE __RPC_FAR *Release )(
|
|
ISequentialStream __RPC_FAR * This);
|
|
|
|
/* [local] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *Read )(
|
|
ISequentialStream __RPC_FAR * This,
|
|
/* [length_is][size_is][out] */ __out_bcount_part_opt(cb, *pcbRead) void __RPC_FAR *pv,
|
|
/* [in] */ __in ULONG cb,
|
|
/* [out] */ __out_opt ULONG __RPC_FAR *pcbRead);
|
|
|
|
/* [local] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *Write )(
|
|
ISequentialStream __RPC_FAR * This,
|
|
/* [size_is][in] */ __in_bcount_opt(cb) const void __RPC_FAR *pv,
|
|
/* [in] */ __in ULONG cb,
|
|
/* [out] */ __out_opt ULONG __RPC_FAR *pcbWritten);
|
|
|
|
END_INTERFACE
|
|
} ISequentialStreamVtbl;
|
|
|
|
interface ISequentialStream
|
|
{
|
|
CONST_VTBL struct ISequentialStreamVtbl __RPC_FAR *lpVtbl;
|
|
};
|
|
|
|
|
|
#define ISequentialStream_QueryInterface(This,riid,ppvObject) \
|
|
(This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
|
|
|
|
#define ISequentialStream_AddRef(This) \
|
|
(This)->lpVtbl -> AddRef(This)
|
|
|
|
#define ISequentialStream_Release(This) \
|
|
(This)->lpVtbl -> Release(This)
|
|
|
|
|
|
#define ISequentialStream_Read(This,pv,cb,pcbRead) \
|
|
(This)->lpVtbl -> Read(This,pv,cb,pcbRead)
|
|
|
|
#define ISequentialStream_Write(This,pv,cb,pcbWritten) \
|
|
(This)->lpVtbl -> Write(This,pv,cb,pcbWritten)
|
|
|
|
|
|
#endif /* __ISequentialStream_INTERFACE_DEFINED__ */
|
|
|
|
|
|
|
|
#ifndef __IStream_FWD_DEFINED__
|
|
#define __IStream_FWD_DEFINED__
|
|
typedef interface IStream IStream;
|
|
#endif /* __IStream_FWD_DEFINED__ */
|
|
|
|
|
|
#ifndef __IStream_INTERFACE_DEFINED__
|
|
#define __IStream_INTERFACE_DEFINED__
|
|
|
|
/* interface IStream */
|
|
/* [unique][uuid][object] */
|
|
|
|
typedef /* [unique] */ IStream __RPC_FAR *LPSTREAM;
|
|
|
|
typedef struct tagSTATSTG
|
|
{
|
|
LPOLESTR pwcsName;
|
|
DWORD type;
|
|
ULARGE_INTEGER cbSize;
|
|
FILETIME mtime;
|
|
FILETIME ctime;
|
|
FILETIME atime;
|
|
DWORD grfMode;
|
|
DWORD grfLocksSupported;
|
|
CLSID clsid;
|
|
DWORD grfStateBits;
|
|
DWORD reserved;
|
|
} STATSTG;
|
|
|
|
typedef
|
|
enum tagSTGTY
|
|
{ STGTY_STORAGE = 1,
|
|
STGTY_STREAM = 2,
|
|
STGTY_LOCKBYTES = 3,
|
|
STGTY_PROPERTY = 4
|
|
} STGTY;
|
|
|
|
typedef
|
|
enum tagSTREAM_SEEK
|
|
{ STREAM_SEEK_SET = 0,
|
|
STREAM_SEEK_CUR = 1,
|
|
STREAM_SEEK_END = 2
|
|
} STREAM_SEEK;
|
|
|
|
typedef
|
|
enum tagLOCKTYPE
|
|
{ LOCK_WRITE = 1,
|
|
LOCK_EXCLUSIVE = 2,
|
|
LOCK_ONLYONCE = 4
|
|
} LOCKTYPE;
|
|
|
|
|
|
EXTERN_C const IID IID_IStream;
|
|
|
|
|
|
typedef struct IStreamVtbl
|
|
{
|
|
BEGIN_INTERFACE
|
|
|
|
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *QueryInterface )(
|
|
IStream __RPC_FAR * This,
|
|
/* [in] */ __in REFIID riid,
|
|
/* [iid_is][out] */ __deref_out void __RPC_FAR *__RPC_FAR *ppvObject);
|
|
|
|
ULONG ( STDMETHODCALLTYPE __RPC_FAR *AddRef )(
|
|
IStream __RPC_FAR * This);
|
|
|
|
ULONG ( STDMETHODCALLTYPE __RPC_FAR *Release )(
|
|
IStream __RPC_FAR * This);
|
|
|
|
/* [local] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *Read )(
|
|
IStream __RPC_FAR * This,
|
|
/* [length_is][size_is][out] */ __out_bcount_part_opt(cb, *pcbRead) void __RPC_FAR *pv,
|
|
/* [in] */ __in ULONG cb,
|
|
/* [out] */ __out_opt ULONG __RPC_FAR *pcbRead);
|
|
|
|
/* [local] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *Write )(
|
|
IStream __RPC_FAR * This,
|
|
/* [size_is][in] */ __in_bcount_opt(cb) const void __RPC_FAR *pv,
|
|
/* [in] */ __in ULONG cb,
|
|
/* [out] */ __out_opt ULONG __RPC_FAR *pcbWritten);
|
|
|
|
/* [local] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *Seek )(
|
|
IStream __RPC_FAR * This,
|
|
/* [in] */ __in LARGE_INTEGER dlibMove,
|
|
/* [in] */ __in DWORD dwOrigin,
|
|
/* [out] */ __out_opt ULARGE_INTEGER __RPC_FAR *plibNewPosition);
|
|
|
|
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *SetSize )(
|
|
IStream __RPC_FAR * This,
|
|
/* [in] */ __in ULARGE_INTEGER libNewSize);
|
|
|
|
/* [local] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *CopyTo )(
|
|
IStream __RPC_FAR * This,
|
|
/* [unique][in] */ __in IStream __RPC_FAR *pstm,
|
|
/* [in] */ __in ULARGE_INTEGER cb,
|
|
/* [out] */ __out_opt ULARGE_INTEGER __RPC_FAR *pcbRead,
|
|
/* [out] */ __out_opt ULARGE_INTEGER __RPC_FAR *pcbWritten);
|
|
|
|
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *Commit )(
|
|
IStream __RPC_FAR * This,
|
|
/* [in] */ __in DWORD grfCommitFlags);
|
|
|
|
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *Revert )(
|
|
IStream __RPC_FAR * This);
|
|
|
|
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *LockRegion )(
|
|
IStream __RPC_FAR * This,
|
|
/* [in] */ __in ULARGE_INTEGER libOffset,
|
|
/* [in] */ __in ULARGE_INTEGER cb,
|
|
/* [in] */ __in DWORD dwLockType);
|
|
|
|
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *UnlockRegion )(
|
|
IStream __RPC_FAR * This,
|
|
/* [in] */ __in ULARGE_INTEGER libOffset,
|
|
/* [in] */ __in ULARGE_INTEGER cb,
|
|
/* [in] */ __in DWORD dwLockType);
|
|
|
|
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *Stat )(
|
|
IStream __RPC_FAR * This,
|
|
/* [out] */ __out STATSTG __RPC_FAR *pstatstg,
|
|
/* [in] */ __in DWORD grfStatFlag);
|
|
|
|
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *Clone )(
|
|
IStream __RPC_FAR * This,
|
|
/* [out] */ __deref_out_opt IStream __RPC_FAR *__RPC_FAR *ppstm);
|
|
|
|
END_INTERFACE
|
|
} IStreamVtbl;
|
|
|
|
interface IStream
|
|
{
|
|
CONST_VTBL struct IStreamVtbl __RPC_FAR *lpVtbl;
|
|
};
|
|
|
|
|
|
#define IStream_QueryInterface(This,riid,ppvObject) \
|
|
(This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
|
|
|
|
#define IStream_AddRef(This) \
|
|
(This)->lpVtbl -> AddRef(This)
|
|
|
|
#define IStream_Release(This) \
|
|
(This)->lpVtbl -> Release(This)
|
|
|
|
|
|
#define IStream_Read(This,pv,cb,pcbRead) \
|
|
(This)->lpVtbl -> Read(This,pv,cb,pcbRead)
|
|
|
|
#define IStream_Write(This,pv,cb,pcbWritten) \
|
|
(This)->lpVtbl -> Write(This,pv,cb,pcbWritten)
|
|
|
|
|
|
#define IStream_Seek(This,dlibMove,dwOrigin,plibNewPosition) \
|
|
(This)->lpVtbl -> Seek(This,dlibMove,dwOrigin,plibNewPosition)
|
|
|
|
#define IStream_SetSize(This,libNewSize) \
|
|
(This)->lpVtbl -> SetSize(This,libNewSize)
|
|
|
|
#define IStream_CopyTo(This,pstm,cb,pcbRead,pcbWritten) \
|
|
(This)->lpVtbl -> CopyTo(This,pstm,cb,pcbRead,pcbWritten)
|
|
|
|
#define IStream_Commit(This,grfCommitFlags) \
|
|
(This)->lpVtbl -> Commit(This,grfCommitFlags)
|
|
|
|
#define IStream_Revert(This) \
|
|
(This)->lpVtbl -> Revert(This)
|
|
|
|
#define IStream_LockRegion(This,libOffset,cb,dwLockType) \
|
|
(This)->lpVtbl -> LockRegion(This,libOffset,cb,dwLockType)
|
|
|
|
#define IStream_UnlockRegion(This,libOffset,cb,dwLockType) \
|
|
(This)->lpVtbl -> UnlockRegion(This,libOffset,cb,dwLockType)
|
|
|
|
#define IStream_Stat(This,pstatstg,grfStatFlag) \
|
|
(This)->lpVtbl -> Stat(This,pstatstg,grfStatFlag)
|
|
|
|
#define IStream_Clone(This,ppstm) \
|
|
(This)->lpVtbl -> Clone(This,ppstm)
|
|
|
|
|
|
|
|
|
|
#endif /* __IStream_INTERFACE_DEFINED__ */
|
|
|
|
|
|
#ifndef __IClassFactory_FWD_DEFINED__
|
|
#define __IClassFactory_FWD_DEFINED__
|
|
typedef interface IClassFactory IClassFactory;
|
|
#endif /* __IClassFactory_FWD_DEFINED__ */
|
|
|
|
|
|
#ifndef __IClassFactory_INTERFACE_DEFINED__
|
|
#define __IClassFactory_INTERFACE_DEFINED__
|
|
|
|
/* interface IClassFactory */
|
|
/* [unique][uuid][object] */
|
|
|
|
typedef /* [unique] */ IClassFactory __RPC_FAR *LPCLASSFACTORY;
|
|
|
|
|
|
EXTERN_C const IID IID_IClassFactory;
|
|
|
|
|
|
typedef struct IClassFactoryVtbl
|
|
{
|
|
BEGIN_INTERFACE
|
|
|
|
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *QueryInterface )(
|
|
IClassFactory __RPC_FAR * This,
|
|
/* [in] */ __in REFIID riid,
|
|
/* [iid_is][out] */ __deref_out void __RPC_FAR *__RPC_FAR *ppvObject);
|
|
|
|
ULONG ( STDMETHODCALLTYPE __RPC_FAR *AddRef )(
|
|
IClassFactory __RPC_FAR * This);
|
|
|
|
ULONG ( STDMETHODCALLTYPE __RPC_FAR *Release )(
|
|
IClassFactory __RPC_FAR * This);
|
|
|
|
/* [local] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *CreateInstance )(
|
|
IClassFactory __RPC_FAR * This,
|
|
/* [unique][in] */ __in_opt IUnknown __RPC_FAR *pUnkOuter,
|
|
/* [in] */ __in REFIID riid,
|
|
/* [iid_is][out] */ __deref_out void __RPC_FAR *__RPC_FAR *ppvObject);
|
|
|
|
/* [local] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *LockServer )(
|
|
IClassFactory __RPC_FAR * This,
|
|
/* [in] */ __in BOOL fLock);
|
|
|
|
END_INTERFACE
|
|
} IClassFactoryVtbl;
|
|
|
|
interface IClassFactory
|
|
{
|
|
CONST_VTBL struct IClassFactoryVtbl __RPC_FAR *lpVtbl;
|
|
};
|
|
|
|
|
|
|
|
#define IClassFactory_QueryInterface(This,riid,ppvObject) \
|
|
(This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
|
|
|
|
#define IClassFactory_AddRef(This) \
|
|
(This)->lpVtbl -> AddRef(This)
|
|
|
|
#define IClassFactory_Release(This) \
|
|
(This)->lpVtbl -> Release(This)
|
|
|
|
|
|
#define IClassFactory_CreateInstance(This,pUnkOuter,riid,ppvObject) \
|
|
(This)->lpVtbl -> CreateInstance(This,pUnkOuter,riid,ppvObject)
|
|
|
|
#define IClassFactory_LockServer(This,fLock) \
|
|
(This)->lpVtbl -> LockServer(This,fLock)
|
|
|
|
|
|
|
|
|
|
|
|
#endif /* __IClassFactory_INTERFACE_DEFINED__ */
|
|
|
|
|
|
|
|
#ifndef __IPersist_FWD_DEFINED__
|
|
#define __IPersist_FWD_DEFINED__
|
|
typedef interface IPersist IPersist;
|
|
#endif /* __IPersist_FWD_DEFINED__ */
|
|
|
|
|
|
#ifndef __IPersist_INTERFACE_DEFINED__
|
|
#define __IPersist_INTERFACE_DEFINED__
|
|
|
|
/* interface IPersist */
|
|
/* [uuid][object] */
|
|
|
|
typedef /* [unique] */ IPersist __RPC_FAR *LPPERSIST;
|
|
|
|
|
|
EXTERN_C const IID IID_IPersist;
|
|
|
|
|
|
typedef struct IPersistVtbl
|
|
{
|
|
BEGIN_INTERFACE
|
|
|
|
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *QueryInterface )(
|
|
IPersist __RPC_FAR * This,
|
|
/* [in] */ __in REFIID riid,
|
|
/* [iid_is][out] */ __deref_out void __RPC_FAR *__RPC_FAR *ppvObject);
|
|
|
|
ULONG ( STDMETHODCALLTYPE __RPC_FAR *AddRef )(
|
|
IPersist __RPC_FAR * This);
|
|
|
|
ULONG ( STDMETHODCALLTYPE __RPC_FAR *Release )(
|
|
IPersist __RPC_FAR * This);
|
|
|
|
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetClassID )(
|
|
IPersist __RPC_FAR * This,
|
|
/* [out] */ __out CLSID __RPC_FAR *pClassID);
|
|
|
|
END_INTERFACE
|
|
} IPersistVtbl;
|
|
|
|
interface IPersist
|
|
{
|
|
CONST_VTBL struct IPersistVtbl __RPC_FAR *lpVtbl;
|
|
};
|
|
|
|
|
|
|
|
#define IPersist_QueryInterface(This,riid,ppvObject) \
|
|
(This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
|
|
|
|
#define IPersist_AddRef(This) \
|
|
(This)->lpVtbl -> AddRef(This)
|
|
|
|
#define IPersist_Release(This) \
|
|
(This)->lpVtbl -> Release(This)
|
|
|
|
|
|
#define IPersist_GetClassID(This,pClassID) \
|
|
(This)->lpVtbl -> GetClassID(This,pClassID)
|
|
|
|
|
|
|
|
|
|
|
|
#endif /* __IPersist_INTERFACE_DEFINED__ */
|
|
|
|
|
|
|
|
|
|
#ifndef __IPersistStream_FWD_DEFINED__
|
|
#define __IPersistStream_FWD_DEFINED__
|
|
typedef interface IPersistStream IPersistStream;
|
|
#endif /* __IPersistStream_FWD_DEFINED__ */
|
|
|
|
|
|
#ifndef __IPersistStream_INTERFACE_DEFINED__
|
|
#define __IPersistStream_INTERFACE_DEFINED__
|
|
|
|
/* interface IPersistStream */
|
|
/* [unique][uuid][object] */
|
|
|
|
typedef /* [unique] */ IPersistStream __RPC_FAR *LPPERSISTSTREAM;
|
|
|
|
|
|
EXTERN_C const IID IID_IPersistStream;
|
|
|
|
typedef struct IPersistStreamVtbl
|
|
{
|
|
BEGIN_INTERFACE
|
|
|
|
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *QueryInterface )(
|
|
IPersistStream __RPC_FAR * This,
|
|
/* [in] */ __in REFIID riid,
|
|
/* [iid_is][out] */ __deref_out void __RPC_FAR *__RPC_FAR *ppvObject);
|
|
|
|
ULONG ( STDMETHODCALLTYPE __RPC_FAR *AddRef )(
|
|
IPersistStream __RPC_FAR * This);
|
|
|
|
ULONG ( STDMETHODCALLTYPE __RPC_FAR *Release )(
|
|
IPersistStream __RPC_FAR * This);
|
|
|
|
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetClassID )(
|
|
IPersistStream __RPC_FAR * This,
|
|
/* [out] */ __out CLSID __RPC_FAR *pClassID);
|
|
|
|
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *IsDirty )(
|
|
IPersistStream __RPC_FAR * This);
|
|
|
|
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *Load )(
|
|
IPersistStream __RPC_FAR * This,
|
|
/* [unique][in] */ __in_opt IStream __RPC_FAR *pStm);
|
|
|
|
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *Save )(
|
|
IPersistStream __RPC_FAR * This,
|
|
/* [unique][in] */ __in_opt IStream __RPC_FAR *pStm,
|
|
/* [in] */ __in BOOL fClearDirty);
|
|
|
|
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetSizeMax )(
|
|
IPersistStream __RPC_FAR * This,
|
|
/* [out] */ __out ULARGE_INTEGER __RPC_FAR *pcbSize);
|
|
|
|
END_INTERFACE
|
|
} IPersistStreamVtbl;
|
|
|
|
interface IPersistStream
|
|
{
|
|
CONST_VTBL struct IPersistStreamVtbl __RPC_FAR *lpVtbl;
|
|
};
|
|
|
|
|
|
|
|
#define IPersistStream_QueryInterface(This,riid,ppvObject) \
|
|
(This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
|
|
|
|
#define IPersistStream_AddRef(This) \
|
|
(This)->lpVtbl -> AddRef(This)
|
|
|
|
#define IPersistStream_Release(This) \
|
|
(This)->lpVtbl -> Release(This)
|
|
|
|
|
|
#define IPersistStream_GetClassID(This,pClassID) \
|
|
(This)->lpVtbl -> GetClassID(This,pClassID)
|
|
|
|
|
|
#define IPersistStream_IsDirty(This) \
|
|
(This)->lpVtbl -> IsDirty(This)
|
|
|
|
#define IPersistStream_Load(This,pStm) \
|
|
(This)->lpVtbl -> Load(This,pStm)
|
|
|
|
#define IPersistStream_Save(This,pStm,fClearDirty) \
|
|
(This)->lpVtbl -> Save(This,pStm,fClearDirty)
|
|
|
|
#define IPersistStream_GetSizeMax(This,pcbSize) \
|
|
(This)->lpVtbl -> GetSizeMax(This,pcbSize)
|
|
|
|
|
|
|
|
|
|
|
|
#endif /* __IPersistStream_INTERFACE_DEFINED__ */
|
|
|
|
|
|
|
|
#include <guiddef.h>
|
|
|
|
#ifndef INITGUID
|
|
#include <cguid.h>
|
|
#endif
|
|
|
|
#ifndef RC_INVOKED
|
|
#include <poppack.h>
|
|
#endif // RC_INVOKED
|
|
|
|
#endif // _XOBJBASE_H_
|