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

📄 dxfile8.pas

📁 冒险岛吸怪源码UCE的制作材料 用于冒险岛游戏的外挂
💻 PAS
📖 第 1 页 / 共 2 页
字号:
(*==========================================================================;
 *
 *  Copyright (C) 1999 Microsoft Corporation.  All Rights Reserved.
 *
 *  File:       dxfile.h
 *  Content:    Interfaces to access Rendermorthics eXtensible file format
 *
 *  Direct3DX 8.0 Delphi adaptation by Alexey Barkovoy
 *  E-Mail: clootie@reactor.ru
 *
 *  completely revised by Tim Baumgarten
 *
 *  Modified: 05-Nov-2001
 *
 *  Partly based upon :
 *    DirectX 7.0 Delphi adaptation by
 *      Erik Unger, e-Mail: DelphiDirectX@next-reality.com
 *
 *  Lastest version can be downloaded from:
 *     http://www.delphi-jedi.org/DelphiGraphics/
 *
 ***************************************************************************)

(*==========================================================================;
 * History :
 *
 * 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 DXFile8;

{$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
 *
 ***************************************************************************)

function DXFileErrorString(DXErrorCode : HResult) : String; 

type
  TDXFileFormat = Cardinal;

const
  DXFILEFORMAT_BINARY     = 0;
  DXFILEFORMAT_TEXT       = 1;
  DXFILEFORMAT_COMPRESSED = 2;

type
  TDXFileLoadOptions = Cardinal;

const
  DXFILELOAD_FROMFILE           = $00;
  DXFILELOAD_FROMRESOURCE       = $01;
  DXFILELOAD_FROMMEMORY         = $02;
  DXFILELOAD_FROMSTREAM         = $04;
  DXFILELOAD_FROMURL            = $08;

type
  PDXFileLoadResource = ^TDXFileLoadResource;
  TDXFileLoadResource = packed record
    hModule : HModule;
    lpName  : PChar;
    lpType  : PChar;
  end;

  PDXFileLoadMemory = ^TDXFileLoadMemory;
  TDXFileLoadMemory = packed record
    lpMemory : Pointer;
    dSize    : Cardinal;
  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 pvSource : Pointer; const dwLoadOptions : TDXFileLoadOptions; out ppEnumObj : IDirectXFileEnumObject) : HResult; stdcall;
    function CreateSaveObject(const szFileName : PChar; const dwFileFormat : TDXFileFormat; out ppSaveObj : IDirectXFileSaveObject) : HResult; stdcall;
    function RegisterTemplates(const pvData : Pointer; const cbSize : Cardinal) : HResult; stdcall;
  end;

  IDirectXFileEnumObject = interface (IUnknown)
    ['{3D82AB41-62DA-11CF-AB39-0020AF71E433}']
    function GetNextDataObject(out ppDataObj : IDirectXFileData) : HResult; stdcall;
    function GetDataObjectById(const rguid : TGUID; out ppDataObj : IDirectXFileData) : HResult; stdcall;
    function GetDataObjectByName(const szName : PChar; out ppDataObj : IDirectXFileData) : HResult; stdcall;
  end;

  IDirectXFileSaveObject = interface (IUnknown)
    ['{3D82AB42-62DA-11CF-AB39-0020AF71E433}']
    function SaveTemplates(const cTemplates : Cardinal; var ppguidTemplates : PGUID) : HResult; stdcall;
    function CreateDataObject(const rguidTemplate : TGUID; const szName : PChar; const pguid : PGUID; const cbSize : Cardinal; pvData: Pointer; out ppDataObj : IDirectXFileData) : HResult; stdcall;
    function SaveData(pDataObj : IDirectXFileData) : HResult; stdcall;
  end;

  IDirectXFileObject = interface (IUnknown)
    ['{3D82AB43-62DA-11CF-AB39-0020AF71E433}']
    function GetName(const pstrNameBuf : PChar; dwBufLen : PLongWord) : HResult; stdcall;
    function GetId (out pGuidBuf : TGUID) : HResult; stdcall;
  end;

  IDirectXFileData = interface (IDirectXFileObject)
    ['{3D82AB44-62DA-11CF-AB39-0020AF71E433}']
    function GetData(const szMember: PChar; var pcbSize : LongWord; out ppvData : Pointer) : HResult; stdcall;
    function GetType(out ppguid : PGUID) : HResult; stdcall;
    function GetNextObject(out ppChildObj : IDirectXFileObject) : HResult; stdcall;
    function AddDataObject(const pDataObj : IDirectXFileData) : HResult; stdcall;
    function AddDataReference(const szRef : PChar; const pguidRef : PGUID) : HResult; stdcall;
    function AddBinaryObject(const szName : PChar; const pguid : PGUID; const szMimeType : PChar; const pvData : Pointer; const cbSize : LongWord) : HResult; stdcall;
  end;

  IDirectXFileDataReference = interface (IDirectXFileObject)
    ['{3D82AB45-62DA-11CF-AB39-0020AF71E433}']
    function Resolve(out ppDataObj : IDirectXFileData) : HResult; stdcall;
  end;

  IDirectXFileBinary = interface (IDirectXFileObject)
    ['{3D82AB46-62DA-11CF-AB39-0020AF71E433}']
    function GetSize(out pcbSize : LongWord) : HResult; stdcall;
    function GetMimeType(out pszMimeType : PChar) : HResult; stdcall;
    function Read(pvData : Pointer; const cbSize : LongWord; out pcbRead : LongWord) : HResult; stdcall;
  end;

  
