Christian Costa : d3dxof: Add some preliminary support for binary objects.
Alexandre Julliard
julliard at winehq.org
Wed Dec 17 09:39:27 CST 2008
Module: wine
Branch: master
Commit: 76d52393e87002e419bdf1f7426c4cb6c1b92dc6
URL: http://source.winehq.org/git/wine.git/?a=commit;h=76d52393e87002e419bdf1f7426c4cb6c1b92dc6
Author: Christian Costa <titan.costa at wanadoo.fr>
Date: Tue Dec 16 20:57:45 2008 +0100
d3dxof: Add some preliminary support for binary objects.
---
dlls/d3dxof/d3dxof.c | 33 ++++++++++++++++++++++++++++++++-
dlls/d3dxof/d3dxof_private.h | 2 ++
2 files changed, 34 insertions(+), 1 deletions(-)
diff --git a/dlls/d3dxof/d3dxof.c b/dlls/d3dxof/d3dxof.c
index 61017d5..d61d081 100644
--- a/dlls/d3dxof/d3dxof.c
+++ b/dlls/d3dxof/d3dxof.c
@@ -1347,6 +1347,27 @@ static const IDirectXFileVtbl IDirectXFile_Vtbl =
IDirectXFileImpl_RegisterTemplates
};
+static HRESULT IDirectXFileBinaryImpl_Create(IDirectXFileBinaryImpl** ppObj)
+{
+ IDirectXFileBinaryImpl* object;
+
+ TRACE("(%p)\n", ppObj);
+
+ object = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(IDirectXFileBinaryImpl));
+ if (!object)
+ {
+ ERR("Out of memory\n");
+ return DXFILEERR_BADALLOC;
+ }
+
+ object->lpVtbl.lpVtbl = &IDirectXFileBinary_Vtbl;
+ object->ref = 1;
+
+ *ppObj = object;
+
+ return DXFILE_OK;
+}
+
/*** IUnknown methods ***/
static HRESULT WINAPI IDirectXFileBinaryImpl_QueryInterface(IDirectXFileBinary* iface, REFIID riid, void** ppvObject)
{
@@ -1606,7 +1627,17 @@ static HRESULT WINAPI IDirectXFileDataImpl_GetNextObject(IDirectXFileData* iface
return DXFILEERR_NOMOREOBJECTS;
}
- if (This->pobj->childs[This->cur_enum_object]->ptarget)
+ if (This->pobj->childs[This->cur_enum_object]->binary)
+ {
+ IDirectXFileBinaryImpl *object;
+
+ hr = IDirectXFileBinaryImpl_Create(&object);
+ if (FAILED(hr))
+ return hr;
+
+ *ppChildObj = (LPDIRECTXFILEOBJECT)object;
+ }
+ else if (This->pobj->childs[This->cur_enum_object]->ptarget)
{
IDirectXFileDataReferenceImpl *object;
diff --git a/dlls/d3dxof/d3dxof_private.h b/dlls/d3dxof/d3dxof_private.h
index 55acce1..7cb82cd 100644
--- a/dlls/d3dxof/d3dxof_private.h
+++ b/dlls/d3dxof/d3dxof_private.h
@@ -55,6 +55,7 @@ typedef struct {
char name[MAX_NAME_LEN];
GUID class_id;
BOOL open;
+ BOOL binary;
ULONG nb_childs;
char childs[MAX_CHILDS][MAX_NAME_LEN];
ULONG nb_members;
@@ -68,6 +69,7 @@ typedef struct {
} xobject_member;
struct _xobject {
+ BOOL binary;
struct _xobject* ptarget;
char name[MAX_NAME_LEN];
GUID class_id;
More information about the wine-cvs
mailing list