ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

dxfile.h
Go to the documentation of this file.
00001 #ifndef __DXFILE_H__
00002 #define __DXFILE_H__
00003 
00004 #ifdef __cplusplus
00005 extern "C" {
00006 #endif
00007 
00008 typedef DWORD DXFILEFORMAT;
00009 typedef DWORD DXFILELOADOPTIONS;
00010 
00011 DEFINE_GUID(IID_IDirectXFile,                   0x3D82AB40, 0x62DA, 0x11CF, 0xAB, 0x39, 0x00, 0x20, 0xAF, 0x71, 0xE4, 0x33);
00012 DEFINE_GUID(IID_IDirectXFileEnumObject,         0x3D82AB41, 0x62DA, 0x11CF, 0xAB, 0x39, 0x00, 0x20, 0xAF, 0x71, 0xE4, 0x33);
00013 DEFINE_GUID(IID_IDirectXFileSaveObject,         0x3D82AB42, 0x62DA, 0x11CF, 0xAB, 0x39, 0x00, 0x20, 0xAF, 0x71, 0xE4, 0x33);
00014 DEFINE_GUID(IID_IDirectXFileObject,             0x3D82AB43, 0x62DA, 0x11CF, 0xAB, 0x39, 0x00, 0x20, 0xAF, 0x71, 0xE4, 0x33);
00015 DEFINE_GUID(IID_IDirectXFileData,               0x3D82AB44, 0x62DA, 0x11CF, 0xAB, 0x39, 0x00, 0x20, 0xAF, 0x71, 0xE4, 0x33);
00016 DEFINE_GUID(IID_IDirectXFileDataReference,      0x3D82AB45, 0x62DA, 0x11CF, 0xAB, 0x39, 0x00, 0x20, 0xAF, 0x71, 0xE4, 0x33);
00017 DEFINE_GUID(IID_IDirectXFileBinary,             0x3D82AB46, 0x62DA, 0x11CF, 0xAB, 0x39, 0x00, 0x20, 0xAF, 0x71, 0xE4, 0x33);
00018 DEFINE_GUID(TID_DXFILEHeader,                   0x3D82AB43, 0x62DA, 0x11CF, 0xAB, 0x39, 0x00, 0x20, 0xAF, 0x71, 0xE4, 0x33);
00019 DEFINE_GUID(CLSID_CDirectXFile,                 0x4516EC43, 0x8F20, 0x11D0, 0x9B, 0x6D, 0x00, 0x00, 0xC0, 0x78, 0x1B, 0xC3);
00020 
00021 #ifndef WIN_TYPES
00022   #define WIN_TYPES(itype, ptype) typedef interface itype *LP##ptype, **LPLP##ptype
00023 #endif
00024 
00025 #define DXFILEFORMAT_BINARY         0
00026 #define DXFILEFORMAT_TEXT           1
00027 #define DXFILEFORMAT_COMPRESSED     2
00028 #define DXFILELOAD_FROMFILE         0x00L
00029 #define DXFILELOAD_FROMRESOURCE     0x01L
00030 #define DXFILELOAD_FROMMEMORY       0x02L
00031 #define DXFILELOAD_FROMSTREAM       0x04L
00032 #define DXFILELOAD_FROMURL          0x08L
00033 
00034 #define _FACDD                                  0x876
00035 #define MAKE_DDHRESULT( code )                  MAKE_HRESULT( 1, _FACDD, code )
00036 #define DXFILE_OK                               0
00037 #define DXFILEERR_BADOBJECT                     MAKE_DDHRESULT(850)
00038 #define DXFILEERR_BADVALUE                      MAKE_DDHRESULT(851)
00039 #define DXFILEERR_BADTYPE                       MAKE_DDHRESULT(852)
00040 #define DXFILEERR_BADSTREAMHANDLE               MAKE_DDHRESULT(853)
00041 #define DXFILEERR_BADALLOC                      MAKE_DDHRESULT(854)
00042 #define DXFILEERR_NOTFOUND                      MAKE_DDHRESULT(855)
00043 #define DXFILEERR_NOTDONEYET                    MAKE_DDHRESULT(856)
00044 #define DXFILEERR_FILENOTFOUND                  MAKE_DDHRESULT(857)
00045 #define DXFILEERR_RESOURCENOTFOUND              MAKE_DDHRESULT(858)
00046 #define DXFILEERR_URLNOTFOUND                   MAKE_DDHRESULT(859)
00047 #define DXFILEERR_BADRESOURCE                   MAKE_DDHRESULT(860)
00048 #define DXFILEERR_BADFILETYPE                   MAKE_DDHRESULT(861)
00049 #define DXFILEERR_BADFILEVERSION                MAKE_DDHRESULT(862)
00050 #define DXFILEERR_BADFILEFLOATSIZE              MAKE_DDHRESULT(863)
00051 #define DXFILEERR_BADFILECOMPRESSIONTYPE        MAKE_DDHRESULT(864)
00052 #define DXFILEERR_BADFILE                       MAKE_DDHRESULT(865)
00053 #define DXFILEERR_PARSEERROR                    MAKE_DDHRESULT(866)
00054 #define DXFILEERR_NOTEMPLATE                    MAKE_DDHRESULT(867)
00055 #define DXFILEERR_BADARRAYSIZE                  MAKE_DDHRESULT(868)
00056 #define DXFILEERR_BADDATAREFERENCE              MAKE_DDHRESULT(869)
00057 #define DXFILEERR_INTERNALERROR                 MAKE_DDHRESULT(870)
00058 #define DXFILEERR_NOMOREOBJECTS                 MAKE_DDHRESULT(871)
00059 #define DXFILEERR_BADINTRINSICS                 MAKE_DDHRESULT(872)
00060 #define DXFILEERR_NOMORESTREAMHANDLES           MAKE_DDHRESULT(873)
00061 #define DXFILEERR_NOMOREDATA                    MAKE_DDHRESULT(874)
00062 #define DXFILEERR_BADCACHEFILE                  MAKE_DDHRESULT(875)
00063 #define DXFILEERR_NOINTERNET                    MAKE_DDHRESULT(876)
00064 
00065 WIN_TYPES(IDirectXFile, DIRECTXFILE);
00066 WIN_TYPES(IDirectXFileEnumObject, DIRECTXFILEENUMOBJECT);
00067 WIN_TYPES(IDirectXFileSaveObject, DIRECTXFILESAVEOBJECT);
00068 WIN_TYPES(IDirectXFileObject, DIRECTXFILEOBJECT);
00069 WIN_TYPES(IDirectXFileData, DIRECTXFILEDATA);
00070 WIN_TYPES(IDirectXFileDataReference, DIRECTXFILEDATAREFERENCE);
00071 WIN_TYPES(IDirectXFileBinary, DIRECTXFILEBINARY);
00072 
00073 typedef struct _DXFILELOADRESOURCE
00074 {
00075   HMODULE hModule;
00076   LPCTSTR lpName;
00077   LPCTSTR lpType;
00078 }DXFILELOADRESOURCE, *LPDXFILELOADRESOURCE;
00079 
00080 typedef struct _DXFILELOADMEMORY
00081 {
00082   LPVOID lpMemory;
00083   DWORD dSize;
00084 }DXFILELOADMEMORY, *LPDXFILELOADMEMORY;
00085 
00086 STDAPI DirectXFileCreate(LPDIRECTXFILE *lplpDirectXFile);
00087 #define IDIRECTXFILEOBJECT_METHODS(kind) \
00088     STDMETHOD(GetName) (THIS_ LPSTR, LPDWORD) kind; \
00089     STDMETHOD(GetId) (THIS_ LPGUID) kind
00090 #define IUNKNOWN_METHODS(kind) \
00091   STDMETHOD(QueryInterface)       (THIS_ REFIID riid, LPVOID *ppvObj) kind; \
00092   STDMETHOD_(ULONG, AddRef)       (THIS) kind; \
00093   STDMETHOD_(ULONG, Release)      (THIS) kind
00094 
00095 #undef INTERFACE
00096 #define INTERFACE IDirectXFile
00097 
00098 DECLARE_INTERFACE_(IDirectXFile, IUnknown)
00099 {
00100   IUNKNOWN_METHODS(PURE);
00101   STDMETHOD(CreateEnumObject) (THIS_ LPVOID, DXFILELOADOPTIONS, LPDIRECTXFILEENUMOBJECT *) PURE;
00102   STDMETHOD(CreateSaveObject) (THIS_ LPCSTR, DXFILEFORMAT, LPDIRECTXFILESAVEOBJECT *) PURE;
00103   STDMETHOD(RegisterTemplates) (THIS_ LPVOID, DWORD) PURE;
00104 };
00105 
00106 #undef INTERFACE
00107 #define INTERFACE IDirectXFileEnumObject
00108 
00109 DECLARE_INTERFACE_(IDirectXFileEnumObject, IUnknown)
00110 {
00111   IUNKNOWN_METHODS(PURE);
00112   STDMETHOD(GetNextDataObject) (THIS_ LPDIRECTXFILEDATA *) PURE;
00113   STDMETHOD(GetDataObjectById) (THIS_ REFGUID, LPDIRECTXFILEDATA *) PURE;
00114   STDMETHOD(GetDataObjectByName) (THIS_ LPCSTR, LPDIRECTXFILEDATA *) PURE;
00115 };
00116 
00117 #undef INTERFACE
00118 #define INTERFACE IDirectXFileSaveObject
00119 
00120 DECLARE_INTERFACE_(IDirectXFileSaveObject, IUnknown)
00121 {
00122     IUNKNOWN_METHODS(PURE);
00123     STDMETHOD(SaveTemplates) (THIS_ DWORD, const GUID **) PURE;
00124     STDMETHOD(CreateDataObject) (THIS_ REFGUID, LPCSTR, const GUID *,
00125                                  DWORD, LPVOID, LPDIRECTXFILEDATA *) PURE;
00126     STDMETHOD(SaveData) (THIS_ LPDIRECTXFILEDATA) PURE;
00127 };
00128 
00129 #undef INTERFACE
00130 #define INTERFACE IDirectXFileObject
00131 
00132 DECLARE_INTERFACE_(IDirectXFileObject, IUnknown)
00133 {
00134   IUNKNOWN_METHODS(PURE);
00135   IDIRECTXFILEOBJECT_METHODS(PURE);
00136 };
00137 
00138 #undef INTERFACE
00139 #define INTERFACE IDirectXFileData
00140 
00141 DECLARE_INTERFACE_(IDirectXFileData, IDirectXFileObject)
00142 {
00143   IUNKNOWN_METHODS(PURE);
00144   IDIRECTXFILEOBJECT_METHODS(PURE);
00145   STDMETHOD(GetData) (THIS_ LPCSTR, DWORD *, void **) PURE;
00146   STDMETHOD(GetType) (THIS_ const GUID **) PURE;
00147   STDMETHOD(GetNextObject) (THIS_ LPDIRECTXFILEOBJECT *) PURE;
00148   STDMETHOD(AddDataObject) (THIS_ LPDIRECTXFILEDATA) PURE;
00149   STDMETHOD(AddDataReference) (THIS_ LPCSTR, const GUID *) PURE;
00150   STDMETHOD(AddBinaryObject) (THIS_ LPCSTR, const GUID *, LPCSTR, LPVOID, DWORD) PURE;
00151 };
00152 
00153 #undef INTERFACE
00154 #define INTERFACE IDirectXFileDataReference
00155 
00156 DECLARE_INTERFACE_(IDirectXFileDataReference, IDirectXFileObject)
00157 {
00158   IUNKNOWN_METHODS(PURE);
00159   IDIRECTXFILEOBJECT_METHODS(PURE);
00160   STDMETHOD(Resolve) (THIS_ LPDIRECTXFILEDATA *) PURE;
00161 };
00162 
00163 #undef INTERFACE
00164 #define INTERFACE IDirectXFileBinary
00165 
00166 DECLARE_INTERFACE_(IDirectXFileBinary, IDirectXFileObject)
00167 {
00168   IUNKNOWN_METHODS(PURE);
00169   IDIRECTXFILEOBJECT_METHODS(PURE);
00170 
00171   STDMETHOD(GetSize) (THIS_ DWORD *) PURE;
00172   STDMETHOD(GetMimeType) (THIS_ LPCSTR *) PURE;
00173   STDMETHOD(Read) (THIS_ LPVOID, DWORD, LPDWORD) PURE;
00174 };
00175 
00176 #ifdef __cplusplus
00177 };
00178 #endif
00179 
00180 #endif

Generated on Sat May 26 2012 04:29:21 for ReactOS by doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.