G940LEDControl/DirectX/DXTypes.pas

175 lines
6.4 KiB
ObjectPascal

{******************************************************************************}
{* *}
{* Copyright (C) Microsoft Corporation. All Rights Reserved. *}
{* *}
{* Files: dxsdkver.h, extracts from various DirectX SDK include files *}
{* Content: DirectX 9.0 headers common types *}
{* *}
{* DirectX 9.0 Delphi / FreePascal adaptation by Alexey Barkovoy *}
{* E-Mail: directx@clootie.ru *}
{* *}
{* Latest version can be downloaded from: *}
{* http://www.clootie.ru *}
{* http://sourceforge.net/projects/delphi-dx9sdk *}
{* *}
{*----------------------------------------------------------------------------*}
{* $Id: DXTypes.pas,v 1.23 2007/04/14 20:57:43 clootie Exp $ }
{******************************************************************************}
{ }
{ The contents of this file are used with permission, subject to the Mozilla }
{ Public License Version 1.1 (the "License"); you may not use this file except }
{ in compliance with the License. You may obtain a copy of the License at }
{ http://www.mozilla.org/MPL/MPL-1.1.html }
{ }
{ Software distributed under the License is distributed on an "AS IS" basis, }
{ WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for }
{ the specific language governing rights and limitations under the License. }
{ }
{ Alternatively, the contents of this file may be used under the terms of the }
{ GNU Lesser General Public License (the "LGPL License"), in which case the }
{ provisions of the LGPL License are applicable instead of those above. }
{ If you wish to allow use of your version of this file only under the terms }
{ of the LGPL License and not to allow others to use your version of this file }
{ under the MPL, indicate your decision by deleting the provisions above and }
{ replace them with the notice and other provisions required by the LGPL }
{ License. If you do not delete the provisions above, a recipient may use }
{ your version of this file under either the MPL or the LGPL License. }
{ }
{ For more information about the LGPL: http://www.gnu.org/copyleft/lesser.html }
{ }
{******************************************************************************}
{$I DirectX.inc}
unit DXTypes;
interface
(*$HPPEMIT '#include "dxsdkver.h"' *)
uses Windows;
(*==========================================================================;
*
* File: dxsdkver.h
* Content: DirectX SDK Version Include File
*
****************************************************************************)
const
_DXSDK_PRODUCT_MAJOR = 9;
{$EXTERNALSYM _DXSDK_PRODUCT_MAJOR}
_DXSDK_PRODUCT_MINOR = 18;
{$EXTERNALSYM _DXSDK_PRODUCT_MINOR}
_DXSDK_BUILD_MAJOR = 944;
{$EXTERNALSYM _DXSDK_BUILD_MAJOR}
_DXSDK_BUILD_MINOR = 0000;
{$EXTERNALSYM _DXSDK_BUILD_MINOR}
(****************************************************************************
* Other files
****************************************************************************)
type
// TD3DValue is the fundamental Direct3D fractional data type
D3DVALUE = Single;
{$EXTERNALSYM D3DVALUE}
TD3DValue = D3DVALUE;
{$NODEFINE TD3DValue}
PD3DValue = ^TD3DValue;
{$NODEFINE PD3DValue}
D3DCOLOR = {$IFDEF TYPE_IDENTITY}type {$ENDIF}DWord;
{$EXTERNALSYM D3DCOLOR}
TD3DColor = D3DCOLOR;
{$NODEFINE TD3DColor}
PD3DColor = ^TD3DColor;
{$NODEFINE PD3DColor}
_D3DVECTOR = packed record
x: Single;
y: Single;
z: Single;
end {_D3DVECTOR};
{$EXTERNALSYM _D3DVECTOR}
D3DVECTOR = _D3DVECTOR;
{$EXTERNALSYM D3DVECTOR}
TD3DVector = _D3DVECTOR;
{$NODEFINE TD3DVector}
PD3DVector = ^TD3DVector;
{$NODEFINE PD3DVector}
REFERENCE_TIME = LONGLONG;
{$EXTERNALSYM REFERENCE_TIME}
TReferenceTime = REFERENCE_TIME;
{$NODEFINE TReferenceTime}
PReferenceTime = ^TReferenceTime;
{$NODEFINE PReferenceTime}
// ==================================================================
// Here comes generic Windows types for Win32 / Win64 compatibility
//
UInt64 = Int64; // for a while
//
// The INT_PTR is guaranteed to be the same size as a pointer. Its
// size with change with pointer size (32/64). It should be used
// anywhere that a pointer is cast to an integer type. UINT_PTR is
// the unsigned variation.
//
{$EXTERNALSYM INT_PTR}
{$EXTERNALSYM UINT_PTR}
{$EXTERNALSYM LONG_PTR}
{$EXTERNALSYM ULONG_PTR}
{$EXTERNALSYM DWORD_PTR}
{$IFDEF WIN64}
INT_PTR = Int64;
UINT_PTR = UInt64;
LONG_PTR = Int64;
ULONG_PTR = UInt64;
DWORD_PTR = UInt64;
{$ELSE}
INT_PTR = Longint;
UINT_PTR = LongWord;
LONG_PTR = Longint;
ULONG_PTR = LongWord;
DWORD_PTR = LongWord;
{$ENDIF}
PINT_PTR = ^INT_PTR;
PUINT_PTR = ^UINT_PTR;
PLONG_PTR = ^LONG_PTR;
PULONG_PTR = ^ULONG_PTR;
{$IFDEF WIN64}
PtrInt = Int64;
PtrUInt = UInt64;
{$ELSE}
PtrInt = Longint;
PtrUInt = Longword;
{$ENDIF}
PPtrInt = ^PtrInt;
PPtrUInt = ^PtrUInt;
//
// SIZE_T used for counts or ranges which need to span the range of
// of a pointer. SSIZE_T is the signed variation.
//
{$EXTERNALSYM SIZE_T}
{$EXTERNALSYM SSIZE_T}
SIZE_T = ULONG_PTR;
SSIZE_T = LONG_PTR;
PSIZE_T = ^SIZE_T;
PSSIZE_T = ^SSIZE_T;
SizeInt = SSIZE_T;
SizeUInt = SIZE_T;
PSizeInt = PSSIZE_T;
PSizeUInt = PSIZE_T;
implementation
end.