⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dxfile9.pas

📁 冒险岛吸怪源码UCE的制作材料 用于冒险岛游戏的外挂
💻 PAS
📖 第 1 页 / 共 3 页
字号:
(*)
 [------------------------------------------------------------------------------
 [  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 + -