ID3DXFile Interface

 

 

' ****************************************************************************************
' ID3DXFile interface
' $IID_ID3DXFile = GUID$("{cef08cf9-7b4f-4429-9624-2a690a933201}")
' ****************************************************************************************

' ****************************************************************************************
' Applications use the methods of the ID3DXFile interface to create instances of the
' ID3DXFileEnumObject and ID3DXFileSaveObject interfaces, and to register templates.
' Remarks
'    An ID3DXFile object also contains a local template store. This local storage may be added
'    to only with the ID3DXFile::RegisterEnumTemplates and ID3DXFile::RegisterTemplates methods.
'    ID3DXFileEnumObject and ID3DXFileSaveObject objects created with ID3DXFile::CreateEnumObject
'    and ID3DXFile::CreateSaveObject also utilize the template store of the parent ID3DXFile object.
'    The ID3DXFile interface is obtained by calling the D3DXFileCreate function.
'    The globally unique identifier (GUID) for the ID3DXFile interface is IID_ID3DXFile.
'    The LPD3DXFILE type is defined as a pointer to the ID3DXFile interface.

'Interface Information
'    Stock Implementation   d3d9.dll
'    Custom Implementation  No
'    Inherits from  IUnknown
'    Header     d3dx9xof.h
'    Import library     d3dx9.lib
'    Minimum operating systems  Windows 98
' ****************************************************************************************

' ****************************************************************************************
'DECLARE_INTERFACE_( ID3DXFile, IUnknown )
'{
'  0.  STDMETHOD( QueryInterface )( THIS_ REFIID, LPVOID* ) PURE;
'  1.  STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
'  2.  STDMETHOD_( ULONG, Release )( THIS ) PURE;

'  3.  STDMETHOD( CreateEnumObject )( THIS_ LPCVOID, D3DXF_FILELOADOPTIONS,
'        ID3DXFileEnumObject** ) PURE;
'  4.  STDMETHOD( CreateSaveObject )( THIS_ LPCVOID, D3DXF_FILESAVEOPTIONS,
'        D3DXF_FILEFORMAT, ID3DXFileSaveObject** ) PURE;
'  5.  STDMETHOD( RegisterTemplates )( THIS_ LPCVOID, SIZE_T ) PURE;
'  6.  STDMETHOD( RegisterEnumTemplates )( THIS_ ID3DXFileEnumObject* ) PURE;
'};
' ****************************************************************************************

' ****************************************************************************************
' CreateEnumObject method
' Creates an enumerator object that will read a .x file.
' HRESULT CreateEnumObject(
'   LPCVOID pvSource,
'   D3DXF_FILELOADOPTIONS loadflags,
'   ID3DXFileEnumObject ** ppEnumObj
' );
' ****************************************************************************************
FUNCTION ID3DXFile_CreateEnumObject ALIAS "ID3DXFile_CreateEnumObject" ( _
    BYVAL pthis AS DWORD PTR, BYREF pvSource AS DWORD, BYVAL loadflags AS DWORD, _
    BYREF ppEnumObj AS DWORD) EXPORT AS LONG

    LOCAL HRESULT AS LONG
    IF pthis = %NULL THEN FUNCTION = %E_POINTER : EXIT FUNCTION
    CALL DWORD @@pthis[3] USING ID3DXFile_CreateEnumObject(pthis, pvSource, loadflags, ppEnumObj) TO HRESULT
    FUNCTION = HRESULT

END FUNCTION
' ****************************************************************************************

' ****************************************************************************************
' CreateSaveObject method
' Creates a save object that will be used to save data to a .x file.
' HRESULT CreateSaveObject(
'   LPCVOID pData,
'   D3DXF_FILESAVEOPTIONS flags,
'   D3DXF_FILEFORMAT dwFileFormat,
'   ID3DXFileSaveObject ** ppSaveObj
' );
' ****************************************************************************************
FUNCTION ID3DXFile_CreateSaveObject ALIAS "ID3DXFile_CreateSaveObject" ( _
    BYVAL pthis AS DWORD PTR, BYVAL pData AS DWORD, BYVAL flags AS DWORD, _
    BYVAL dwFileFormat AS DWORD, BYREF ppSaveObj AS DWORD) EXPORT AS LONG

    LOCAL HRESULT AS LONG
    IF pthis = %NULL THEN FUNCTION = %E_POINTER : EXIT FUNCTION
    CALL DWORD @@pthis[4] USING ID3DXFile_CreateSaveObject(pthis, pData, flags, dwFileFormat, ppSaveObj) TO HRESULT
    FUNCTION = HRESULT

END FUNCTION
' ****************************************************************************************

' ****************************************************************************************
' RegisterTemplates method
' Registers custom templates.
' HRESULT RegisterTemplates(
'   LPCVOID pvData,
'   SIZE_T cbSize
' );
' ****************************************************************************************
FUNCTION ID3DXFile_RegisterTemplates ALIAS "ID3DXFile_RegisterTemplates" ( _
    BYVAL pthis AS DWORD PTR, BYVAL pvData AS DWORD, BYVAL cbSize AS DWORD) EXPORT AS LONG

    LOCAL HRESULT AS LONG
    IF pthis = %NULL THEN FUNCTION = %E_POINTER : EXIT FUNCTION
    CALL DWORD @@pthis[5] USING ID3DXFile_RegisterTemplates(pthis, pvData, cbSize) TO HRESULT
    FUNCTION = HRESULT

END FUNCTION
' ****************************************************************************************

' ****************************************************************************************
' RegisterEnumTemplates method
' Registers custom templates, given an ID3DXFileEnumObject enumeration object.
' HRESULT RegisterEnumTemplates(
'   ID3DXFileEnumObject * pEnum
' );
' ****************************************************************************************
FUNCTION ID3DXFile_RegisterEnumTemplates ALIAS "ID3DXFile_RegisterEnumTemplates" ( _
    BYVAL pthis AS DWORD PTR, BYVAL pEnum AS DWORD) EXPORT AS LONG

    LOCAL HRESULT AS LONG
    IF pthis = %NULL THEN FUNCTION = %E_POINTER : EXIT FUNCTION
    CALL DWORD @@pthis[6] USING ID3DXFile_RegisterEnumTemplates(pthis, pEnum) TO HRESULT
    FUNCTION = HRESULT

END FUNCTION
' ****************************************************************************************
 

 

Page last updated on Wednesday, 15 March 2006 00:12:45 +0100