|
|
|
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