📄 dxfile9.pas
字号:
(*)
[------------------------------------------------------------------------------
[ DXFile Delphi Adaptation (c) by Tim Baumgarten
[------------------------------------------------------------------------------
[ Files : dxfile.h
[ Modified : 09-Jan-2003
[ E-Mail : Ampaze at gmx dot net
[ Download : http://www.crazyentertainment.net
[------------------------------------------------------------------------------
(*)
(*)
[------------------------------------------------------------------------------
[ History :
[----------
[ 09-Jan-2003 (Tim Baumgarten) : Redone.
[ 05-Nov-2001 (Tim Baumgarten) : Added DirectX File Template GUIDs
[ (TID_DXFILEXXX) and Descriptions
[ (DXFILE_XTEMPLATES).
[ 05-Nov-2001 (Tim Baumgarten) : Added DXFileErrorString.
[------------------------------------------------------------------------------
(*)
{$MINENUMSIZE 4}
{$ALIGN ON}
unit DXFile9;
{$IFDEF VER150}
{$WARN UNSAFE_CODE OFF}
{$WARN UNSAFE_TYPE OFF}
{$WARN UNSAFE_CAST OFF}
{$ENDIF}
interface
uses Windows;
(*)
*******************************************************************************
*
* Copyright (C) 1998-1999 Microsoft Corporation. All Rights Reserved.
*
* File: dxfile.h
*
* Content: DirectX File public header file
*
*******************************************************************************
(*)
const
DXFileDLL = 'D3DXOF.DLL';
function DXFileErrorString(DXErrorCode : HResult) : String;
type
TDXFileFormat = LongWord;
const
DXFILEFORMAT_BINARY = 0;
DXFILEFORMAT_TEXT = 1;
DXFILEFORMAT_COMPRESSED = 2;
type
TDXFileLoadOptions = LongWord;
const
DXFILELOAD_FROMFILE = $00;
DXFILELOAD_FROMRESOURCE = $01;
DXFILELOAD_FROMMEMORY = $02;
DXFILELOAD_FROMSTREAM = $04;
DXFILELOAD_FROMURL = $08;
type
PDXFileLoadResource = ^TDXFileLoadResource;
TDXFileLoadResource = packed record
Module : HModule;
Name : PChar;
_Type : PChar;
end;
PDXFileLoadMemory = ^TDXFileLoadMemory;
TDXFileLoadMemory = packed record
Memory : Pointer;
Size : LongWord;
end;
(*)
*******************************************************************************
* DirectX File object types.
*******************************************************************************
(*)
type
IDirectXFile = interface;
IDirectXFileEnumObject = interface;
IDirectXFileSaveObject = interface;
IDirectXFileObject = interface;
IDirectXFileData = interface;
IDirectXFileDataReference = interface;
IDirectXFileBinary = interface;
(*)
*******************************************************************************
* DirectX File interfaces.
*******************************************************************************
(*)
IDirectXFile = interface(IUnknown)
['{3D82AB40-62DA-11CF-AB39-0020AF71E433}']
function CreateEnumObject(const Source : Pointer; const LoadOptions : TDXFileLoadOptions; out EnumObj : IDirectXFileEnumObject) : HResult; stdcall;
function CreateSaveObject(const FileName : PChar; const FileFormat : TDXFileFormat; out SaveObj : IDirectXFileSaveObject) : HResult; stdcall;
function RegisterTemplates(const Data : Pointer; const Size : LongWord) : HResult; stdcall;
end;
IDirectXFileEnumObject = interface (IUnknown)
['{3D82AB41-62DA-11CF-AB39-0020AF71E433}']
function GetNextDataObject(out DataObj : IDirectXFileData) : HResult; stdcall;
function GetDataObjectById(const RGUID : TGUID; out DataObj : IDirectXFileData) : HResult; stdcall;
function GetDataObjectByName(const Name : PChar; out DataObj : IDirectXFileData) : HResult; stdcall;
end;
IDirectXFileSaveObject = interface (IUnknown)
['{3D82AB42-62DA-11CF-AB39-0020AF71E433}']
function SaveTemplates(const Templates : LongWord; var GUIDTemplates : PGUID) : HResult; stdcall;
function CreateDataObject(const RGUIDTemplate : TGUID; const szName : PChar; const GUID : PGUID; const Size : Cardinal; Data: Pointer; out DataObj : IDirectXFileData) : HResult; stdcall;
function SaveData(DataObj : IDirectXFileData) : HResult; stdcall;
end;
IDirectXFileObject = interface (IUnknown)
['{3D82AB43-62DA-11CF-AB39-0020AF71E433}']
function GetName(const NameBuf : PChar; BufLen : PLongWord) : HResult; stdcall;
function GetId (out GUID : TGUID) : HResult; stdcall;
end;
IDirectXFileData = interface (IDirectXFileObject)
['{3D82AB44-62DA-11CF-AB39-0020AF71E433}']
function GetData(const Member : PChar; out Size : LongWord; out Data : Pointer) : HResult; stdcall;
function GetType(out GUID : PGUID) : HResult; stdcall;
function GetNextObject(out ChildObj : IDirectXFileObject) : HResult; stdcall;
function AddDataObject(DataObj : IDirectXFileData) : HResult; stdcall;
function AddDataReference(Ref : PChar; GUIDRef : PGUID) : HResult; stdcall;
function AddBinaryObject(Name : PChar; GUID : PGUID; MimeType : PChar; Data : Pointer; const Size : LongWord) : HResult; stdcall;
end;
IDirectXFileDataReference = interface (IDirectXFileObject)
['{3D82AB45-62DA-11CF-AB39-0020AF71E433}']
function Resolve(out DataObj : IDirectXFileData) : HResult; stdcall;
end;
IDirectXFileBinary = interface (IDirectXFileObject)
['{3D82AB46-62DA-11CF-AB39-0020AF71E433}']
function GetSize(out Size : LongWord) : HResult; stdcall;
function GetMimeType(out MimeType : PChar) : HResult; stdcall;
function Read(Data : Pointer; const Size : LongWord; out Read : LongWord) : HResult; stdcall;
end;
(*)
*******************************************************************************
* API for creating IDirectXFile interface.
*******************************************************************************
(*)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -