ReactOS  0.4.15-dev-2355-gaf9df93
xfile.c File Reference
#include "d3dx9_private.h"
#include "d3dx9xof.h"
#include "dxfile.h"
Include dependency graph for xfile.c:

Go to the source code of this file.

Classes

struct  d3dx9_file
 
struct  d3dx9_file_enum_object
 
struct  d3dx9_file_data
 

Functions

 WINE_DEFAULT_DEBUG_CHANNEL (d3dx)
 
static HRESULT error_dxfile_to_d3dxfile (HRESULT error)
 
static struct d3dx9_fileimpl_from_ID3DXFile (ID3DXFile *iface)
 
static struct d3dx9_file_enum_objectimpl_from_ID3DXFileEnumObject (ID3DXFileEnumObject *iface)
 
static struct d3dx9_file_dataimpl_from_ID3DXFileData (ID3DXFileData *iface)
 
static HRESULT WINAPI d3dx9_file_data_QueryInterface (ID3DXFileData *iface, REFIID riid, void **out)
 
static ULONG WINAPI d3dx9_file_data_AddRef (ID3DXFileData *iface)
 
static ULONG WINAPI d3dx9_file_data_Release (ID3DXFileData *iface)
 
static HRESULT WINAPI d3dx9_file_data_GetEnum (ID3DXFileData *iface, ID3DXFileEnumObject **enum_object)
 
static HRESULT WINAPI d3dx9_file_data_GetName (ID3DXFileData *iface, char *name, SIZE_T *size)
 
static HRESULT WINAPI d3dx9_file_data_GetId (ID3DXFileData *iface, GUID *guid)
 
static HRESULT WINAPI d3dx9_file_data_Lock (ID3DXFileData *iface, SIZE_T *size, const void **data)
 
static HRESULT WINAPI d3dx9_file_data_Unlock (ID3DXFileData *iface)
 
static HRESULT WINAPI d3dx9_file_data_GetType (ID3DXFileData *iface, GUID *guid)
 
static BOOL WINAPI d3dx9_file_data_IsReference (ID3DXFileData *iface)
 
static HRESULT WINAPI d3dx9_file_data_GetChildren (ID3DXFileData *iface, SIZE_T *children)
 
static HRESULT WINAPI d3dx9_file_data_GetChild (ID3DXFileData *iface, SIZE_T id, ID3DXFileData **object)
 
static HRESULT d3dx9_file_data_create (IDirectXFileObject *dxfile_object, ID3DXFileData **ret_iface)
 
static HRESULT WINAPI d3dx9_file_enum_object_QueryInterface (ID3DXFileEnumObject *iface, REFIID riid, void **out)
 
static ULONG WINAPI d3dx9_file_enum_object_AddRef (ID3DXFileEnumObject *iface)
 
static ULONG WINAPI d3dx9_file_enum_object_Release (ID3DXFileEnumObject *iface)
 
static HRESULT WINAPI d3dx9_file_enum_object_GetFile (ID3DXFileEnumObject *iface, ID3DXFile **file)
 
static HRESULT WINAPI d3dx9_file_enum_object_GetChildren (ID3DXFileEnumObject *iface, SIZE_T *children)
 
static HRESULT WINAPI d3dx9_file_enum_object_GetChild (ID3DXFileEnumObject *iface, SIZE_T id, ID3DXFileData **object)
 
static HRESULT WINAPI d3dx9_file_enum_object_GetDataObjectById (ID3DXFileEnumObject *iface, REFGUID guid, ID3DXFileData **object)
 
static HRESULT WINAPI d3dx9_file_enum_object_GetDataObjectByName (ID3DXFileEnumObject *iface, const char *name, ID3DXFileData **object)
 
static HRESULT WINAPI d3dx9_file_QueryInterface (ID3DXFile *iface, REFIID riid, void **out)
 
static ULONG WINAPI d3dx9_file_AddRef (ID3DXFile *iface)
 
static ULONG WINAPI d3dx9_file_Release (ID3DXFile *iface)
 
static HRESULT WINAPI d3dx9_file_CreateEnumObject (ID3DXFile *iface, const void *source, D3DXF_FILELOADOPTIONS options, ID3DXFileEnumObject **enum_object)
 
static HRESULT WINAPI d3dx9_file_CreateSaveObject (ID3DXFile *iface, const void *data, D3DXF_FILESAVEOPTIONS options, D3DXF_FILEFORMAT format, ID3DXFileSaveObject **save_object)
 
static HRESULT WINAPI d3dx9_file_RegisterTemplates (ID3DXFile *iface, const void *data, SIZE_T size)
 
static HRESULT WINAPI d3dx9_file_RegisterEnumTemplates (ID3DXFile *iface, ID3DXFileEnumObject *enum_object)
 
HRESULT WINAPI D3DXFileCreate (ID3DXFile **d3dxfile)
 

Variables

static const ID3DXFileDataVtbl d3dx9_file_data_vtbl
 
static const ID3DXFileEnumObjectVtbl d3dx9_file_enum_object_vtbl
 
static const ID3DXFileVtbl d3dx9_file_vtbl
 

Function Documentation

◆ d3dx9_file_AddRef()

static ULONG WINAPI d3dx9_file_AddRef ( ID3DXFile *  iface)
static

Definition at line 527 of file xfile.c.

528 {
529  struct d3dx9_file *file = impl_from_ID3DXFile(iface);
530  ULONG refcount = InterlockedIncrement(&file->ref);
531 
532  TRACE("%p increasing refcount to %u.\n", file, refcount);
533 
534  return refcount;
535 }
static struct d3dx9_file * impl_from_ID3DXFile(ID3DXFile *iface)
Definition: xfile.c:77
#define TRACE(s)
Definition: solgame.cpp:4
LONG ref
Definition: filesystem.c:120
#define InterlockedIncrement
Definition: armddk.h:53
unsigned int ULONG
Definition: retypes.h:1
Definition: fci.c:126

◆ d3dx9_file_CreateEnumObject()

static HRESULT WINAPI d3dx9_file_CreateEnumObject ( ID3DXFile *  iface,
const void source,
D3DXF_FILELOADOPTIONS  options,
ID3DXFileEnumObject **  enum_object 
)
static

Definition at line 553 of file xfile.c.

555 {
556  struct d3dx9_file *file = impl_from_ID3DXFile(iface);
558  IDirectXFileEnumObject *dxfile_enum_object;
559  void *dxfile_source;
560  DXFILELOADOPTIONS dxfile_options;
561  DXFILELOADRESOURCE dxfile_resource;
562  DXFILELOADMEMORY dxfile_memory;
563  IDirectXFileData *data_object;
564  unsigned children_array_size = 0;
565  HRESULT ret;
566 
567  TRACE("iface %p, source %p, options %#x, enum_object %p.\n", iface, source, options, enum_object);
568 
569  if (!enum_object)
570  return E_POINTER;
571 
572  *enum_object = NULL;
573 
575  {
576  dxfile_source = (void*)source;
577  dxfile_options = DXFILELOAD_FROMFILE;
578  }
580  {
582 
583  dxfile_resource.hModule = resource->hModule;
584  dxfile_resource.lpName = resource->lpName;
585  dxfile_resource.lpType = resource->lpType;
586  dxfile_source = &dxfile_resource;
587  dxfile_options = DXFILELOAD_FROMRESOURCE;
588  }
590  {
592 
593  dxfile_memory.lpMemory = (void *)memory->lpMemory;
594  dxfile_memory.dSize = memory->dSize;
595  dxfile_source = &dxfile_memory;
596  dxfile_options = DXFILELOAD_FROMMEMORY;
597  }
598  else
599  {
600  FIXME("Source type %u is not handled yet\n", options);
601  return E_NOTIMPL;
602  }
603 
604  object = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(*object));
605  if (!object)
606  return E_OUTOFMEMORY;
607 
608  object->ID3DXFileEnumObject_iface.lpVtbl = &d3dx9_file_enum_object_vtbl;
609  object->ref = 1;
610 
611  ret = IDirectXFile_CreateEnumObject(file->dxfile, dxfile_source, dxfile_options, &dxfile_enum_object);
612 
613  if (ret != S_OK)
614  {
615  HeapFree(GetProcessHeap(), 0, object);
616  return ret;
617  }
618 
619  /* Fill enum object with top level data objects */
620  while (SUCCEEDED(ret = IDirectXFileEnumObject_GetNextDataObject(dxfile_enum_object, &data_object)))
621  {
622  if (object->nb_children >= children_array_size)
623  {
624  ID3DXFileData **new_children;
625 
626  if (object->children)
627  {
628  children_array_size *= 2;
629  new_children = HeapReAlloc(GetProcessHeap(), 0, object->children,
630  sizeof(*object->children) * children_array_size);
631  }
632  else
633  {
634  children_array_size = 4;
635  new_children = HeapAlloc(GetProcessHeap(), 0, sizeof(*object->children) * children_array_size);
636  }
637  if (!new_children)
638  {
639  ret = E_OUTOFMEMORY;
640  break;
641  }
642  object->children = new_children;
643  }
644  ret = d3dx9_file_data_create((IDirectXFileObject*)data_object,
645  &object->children[object->nb_children]);
646  IUnknown_Release(data_object);
647  if (FAILED(ret))
648  break;
649  object->nb_children++;
650  }
651  if (object->children)
652  {
653  ID3DXFileData **new_children;
654 
655  new_children = HeapReAlloc(GetProcessHeap(), 0, object->children,
656  sizeof(*object->children) * object->nb_children);
657  if (new_children)
658  object->children = new_children;
659  }
660 
661  IDirectXFileEnumObject_Release(dxfile_enum_object);
662 
664  WARN("Cannot get all top level data objects\n");
665 
666  TRACE("Found %u children\n", object->nb_children);
667 
668  *enum_object = &object->ID3DXFileEnumObject_iface;
669 
670  return S_OK;
671 }
#define D3DXF_FILELOAD_FROMRESOURCE
Definition: d3dx9xof.h:40
coclass MSXML2::XSLTemplate40 object
#define IDirectXFileEnumObject_Release(p)
Definition: dxfile.h:107
LPVOID lpMemory
Definition: dxfile.h:50
#define WARN(fmt,...)
Definition: debug.h:112
static struct d3dx9_file * impl_from_ID3DXFile(ID3DXFile *iface)
Definition: xfile.c:77
#define DXFILEERR_NOMOREOBJECTS
Definition: dxfile.h:291
static char memory[1024 *256]
Definition: process.c:116
#define DXFILELOAD_FROMFILE
Definition: dxfile.h:37
#define E_OUTOFMEMORY
Definition: ddrawi.h:100
if SUCCEEDED(hr)
#define FIXME(fmt,...)
Definition: debug.h:111
HMODULE hModule
Definition: dxfile.h:44
#define IDirectXFileEnumObject_GetNextDataObject(p, a)
Definition: dxfile.h:109
static HRESULT d3dx9_file_data_create(IDirectXFileObject *dxfile_object, ID3DXFileData **ret_iface)
Definition: xfile.c:299
#define TRACE(s)
Definition: solgame.cpp:4
#define GetProcessHeap()
Definition: compat.h:595
PVOID WINAPI HeapAlloc(HANDLE, DWORD, SIZE_T)
LONG HRESULT
Definition: typedefs.h:79
#define IDirectXFile_CreateEnumObject(p, a, b, c)
Definition: dxfile.h:84
DWORD DXFILELOADOPTIONS
Definition: dxfile.h:35
int ret
#define D3DXF_FILELOAD_FROMFILE
Definition: d3dx9xof.h:38
#define DXFILELOAD_FROMRESOURCE
Definition: dxfile.h:38
#define S_OK
Definition: intsafe.h:51
#define HeapReAlloc
Definition: compat.h:593
#define E_NOTIMPL
Definition: ddrawi.h:99
#define NULL
Definition: types.h:112
#define HEAP_ZERO_MEMORY
Definition: compat.h:134
#define D3DXF_FILELOAD_FROMMEMORY
Definition: d3dx9xof.h:41
#define E_POINTER
Definition: winerror.h:2365
#define HeapFree(x, y, z)
Definition: compat.h:594
static const ID3DXFileEnumObjectVtbl d3dx9_file_enum_object_vtbl
Definition: xfile.c:497
Definition: fci.c:126
#define DXFILELOAD_FROMMEMORY
Definition: dxfile.h:39

◆ d3dx9_file_CreateSaveObject()

static HRESULT WINAPI d3dx9_file_CreateSaveObject ( ID3DXFile *  iface,
const void data,
D3DXF_FILESAVEOPTIONS  options,
D3DXF_FILEFORMAT  format,
ID3DXFileSaveObject **  save_object 
)
static

Definition at line 673 of file xfile.c.

675 {
676  FIXME("iface %p, data %p, options %#x, format %#x, save_object %p stub!\n",
677  iface, data, options, format, save_object);
678 
679  return E_NOTIMPL;
680 }
GLint GLint GLsizei GLsizei GLsizei GLint GLenum format
Definition: gl.h:1546
#define FIXME(fmt,...)
Definition: debug.h:111
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
Definition: gl.h:1950
#define E_NOTIMPL
Definition: ddrawi.h:99

◆ d3dx9_file_data_AddRef()

static ULONG WINAPI d3dx9_file_data_AddRef ( ID3DXFileData *  iface)
static

Definition at line 110 of file xfile.c.

111 {
112  struct d3dx9_file_data *file_data = impl_from_ID3DXFileData(iface);
113  ULONG refcount = InterlockedIncrement(&file_data->ref);
114 
115  TRACE("%p increasing refcount to %u.\n", file_data, refcount);
116 
117  return refcount;
118 }
static struct d3dx9_file_data * impl_from_ID3DXFileData(ID3DXFileData *iface)
Definition: xfile.c:87
#define TRACE(s)
Definition: solgame.cpp:4
#define InterlockedIncrement
Definition: armddk.h:53
unsigned int ULONG
Definition: retypes.h:1
LONG ref
Definition: xfile.c:70

◆ d3dx9_file_data_create()

static HRESULT d3dx9_file_data_create ( IDirectXFileObject *  dxfile_object,
ID3DXFileData **  ret_iface 
)
static

Definition at line 299 of file xfile.c.

300 {
301  struct d3dx9_file_data *object;
302  IDirectXFileObject *data_object;
303  unsigned int children_array_size = 0;
304  HRESULT ret;
305 
306  TRACE("dxfile_object %p, ret_iface %p.\n", dxfile_object, ret_iface);
307 
308  *ret_iface = NULL;
309 
310  object = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(*object));
311  if (!object)
312  return E_OUTOFMEMORY;
313 
314  object->ID3DXFileData_iface.lpVtbl = &d3dx9_file_data_vtbl;
315  object->ref = 1;
316 
317  ret = IDirectXFileObject_QueryInterface(dxfile_object, &IID_IDirectXFileData, (void **)&object->dxfile_data);
318  if (FAILED(ret))
319  {
320  IDirectXFileDataReference *reference;
321 
322  ret = IDirectXFileObject_QueryInterface(dxfile_object, &IID_IDirectXFileDataReference, (void **)&reference);
323  if (SUCCEEDED(ret))
324  {
326  IUnknown_Release(reference);
327  if (FAILED(ret))
328  {
329  HeapFree(GetProcessHeap(), 0, object);
330  return E_FAIL;
331  }
332  object->reference = TRUE;
333  }
334  else
335  {
336  FIXME("Don't know what to do with binary object\n");
337  HeapFree(GetProcessHeap(), 0, object);
338  return E_FAIL;
339  }
340  }
341 
342  while (SUCCEEDED(ret = IDirectXFileData_GetNextObject(object->dxfile_data, &data_object)))
343  {
344  if (object->nb_children >= children_array_size)
345  {
346  ID3DXFileData **new_children;
347 
348  if (object->children)
349  {
350  children_array_size *= 2;
351  new_children = HeapReAlloc(GetProcessHeap(), 0, object->children,
352  sizeof(*object->children) * children_array_size);
353  }
354  else
355  {
356  children_array_size = 4;
357  new_children = HeapAlloc(GetProcessHeap(), 0, sizeof(*object->children) * children_array_size);
358  }
359  if (!new_children)
360  {
361  ret = E_OUTOFMEMORY;
362  break;
363  }
364  object->children = new_children;
365  }
366  ret = d3dx9_file_data_create(data_object, &object->children[object->nb_children]);
367  IUnknown_Release(data_object);
368  if (FAILED(ret))
369  break;
370  object->nb_children++;
371  }
373  {
374  (&object->ID3DXFileData_iface)->lpVtbl->Release(&object->ID3DXFileData_iface);
375  return ret;
376  }
377  if (object->children)
378  {
379  ID3DXFileData **new_children;
380 
381  new_children = HeapReAlloc(GetProcessHeap(), 0, object->children,
382  sizeof(*object->children) * object->nb_children);
383  if (new_children)
384  object->children = new_children;
385  }
386 
387  TRACE("Found %u children\n", object->nb_children);
388 
389  *ret_iface = &object->ID3DXFileData_iface;
390 
391  return S_OK;
392 }
coclass MSXML2::XSLTemplate40 object
#define TRUE
Definition: types.h:120
#define DXFILEERR_NOMOREOBJECTS
Definition: dxfile.h:291
#define E_FAIL
Definition: ddrawi.h:102
#define E_OUTOFMEMORY
Definition: ddrawi.h:100
if SUCCEEDED(hr)
#define FIXME(fmt,...)
Definition: debug.h:111
static HRESULT d3dx9_file_data_create(IDirectXFileObject *dxfile_object, ID3DXFileData **ret_iface)
Definition: xfile.c:299
#define IDirectXFileData_GetNextObject(p, a)
Definition: dxfile.h:192
static const ID3DXFileDataVtbl d3dx9_file_data_vtbl
Definition: xfile.c:283
#define TRACE(s)
Definition: solgame.cpp:4
#define GetProcessHeap()
Definition: compat.h:595
PVOID WINAPI HeapAlloc(HANDLE, DWORD, SIZE_T)
LONG HRESULT
Definition: typedefs.h:79
#define IDirectXFileObject_QueryInterface(p, a, b)
Definition: dxfile.h:158
int ret
GLint reference
Definition: glext.h:11729
#define IDirectXFileDataReference_Resolve(p, a)
Definition: dxfile.h:217
#define S_OK
Definition: intsafe.h:51
#define HeapReAlloc
Definition: compat.h:593
#define NULL
Definition: types.h:112
#define HEAP_ZERO_MEMORY
Definition: compat.h:134
#define HeapFree(x, y, z)
Definition: compat.h:594

Referenced by d3dx9_file_CreateEnumObject().

◆ d3dx9_file_data_GetChild()

static HRESULT WINAPI d3dx9_file_data_GetChild ( ID3DXFileData *  iface,
SIZE_T  id,
ID3DXFileData **  object 
)
static

Definition at line 268 of file xfile.c.

269 {
270  struct d3dx9_file_data *file_data = impl_from_ID3DXFileData(iface);
271 
272  TRACE("iface %p, id %#lx, object %p.\n", iface, id, object);
273 
274  if (!object)
275  return E_POINTER;
276 
277  *object = file_data->children[id];
278  (*object)->lpVtbl->AddRef(*object);
279 
280  return S_OK;
281 }
static struct d3dx9_file_data * impl_from_ID3DXFileData(ID3DXFileData *iface)
Definition: xfile.c:87
ID3DXFileData ** children
Definition: xfile.c:74
#define TRACE(s)
Definition: solgame.cpp:4
#define S_OK
Definition: intsafe.h:51
GLenum GLuint id
Definition: glext.h:5579
#define E_POINTER
Definition: winerror.h:2365

◆ d3dx9_file_data_GetChildren()

static HRESULT WINAPI d3dx9_file_data_GetChildren ( ID3DXFileData *  iface,
SIZE_T children 
)
static

Definition at line 254 of file xfile.c.

255 {
256  struct d3dx9_file_data *file_data = impl_from_ID3DXFileData(iface);
257 
258  TRACE("iface %p, children %p.\n", iface, children);
259 
260  if (!children)
261  return E_POINTER;
262 
263  *children = file_data->nb_children;
264 
265  return S_OK;
266 }
ULONG nb_children
Definition: xfile.c:73
static struct d3dx9_file_data * impl_from_ID3DXFileData(ID3DXFileData *iface)
Definition: xfile.c:87
ID3DXFileData ** children
Definition: xfile.c:74
#define TRACE(s)
Definition: solgame.cpp:4
#define S_OK
Definition: intsafe.h:51
#define E_POINTER
Definition: winerror.h:2365

◆ d3dx9_file_data_GetEnum()

static HRESULT WINAPI d3dx9_file_data_GetEnum ( ID3DXFileData *  iface,
ID3DXFileEnumObject **  enum_object 
)
static

Definition at line 144 of file xfile.c.

145 {
146  FIXME("iface %p, enum_object %p stub!\n", iface, enum_object);
147 
148  return E_NOTIMPL;
149 }
#define FIXME(fmt,...)
Definition: debug.h:111
#define E_NOTIMPL
Definition: ddrawi.h:99

◆ d3dx9_file_data_GetId()

static HRESULT WINAPI d3dx9_file_data_GetId ( ID3DXFileData *  iface,
GUID guid 
)
static

Definition at line 182 of file xfile.c.

183 {
184  struct d3dx9_file_data *file_data = impl_from_ID3DXFileData(iface);
185  HRESULT ret;
186 
187  TRACE("iface %p, guid %p.\n", iface, guid);
188 
189  if (!guid)
190  return E_POINTER;
191 
193  if (ret != DXFILE_OK)
195 
196  return S_OK;
197 }
static struct d3dx9_file_data * impl_from_ID3DXFileData(ID3DXFileData *iface)
Definition: xfile.c:87
#define DXFILE_OK
Definition: dxfile.h:268
const GUID * guid
#define TRACE(s)
Definition: solgame.cpp:4
LONG HRESULT
Definition: typedefs.h:79
IDirectXFileData * dxfile_data
Definition: xfile.c:72
int ret
#define S_OK
Definition: intsafe.h:51
static HRESULT error_dxfile_to_d3dxfile(HRESULT error)
Definition: xfile.c:32
#define E_POINTER
Definition: winerror.h:2365
#define IDirectXFileData_GetId(p, a)
Definition: dxfile.h:188

◆ d3dx9_file_data_GetName()

static HRESULT WINAPI d3dx9_file_data_GetName ( ID3DXFileData *  iface,
char name,
SIZE_T size 
)
static

Definition at line 151 of file xfile.c.

152 {
153  struct d3dx9_file_data *file_data = impl_from_ID3DXFileData(iface);
154  DWORD dxfile_size;
155  HRESULT ret;
156 
157  TRACE("iface %p, name %p, size %p.\n", iface, name, size);
158 
159  if (!size)
160  return D3DXFERR_BADVALUE;
161 
162  dxfile_size = *size;
163 
164  ret = IDirectXFileData_GetName(file_data->dxfile_data, name, &dxfile_size);
165  if (ret != DXFILE_OK)
167 
168  if (!dxfile_size)
169  {
170  /* Contrary to d3dxof, d3dx9_36 returns an empty string with a null byte when no name is available.
171  * If the input size is 0, it returns a length of 1 without touching the buffer */
172  dxfile_size = 1;
173  if (name && *size)
174  name[0] = 0;
175  }
176 
177  *size = dxfile_size;
178 
179  return S_OK;
180 }
static struct d3dx9_file_data * impl_from_ID3DXFileData(ID3DXFileData *iface)
Definition: xfile.c:87
#define IDirectXFileData_GetName(p, a, b)
Definition: dxfile.h:187
#define DXFILE_OK
Definition: dxfile.h:268
#define TRACE(s)
Definition: solgame.cpp:4
GLsizeiptr size
Definition: glext.h:5919
LONG HRESULT
Definition: typedefs.h:79
#define D3DXFERR_BADVALUE
Definition: d3dx9xof.h:164
unsigned long DWORD
Definition: ntddk_ex.h:95
IDirectXFileData * dxfile_data
Definition: xfile.c:72
int ret
#define S_OK
Definition: intsafe.h:51
Definition: name.c:38
static HRESULT error_dxfile_to_d3dxfile(HRESULT error)
Definition: xfile.c:32

◆ d3dx9_file_data_GetType()

static HRESULT WINAPI d3dx9_file_data_GetType ( ID3DXFileData *  iface,
GUID guid 
)
static

Definition at line 228 of file xfile.c.

229 {
230  struct d3dx9_file_data *file_data = impl_from_ID3DXFileData(iface);
231  const GUID *dxfile_guid;
232  HRESULT ret;
233 
234  TRACE("iface %p, guid %p.\n", iface, guid);
235 
236  ret = IDirectXFileData_GetType(file_data->dxfile_data, &dxfile_guid);
237  if (ret != DXFILE_OK)
239 
240  *guid = *dxfile_guid;
241 
242  return S_OK;
243 }
static struct d3dx9_file_data * impl_from_ID3DXFileData(ID3DXFileData *iface)
Definition: xfile.c:87
#define DXFILE_OK
Definition: dxfile.h:268
const GUID * guid
#define TRACE(s)
Definition: solgame.cpp:4
LONG HRESULT
Definition: typedefs.h:79
IDirectXFileData * dxfile_data
Definition: xfile.c:72
int ret
#define IDirectXFileData_GetType(p, a)
Definition: dxfile.h:191
#define S_OK
Definition: intsafe.h:51
static HRESULT error_dxfile_to_d3dxfile(HRESULT error)
Definition: xfile.c:32

◆ d3dx9_file_data_IsReference()

static BOOL WINAPI d3dx9_file_data_IsReference ( ID3DXFileData *  iface)
static

Definition at line 245 of file xfile.c.

246 {
247  struct d3dx9_file_data *file_data = impl_from_ID3DXFileData(iface);
248 
249  TRACE("iface %p.\n", iface);
250 
251  return file_data->reference;
252 }
static struct d3dx9_file_data * impl_from_ID3DXFileData(ID3DXFileData *iface)
Definition: xfile.c:87
#define TRACE(s)
Definition: solgame.cpp:4
BOOL reference
Definition: xfile.c:71

◆ d3dx9_file_data_Lock()

static HRESULT WINAPI d3dx9_file_data_Lock ( ID3DXFileData *  iface,
SIZE_T size,
const void **  data 
)
static

Definition at line 199 of file xfile.c.

200 {
201  struct d3dx9_file_data *file_data = impl_from_ID3DXFileData(iface);
202  DWORD dxfile_size;
203  HRESULT ret;
204 
205  TRACE("iface %p, size %p, data %p.\n", iface, size, data);
206 
207  if (!size || !data)
208  return E_POINTER;
209 
210  ret = IDirectXFileData_GetData(file_data->dxfile_data, NULL, &dxfile_size, (void **)data);
211  if (ret != DXFILE_OK)
213 
214  *size = dxfile_size;
215 
216  return S_OK;
217 }
static struct d3dx9_file_data * impl_from_ID3DXFileData(ID3DXFileData *iface)
Definition: xfile.c:87
#define DXFILE_OK
Definition: dxfile.h:268
#define TRACE(s)
Definition: solgame.cpp:4
GLsizeiptr size
Definition: glext.h:5919
LONG HRESULT
Definition: typedefs.h:79
unsigned long DWORD
Definition: ntddk_ex.h:95
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
Definition: gl.h:1950
IDirectXFileData * dxfile_data
Definition: xfile.c:72
int ret
#define IDirectXFileData_GetData(p, a, b, c)
Definition: dxfile.h:190
#define S_OK
Definition: intsafe.h:51
#define NULL
Definition: types.h:112
static HRESULT error_dxfile_to_d3dxfile(HRESULT error)
Definition: xfile.c:32
#define E_POINTER
Definition: winerror.h:2365

◆ d3dx9_file_data_QueryInterface()

static HRESULT WINAPI d3dx9_file_data_QueryInterface ( ID3DXFileData *  iface,
REFIID  riid,
void **  out 
)
static

Definition at line 92 of file xfile.c.

93 {
94  TRACE("iface %p, riid %s, out %p.\n", iface, debugstr_guid(riid), out);
95 
96  if (IsEqualGUID(riid, &IID_ID3DXFileData)
98  {
99  iface->lpVtbl->AddRef(iface);
100  *out = iface;
101  return S_OK;
102  }
103 
104  WARN("Interface %s not found.\n", debugstr_guid(riid));
105 
106  *out = NULL;
107  return E_NOINTERFACE;
108 }
#define E_NOINTERFACE
Definition: winerror.h:2364
REFIID riid
Definition: precomp.h:44
#define WARN(fmt,...)
Definition: debug.h:112
#define debugstr_guid
Definition: kernel32.h:35
#define TRACE(s)
Definition: solgame.cpp:4
const GUID IID_IUnknown
static FILE * out
Definition: regtests2xml.c:44
#define S_OK
Definition: intsafe.h:51
#define NULL
Definition: types.h:112
BOOL WINAPI IsEqualGUID(REFGUID rguid1, REFGUID rguid2)
Definition: compobj.c:4112

◆ d3dx9_file_data_Release()

static ULONG WINAPI d3dx9_file_data_Release ( ID3DXFileData *  iface)
static

Definition at line 120 of file xfile.c.

121 {
122  struct d3dx9_file_data *file_data = impl_from_ID3DXFileData(iface);
123  ULONG refcount = InterlockedDecrement(&file_data->ref);
124 
125  TRACE("%p decreasing refcount to %u.\n", file_data, refcount);
126 
127  if (!refcount)
128  {
129  ULONG i;
130 
131  for (i = 0; i < file_data->nb_children; ++i)
132  {
133  ID3DXFileData *child = file_data->children[i];
134  child->lpVtbl->Release(child);
135  }
136  HeapFree(GetProcessHeap(), 0, file_data->children);
138  HeapFree(GetProcessHeap(), 0, file_data);
139  }
140 
141  return refcount;
142 }
ULONG nb_children
Definition: xfile.c:73
#define IDirectXFileData_Release(p)
Definition: dxfile.h:185
static struct d3dx9_file_data * impl_from_ID3DXFileData(ID3DXFileData *iface)
Definition: xfile.c:87
static HWND child
Definition: cursoricon.c:298
ID3DXFileData ** children
Definition: xfile.c:74
#define TRACE(s)
Definition: solgame.cpp:4
#define GetProcessHeap()
Definition: compat.h:595
nsrefcnt Release()
IDirectXFileData * dxfile_data
Definition: xfile.c:72
#define InterlockedDecrement
Definition: armddk.h:52
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
unsigned int ULONG
Definition: retypes.h:1
#define HeapFree(x, y, z)
Definition: compat.h:594
LONG ref
Definition: xfile.c:70

◆ d3dx9_file_data_Unlock()

static HRESULT WINAPI d3dx9_file_data_Unlock ( ID3DXFileData *  iface)
static

Definition at line 219 of file xfile.c.

220 {
221  TRACE("iface %p.\n", iface);
222 
223  /* Nothing to do */
224 
225  return S_OK;
226 }
#define TRACE(s)
Definition: solgame.cpp:4
#define S_OK
Definition: intsafe.h:51

◆ d3dx9_file_enum_object_AddRef()

static ULONG WINAPI d3dx9_file_enum_object_AddRef ( ID3DXFileEnumObject *  iface)
static

Definition at line 412 of file xfile.c.

413 {
414  struct d3dx9_file_enum_object *file_enum = impl_from_ID3DXFileEnumObject(iface);
415  ULONG refcount = InterlockedIncrement(&file_enum->ref);
416 
417  TRACE("%p increasing refcount to %u.\n", file_enum, refcount);
418 
419  return refcount;
420 }
#define TRACE(s)
Definition: solgame.cpp:4
static struct d3dx9_file_enum_object * impl_from_ID3DXFileEnumObject(ID3DXFileEnumObject *iface)
Definition: xfile.c:82
#define InterlockedIncrement
Definition: armddk.h:53
unsigned int ULONG
Definition: retypes.h:1

◆ d3dx9_file_enum_object_GetChild()

static HRESULT WINAPI d3dx9_file_enum_object_GetChild ( ID3DXFileEnumObject *  iface,
SIZE_T  id,
ID3DXFileData **  object 
)
static

Definition at line 466 of file xfile.c.

467 {
468  struct d3dx9_file_enum_object *file_enum = impl_from_ID3DXFileEnumObject(iface);
469 
470  TRACE("iface %p, id %#lx, object %p.\n", iface, id, object);
471 
472  if (!object)
473  return E_POINTER;
474 
475  *object = file_enum->children[id];
476  (*object)->lpVtbl->AddRef(*object);
477 
478  return S_OK;
479 }
#define TRACE(s)
Definition: solgame.cpp:4
static struct d3dx9_file_enum_object * impl_from_ID3DXFileEnumObject(ID3DXFileEnumObject *iface)
Definition: xfile.c:82
#define S_OK
Definition: intsafe.h:51
ID3DXFileData ** children
Definition: xfile.c:64
GLenum GLuint id
Definition: glext.h:5579
#define E_POINTER
Definition: winerror.h:2365

◆ d3dx9_file_enum_object_GetChildren()

static HRESULT WINAPI d3dx9_file_enum_object_GetChildren ( ID3DXFileEnumObject *  iface,
SIZE_T children 
)
static

Definition at line 452 of file xfile.c.

453 {
454  struct d3dx9_file_enum_object *file_enum = impl_from_ID3DXFileEnumObject(iface);
455 
456  TRACE("iface %p, children %p.\n", iface, children);
457 
458  if (!children)
459  return E_POINTER;
460 
461  *children = file_enum->nb_children;
462 
463  return S_OK;
464 }
#define TRACE(s)
Definition: solgame.cpp:4
static struct d3dx9_file_enum_object * impl_from_ID3DXFileEnumObject(ID3DXFileEnumObject *iface)
Definition: xfile.c:82
#define S_OK
Definition: intsafe.h:51
ID3DXFileData ** children
Definition: xfile.c:64
#define E_POINTER
Definition: winerror.h:2365

◆ d3dx9_file_enum_object_GetDataObjectById()

static HRESULT WINAPI d3dx9_file_enum_object_GetDataObjectById ( ID3DXFileEnumObject *  iface,
REFGUID  guid,
ID3DXFileData **  object 
)
static

Definition at line 481 of file xfile.c.

483 {
484  FIXME("iface %p, guid %s, object %p stub!\n", iface, debugstr_guid(guid), object);
485 
486  return E_NOTIMPL;
487 }
const GUID * guid
#define FIXME(fmt,...)
Definition: debug.h:111
#define debugstr_guid
Definition: kernel32.h:35
#define E_NOTIMPL
Definition: ddrawi.h:99

◆ d3dx9_file_enum_object_GetDataObjectByName()

static HRESULT WINAPI d3dx9_file_enum_object_GetDataObjectByName ( ID3DXFileEnumObject *  iface,
const char name,
ID3DXFileData **  object 
)
static

Definition at line 489 of file xfile.c.

491 {
492  FIXME("iface %p, name %s, object %p stub!\n", iface, debugstr_a(name), object);
493 
494  return E_NOTIMPL;
495 }
#define FIXME(fmt,...)
Definition: debug.h:111
#define debugstr_a
Definition: kernel32.h:31
#define E_NOTIMPL
Definition: ddrawi.h:99
Definition: name.c:38

◆ d3dx9_file_enum_object_GetFile()

static HRESULT WINAPI d3dx9_file_enum_object_GetFile ( ID3DXFileEnumObject *  iface,
ID3DXFile **  file 
)
static

Definition at line 445 of file xfile.c.

446 {
447  FIXME("iface %p, file %p stub!\n", iface, file);
448 
449  return E_NOTIMPL;
450 }
#define FIXME(fmt,...)
Definition: debug.h:111
#define E_NOTIMPL
Definition: ddrawi.h:99
Definition: fci.c:126

◆ d3dx9_file_enum_object_QueryInterface()

static HRESULT WINAPI d3dx9_file_enum_object_QueryInterface ( ID3DXFileEnumObject *  iface,
REFIID  riid,
void **  out 
)
static

Definition at line 394 of file xfile.c.

395 {
396  TRACE("iface %p, riid %s, out %p.\n", iface, debugstr_guid(riid), out);
397 
398  if (IsEqualGUID(riid, &IID_ID3DXFileEnumObject)
400  {
401  iface->lpVtbl->AddRef(iface);
402  *out = iface;
403  return S_OK;
404  }
405 
406  WARN("%s not implemented, returning E_NOINTERFACE.\n", debugstr_guid(riid));
407 
408  *out = NULL;
409  return E_NOINTERFACE;
410 }
#define E_NOINTERFACE
Definition: winerror.h:2364
REFIID riid
Definition: precomp.h:44
#define WARN(fmt,...)
Definition: debug.h:112
#define debugstr_guid
Definition: kernel32.h:35
#define TRACE(s)
Definition: solgame.cpp:4
const GUID IID_IUnknown
static FILE * out
Definition: regtests2xml.c:44
#define S_OK
Definition: intsafe.h:51
#define NULL
Definition: types.h:112
BOOL WINAPI IsEqualGUID(REFGUID rguid1, REFGUID rguid2)
Definition: compobj.c:4112

◆ d3dx9_file_enum_object_Release()

static ULONG WINAPI d3dx9_file_enum_object_Release ( ID3DXFileEnumObject *  iface)
static

Definition at line 422 of file xfile.c.

423 {
424  struct d3dx9_file_enum_object *file_enum = impl_from_ID3DXFileEnumObject(iface);
425  ULONG refcount = InterlockedDecrement(&file_enum->ref);
426 
427  TRACE("%p decreasing refcount to %u.\n", file_enum, refcount);
428 
429  if (!refcount)
430  {
431  ULONG i;
432 
433  for (i = 0; i < file_enum->nb_children; ++i)
434  {
435  ID3DXFileData *child = file_enum->children[i];
436  child->lpVtbl->Release(child);
437  }
438  HeapFree(GetProcessHeap(), 0, file_enum->children);
439  HeapFree(GetProcessHeap(), 0, file_enum);
440  }
441 
442  return refcount;
443 }
static HWND child
Definition: cursoricon.c:298
#define TRACE(s)
Definition: solgame.cpp:4
#define GetProcessHeap()
Definition: compat.h:595
nsrefcnt Release()
#define InterlockedDecrement
Definition: armddk.h:52
static struct d3dx9_file_enum_object * impl_from_ID3DXFileEnumObject(ID3DXFileEnumObject *iface)
Definition: xfile.c:82
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
ID3DXFileData ** children
Definition: xfile.c:64
unsigned int ULONG
Definition: retypes.h:1
#define HeapFree(x, y, z)
Definition: compat.h:594

◆ d3dx9_file_QueryInterface()

static HRESULT WINAPI d3dx9_file_QueryInterface ( ID3DXFile *  iface,
REFIID  riid,
void **  out 
)
static

Definition at line 509 of file xfile.c.

510 {
511  TRACE("iface %p, riid %s, out %p.\n", iface, debugstr_guid(riid), out);
512 
513  if (IsEqualGUID(riid, &IID_ID3DXFile)
515  {
516  iface->lpVtbl->AddRef(iface);
517  *out = iface;
518  return S_OK;
519  }
520 
521  WARN("%s not implemented, returning E_NOINTERFACE.\n", debugstr_guid(riid));
522 
523  *out = NULL;
524  return E_NOINTERFACE;
525 }
#define E_NOINTERFACE
Definition: winerror.h:2364
REFIID riid
Definition: precomp.h:44
#define WARN(fmt,...)
Definition: debug.h:112
#define debugstr_guid
Definition: kernel32.h:35
#define TRACE(s)
Definition: solgame.cpp:4
const GUID IID_IUnknown
static FILE * out
Definition: regtests2xml.c:44
#define S_OK
Definition: intsafe.h:51
#define NULL
Definition: types.h:112
BOOL WINAPI IsEqualGUID(REFGUID rguid1, REFGUID rguid2)
Definition: compobj.c:4112

◆ d3dx9_file_RegisterEnumTemplates()

static HRESULT WINAPI d3dx9_file_RegisterEnumTemplates ( ID3DXFile *  iface,
ID3DXFileEnumObject *  enum_object 
)
static

Definition at line 699 of file xfile.c.

700 {
701  FIXME("iface %p, enum_object %p stub!\n", iface, enum_object);
702 
703  return E_NOTIMPL;
704 }
#define FIXME(fmt,...)
Definition: debug.h:111
#define E_NOTIMPL
Definition: ddrawi.h:99

◆ d3dx9_file_RegisterTemplates()

static HRESULT WINAPI d3dx9_file_RegisterTemplates ( ID3DXFile *  iface,
const void data,
SIZE_T  size 
)
static

Definition at line 682 of file xfile.c.

683 {
684  struct d3dx9_file *file = impl_from_ID3DXFile(iface);
685  HRESULT ret;
686 
687  TRACE("iface %p, data %p, size %lu.\n", iface, data, size);
688 
689  ret = IDirectXFile_RegisterTemplates(file->dxfile, (void *)data, size);
690  if (ret != DXFILE_OK)
691  {
692  WARN("Error %#x\n", ret);
694  }
695 
696  return S_OK;
697 }
#define WARN(fmt,...)
Definition: debug.h:112
static struct d3dx9_file * impl_from_ID3DXFile(ID3DXFile *iface)
Definition: xfile.c:77
#define DXFILE_OK
Definition: dxfile.h:268
#define IDirectXFile_RegisterTemplates(p, a, b)
Definition: dxfile.h:86
#define TRACE(s)
Definition: solgame.cpp:4
GLsizeiptr size
Definition: glext.h:5919
LONG HRESULT
Definition: typedefs.h:79
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
Definition: gl.h:1950
int ret
#define S_OK
Definition: intsafe.h:51
static HRESULT error_dxfile_to_d3dxfile(HRESULT error)
Definition: xfile.c:32
Definition: fci.c:126

◆ d3dx9_file_Release()

static ULONG WINAPI d3dx9_file_Release ( ID3DXFile *  iface)
static

Definition at line 537 of file xfile.c.

538 {
539  struct d3dx9_file *file = impl_from_ID3DXFile(iface);
540  ULONG refcount = InterlockedDecrement(&file->ref);
541 
542  TRACE("%p decreasing refcount to %u.\n", file, refcount);
543 
544  if (!refcount)
545  {
546  IDirectXFile_Release(file->dxfile);
548  }
549 
550  return refcount;
551 }
#define IDirectXFile_Release(p)
Definition: dxfile.h:82
static struct d3dx9_file * impl_from_ID3DXFile(ID3DXFile *iface)
Definition: xfile.c:77
#define TRACE(s)
Definition: solgame.cpp:4
#define GetProcessHeap()
Definition: compat.h:595
#define InterlockedDecrement
Definition: armddk.h:52
LONG ref
Definition: filesystem.c:120
unsigned int ULONG
Definition: retypes.h:1
#define HeapFree(x, y, z)
Definition: compat.h:594
Definition: fci.c:126

◆ D3DXFileCreate()

HRESULT WINAPI D3DXFileCreate ( ID3DXFile **  d3dxfile)

Definition at line 717 of file xfile.c.

718 {
719  struct d3dx9_file *object;
720  HRESULT ret;
721 
722  TRACE("d3dxfile %p.\n", d3dxfile);
723 
724  if (!d3dxfile)
725  return E_POINTER;
726 
727  *d3dxfile = NULL;
728 
729  object = HeapAlloc(GetProcessHeap(), 0, sizeof(*object));
730  if (!object)
731  return E_OUTOFMEMORY;
732 
733  ret = DirectXFileCreate(&object->dxfile);
734  if (ret != S_OK)
735  {
736  HeapFree(GetProcessHeap(), 0, object);
737  if (ret == E_OUTOFMEMORY)
738  return ret;
739  return E_FAIL;
740  }
741 
742  object->ID3DXFile_iface.lpVtbl = &d3dx9_file_vtbl;
743  object->ref = 1;
744 
745  *d3dxfile = &object->ID3DXFile_iface;
746 
747  return S_OK;
748 }
coclass MSXML2::XSLTemplate40 object
static const ID3DXFileVtbl d3dx9_file_vtbl
Definition: xfile.c:706
#define E_FAIL
Definition: ddrawi.h:102
#define E_OUTOFMEMORY
Definition: ddrawi.h:100
#define TRACE(s)
Definition: solgame.cpp:4
#define GetProcessHeap()
Definition: compat.h:595
PVOID WINAPI HeapAlloc(HANDLE, DWORD, SIZE_T)
LONG HRESULT
Definition: typedefs.h:79
int ret
#define S_OK
Definition: intsafe.h:51
#define NULL
Definition: types.h:112
HRESULT WINAPI DirectXFileCreate(LPDIRECTXFILE *lplpDirectXFile)
Definition: main.c:153
#define E_POINTER
Definition: winerror.h:2365
#define HeapFree(x, y, z)
Definition: compat.h:594

Referenced by D3DXLoadMeshFromXInMemory(), D3DXLoadMeshHierarchyFromXInMemory(), get_mesh_data(), test_dump(), test_getname(), test_lock_unlock(), test_templates(), and test_type_index_color().

◆ error_dxfile_to_d3dxfile()

static HRESULT error_dxfile_to_d3dxfile ( HRESULT  error)
static

Definition at line 32 of file xfile.c.

33 {
34  switch (error)
35  {
37  return D3DXFERR_BADFILETYPE;
43  return D3DXFERR_PARSEERROR;
44  case DXFILEERR_BADVALUE:
45  return D3DXFERR_BADVALUE;
46  default:
47  FIXME("Cannot map error %#x\n", error);
48  return E_FAIL;
49  }
50 }
#define error(str)
Definition: mkdosfs.c:1605
#define DXFILEERR_BADVALUE
Definition: dxfile.h:271
#define DXFILEERR_BADFILETYPE
Definition: dxfile.h:281
#define E_FAIL
Definition: ddrawi.h:102
#define FIXME(fmt,...)
Definition: debug.h:111
#define DXFILEERR_PARSEERROR
Definition: dxfile.h:286
#define D3DXFERR_BADFILETYPE
Definition: d3dx9xof.h:171
#define D3DXFERR_BADVALUE
Definition: d3dx9xof.h:164
#define D3DXFERR_BADFILEFLOATSIZE
Definition: d3dx9xof.h:173
#define D3DXFERR_PARSEERROR
Definition: d3dx9xof.h:175
#define DXFILEERR_BADFILEFLOATSIZE
Definition: dxfile.h:283
#define DXFILEERR_BADFILEVERSION
Definition: dxfile.h:282
#define D3DXFERR_BADFILEVERSION
Definition: d3dx9xof.h:172

Referenced by d3dx9_file_data_GetId(), d3dx9_file_data_GetName(), d3dx9_file_data_GetType(), d3dx9_file_data_Lock(), and d3dx9_file_RegisterTemplates().

◆ impl_from_ID3DXFile()

static struct d3dx9_file* impl_from_ID3DXFile ( ID3DXFile *  iface)
inlinestatic

Definition at line 77 of file xfile.c.

78 {
79  return CONTAINING_RECORD(iface, struct d3dx9_file, ID3DXFile_iface);
80 }
ID3DXFile ID3DXFile_iface
Definition: xfile.c:54
PFLT_MESSAGE_WAITER_QUEUE CONTAINING_RECORD(Csq, DEVICE_EXTENSION, IrpQueue)) -> WaiterQ.mLock) _IRQL_raises_(DISPATCH_LEVEL) VOID NTAPI FltpAcquireMessageWaiterLock(_In_ PIO_CSQ Csq, _Out_ PKIRQL Irql)
Definition: Messaging.c:560

Referenced by d3dx9_file_AddRef(), d3dx9_file_CreateEnumObject(), d3dx9_file_RegisterTemplates(), and d3dx9_file_Release().

◆ impl_from_ID3DXFileData()

static struct d3dx9_file_data* impl_from_ID3DXFileData ( ID3DXFileData *  iface)
inlinestatic

Definition at line 87 of file xfile.c.

88 {
89  return CONTAINING_RECORD(iface, struct d3dx9_file_data, ID3DXFileData_iface);
90 }
PFLT_MESSAGE_WAITER_QUEUE CONTAINING_RECORD(Csq, DEVICE_EXTENSION, IrpQueue)) -> WaiterQ.mLock) _IRQL_raises_(DISPATCH_LEVEL) VOID NTAPI FltpAcquireMessageWaiterLock(_In_ PIO_CSQ Csq, _Out_ PKIRQL Irql)
Definition: Messaging.c:560

Referenced by d3dx9_file_data_AddRef(), d3dx9_file_data_GetChild(), d3dx9_file_data_GetChildren(), d3dx9_file_data_GetId(), d3dx9_file_data_GetName(), d3dx9_file_data_GetType(), d3dx9_file_data_IsReference(), d3dx9_file_data_Lock(), and d3dx9_file_data_Release().

◆ impl_from_ID3DXFileEnumObject()

static struct d3dx9_file_enum_object* impl_from_ID3DXFileEnumObject ( ID3DXFileEnumObject *  iface)
inlinestatic

Definition at line 82 of file xfile.c.

83 {
84  return CONTAINING_RECORD(iface, struct d3dx9_file_enum_object, ID3DXFileEnumObject_iface);
85 }
PFLT_MESSAGE_WAITER_QUEUE CONTAINING_RECORD(Csq, DEVICE_EXTENSION, IrpQueue)) -> WaiterQ.mLock) _IRQL_raises_(DISPATCH_LEVEL) VOID NTAPI FltpAcquireMessageWaiterLock(_In_ PIO_CSQ Csq, _Out_ PKIRQL Irql)
Definition: Messaging.c:560

Referenced by d3dx9_file_enum_object_AddRef(), d3dx9_file_enum_object_GetChild(), d3dx9_file_enum_object_GetChildren(), and d3dx9_file_enum_object_Release().