(*
 * DirectXFile Object Class Id (for CoCreateInstance())
 *)

const
  CLSID_CDirectXFile: TGUID = '{4516EC43-8F20-11D0-9B6D-0000C0781BC3}';
//  (D1:$4516ec43;D2:$8f20;D3:$11d0;D4:($9b,$6d,$00,$00,$c0,$78,$1b,$c3));

(*
 * DirectX File Interface GUIDs.
 *)

type
  IID_IDirectXFile               = IDirectXFile;
  IID_IDirectXFileEnumObject     = IDirectXFileEnumObject;
  IID_IDirectXFileSaveObject     = IDirectXFileSaveObject;
  IID_IDirectXFileObject         = IDirectXFileObject;
  IID_IDirectXFileData           = IDirectXFileData;
  IID_IDirectXFileDataReference  = IDirectXFileDataReference;
  IID_IDirectXFileBinary         = IDirectXFileBinary;

(*
 * DirectX File Header template's GUID.
 *)
const

  TID_DXFILEHEADER                   : TGUID = '{3D82AB43-62DA-11CF-AB39-0020AF71E433}';
  TID_DXFILEMESH                     : TGUID = '{3D82AB44-62DA-11CF-AB39-0020AF71E433}';
  TID_DXFILEMVECTOR                  : TGUID = '{3D82AB5E-62DA-11CF-AB39-0020AF71E433}';
  TID_DXFILEMESHFACE                 : TGUID = '{3D82AB5F-62DA-11CF-AB39-0020AF71E433}';
  TID_DXFILEMATERIAL                 : TGUID = '{3D82AB4D-62DA-11CF-AB39-0020AF71E433}';
  TID_DXFILEFRAME                    : TGUID = '{3D82AB46-62DA-11CF-AB39-0020AF71E433}';
  TID_DXFILEFRAMETRANSFORMMATRIX     : TGUID = '{F6F23F41-7686-11CF-8F52-0040333594A3}';
  TID_DXFILEMESHMATERIALLIST         : TGUID = '{F6F23F42-7686-11CF-8F52-0040333594A3}';
  TID_DXFILEMESHTEXTURECOORDS        : TGUID = '{F6F23F40-7686-11CF-8F52-0040333594A3}';
  TID_DXFILEMESHNORMALS              : TGUID = '{F6F23F43-7686-11CF-8F52-0040333594A3}';
  TID_DXFILECOORDS2D                 : TGUID = '{F6F23F44-7686-11CF-8F52-0040333594A3}';
  TID_DXFILEMATRIX4X4                : TGUID = '{F6F23F45-7686-11CF-8F52-0040333594A3}';
  TID_DXFILEANIMATION                : TGUID = '{3D82AB4F-62DA-11CF-AB39-0020AF71E433}';
  TID_DXFILEANIMATIONSET             : TGUID = '{3D82AB50-62DA-11CF-AB39-0020AF71E433}';
  TID_DXFILEANIMATIONKEY             : TGUID = '{10DD46A8-775B-11CF-8F52-0040333594A3}';
  TID_DXFILEFLOATKEYS                : TGUID = '{10DD46A9-775B-11CF-8F52-0040333594A3}';
  TID_DXFILECOLORRGBA                : TGUID = '{35FF44E0-6C7C-11CF-8F52-0040333594A3}';
  TID_DXFILECOLORRGB                 : TGUID = '{D3E16E81-7835-11CF-8F52-0040333594A3}';
  TID_DXFILETEXTUREFILENAME          : TGUID = '{A42790E1-7810-11CF-8F52-0040333594A3}';
  TID_DXFILEINDEXEDCOLOR             : TGUID = '{1630B820-7842-11CF-8F52-0040333594A3}';
  TID_DXFILEBOOLEAN                  : TGUID = '{4885AE61-78E8-11CF-8F52-0040333594A3}';
  TID_DXFILEBOOLEAN2D                : TGUID = '{4885AE63-78E8-11CF-8F52-0040333594A3}';
  TID_DXFILEMESHVERTEXCOLORS         : TGUID = '{1630B821-7842-11CF-8F52-0040333594A3}';
  TID_DXFILEMESHFACEWRAPS            : TGUID = '{ED1EC5C0-C0A8-11D0-941C-0080C80CFA7B}';
  TID_DXFILETIMEDFLOATKEYS           : TGUID = '{F406B180-7B3B-11CF-8F52-0040333594A3}';
  TID_DXFILEANIMATIONOPTIONS         : TGUID = '{E2BF56C0-840F-11CF-8F52-0040333594A3}';
  TID_DXFILEQUATERNION               : TGUID = '{10DD46A3-775B-11cf-8F52-0040333594A3}';
  TID_DXFILEPATCH                    : TGUID = '{A3EB5D44-FC22-429D-9AFB-3221CB9719A6}';
  TID_DXFILEPATCHMESH                : TGUID = '{D02C95CC-EDBA-4305-9B5D-1820D7704BBF}';
  TID_DXFILEVERTEXDUPLICATIONINDICES : TGUID = '{B8D65549-D7C9-4995-89CF-53A9A8B031E3}';
  TID_DXFILEXSKINMESHHEADER          : TGUID = '{3CF169CE-FF7C-44ab-93C0-F78F62D172E2}';
  TID_DXFILESKINWEIGHTS              : TGUID = '{6F0D123B-BAD2-4167-A0D0-80224F25FABB}';

  DXFILE_XTEMPLATE_BYTES  = 3278;

  DXFILE_XTEMPLATES : array [0..DXFILE_XTEMPLATE_BYTES-1] of Byte = (
        $78, $6f, $66, $20, $30, $33, $30, $32, $62, $69, $6e, $20, $30, $30, $36, $34, $1f, 0, $1,
        0, $6, 0, 0, 0, $48, $65, $61, $64, $65, $72, $a, 0, $5, 0, $43, $ab, $82, $3d, $da,
        $62, $cf, $11, $ab, $39, 0, $20, $af, $71, $e4, $33, $28, 0, $1, 0, $5, 0, 0, 0, $6d,
        $61, $6a, $6f, $72, $14, 0, $28, 0, $1, 0, $5, 0, 0, 0, $6d, $69, $6e, $6f, $72, $14,
        0, $29, 0, $1, 0, $5, 0, 0, 0, $66, $6c, $61, $67, $73, $14, 0, $b, 0, $1f, 0,
        $1, 0, $6, 0, 0, 0, $56, $65, $63, $74, $6f, $72, $a, 0, $5, 0, $5e, $ab, $82, $3d,
        $da, $62, $cf, $11, $ab, $39, 0, $20, $af, $71, $e4, $33, $2a, 0, $1, 0, $1, 0, 0, 0,
        $78, $14, 0, $2a, 0, $1, 0, $1, 0, 0, 0, $79, $14, 0, $2a, 0, $1, 0, $1, 0,
        0, 0, $7a, $14, 0, $b, 0, $1f, 0, $1, 0, $8, 0, 0, 0, $43, $6f, $6f, $72, $64,
        $73, $32, $64, $a, 0, $5, 0, $44, $3f, $f2, $f6, $86, $76, $cf, $11, $8f, $52, 0, $40, $33,
        $35, $94, $a3, $2a, 0, $1, 0, $1, 0, 0, 0, $75, $14, 0, $2a, 0, $1, 0, $1, 0,
        0, 0, $76, $14, 0, $b, 0, $1f, 0, $1, 0, $9, 0, 0, 0, $4d, $61, $74, $72, $69,
        $78, $34, $78, $34, $a, 0, $5, 0, $45, $3f, $f2, $f6, $86, $76, $cf, $11, $8f, $52, 0, $40,
        $33, $35, $94, $a3, $34, 0, $2a, 0, $1, 0, $6, 0, 0, 0, $6d, $61, $74, $72, $69, $78,
        $e, 0, $3, 0, $10, 0, 0, 0, $f, 0, $14, 0, $b, 0, $1f, 0, $1, 0, $9, 0,
        0, 0, $43, $6f, $6c, $6f, $72, $52, $47, $42, $41, $a, 0, $5, 0, $e0, $44, $ff, $35, $7c,
        $6c, $cf, $11, $8f, $52, 0, $40, $33, $35, $94, $a3, $2a, 0, $1, 0, $3, 0, 0, 0, $72,
        $65, $64, $14, 0, $2a, 0, $1, 0, $5, 0, 0, 0, $67, $72, $65, $65, $6e, $14, 0, $2a,
        0, $1, 0, $4, 0, 0, 0, $62, $6c, $75, $65, $14, 0, $2a, 0, $1, 0, $5, 0, 0,
        0, $61, $6c, $70, $68, $61, $14, 0, $b, 0, $1f, 0, $1, 0, $8, 0, 0, 0, $43, $6f,
        $6c, $6f, $72, $52, $47, $42, $a, 0, $5, 0, $81, $6e, $e1, $d3, $35, $78, $cf, $11, $8f, $52,
        0, $40, $33, $35, $94, $a3, $2a, 0, $1, 0, $3, 0, 0, 0, $72, $65, $64, $14, 0, $2a,
        0, $1, 0, $5, 0, 0, 0, $67, $72, $65, $65, $6e, $14, 0, $2a, 0, $1, 0, $4, 0,
        0, 0, $62, $6c, $75, $65, $14, 0, $b, 0, $1f, 0, $1, 0, $c, 0, 0, 0, $49, $6e,

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -