RetroArch/360/xaudio-c/objbase.h
2012-03-11 15:00:15 +01:00

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_