◆ WINE_DEFAULT_DEBUG_CHANNEL()

WINE_DEFAULT_DEBUG_CHANNEL ( d3dx  )

Variable Documentation

◆ d3dx9_file_data_vtbl

const ID3DXFileDataVtbl d3dx9_file_data_vtbl
static
Initial value:
=
{
}
static HRESULT WINAPI d3dx9_file_data_GetName(ID3DXFileData *iface, char *name, SIZE_T *size)
Definition: xfile.c:151
static HRESULT WINAPI d3dx9_file_data_Unlock(ID3DXFileData *iface)
Definition: xfile.c:219
static HRESULT WINAPI d3dx9_file_data_QueryInterface(ID3DXFileData *iface, REFIID riid, void **out)
Definition: xfile.c:92
static HRESULT WINAPI d3dx9_file_data_Lock(ID3DXFileData *iface, SIZE_T *size, const void **data)
Definition: xfile.c:199
static HRESULT WINAPI d3dx9_file_data_GetChildren(ID3DXFileData *iface, SIZE_T *children)
Definition: xfile.c:254
static HRESULT WINAPI d3dx9_file_data_GetEnum(ID3DXFileData *iface, ID3DXFileEnumObject **enum_object)
Definition: xfile.c:144
static ULONG WINAPI d3dx9_file_data_Release(ID3DXFileData *iface)
Definition: xfile.c:120
static BOOL WINAPI d3dx9_file_data_IsReference(ID3DXFileData *iface)
Definition: xfile.c:245
static HRESULT WINAPI d3dx9_file_data_GetChild(ID3DXFileData *iface, SIZE_T id, ID3DXFileData **object)
Definition: xfile.c:268
static HRESULT WINAPI d3dx9_file_data_GetId(ID3DXFileData *iface, GUID *guid)
Definition: xfile.c:182
static HRESULT WINAPI d3dx9_file_data_GetType(ID3DXFileData *iface, GUID *guid)
Definition: xfile.c:228
static ULONG WINAPI d3dx9_file_data_AddRef(ID3DXFileData *iface)
Definition: xfile.c:110

Definition at line 283 of file xfile.c.

Referenced by d3dx9_file_data_create().

◆ d3dx9_file_enum_object_vtbl

const ID3DXFileEnumObjectVtbl d3dx9_file_enum_object_vtbl
static
Initial value:
=
{
}
static HRESULT WINAPI d3dx9_file_enum_object_GetDataObjectByName(ID3DXFileEnumObject *iface, const char *name, ID3DXFileData **object)
Definition: xfile.c:489
static HRESULT WINAPI d3dx9_file_enum_object_QueryInterface(ID3DXFileEnumObject *iface, REFIID riid, void **out)
Definition: xfile.c:394
static HRESULT WINAPI d3dx9_file_enum_object_GetDataObjectById(ID3DXFileEnumObject *iface, REFGUID guid, ID3DXFileData **object)
Definition: xfile.c:481
static HRESULT WINAPI d3dx9_file_enum_object_GetChildren(ID3DXFileEnumObject *iface, SIZE_T *children)
Definition: xfile.c:452
static HRESULT WINAPI d3dx9_file_enum_object_GetChild(ID3DXFileEnumObject *iface, SIZE_T id, ID3DXFileData **object)
Definition: xfile.c:466
static ULONG WINAPI d3dx9_file_enum_object_Release(ID3DXFileEnumObject *iface)
Definition: xfile.c:422
static HRESULT WINAPI d3dx9_file_enum_object_GetFile(ID3DXFileEnumObject *iface, ID3DXFile **file)
Definition: xfile.c:445
static ULONG WINAPI d3dx9_file_enum_object_AddRef(ID3DXFileEnumObject *iface)
Definition: xfile.c:412

Definition at line 497 of file xfile.c.

Referenced by d3dx9_file_CreateEnumObject().

◆ d3dx9_file_vtbl

const ID3DXFileVtbl d3dx9_file_vtbl
static
Initial value:
=
{
}
static HRESULT WINAPI d3dx9_file_CreateEnumObject(ID3DXFile *iface, const void *source, D3DXF_FILELOADOPTIONS options, ID3DXFileEnumObject **enum_object)
Definition: xfile.c:553
static HRESULT WINAPI d3dx9_file_QueryInterface(ID3DXFile *iface, REFIID riid, void **out)
Definition: xfile.c:509
static HRESULT WINAPI d3dx9_file_RegisterTemplates(ID3DXFile *iface, const void *data, SIZE_T size)
Definition: xfile.c:682
static HRESULT WINAPI d3dx9_file_CreateSaveObject(ID3DXFile *iface, const void *data, D3DXF_FILESAVEOPTIONS options, D3DXF_FILEFORMAT format, ID3DXFileSaveObject **save_object)
Definition: xfile.c:673
static ULONG WINAPI d3dx9_file_AddRef(ID3DXFile *iface)
Definition: xfile.c:527
static HRESULT WINAPI d3dx9_file_RegisterEnumTemplates(ID3DXFile *iface, ID3DXFileEnumObject *enum_object)
Definition: xfile.c:699
static ULONG WINAPI d3dx9_file_Release(ID3DXFile *iface)
Definition: xfile.c:537

Definition at line 706 of file xfile.c.

Referenced by D3DXFileCreate().