ホーム › Graphics.DirectDraw › DDHAL_CALLBACKS
DDHAL_CALLBACKS
構造体サイズ=各フィールドのバイト数(x64/x86 で異なる場合は x64/x86 と併記)。x64/x86 列=フィールドのバイトオフセット(HSPで dupptr / lpoke / wpoke 等に使用)。
フィールド
| フィールド | 型 | サイズ | x64 | x86 | 説明 |
|---|---|---|---|---|---|
| cbDDCallbacks | DDHAL_DDCALLBACKS | 88/48 | +0 | +0 | DirectDrawオブジェクトレベルのコールバック群(要求側)。 |
| cbDDSurfaceCallbacks | DDHAL_DDSURFACECALLBACKS | 120/64 | +88 | +48 | サーフェスレベルのコールバック群(要求側)。 |
| cbDDPaletteCallbacks | DDHAL_DDPALETTECALLBACKS | 24/16 | +208 | +112 | パレットレベルのコールバック群(要求側)。 |
| HALDD | DDHAL_DDCALLBACKS | 88/48 | +232 | +128 | HAL実装のDirectDrawレベルコールバック群を示す。 |
| HALDDSurface | DDHAL_DDSURFACECALLBACKS | 120/64 | +320 | +176 | HAL実装のサーフェスレベルコールバック群を示す。 |
| HALDDPalette | DDHAL_DDPALETTECALLBACKS | 24/16 | +440 | +240 | HAL実装のパレットレベルコールバック群を示す。 |
| HELDD | DDHAL_DDCALLBACKS | 88/48 | +464 | +256 | HEL(ソフト実装)のDirectDrawレベルコールバック群を示す。 |
| HELDDSurface | DDHAL_DDSURFACECALLBACKS | 120/64 | +552 | +304 | HEL実装のサーフェスレベルコールバック群を示す。 |
| HELDDPalette | DDHAL_DDPALETTECALLBACKS | 24/16 | +672 | +368 | HEL実装のパレットレベルコールバック群を示す。 |
| cbDDExeBufCallbacks | DDHAL_DDEXEBUFCALLBACKS | 48/28 | +696 | +384 | 実行バッファ用コールバック群(要求側)を示す。 |
| HALDDExeBuf | DDHAL_DDEXEBUFCALLBACKS | 48/28 | +744 | +412 | HAL実装の実行バッファコールバック群を示す。 |
| HELDDExeBuf | DDHAL_DDEXEBUFCALLBACKS | 48/28 | +792 | +440 | HEL実装の実行バッファコールバック群を示す。 |
| cbDDVideoPortCallbacks | DDHAL_DDVIDEOPORTCALLBACKS | 136/72 | +840 | +468 | ビデオポート用コールバック群(要求側)を示す。 |
| HALDDVideoPort | DDHAL_DDVIDEOPORTCALLBACKS | 136/72 | +976 | +540 | HAL実装のビデオポートコールバック群を示す。 |
| cbDDColorControlCallbacks | DDHAL_DDCOLORCONTROLCALLBACKS | 16/12 | +1112 | +612 | 色調整用コールバック群(要求側)を示す。 |
| HALDDColorControl | DDHAL_DDCOLORCONTROLCALLBACKS | 16/12 | +1128 | +624 | HAL実装の色調整コールバック群を示す。 |
| cbDDMiscellaneousCallbacks | DDHAL_DDMISCELLANEOUSCALLBACKS | 40/24 | +1144 | +636 | その他用コールバック群(要求側)を示す。 |
| HALDDMiscellaneous | DDHAL_DDMISCELLANEOUSCALLBACKS | 40/24 | +1184 | +660 | HAL実装のその他コールバック群を示す。 |
| cbDDKernelCallbacks | DDHAL_DDKERNELCALLBACKS | 24/16 | +1224 | +684 | カーネルモード用コールバック群(要求側)を示す。 |
| HALDDKernel | DDHAL_DDKERNELCALLBACKS | 24/16 | +1248 | +700 | HAL実装のカーネルモードコールバック群を示す。 |
| cbDDMotionCompCallbacks | DDHAL_DDMOTIONCOMPCALLBACKS | 88/48 | +1272 | +716 | モーション補償用コールバック群(要求側)を示す。 |
| HALDDMotionComp | DDHAL_DDMOTIONCOMPCALLBACKS | 88/48 | +1360 | +764 | HAL実装のモーション補償コールバック群を示す。 |
各言語での定義
#include <windows.h>
// DDHAL_DDCALLBACKS (x64 88 / x86 48 バイト)
typedef struct DDHAL_DDCALLBACKS {
DWORD dwSize;
DWORD dwFlags;
LPDDHAL_DESTROYDRIVER DestroyDriver;
LPDDHAL_CREATESURFACE CreateSurface;
LPDDHAL_SETCOLORKEY SetColorKey;
LPDDHAL_SETMODE SetMode;
LPDDHAL_WAITFORVERTICALBLANK WaitForVerticalBlank;
LPDDHAL_CANCREATESURFACE CanCreateSurface;
LPDDHAL_CREATEPALETTE CreatePalette;
LPDDHAL_GETSCANLINE GetScanLine;
LPDDHAL_SETEXCLUSIVEMODE SetExclusiveMode;
LPDDHAL_FLIPTOGDISURFACE FlipToGDISurface;
} DDHAL_DDCALLBACKS;
// DDHAL_DDSURFACECALLBACKS (x64 120 / x86 64 バイト)
typedef struct DDHAL_DDSURFACECALLBACKS {
DWORD dwSize;
DWORD dwFlags;
LPDDHALSURFCB_DESTROYSURFACE DestroySurface;
LPDDHALSURFCB_FLIP Flip;
LPDDHALSURFCB_SETCLIPLIST SetClipList;
LPDDHALSURFCB_LOCK Lock;
LPDDHALSURFCB_UNLOCK Unlock;
LPDDHALSURFCB_BLT Blt;
LPDDHALSURFCB_SETCOLORKEY SetColorKey;
LPDDHALSURFCB_ADDATTACHEDSURFACE AddAttachedSurface;
LPDDHALSURFCB_GETBLTSTATUS GetBltStatus;
LPDDHALSURFCB_GETFLIPSTATUS GetFlipStatus;
LPDDHALSURFCB_UPDATEOVERLAY UpdateOverlay;
LPDDHALSURFCB_SETOVERLAYPOSITION SetOverlayPosition;
void* reserved4;
LPDDHALSURFCB_SETPALETTE SetPalette;
} DDHAL_DDSURFACECALLBACKS;
// DDHAL_DDPALETTECALLBACKS (x64 24 / x86 16 バイト)
typedef struct DDHAL_DDPALETTECALLBACKS {
DWORD dwSize;
DWORD dwFlags;
LPDDHALPALCB_DESTROYPALETTE DestroyPalette;
LPDDHALPALCB_SETENTRIES SetEntries;
} DDHAL_DDPALETTECALLBACKS;
// DDHAL_DDEXEBUFCALLBACKS (x64 48 / x86 28 バイト)
typedef struct DDHAL_DDEXEBUFCALLBACKS {
DWORD dwSize;
DWORD dwFlags;
LPDDHALEXEBUFCB_CANCREATEEXEBUF CanCreateExecuteBuffer;
LPDDHALEXEBUFCB_CREATEEXEBUF CreateExecuteBuffer;
LPDDHALEXEBUFCB_DESTROYEXEBUF DestroyExecuteBuffer;
LPDDHALEXEBUFCB_LOCKEXEBUF LockExecuteBuffer;
LPDDHALEXEBUFCB_UNLOCKEXEBUF UnlockExecuteBuffer;
} DDHAL_DDEXEBUFCALLBACKS;
// DDHAL_DDVIDEOPORTCALLBACKS (x64 136 / x86 72 バイト)
typedef struct DDHAL_DDVIDEOPORTCALLBACKS {
DWORD dwSize;
DWORD dwFlags;
LPDDHALVPORTCB_CANCREATEVIDEOPORT CanCreateVideoPort;
LPDDHALVPORTCB_CREATEVIDEOPORT CreateVideoPort;
LPDDHALVPORTCB_FLIP FlipVideoPort;
LPDDHALVPORTCB_GETBANDWIDTH GetVideoPortBandwidth;
LPDDHALVPORTCB_GETINPUTFORMATS GetVideoPortInputFormats;
LPDDHALVPORTCB_GETOUTPUTFORMATS GetVideoPortOutputFormats;
void* lpReserved1;
LPDDHALVPORTCB_GETFIELD GetVideoPortField;
LPDDHALVPORTCB_GETLINE GetVideoPortLine;
LPDDHALVPORTCB_GETVPORTCONNECT GetVideoPortConnectInfo;
LPDDHALVPORTCB_DESTROYVPORT DestroyVideoPort;
LPDDHALVPORTCB_GETFLIPSTATUS GetVideoPortFlipStatus;
LPDDHALVPORTCB_UPDATE UpdateVideoPort;
LPDDHALVPORTCB_WAITFORSYNC WaitForVideoPortSync;
LPDDHALVPORTCB_GETSIGNALSTATUS GetVideoSignalStatus;
LPDDHALVPORTCB_COLORCONTROL ColorControl;
} DDHAL_DDVIDEOPORTCALLBACKS;
// DDHAL_DDCOLORCONTROLCALLBACKS (x64 16 / x86 12 バイト)
typedef struct DDHAL_DDCOLORCONTROLCALLBACKS {
DWORD dwSize;
DWORD dwFlags;
LPDDHALCOLORCB_COLORCONTROL ColorControl;
} DDHAL_DDCOLORCONTROLCALLBACKS;
// DDHAL_DDMISCELLANEOUSCALLBACKS (x64 40 / x86 24 バイト)
typedef struct DDHAL_DDMISCELLANEOUSCALLBACKS {
DWORD dwSize;
DWORD dwFlags;
LPDDHAL_GETAVAILDRIVERMEMORY GetAvailDriverMemory;
LPDDHAL_UPDATENONLOCALHEAP UpdateNonLocalHeap;
LPDDHAL_GETHEAPALIGNMENT GetHeapAlignment;
LPDDHALSURFCB_GETBLTSTATUS GetSysmemBltStatus;
} DDHAL_DDMISCELLANEOUSCALLBACKS;
// DDHAL_DDKERNELCALLBACKS (x64 24 / x86 16 バイト)
typedef struct DDHAL_DDKERNELCALLBACKS {
DWORD dwSize;
DWORD dwFlags;
LPDDHALKERNELCB_SYNCSURFACE SyncSurfaceData;
LPDDHALKERNELCB_SYNCVIDEOPORT SyncVideoPortData;
} DDHAL_DDKERNELCALLBACKS;
// DDHAL_DDMOTIONCOMPCALLBACKS (x64 88 / x86 48 バイト)
typedef struct DDHAL_DDMOTIONCOMPCALLBACKS {
DWORD dwSize;
DWORD dwFlags;
LPDDHALMOCOMPCB_GETGUIDS GetMoCompGuids;
LPDDHALMOCOMPCB_GETFORMATS GetMoCompFormats;
LPDDHALMOCOMPCB_CREATE CreateMoComp;
LPDDHALMOCOMPCB_GETCOMPBUFFINFO GetMoCompBuffInfo;
LPDDHALMOCOMPCB_GETINTERNALINFO GetInternalMoCompInfo;
LPDDHALMOCOMPCB_BEGINFRAME BeginMoCompFrame;
LPDDHALMOCOMPCB_ENDFRAME EndMoCompFrame;
LPDDHALMOCOMPCB_RENDER RenderMoComp;
LPDDHALMOCOMPCB_QUERYSTATUS QueryMoCompStatus;
LPDDHALMOCOMPCB_DESTROY DestroyMoComp;
} DDHAL_DDMOTIONCOMPCALLBACKS;
// DDHAL_CALLBACKS (x64 1448 / x86 812 バイト)
typedef struct DDHAL_CALLBACKS {
DDHAL_DDCALLBACKS cbDDCallbacks;
DDHAL_DDSURFACECALLBACKS cbDDSurfaceCallbacks;
DDHAL_DDPALETTECALLBACKS cbDDPaletteCallbacks;
DDHAL_DDCALLBACKS HALDD;
DDHAL_DDSURFACECALLBACKS HALDDSurface;
DDHAL_DDPALETTECALLBACKS HALDDPalette;
DDHAL_DDCALLBACKS HELDD;
DDHAL_DDSURFACECALLBACKS HELDDSurface;
DDHAL_DDPALETTECALLBACKS HELDDPalette;
DDHAL_DDEXEBUFCALLBACKS cbDDExeBufCallbacks;
DDHAL_DDEXEBUFCALLBACKS HALDDExeBuf;
DDHAL_DDEXEBUFCALLBACKS HELDDExeBuf;
DDHAL_DDVIDEOPORTCALLBACKS cbDDVideoPortCallbacks;
DDHAL_DDVIDEOPORTCALLBACKS HALDDVideoPort;
DDHAL_DDCOLORCONTROLCALLBACKS cbDDColorControlCallbacks;
DDHAL_DDCOLORCONTROLCALLBACKS HALDDColorControl;
DDHAL_DDMISCELLANEOUSCALLBACKS cbDDMiscellaneousCallbacks;
DDHAL_DDMISCELLANEOUSCALLBACKS HALDDMiscellaneous;
DDHAL_DDKERNELCALLBACKS cbDDKernelCallbacks;
DDHAL_DDKERNELCALLBACKS HALDDKernel;
DDHAL_DDMOTIONCOMPCALLBACKS cbDDMotionCompCallbacks;
DDHAL_DDMOTIONCOMPCALLBACKS HALDDMotionComp;
} DDHAL_CALLBACKS;using System;
using System.Runtime.InteropServices;
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct DDHAL_DDCALLBACKS
{
public uint dwSize;
public uint dwFlags;
public IntPtr DestroyDriver;
public IntPtr CreateSurface;
public IntPtr SetColorKey;
public IntPtr SetMode;
public IntPtr WaitForVerticalBlank;
public IntPtr CanCreateSurface;
public IntPtr CreatePalette;
public IntPtr GetScanLine;
public IntPtr SetExclusiveMode;
public IntPtr FlipToGDISurface;
}
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct DDHAL_DDSURFACECALLBACKS
{
public uint dwSize;
public uint dwFlags;
public IntPtr DestroySurface;
public IntPtr Flip;
public IntPtr SetClipList;
public IntPtr Lock;
public IntPtr Unlock;
public IntPtr Blt;
public IntPtr SetColorKey;
public IntPtr AddAttachedSurface;
public IntPtr GetBltStatus;
public IntPtr GetFlipStatus;
public IntPtr UpdateOverlay;
public IntPtr SetOverlayPosition;
public IntPtr reserved4;
public IntPtr SetPalette;
}
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct DDHAL_DDPALETTECALLBACKS
{
public uint dwSize;
public uint dwFlags;
public IntPtr DestroyPalette;
public IntPtr SetEntries;
}
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct DDHAL_DDEXEBUFCALLBACKS
{
public uint dwSize;
public uint dwFlags;
public IntPtr CanCreateExecuteBuffer;
public IntPtr CreateExecuteBuffer;
public IntPtr DestroyExecuteBuffer;
public IntPtr LockExecuteBuffer;
public IntPtr UnlockExecuteBuffer;
}
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct DDHAL_DDVIDEOPORTCALLBACKS
{
public uint dwSize;
public uint dwFlags;
public IntPtr CanCreateVideoPort;
public IntPtr CreateVideoPort;
public IntPtr FlipVideoPort;
public IntPtr GetVideoPortBandwidth;
public IntPtr GetVideoPortInputFormats;
public IntPtr GetVideoPortOutputFormats;
public IntPtr lpReserved1;
public IntPtr GetVideoPortField;
public IntPtr GetVideoPortLine;
public IntPtr GetVideoPortConnectInfo;
public IntPtr DestroyVideoPort;
public IntPtr GetVideoPortFlipStatus;
public IntPtr UpdateVideoPort;
public IntPtr WaitForVideoPortSync;
public IntPtr GetVideoSignalStatus;
public IntPtr ColorControl;
}
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct DDHAL_DDCOLORCONTROLCALLBACKS
{
public uint dwSize;
public uint dwFlags;
public IntPtr ColorControl;
}
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct DDHAL_DDMISCELLANEOUSCALLBACKS
{
public uint dwSize;
public uint dwFlags;
public IntPtr GetAvailDriverMemory;
public IntPtr UpdateNonLocalHeap;
public IntPtr GetHeapAlignment;
public IntPtr GetSysmemBltStatus;
}
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct DDHAL_DDKERNELCALLBACKS
{
public uint dwSize;
public uint dwFlags;
public IntPtr SyncSurfaceData;
public IntPtr SyncVideoPortData;
}
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct DDHAL_DDMOTIONCOMPCALLBACKS
{
public uint dwSize;
public uint dwFlags;
public IntPtr GetMoCompGuids;
public IntPtr GetMoCompFormats;
public IntPtr CreateMoComp;
public IntPtr GetMoCompBuffInfo;
public IntPtr GetInternalMoCompInfo;
public IntPtr BeginMoCompFrame;
public IntPtr EndMoCompFrame;
public IntPtr RenderMoComp;
public IntPtr QueryMoCompStatus;
public IntPtr DestroyMoComp;
}
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct DDHAL_CALLBACKS
{
public DDHAL_DDCALLBACKS cbDDCallbacks;
public DDHAL_DDSURFACECALLBACKS cbDDSurfaceCallbacks;
public DDHAL_DDPALETTECALLBACKS cbDDPaletteCallbacks;
public DDHAL_DDCALLBACKS HALDD;
public DDHAL_DDSURFACECALLBACKS HALDDSurface;
public DDHAL_DDPALETTECALLBACKS HALDDPalette;
public DDHAL_DDCALLBACKS HELDD;
public DDHAL_DDSURFACECALLBACKS HELDDSurface;
public DDHAL_DDPALETTECALLBACKS HELDDPalette;
public DDHAL_DDEXEBUFCALLBACKS cbDDExeBufCallbacks;
public DDHAL_DDEXEBUFCALLBACKS HALDDExeBuf;
public DDHAL_DDEXEBUFCALLBACKS HELDDExeBuf;
public DDHAL_DDVIDEOPORTCALLBACKS cbDDVideoPortCallbacks;
public DDHAL_DDVIDEOPORTCALLBACKS HALDDVideoPort;
public DDHAL_DDCOLORCONTROLCALLBACKS cbDDColorControlCallbacks;
public DDHAL_DDCOLORCONTROLCALLBACKS HALDDColorControl;
public DDHAL_DDMISCELLANEOUSCALLBACKS cbDDMiscellaneousCallbacks;
public DDHAL_DDMISCELLANEOUSCALLBACKS HALDDMiscellaneous;
public DDHAL_DDKERNELCALLBACKS cbDDKernelCallbacks;
public DDHAL_DDKERNELCALLBACKS HALDDKernel;
public DDHAL_DDMOTIONCOMPCALLBACKS cbDDMotionCompCallbacks;
public DDHAL_DDMOTIONCOMPCALLBACKS HALDDMotionComp;
}Imports System.Runtime.InteropServices
<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode)>
Public Structure DDHAL_DDCALLBACKS
Public dwSize As UInteger
Public dwFlags As UInteger
Public DestroyDriver As IntPtr
Public CreateSurface As IntPtr
Public SetColorKey As IntPtr
Public SetMode As IntPtr
Public WaitForVerticalBlank As IntPtr
Public CanCreateSurface As IntPtr
Public CreatePalette As IntPtr
Public GetScanLine As IntPtr
Public SetExclusiveMode As IntPtr
Public FlipToGDISurface As IntPtr
End Structure
<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode)>
Public Structure DDHAL_DDSURFACECALLBACKS
Public dwSize As UInteger
Public dwFlags As UInteger
Public DestroySurface As IntPtr
Public Flip As IntPtr
Public SetClipList As IntPtr
Public Lock As IntPtr
Public Unlock As IntPtr
Public Blt As IntPtr
Public SetColorKey As IntPtr
Public AddAttachedSurface As IntPtr
Public GetBltStatus As IntPtr
Public GetFlipStatus As IntPtr
Public UpdateOverlay As IntPtr
Public SetOverlayPosition As IntPtr
Public reserved4 As IntPtr
Public SetPalette As IntPtr
End Structure
<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode)>
Public Structure DDHAL_DDPALETTECALLBACKS
Public dwSize As UInteger
Public dwFlags As UInteger
Public DestroyPalette As IntPtr
Public SetEntries As IntPtr
End Structure
<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode)>
Public Structure DDHAL_DDEXEBUFCALLBACKS
Public dwSize As UInteger
Public dwFlags As UInteger
Public CanCreateExecuteBuffer As IntPtr
Public CreateExecuteBuffer As IntPtr
Public DestroyExecuteBuffer As IntPtr
Public LockExecuteBuffer As IntPtr
Public UnlockExecuteBuffer As IntPtr
End Structure
<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode)>
Public Structure DDHAL_DDVIDEOPORTCALLBACKS
Public dwSize As UInteger
Public dwFlags As UInteger
Public CanCreateVideoPort As IntPtr
Public CreateVideoPort As IntPtr
Public FlipVideoPort As IntPtr
Public GetVideoPortBandwidth As IntPtr
Public GetVideoPortInputFormats As IntPtr
Public GetVideoPortOutputFormats As IntPtr
Public lpReserved1 As IntPtr
Public GetVideoPortField As IntPtr
Public GetVideoPortLine As IntPtr
Public GetVideoPortConnectInfo As IntPtr
Public DestroyVideoPort As IntPtr
Public GetVideoPortFlipStatus As IntPtr
Public UpdateVideoPort As IntPtr
Public WaitForVideoPortSync As IntPtr
Public GetVideoSignalStatus As IntPtr
Public ColorControl As IntPtr
End Structure
<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode)>
Public Structure DDHAL_DDCOLORCONTROLCALLBACKS
Public dwSize As UInteger
Public dwFlags As UInteger
Public ColorControl As IntPtr
End Structure
<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode)>
Public Structure DDHAL_DDMISCELLANEOUSCALLBACKS
Public dwSize As UInteger
Public dwFlags As UInteger
Public GetAvailDriverMemory As IntPtr
Public UpdateNonLocalHeap As IntPtr
Public GetHeapAlignment As IntPtr
Public GetSysmemBltStatus As IntPtr
End Structure
<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode)>
Public Structure DDHAL_DDKERNELCALLBACKS
Public dwSize As UInteger
Public dwFlags As UInteger
Public SyncSurfaceData As IntPtr
Public SyncVideoPortData As IntPtr
End Structure
<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode)>
Public Structure DDHAL_DDMOTIONCOMPCALLBACKS
Public dwSize As UInteger
Public dwFlags As UInteger
Public GetMoCompGuids As IntPtr
Public GetMoCompFormats As IntPtr
Public CreateMoComp As IntPtr
Public GetMoCompBuffInfo As IntPtr
Public GetInternalMoCompInfo As IntPtr
Public BeginMoCompFrame As IntPtr
Public EndMoCompFrame As IntPtr
Public RenderMoComp As IntPtr
Public QueryMoCompStatus As IntPtr
Public DestroyMoComp As IntPtr
End Structure
<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode)>
Public Structure DDHAL_CALLBACKS
Public cbDDCallbacks As DDHAL_DDCALLBACKS
Public cbDDSurfaceCallbacks As DDHAL_DDSURFACECALLBACKS
Public cbDDPaletteCallbacks As DDHAL_DDPALETTECALLBACKS
Public HALDD As DDHAL_DDCALLBACKS
Public HALDDSurface As DDHAL_DDSURFACECALLBACKS
Public HALDDPalette As DDHAL_DDPALETTECALLBACKS
Public HELDD As DDHAL_DDCALLBACKS
Public HELDDSurface As DDHAL_DDSURFACECALLBACKS
Public HELDDPalette As DDHAL_DDPALETTECALLBACKS
Public cbDDExeBufCallbacks As DDHAL_DDEXEBUFCALLBACKS
Public HALDDExeBuf As DDHAL_DDEXEBUFCALLBACKS
Public HELDDExeBuf As DDHAL_DDEXEBUFCALLBACKS
Public cbDDVideoPortCallbacks As DDHAL_DDVIDEOPORTCALLBACKS
Public HALDDVideoPort As DDHAL_DDVIDEOPORTCALLBACKS
Public cbDDColorControlCallbacks As DDHAL_DDCOLORCONTROLCALLBACKS
Public HALDDColorControl As DDHAL_DDCOLORCONTROLCALLBACKS
Public cbDDMiscellaneousCallbacks As DDHAL_DDMISCELLANEOUSCALLBACKS
Public HALDDMiscellaneous As DDHAL_DDMISCELLANEOUSCALLBACKS
Public cbDDKernelCallbacks As DDHAL_DDKERNELCALLBACKS
Public HALDDKernel As DDHAL_DDKERNELCALLBACKS
Public cbDDMotionCompCallbacks As DDHAL_DDMOTIONCOMPCALLBACKS
Public HALDDMotionComp As DDHAL_DDMOTIONCOMPCALLBACKS
End Structureimport ctypes
from ctypes import wintypes
class DDHAL_DDCALLBACKS(ctypes.Structure):
_fields_ = [
("dwSize", wintypes.DWORD),
("dwFlags", wintypes.DWORD),
("DestroyDriver", ctypes.c_void_p),
("CreateSurface", ctypes.c_void_p),
("SetColorKey", ctypes.c_void_p),
("SetMode", ctypes.c_void_p),
("WaitForVerticalBlank", ctypes.c_void_p),
("CanCreateSurface", ctypes.c_void_p),
("CreatePalette", ctypes.c_void_p),
("GetScanLine", ctypes.c_void_p),
("SetExclusiveMode", ctypes.c_void_p),
("FlipToGDISurface", ctypes.c_void_p),
]
class DDHAL_DDSURFACECALLBACKS(ctypes.Structure):
_fields_ = [
("dwSize", wintypes.DWORD),
("dwFlags", wintypes.DWORD),
("DestroySurface", ctypes.c_void_p),
("Flip", ctypes.c_void_p),
("SetClipList", ctypes.c_void_p),
("Lock", ctypes.c_void_p),
("Unlock", ctypes.c_void_p),
("Blt", ctypes.c_void_p),
("SetColorKey", ctypes.c_void_p),
("AddAttachedSurface", ctypes.c_void_p),
("GetBltStatus", ctypes.c_void_p),
("GetFlipStatus", ctypes.c_void_p),
("UpdateOverlay", ctypes.c_void_p),
("SetOverlayPosition", ctypes.c_void_p),
("reserved4", ctypes.c_void_p),
("SetPalette", ctypes.c_void_p),
]
class DDHAL_DDPALETTECALLBACKS(ctypes.Structure):
_fields_ = [
("dwSize", wintypes.DWORD),
("dwFlags", wintypes.DWORD),
("DestroyPalette", ctypes.c_void_p),
("SetEntries", ctypes.c_void_p),
]
class DDHAL_DDEXEBUFCALLBACKS(ctypes.Structure):
_fields_ = [
("dwSize", wintypes.DWORD),
("dwFlags", wintypes.DWORD),
("CanCreateExecuteBuffer", ctypes.c_void_p),
("CreateExecuteBuffer", ctypes.c_void_p),
("DestroyExecuteBuffer", ctypes.c_void_p),
("LockExecuteBuffer", ctypes.c_void_p),
("UnlockExecuteBuffer", ctypes.c_void_p),
]
class DDHAL_DDVIDEOPORTCALLBACKS(ctypes.Structure):
_fields_ = [
("dwSize", wintypes.DWORD),
("dwFlags", wintypes.DWORD),
("CanCreateVideoPort", ctypes.c_void_p),
("CreateVideoPort", ctypes.c_void_p),
("FlipVideoPort", ctypes.c_void_p),
("GetVideoPortBandwidth", ctypes.c_void_p),
("GetVideoPortInputFormats", ctypes.c_void_p),
("GetVideoPortOutputFormats", ctypes.c_void_p),
("lpReserved1", ctypes.c_void_p),
("GetVideoPortField", ctypes.c_void_p),
("GetVideoPortLine", ctypes.c_void_p),
("GetVideoPortConnectInfo", ctypes.c_void_p),
("DestroyVideoPort", ctypes.c_void_p),
("GetVideoPortFlipStatus", ctypes.c_void_p),
("UpdateVideoPort", ctypes.c_void_p),
("WaitForVideoPortSync", ctypes.c_void_p),
("GetVideoSignalStatus", ctypes.c_void_p),
("ColorControl", ctypes.c_void_p),
]
class DDHAL_DDCOLORCONTROLCALLBACKS(ctypes.Structure):
_fields_ = [
("dwSize", wintypes.DWORD),
("dwFlags", wintypes.DWORD),
("ColorControl", ctypes.c_void_p),
]
class DDHAL_DDMISCELLANEOUSCALLBACKS(ctypes.Structure):
_fields_ = [
("dwSize", wintypes.DWORD),
("dwFlags", wintypes.DWORD),
("GetAvailDriverMemory", ctypes.c_void_p),
("UpdateNonLocalHeap", ctypes.c_void_p),
("GetHeapAlignment", ctypes.c_void_p),
("GetSysmemBltStatus", ctypes.c_void_p),
]
class DDHAL_DDKERNELCALLBACKS(ctypes.Structure):
_fields_ = [
("dwSize", wintypes.DWORD),
("dwFlags", wintypes.DWORD),
("SyncSurfaceData", ctypes.c_void_p),
("SyncVideoPortData", ctypes.c_void_p),
]
class DDHAL_DDMOTIONCOMPCALLBACKS(ctypes.Structure):
_fields_ = [
("dwSize", wintypes.DWORD),
("dwFlags", wintypes.DWORD),
("GetMoCompGuids", ctypes.c_void_p),
("GetMoCompFormats", ctypes.c_void_p),
("CreateMoComp", ctypes.c_void_p),
("GetMoCompBuffInfo", ctypes.c_void_p),
("GetInternalMoCompInfo", ctypes.c_void_p),
("BeginMoCompFrame", ctypes.c_void_p),
("EndMoCompFrame", ctypes.c_void_p),
("RenderMoComp", ctypes.c_void_p),
("QueryMoCompStatus", ctypes.c_void_p),
("DestroyMoComp", ctypes.c_void_p),
]
class DDHAL_CALLBACKS(ctypes.Structure):
_fields_ = [
("cbDDCallbacks", DDHAL_DDCALLBACKS),
("cbDDSurfaceCallbacks", DDHAL_DDSURFACECALLBACKS),
("cbDDPaletteCallbacks", DDHAL_DDPALETTECALLBACKS),
("HALDD", DDHAL_DDCALLBACKS),
("HALDDSurface", DDHAL_DDSURFACECALLBACKS),
("HALDDPalette", DDHAL_DDPALETTECALLBACKS),
("HELDD", DDHAL_DDCALLBACKS),
("HELDDSurface", DDHAL_DDSURFACECALLBACKS),
("HELDDPalette", DDHAL_DDPALETTECALLBACKS),
("cbDDExeBufCallbacks", DDHAL_DDEXEBUFCALLBACKS),
("HALDDExeBuf", DDHAL_DDEXEBUFCALLBACKS),
("HELDDExeBuf", DDHAL_DDEXEBUFCALLBACKS),
("cbDDVideoPortCallbacks", DDHAL_DDVIDEOPORTCALLBACKS),
("HALDDVideoPort", DDHAL_DDVIDEOPORTCALLBACKS),
("cbDDColorControlCallbacks", DDHAL_DDCOLORCONTROLCALLBACKS),
("HALDDColorControl", DDHAL_DDCOLORCONTROLCALLBACKS),
("cbDDMiscellaneousCallbacks", DDHAL_DDMISCELLANEOUSCALLBACKS),
("HALDDMiscellaneous", DDHAL_DDMISCELLANEOUSCALLBACKS),
("cbDDKernelCallbacks", DDHAL_DDKERNELCALLBACKS),
("HALDDKernel", DDHAL_DDKERNELCALLBACKS),
("cbDDMotionCompCallbacks", DDHAL_DDMOTIONCOMPCALLBACKS),
("HALDDMotionComp", DDHAL_DDMOTIONCOMPCALLBACKS),
]#[repr(C)]
pub struct DDHAL_DDCALLBACKS {
pub dwSize: u32,
pub dwFlags: u32,
pub DestroyDriver: *mut core::ffi::c_void,
pub CreateSurface: *mut core::ffi::c_void,
pub SetColorKey: *mut core::ffi::c_void,
pub SetMode: *mut core::ffi::c_void,
pub WaitForVerticalBlank: *mut core::ffi::c_void,
pub CanCreateSurface: *mut core::ffi::c_void,
pub CreatePalette: *mut core::ffi::c_void,
pub GetScanLine: *mut core::ffi::c_void,
pub SetExclusiveMode: *mut core::ffi::c_void,
pub FlipToGDISurface: *mut core::ffi::c_void,
}
#[repr(C)]
pub struct DDHAL_DDSURFACECALLBACKS {
pub dwSize: u32,
pub dwFlags: u32,
pub DestroySurface: *mut core::ffi::c_void,
pub Flip: *mut core::ffi::c_void,
pub SetClipList: *mut core::ffi::c_void,
pub Lock: *mut core::ffi::c_void,
pub Unlock: *mut core::ffi::c_void,
pub Blt: *mut core::ffi::c_void,
pub SetColorKey: *mut core::ffi::c_void,
pub AddAttachedSurface: *mut core::ffi::c_void,
pub GetBltStatus: *mut core::ffi::c_void,
pub GetFlipStatus: *mut core::ffi::c_void,
pub UpdateOverlay: *mut core::ffi::c_void,
pub SetOverlayPosition: *mut core::ffi::c_void,
pub reserved4: *mut core::ffi::c_void,
pub SetPalette: *mut core::ffi::c_void,
}
#[repr(C)]
pub struct DDHAL_DDPALETTECALLBACKS {
pub dwSize: u32,
pub dwFlags: u32,
pub DestroyPalette: *mut core::ffi::c_void,
pub SetEntries: *mut core::ffi::c_void,
}
#[repr(C)]
pub struct DDHAL_DDEXEBUFCALLBACKS {
pub dwSize: u32,
pub dwFlags: u32,
pub CanCreateExecuteBuffer: *mut core::ffi::c_void,
pub CreateExecuteBuffer: *mut core::ffi::c_void,
pub DestroyExecuteBuffer: *mut core::ffi::c_void,
pub LockExecuteBuffer: *mut core::ffi::c_void,
pub UnlockExecuteBuffer: *mut core::ffi::c_void,
}
#[repr(C)]
pub struct DDHAL_DDVIDEOPORTCALLBACKS {
pub dwSize: u32,
pub dwFlags: u32,
pub CanCreateVideoPort: *mut core::ffi::c_void,
pub CreateVideoPort: *mut core::ffi::c_void,
pub FlipVideoPort: *mut core::ffi::c_void,
pub GetVideoPortBandwidth: *mut core::ffi::c_void,
pub GetVideoPortInputFormats: *mut core::ffi::c_void,
pub GetVideoPortOutputFormats: *mut core::ffi::c_void,
pub lpReserved1: *mut core::ffi::c_void,
pub GetVideoPortField: *mut core::ffi::c_void,
pub GetVideoPortLine: *mut core::ffi::c_void,
pub GetVideoPortConnectInfo: *mut core::ffi::c_void,
pub DestroyVideoPort: *mut core::ffi::c_void,
pub GetVideoPortFlipStatus: *mut core::ffi::c_void,
pub UpdateVideoPort: *mut core::ffi::c_void,
pub WaitForVideoPortSync: *mut core::ffi::c_void,
pub GetVideoSignalStatus: *mut core::ffi::c_void,
pub ColorControl: *mut core::ffi::c_void,
}
#[repr(C)]
pub struct DDHAL_DDCOLORCONTROLCALLBACKS {
pub dwSize: u32,
pub dwFlags: u32,
pub ColorControl: *mut core::ffi::c_void,
}
#[repr(C)]
pub struct DDHAL_DDMISCELLANEOUSCALLBACKS {
pub dwSize: u32,
pub dwFlags: u32,
pub GetAvailDriverMemory: *mut core::ffi::c_void,
pub UpdateNonLocalHeap: *mut core::ffi::c_void,
pub GetHeapAlignment: *mut core::ffi::c_void,
pub GetSysmemBltStatus: *mut core::ffi::c_void,
}
#[repr(C)]
pub struct DDHAL_DDKERNELCALLBACKS {
pub dwSize: u32,
pub dwFlags: u32,
pub SyncSurfaceData: *mut core::ffi::c_void,
pub SyncVideoPortData: *mut core::ffi::c_void,
}
#[repr(C)]
pub struct DDHAL_DDMOTIONCOMPCALLBACKS {
pub dwSize: u32,
pub dwFlags: u32,
pub GetMoCompGuids: *mut core::ffi::c_void,
pub GetMoCompFormats: *mut core::ffi::c_void,
pub CreateMoComp: *mut core::ffi::c_void,
pub GetMoCompBuffInfo: *mut core::ffi::c_void,
pub GetInternalMoCompInfo: *mut core::ffi::c_void,
pub BeginMoCompFrame: *mut core::ffi::c_void,
pub EndMoCompFrame: *mut core::ffi::c_void,
pub RenderMoComp: *mut core::ffi::c_void,
pub QueryMoCompStatus: *mut core::ffi::c_void,
pub DestroyMoComp: *mut core::ffi::c_void,
}
#[repr(C)]
pub struct DDHAL_CALLBACKS {
pub cbDDCallbacks: DDHAL_DDCALLBACKS,
pub cbDDSurfaceCallbacks: DDHAL_DDSURFACECALLBACKS,
pub cbDDPaletteCallbacks: DDHAL_DDPALETTECALLBACKS,
pub HALDD: DDHAL_DDCALLBACKS,
pub HALDDSurface: DDHAL_DDSURFACECALLBACKS,
pub HALDDPalette: DDHAL_DDPALETTECALLBACKS,
pub HELDD: DDHAL_DDCALLBACKS,
pub HELDDSurface: DDHAL_DDSURFACECALLBACKS,
pub HELDDPalette: DDHAL_DDPALETTECALLBACKS,
pub cbDDExeBufCallbacks: DDHAL_DDEXEBUFCALLBACKS,
pub HALDDExeBuf: DDHAL_DDEXEBUFCALLBACKS,
pub HELDDExeBuf: DDHAL_DDEXEBUFCALLBACKS,
pub cbDDVideoPortCallbacks: DDHAL_DDVIDEOPORTCALLBACKS,
pub HALDDVideoPort: DDHAL_DDVIDEOPORTCALLBACKS,
pub cbDDColorControlCallbacks: DDHAL_DDCOLORCONTROLCALLBACKS,
pub HALDDColorControl: DDHAL_DDCOLORCONTROLCALLBACKS,
pub cbDDMiscellaneousCallbacks: DDHAL_DDMISCELLANEOUSCALLBACKS,
pub HALDDMiscellaneous: DDHAL_DDMISCELLANEOUSCALLBACKS,
pub cbDDKernelCallbacks: DDHAL_DDKERNELCALLBACKS,
pub HALDDKernel: DDHAL_DDKERNELCALLBACKS,
pub cbDDMotionCompCallbacks: DDHAL_DDMOTIONCOMPCALLBACKS,
pub HALDDMotionComp: DDHAL_DDMOTIONCOMPCALLBACKS,
}import "golang.org/x/sys/windows"
type DDHAL_DDCALLBACKS struct {
dwSize uint32
dwFlags uint32
DestroyDriver uintptr
CreateSurface uintptr
SetColorKey uintptr
SetMode uintptr
WaitForVerticalBlank uintptr
CanCreateSurface uintptr
CreatePalette uintptr
GetScanLine uintptr
SetExclusiveMode uintptr
FlipToGDISurface uintptr
}
type DDHAL_DDSURFACECALLBACKS struct {
dwSize uint32
dwFlags uint32
DestroySurface uintptr
Flip uintptr
SetClipList uintptr
Lock uintptr
Unlock uintptr
Blt uintptr
SetColorKey uintptr
AddAttachedSurface uintptr
GetBltStatus uintptr
GetFlipStatus uintptr
UpdateOverlay uintptr
SetOverlayPosition uintptr
reserved4 uintptr
SetPalette uintptr
}
type DDHAL_DDPALETTECALLBACKS struct {
dwSize uint32
dwFlags uint32
DestroyPalette uintptr
SetEntries uintptr
}
type DDHAL_DDEXEBUFCALLBACKS struct {
dwSize uint32
dwFlags uint32
CanCreateExecuteBuffer uintptr
CreateExecuteBuffer uintptr
DestroyExecuteBuffer uintptr
LockExecuteBuffer uintptr
UnlockExecuteBuffer uintptr
}
type DDHAL_DDVIDEOPORTCALLBACKS struct {
dwSize uint32
dwFlags uint32
CanCreateVideoPort uintptr
CreateVideoPort uintptr
FlipVideoPort uintptr
GetVideoPortBandwidth uintptr
GetVideoPortInputFormats uintptr
GetVideoPortOutputFormats uintptr
lpReserved1 uintptr
GetVideoPortField uintptr
GetVideoPortLine uintptr
GetVideoPortConnectInfo uintptr
DestroyVideoPort uintptr
GetVideoPortFlipStatus uintptr
UpdateVideoPort uintptr
WaitForVideoPortSync uintptr
GetVideoSignalStatus uintptr
ColorControl uintptr
}
type DDHAL_DDCOLORCONTROLCALLBACKS struct {
dwSize uint32
dwFlags uint32
ColorControl uintptr
}
type DDHAL_DDMISCELLANEOUSCALLBACKS struct {
dwSize uint32
dwFlags uint32
GetAvailDriverMemory uintptr
UpdateNonLocalHeap uintptr
GetHeapAlignment uintptr
GetSysmemBltStatus uintptr
}
type DDHAL_DDKERNELCALLBACKS struct {
dwSize uint32
dwFlags uint32
SyncSurfaceData uintptr
SyncVideoPortData uintptr
}
type DDHAL_DDMOTIONCOMPCALLBACKS struct {
dwSize uint32
dwFlags uint32
GetMoCompGuids uintptr
GetMoCompFormats uintptr
CreateMoComp uintptr
GetMoCompBuffInfo uintptr
GetInternalMoCompInfo uintptr
BeginMoCompFrame uintptr
EndMoCompFrame uintptr
RenderMoComp uintptr
QueryMoCompStatus uintptr
DestroyMoComp uintptr
}
type DDHAL_CALLBACKS struct {
cbDDCallbacks DDHAL_DDCALLBACKS
cbDDSurfaceCallbacks DDHAL_DDSURFACECALLBACKS
cbDDPaletteCallbacks DDHAL_DDPALETTECALLBACKS
HALDD DDHAL_DDCALLBACKS
HALDDSurface DDHAL_DDSURFACECALLBACKS
HALDDPalette DDHAL_DDPALETTECALLBACKS
HELDD DDHAL_DDCALLBACKS
HELDDSurface DDHAL_DDSURFACECALLBACKS
HELDDPalette DDHAL_DDPALETTECALLBACKS
cbDDExeBufCallbacks DDHAL_DDEXEBUFCALLBACKS
HALDDExeBuf DDHAL_DDEXEBUFCALLBACKS
HELDDExeBuf DDHAL_DDEXEBUFCALLBACKS
cbDDVideoPortCallbacks DDHAL_DDVIDEOPORTCALLBACKS
HALDDVideoPort DDHAL_DDVIDEOPORTCALLBACKS
cbDDColorControlCallbacks DDHAL_DDCOLORCONTROLCALLBACKS
HALDDColorControl DDHAL_DDCOLORCONTROLCALLBACKS
cbDDMiscellaneousCallbacks DDHAL_DDMISCELLANEOUSCALLBACKS
HALDDMiscellaneous DDHAL_DDMISCELLANEOUSCALLBACKS
cbDDKernelCallbacks DDHAL_DDKERNELCALLBACKS
HALDDKernel DDHAL_DDKERNELCALLBACKS
cbDDMotionCompCallbacks DDHAL_DDMOTIONCOMPCALLBACKS
HALDDMotionComp DDHAL_DDMOTIONCOMPCALLBACKS
}type
DDHAL_DDCALLBACKS = record
dwSize: DWORD;
dwFlags: DWORD;
DestroyDriver: Pointer;
CreateSurface: Pointer;
SetColorKey: Pointer;
SetMode: Pointer;
WaitForVerticalBlank: Pointer;
CanCreateSurface: Pointer;
CreatePalette: Pointer;
GetScanLine: Pointer;
SetExclusiveMode: Pointer;
FlipToGDISurface: Pointer;
end;
DDHAL_DDSURFACECALLBACKS = record
dwSize: DWORD;
dwFlags: DWORD;
DestroySurface: Pointer;
Flip: Pointer;
SetClipList: Pointer;
Lock: Pointer;
Unlock: Pointer;
Blt: Pointer;
SetColorKey: Pointer;
AddAttachedSurface: Pointer;
GetBltStatus: Pointer;
GetFlipStatus: Pointer;
UpdateOverlay: Pointer;
SetOverlayPosition: Pointer;
reserved4: Pointer;
SetPalette: Pointer;
end;
DDHAL_DDPALETTECALLBACKS = record
dwSize: DWORD;
dwFlags: DWORD;
DestroyPalette: Pointer;
SetEntries: Pointer;
end;
DDHAL_DDEXEBUFCALLBACKS = record
dwSize: DWORD;
dwFlags: DWORD;
CanCreateExecuteBuffer: Pointer;
CreateExecuteBuffer: Pointer;
DestroyExecuteBuffer: Pointer;
LockExecuteBuffer: Pointer;
UnlockExecuteBuffer: Pointer;
end;
DDHAL_DDVIDEOPORTCALLBACKS = record
dwSize: DWORD;
dwFlags: DWORD;
CanCreateVideoPort: Pointer;
CreateVideoPort: Pointer;
FlipVideoPort: Pointer;
GetVideoPortBandwidth: Pointer;
GetVideoPortInputFormats: Pointer;
GetVideoPortOutputFormats: Pointer;
lpReserved1: Pointer;
GetVideoPortField: Pointer;
GetVideoPortLine: Pointer;
GetVideoPortConnectInfo: Pointer;
DestroyVideoPort: Pointer;
GetVideoPortFlipStatus: Pointer;
UpdateVideoPort: Pointer;
WaitForVideoPortSync: Pointer;
GetVideoSignalStatus: Pointer;
ColorControl: Pointer;
end;
DDHAL_DDCOLORCONTROLCALLBACKS = record
dwSize: DWORD;
dwFlags: DWORD;
ColorControl: Pointer;
end;
DDHAL_DDMISCELLANEOUSCALLBACKS = record
dwSize: DWORD;
dwFlags: DWORD;
GetAvailDriverMemory: Pointer;
UpdateNonLocalHeap: Pointer;
GetHeapAlignment: Pointer;
GetSysmemBltStatus: Pointer;
end;
DDHAL_DDKERNELCALLBACKS = record
dwSize: DWORD;
dwFlags: DWORD;
SyncSurfaceData: Pointer;
SyncVideoPortData: Pointer;
end;
DDHAL_DDMOTIONCOMPCALLBACKS = record
dwSize: DWORD;
dwFlags: DWORD;
GetMoCompGuids: Pointer;
GetMoCompFormats: Pointer;
CreateMoComp: Pointer;
GetMoCompBuffInfo: Pointer;
GetInternalMoCompInfo: Pointer;
BeginMoCompFrame: Pointer;
EndMoCompFrame: Pointer;
RenderMoComp: Pointer;
QueryMoCompStatus: Pointer;
DestroyMoComp: Pointer;
end;
DDHAL_CALLBACKS = record
cbDDCallbacks: DDHAL_DDCALLBACKS;
cbDDSurfaceCallbacks: DDHAL_DDSURFACECALLBACKS;
cbDDPaletteCallbacks: DDHAL_DDPALETTECALLBACKS;
HALDD: DDHAL_DDCALLBACKS;
HALDDSurface: DDHAL_DDSURFACECALLBACKS;
HALDDPalette: DDHAL_DDPALETTECALLBACKS;
HELDD: DDHAL_DDCALLBACKS;
HELDDSurface: DDHAL_DDSURFACECALLBACKS;
HELDDPalette: DDHAL_DDPALETTECALLBACKS;
cbDDExeBufCallbacks: DDHAL_DDEXEBUFCALLBACKS;
HALDDExeBuf: DDHAL_DDEXEBUFCALLBACKS;
HELDDExeBuf: DDHAL_DDEXEBUFCALLBACKS;
cbDDVideoPortCallbacks: DDHAL_DDVIDEOPORTCALLBACKS;
HALDDVideoPort: DDHAL_DDVIDEOPORTCALLBACKS;
cbDDColorControlCallbacks: DDHAL_DDCOLORCONTROLCALLBACKS;
HALDDColorControl: DDHAL_DDCOLORCONTROLCALLBACKS;
cbDDMiscellaneousCallbacks: DDHAL_DDMISCELLANEOUSCALLBACKS;
HALDDMiscellaneous: DDHAL_DDMISCELLANEOUSCALLBACKS;
cbDDKernelCallbacks: DDHAL_DDKERNELCALLBACKS;
HALDDKernel: DDHAL_DDKERNELCALLBACKS;
cbDDMotionCompCallbacks: DDHAL_DDMOTIONCOMPCALLBACKS;
HALDDMotionComp: DDHAL_DDMOTIONCOMPCALLBACKS;
end;const DDHAL_DDCALLBACKS = extern struct {
dwSize: u32,
dwFlags: u32,
DestroyDriver: ?*anyopaque,
CreateSurface: ?*anyopaque,
SetColorKey: ?*anyopaque,
SetMode: ?*anyopaque,
WaitForVerticalBlank: ?*anyopaque,
CanCreateSurface: ?*anyopaque,
CreatePalette: ?*anyopaque,
GetScanLine: ?*anyopaque,
SetExclusiveMode: ?*anyopaque,
FlipToGDISurface: ?*anyopaque,
};
const DDHAL_DDSURFACECALLBACKS = extern struct {
dwSize: u32,
dwFlags: u32,
DestroySurface: ?*anyopaque,
Flip: ?*anyopaque,
SetClipList: ?*anyopaque,
Lock: ?*anyopaque,
Unlock: ?*anyopaque,
Blt: ?*anyopaque,
SetColorKey: ?*anyopaque,
AddAttachedSurface: ?*anyopaque,
GetBltStatus: ?*anyopaque,
GetFlipStatus: ?*anyopaque,
UpdateOverlay: ?*anyopaque,
SetOverlayPosition: ?*anyopaque,
reserved4: ?*anyopaque,
SetPalette: ?*anyopaque,
};
const DDHAL_DDPALETTECALLBACKS = extern struct {
dwSize: u32,
dwFlags: u32,
DestroyPalette: ?*anyopaque,
SetEntries: ?*anyopaque,
};
const DDHAL_DDEXEBUFCALLBACKS = extern struct {
dwSize: u32,
dwFlags: u32,
CanCreateExecuteBuffer: ?*anyopaque,
CreateExecuteBuffer: ?*anyopaque,
DestroyExecuteBuffer: ?*anyopaque,
LockExecuteBuffer: ?*anyopaque,
UnlockExecuteBuffer: ?*anyopaque,
};
const DDHAL_DDVIDEOPORTCALLBACKS = extern struct {
dwSize: u32,
dwFlags: u32,
CanCreateVideoPort: ?*anyopaque,
CreateVideoPort: ?*anyopaque,
FlipVideoPort: ?*anyopaque,
GetVideoPortBandwidth: ?*anyopaque,
GetVideoPortInputFormats: ?*anyopaque,
GetVideoPortOutputFormats: ?*anyopaque,
lpReserved1: ?*anyopaque,
GetVideoPortField: ?*anyopaque,
GetVideoPortLine: ?*anyopaque,
GetVideoPortConnectInfo: ?*anyopaque,
DestroyVideoPort: ?*anyopaque,
GetVideoPortFlipStatus: ?*anyopaque,
UpdateVideoPort: ?*anyopaque,
WaitForVideoPortSync: ?*anyopaque,
GetVideoSignalStatus: ?*anyopaque,
ColorControl: ?*anyopaque,
};
const DDHAL_DDCOLORCONTROLCALLBACKS = extern struct {
dwSize: u32,
dwFlags: u32,
ColorControl: ?*anyopaque,
};
const DDHAL_DDMISCELLANEOUSCALLBACKS = extern struct {
dwSize: u32,
dwFlags: u32,
GetAvailDriverMemory: ?*anyopaque,
UpdateNonLocalHeap: ?*anyopaque,
GetHeapAlignment: ?*anyopaque,
GetSysmemBltStatus: ?*anyopaque,
};
const DDHAL_DDKERNELCALLBACKS = extern struct {
dwSize: u32,
dwFlags: u32,
SyncSurfaceData: ?*anyopaque,
SyncVideoPortData: ?*anyopaque,
};
const DDHAL_DDMOTIONCOMPCALLBACKS = extern struct {
dwSize: u32,
dwFlags: u32,
GetMoCompGuids: ?*anyopaque,
GetMoCompFormats: ?*anyopaque,
CreateMoComp: ?*anyopaque,
GetMoCompBuffInfo: ?*anyopaque,
GetInternalMoCompInfo: ?*anyopaque,
BeginMoCompFrame: ?*anyopaque,
EndMoCompFrame: ?*anyopaque,
RenderMoComp: ?*anyopaque,
QueryMoCompStatus: ?*anyopaque,
DestroyMoComp: ?*anyopaque,
};
const DDHAL_CALLBACKS = extern struct {
cbDDCallbacks: DDHAL_DDCALLBACKS,
cbDDSurfaceCallbacks: DDHAL_DDSURFACECALLBACKS,
cbDDPaletteCallbacks: DDHAL_DDPALETTECALLBACKS,
HALDD: DDHAL_DDCALLBACKS,
HALDDSurface: DDHAL_DDSURFACECALLBACKS,
HALDDPalette: DDHAL_DDPALETTECALLBACKS,
HELDD: DDHAL_DDCALLBACKS,
HELDDSurface: DDHAL_DDSURFACECALLBACKS,
HELDDPalette: DDHAL_DDPALETTECALLBACKS,
cbDDExeBufCallbacks: DDHAL_DDEXEBUFCALLBACKS,
HALDDExeBuf: DDHAL_DDEXEBUFCALLBACKS,
HELDDExeBuf: DDHAL_DDEXEBUFCALLBACKS,
cbDDVideoPortCallbacks: DDHAL_DDVIDEOPORTCALLBACKS,
HALDDVideoPort: DDHAL_DDVIDEOPORTCALLBACKS,
cbDDColorControlCallbacks: DDHAL_DDCOLORCONTROLCALLBACKS,
HALDDColorControl: DDHAL_DDCOLORCONTROLCALLBACKS,
cbDDMiscellaneousCallbacks: DDHAL_DDMISCELLANEOUSCALLBACKS,
HALDDMiscellaneous: DDHAL_DDMISCELLANEOUSCALLBACKS,
cbDDKernelCallbacks: DDHAL_DDKERNELCALLBACKS,
HALDDKernel: DDHAL_DDKERNELCALLBACKS,
cbDDMotionCompCallbacks: DDHAL_DDMOTIONCOMPCALLBACKS,
HALDDMotionComp: DDHAL_DDMOTIONCOMPCALLBACKS,
};type
DDHAL_DDCALLBACKS {.bycopy.} = object
dwSize: uint32
dwFlags: uint32
DestroyDriver: pointer
CreateSurface: pointer
SetColorKey: pointer
SetMode: pointer
WaitForVerticalBlank: pointer
CanCreateSurface: pointer
CreatePalette: pointer
GetScanLine: pointer
SetExclusiveMode: pointer
FlipToGDISurface: pointer
DDHAL_DDSURFACECALLBACKS {.bycopy.} = object
dwSize: uint32
dwFlags: uint32
DestroySurface: pointer
Flip: pointer
SetClipList: pointer
Lock: pointer
Unlock: pointer
Blt: pointer
SetColorKey: pointer
AddAttachedSurface: pointer
GetBltStatus: pointer
GetFlipStatus: pointer
UpdateOverlay: pointer
SetOverlayPosition: pointer
reserved4: pointer
SetPalette: pointer
DDHAL_DDPALETTECALLBACKS {.bycopy.} = object
dwSize: uint32
dwFlags: uint32
DestroyPalette: pointer
SetEntries: pointer
DDHAL_DDEXEBUFCALLBACKS {.bycopy.} = object
dwSize: uint32
dwFlags: uint32
CanCreateExecuteBuffer: pointer
CreateExecuteBuffer: pointer
DestroyExecuteBuffer: pointer
LockExecuteBuffer: pointer
UnlockExecuteBuffer: pointer
DDHAL_DDVIDEOPORTCALLBACKS {.bycopy.} = object
dwSize: uint32
dwFlags: uint32
CanCreateVideoPort: pointer
CreateVideoPort: pointer
FlipVideoPort: pointer
GetVideoPortBandwidth: pointer
GetVideoPortInputFormats: pointer
GetVideoPortOutputFormats: pointer
lpReserved1: pointer
GetVideoPortField: pointer
GetVideoPortLine: pointer
GetVideoPortConnectInfo: pointer
DestroyVideoPort: pointer
GetVideoPortFlipStatus: pointer
UpdateVideoPort: pointer
WaitForVideoPortSync: pointer
GetVideoSignalStatus: pointer
ColorControl: pointer
DDHAL_DDCOLORCONTROLCALLBACKS {.bycopy.} = object
dwSize: uint32
dwFlags: uint32
ColorControl: pointer
DDHAL_DDMISCELLANEOUSCALLBACKS {.bycopy.} = object
dwSize: uint32
dwFlags: uint32
GetAvailDriverMemory: pointer
UpdateNonLocalHeap: pointer
GetHeapAlignment: pointer
GetSysmemBltStatus: pointer
DDHAL_DDKERNELCALLBACKS {.bycopy.} = object
dwSize: uint32
dwFlags: uint32
SyncSurfaceData: pointer
SyncVideoPortData: pointer
DDHAL_DDMOTIONCOMPCALLBACKS {.bycopy.} = object
dwSize: uint32
dwFlags: uint32
GetMoCompGuids: pointer
GetMoCompFormats: pointer
CreateMoComp: pointer
GetMoCompBuffInfo: pointer
GetInternalMoCompInfo: pointer
BeginMoCompFrame: pointer
EndMoCompFrame: pointer
RenderMoComp: pointer
QueryMoCompStatus: pointer
DestroyMoComp: pointer
DDHAL_CALLBACKS {.bycopy.} = object
cbDDCallbacks: DDHAL_DDCALLBACKS
cbDDSurfaceCallbacks: DDHAL_DDSURFACECALLBACKS
cbDDPaletteCallbacks: DDHAL_DDPALETTECALLBACKS
HALDD: DDHAL_DDCALLBACKS
HALDDSurface: DDHAL_DDSURFACECALLBACKS
HALDDPalette: DDHAL_DDPALETTECALLBACKS
HELDD: DDHAL_DDCALLBACKS
HELDDSurface: DDHAL_DDSURFACECALLBACKS
HELDDPalette: DDHAL_DDPALETTECALLBACKS
cbDDExeBufCallbacks: DDHAL_DDEXEBUFCALLBACKS
HALDDExeBuf: DDHAL_DDEXEBUFCALLBACKS
HELDDExeBuf: DDHAL_DDEXEBUFCALLBACKS
cbDDVideoPortCallbacks: DDHAL_DDVIDEOPORTCALLBACKS
HALDDVideoPort: DDHAL_DDVIDEOPORTCALLBACKS
cbDDColorControlCallbacks: DDHAL_DDCOLORCONTROLCALLBACKS
HALDDColorControl: DDHAL_DDCOLORCONTROLCALLBACKS
cbDDMiscellaneousCallbacks: DDHAL_DDMISCELLANEOUSCALLBACKS
HALDDMiscellaneous: DDHAL_DDMISCELLANEOUSCALLBACKS
cbDDKernelCallbacks: DDHAL_DDKERNELCALLBACKS
HALDDKernel: DDHAL_DDKERNELCALLBACKS
cbDDMotionCompCallbacks: DDHAL_DDMOTIONCOMPCALLBACKS
HALDDMotionComp: DDHAL_DDMOTIONCOMPCALLBACKSstruct DDHAL_DDCALLBACKS
{
uint dwSize;
uint dwFlags;
void* DestroyDriver;
void* CreateSurface;
void* SetColorKey;
void* SetMode;
void* WaitForVerticalBlank;
void* CanCreateSurface;
void* CreatePalette;
void* GetScanLine;
void* SetExclusiveMode;
void* FlipToGDISurface;
}
struct DDHAL_DDSURFACECALLBACKS
{
uint dwSize;
uint dwFlags;
void* DestroySurface;
void* Flip;
void* SetClipList;
void* Lock;
void* Unlock;
void* Blt;
void* SetColorKey;
void* AddAttachedSurface;
void* GetBltStatus;
void* GetFlipStatus;
void* UpdateOverlay;
void* SetOverlayPosition;
void* reserved4;
void* SetPalette;
}
struct DDHAL_DDPALETTECALLBACKS
{
uint dwSize;
uint dwFlags;
void* DestroyPalette;
void* SetEntries;
}
struct DDHAL_DDEXEBUFCALLBACKS
{
uint dwSize;
uint dwFlags;
void* CanCreateExecuteBuffer;
void* CreateExecuteBuffer;
void* DestroyExecuteBuffer;
void* LockExecuteBuffer;
void* UnlockExecuteBuffer;
}
struct DDHAL_DDVIDEOPORTCALLBACKS
{
uint dwSize;
uint dwFlags;
void* CanCreateVideoPort;
void* CreateVideoPort;
void* FlipVideoPort;
void* GetVideoPortBandwidth;
void* GetVideoPortInputFormats;
void* GetVideoPortOutputFormats;
void* lpReserved1;
void* GetVideoPortField;
void* GetVideoPortLine;
void* GetVideoPortConnectInfo;
void* DestroyVideoPort;
void* GetVideoPortFlipStatus;
void* UpdateVideoPort;
void* WaitForVideoPortSync;
void* GetVideoSignalStatus;
void* ColorControl;
}
struct DDHAL_DDCOLORCONTROLCALLBACKS
{
uint dwSize;
uint dwFlags;
void* ColorControl;
}
struct DDHAL_DDMISCELLANEOUSCALLBACKS
{
uint dwSize;
uint dwFlags;
void* GetAvailDriverMemory;
void* UpdateNonLocalHeap;
void* GetHeapAlignment;
void* GetSysmemBltStatus;
}
struct DDHAL_DDKERNELCALLBACKS
{
uint dwSize;
uint dwFlags;
void* SyncSurfaceData;
void* SyncVideoPortData;
}
struct DDHAL_DDMOTIONCOMPCALLBACKS
{
uint dwSize;
uint dwFlags;
void* GetMoCompGuids;
void* GetMoCompFormats;
void* CreateMoComp;
void* GetMoCompBuffInfo;
void* GetInternalMoCompInfo;
void* BeginMoCompFrame;
void* EndMoCompFrame;
void* RenderMoComp;
void* QueryMoCompStatus;
void* DestroyMoComp;
}
struct DDHAL_CALLBACKS
{
DDHAL_DDCALLBACKS cbDDCallbacks;
DDHAL_DDSURFACECALLBACKS cbDDSurfaceCallbacks;
DDHAL_DDPALETTECALLBACKS cbDDPaletteCallbacks;
DDHAL_DDCALLBACKS HALDD;
DDHAL_DDSURFACECALLBACKS HALDDSurface;
DDHAL_DDPALETTECALLBACKS HALDDPalette;
DDHAL_DDCALLBACKS HELDD;
DDHAL_DDSURFACECALLBACKS HELDDSurface;
DDHAL_DDPALETTECALLBACKS HELDDPalette;
DDHAL_DDEXEBUFCALLBACKS cbDDExeBufCallbacks;
DDHAL_DDEXEBUFCALLBACKS HALDDExeBuf;
DDHAL_DDEXEBUFCALLBACKS HELDDExeBuf;
DDHAL_DDVIDEOPORTCALLBACKS cbDDVideoPortCallbacks;
DDHAL_DDVIDEOPORTCALLBACKS HALDDVideoPort;
DDHAL_DDCOLORCONTROLCALLBACKS cbDDColorControlCallbacks;
DDHAL_DDCOLORCONTROLCALLBACKS HALDDColorControl;
DDHAL_DDMISCELLANEOUSCALLBACKS cbDDMiscellaneousCallbacks;
DDHAL_DDMISCELLANEOUSCALLBACKS HALDDMiscellaneous;
DDHAL_DDKERNELCALLBACKS cbDDKernelCallbacks;
DDHAL_DDKERNELCALLBACKS HALDDKernel;
DDHAL_DDMOTIONCOMPCALLBACKS cbDDMotionCompCallbacks;
DDHAL_DDMOTIONCOMPCALLBACKS HALDDMotionComp;
}HSP用 定義
HSP3.7/3.8 は構造体機能が無いため4byte整数配列(dim)+peek/poke で操作(32/64bitでサイズ・位置が異なる場合はタブで分割)。IronHSP は NSTRUCT(#defstruct/stdim/->)で32/64bit共通。
; HSP3.7/3.8 は構造体機能が無いため、4byte整数の配列変数で操作します。(x86 レイアウト)
; DDHAL_CALLBACKS サイズ: 812 バイト(x86)
dim st, 203 ; 4byte整数×203(構造体サイズ 812 / 4 切り上げ)
; cbDDCallbacks : DDHAL_DDCALLBACKS (+0, 48byte) varptr(st)+0 を基点に操作(48byte:入れ子/配列)
; cbDDSurfaceCallbacks : DDHAL_DDSURFACECALLBACKS (+48, 64byte) varptr(st)+48 を基点に操作(64byte:入れ子/配列)
; cbDDPaletteCallbacks : DDHAL_DDPALETTECALLBACKS (+112, 16byte) varptr(st)+112 を基点に操作(16byte:入れ子/配列)
; HALDD : DDHAL_DDCALLBACKS (+128, 48byte) varptr(st)+128 を基点に操作(48byte:入れ子/配列)
; HALDDSurface : DDHAL_DDSURFACECALLBACKS (+176, 64byte) varptr(st)+176 を基点に操作(64byte:入れ子/配列)
; HALDDPalette : DDHAL_DDPALETTECALLBACKS (+240, 16byte) varptr(st)+240 を基点に操作(16byte:入れ子/配列)
; HELDD : DDHAL_DDCALLBACKS (+256, 48byte) varptr(st)+256 を基点に操作(48byte:入れ子/配列)
; HELDDSurface : DDHAL_DDSURFACECALLBACKS (+304, 64byte) varptr(st)+304 を基点に操作(64byte:入れ子/配列)
; HELDDPalette : DDHAL_DDPALETTECALLBACKS (+368, 16byte) varptr(st)+368 を基点に操作(16byte:入れ子/配列)
; cbDDExeBufCallbacks : DDHAL_DDEXEBUFCALLBACKS (+384, 28byte) varptr(st)+384 を基点に操作(28byte:入れ子/配列)
; HALDDExeBuf : DDHAL_DDEXEBUFCALLBACKS (+412, 28byte) varptr(st)+412 を基点に操作(28byte:入れ子/配列)
; HELDDExeBuf : DDHAL_DDEXEBUFCALLBACKS (+440, 28byte) varptr(st)+440 を基点に操作(28byte:入れ子/配列)
; cbDDVideoPortCallbacks : DDHAL_DDVIDEOPORTCALLBACKS (+468, 72byte) varptr(st)+468 を基点に操作(72byte:入れ子/配列)
; HALDDVideoPort : DDHAL_DDVIDEOPORTCALLBACKS (+540, 72byte) varptr(st)+540 を基点に操作(72byte:入れ子/配列)
; cbDDColorControlCallbacks : DDHAL_DDCOLORCONTROLCALLBACKS (+612, 12byte) varptr(st)+612 を基点に操作(12byte:入れ子/配列)
; HALDDColorControl : DDHAL_DDCOLORCONTROLCALLBACKS (+624, 12byte) varptr(st)+624 を基点に操作(12byte:入れ子/配列)
; cbDDMiscellaneousCallbacks : DDHAL_DDMISCELLANEOUSCALLBACKS (+636, 24byte) varptr(st)+636 を基点に操作(24byte:入れ子/配列)
; HALDDMiscellaneous : DDHAL_DDMISCELLANEOUSCALLBACKS (+660, 24byte) varptr(st)+660 を基点に操作(24byte:入れ子/配列)
; cbDDKernelCallbacks : DDHAL_DDKERNELCALLBACKS (+684, 16byte) varptr(st)+684 を基点に操作(16byte:入れ子/配列)
; HALDDKernel : DDHAL_DDKERNELCALLBACKS (+700, 16byte) varptr(st)+700 を基点に操作(16byte:入れ子/配列)
; cbDDMotionCompCallbacks : DDHAL_DDMOTIONCOMPCALLBACKS (+716, 48byte) varptr(st)+716 を基点に操作(48byte:入れ子/配列)
; HALDDMotionComp : DDHAL_DDMOTIONCOMPCALLBACKS (+764, 48byte) varptr(st)+764 を基点に操作(48byte:入れ子/配列)
; ※4byte境界の整数は添字 st.N(N=オフセット/4)で読み書き可。それ以外は peek/poke 系を使用。; HSP3.7/3.8 は構造体機能が無いため、4byte整数の配列変数で操作します。(x64 レイアウト)
; DDHAL_CALLBACKS サイズ: 1448 バイト(x64)
dim st, 362 ; 4byte整数×362(構造体サイズ 1448 / 4 切り上げ)
; cbDDCallbacks : DDHAL_DDCALLBACKS (+0, 88byte) varptr(st)+0 を基点に操作(88byte:入れ子/配列)
; cbDDSurfaceCallbacks : DDHAL_DDSURFACECALLBACKS (+88, 120byte) varptr(st)+88 を基点に操作(120byte:入れ子/配列)
; cbDDPaletteCallbacks : DDHAL_DDPALETTECALLBACKS (+208, 24byte) varptr(st)+208 を基点に操作(24byte:入れ子/配列)
; HALDD : DDHAL_DDCALLBACKS (+232, 88byte) varptr(st)+232 を基点に操作(88byte:入れ子/配列)
; HALDDSurface : DDHAL_DDSURFACECALLBACKS (+320, 120byte) varptr(st)+320 を基点に操作(120byte:入れ子/配列)
; HALDDPalette : DDHAL_DDPALETTECALLBACKS (+440, 24byte) varptr(st)+440 を基点に操作(24byte:入れ子/配列)
; HELDD : DDHAL_DDCALLBACKS (+464, 88byte) varptr(st)+464 を基点に操作(88byte:入れ子/配列)
; HELDDSurface : DDHAL_DDSURFACECALLBACKS (+552, 120byte) varptr(st)+552 を基点に操作(120byte:入れ子/配列)
; HELDDPalette : DDHAL_DDPALETTECALLBACKS (+672, 24byte) varptr(st)+672 を基点に操作(24byte:入れ子/配列)
; cbDDExeBufCallbacks : DDHAL_DDEXEBUFCALLBACKS (+696, 48byte) varptr(st)+696 を基点に操作(48byte:入れ子/配列)
; HALDDExeBuf : DDHAL_DDEXEBUFCALLBACKS (+744, 48byte) varptr(st)+744 を基点に操作(48byte:入れ子/配列)
; HELDDExeBuf : DDHAL_DDEXEBUFCALLBACKS (+792, 48byte) varptr(st)+792 を基点に操作(48byte:入れ子/配列)
; cbDDVideoPortCallbacks : DDHAL_DDVIDEOPORTCALLBACKS (+840, 136byte) varptr(st)+840 を基点に操作(136byte:入れ子/配列)
; HALDDVideoPort : DDHAL_DDVIDEOPORTCALLBACKS (+976, 136byte) varptr(st)+976 を基点に操作(136byte:入れ子/配列)
; cbDDColorControlCallbacks : DDHAL_DDCOLORCONTROLCALLBACKS (+1112, 16byte) varptr(st)+1112 を基点に操作(16byte:入れ子/配列)
; HALDDColorControl : DDHAL_DDCOLORCONTROLCALLBACKS (+1128, 16byte) varptr(st)+1128 を基点に操作(16byte:入れ子/配列)
; cbDDMiscellaneousCallbacks : DDHAL_DDMISCELLANEOUSCALLBACKS (+1144, 40byte) varptr(st)+1144 を基点に操作(40byte:入れ子/配列)
; HALDDMiscellaneous : DDHAL_DDMISCELLANEOUSCALLBACKS (+1184, 40byte) varptr(st)+1184 を基点に操作(40byte:入れ子/配列)
; cbDDKernelCallbacks : DDHAL_DDKERNELCALLBACKS (+1224, 24byte) varptr(st)+1224 を基点に操作(24byte:入れ子/配列)
; HALDDKernel : DDHAL_DDKERNELCALLBACKS (+1248, 24byte) varptr(st)+1248 を基点に操作(24byte:入れ子/配列)
; cbDDMotionCompCallbacks : DDHAL_DDMOTIONCOMPCALLBACKS (+1272, 88byte) varptr(st)+1272 を基点に操作(88byte:入れ子/配列)
; HALDDMotionComp : DDHAL_DDMOTIONCOMPCALLBACKS (+1360, 88byte) varptr(st)+1360 を基点に操作(88byte:入れ子/配列)
; ※4byte境界の整数は添字 st.N(N=オフセット/4)で読み書き可。それ以外は peek/poke 系を使用。; IronHSP は NSTRUCT(構造体)をサポート。32bit/64bit どちらでも同じコードで動作します。
; ※GUID・入れ子構造体はデフォルト型でないため、依存する #defstruct を先に定義(下記に同梱)。
#defstruct global DDHAL_DDCALLBACKS
#field int dwSize
#field int dwFlags
#field intptr DestroyDriver
#field intptr CreateSurface
#field intptr SetColorKey
#field intptr SetMode
#field intptr WaitForVerticalBlank
#field intptr CanCreateSurface
#field intptr CreatePalette
#field intptr GetScanLine
#field intptr SetExclusiveMode
#field intptr FlipToGDISurface
#endstruct
#defstruct global DDHAL_DDSURFACECALLBACKS
#field int dwSize
#field int dwFlags
#field intptr DestroySurface
#field intptr Flip
#field intptr SetClipList
#field intptr Lock
#field intptr Unlock
#field intptr Blt
#field intptr SetColorKey
#field intptr AddAttachedSurface
#field intptr GetBltStatus
#field intptr GetFlipStatus
#field intptr UpdateOverlay
#field intptr SetOverlayPosition
#field intptr reserved4
#field intptr SetPalette
#endstruct
#defstruct global DDHAL_DDPALETTECALLBACKS
#field int dwSize
#field int dwFlags
#field intptr DestroyPalette
#field intptr SetEntries
#endstruct
#defstruct global DDHAL_DDEXEBUFCALLBACKS
#field int dwSize
#field int dwFlags
#field intptr CanCreateExecuteBuffer
#field intptr CreateExecuteBuffer
#field intptr DestroyExecuteBuffer
#field intptr LockExecuteBuffer
#field intptr UnlockExecuteBuffer
#endstruct
#defstruct global DDHAL_DDVIDEOPORTCALLBACKS
#field int dwSize
#field int dwFlags
#field intptr CanCreateVideoPort
#field intptr CreateVideoPort
#field intptr FlipVideoPort
#field intptr GetVideoPortBandwidth
#field intptr GetVideoPortInputFormats
#field intptr GetVideoPortOutputFormats
#field intptr lpReserved1
#field intptr GetVideoPortField
#field intptr GetVideoPortLine
#field intptr GetVideoPortConnectInfo
#field intptr DestroyVideoPort
#field intptr GetVideoPortFlipStatus
#field intptr UpdateVideoPort
#field intptr WaitForVideoPortSync
#field intptr GetVideoSignalStatus
#field intptr ColorControl
#endstruct
#defstruct global DDHAL_DDCOLORCONTROLCALLBACKS
#field int dwSize
#field int dwFlags
#field intptr ColorControl
#endstruct
#defstruct global DDHAL_DDMISCELLANEOUSCALLBACKS
#field int dwSize
#field int dwFlags
#field intptr GetAvailDriverMemory
#field intptr UpdateNonLocalHeap
#field intptr GetHeapAlignment
#field intptr GetSysmemBltStatus
#endstruct
#defstruct global DDHAL_DDKERNELCALLBACKS
#field int dwSize
#field int dwFlags
#field intptr SyncSurfaceData
#field intptr SyncVideoPortData
#endstruct
#defstruct global DDHAL_DDMOTIONCOMPCALLBACKS
#field int dwSize
#field int dwFlags
#field intptr GetMoCompGuids
#field intptr GetMoCompFormats
#field intptr CreateMoComp
#field intptr GetMoCompBuffInfo
#field intptr GetInternalMoCompInfo
#field intptr BeginMoCompFrame
#field intptr EndMoCompFrame
#field intptr RenderMoComp
#field intptr QueryMoCompStatus
#field intptr DestroyMoComp
#endstruct
#defstruct global DDHAL_CALLBACKS
#field DDHAL_DDCALLBACKS cbDDCallbacks
#field DDHAL_DDSURFACECALLBACKS cbDDSurfaceCallbacks
#field DDHAL_DDPALETTECALLBACKS cbDDPaletteCallbacks
#field DDHAL_DDCALLBACKS HALDD
#field DDHAL_DDSURFACECALLBACKS HALDDSurface
#field DDHAL_DDPALETTECALLBACKS HALDDPalette
#field DDHAL_DDCALLBACKS HELDD
#field DDHAL_DDSURFACECALLBACKS HELDDSurface
#field DDHAL_DDPALETTECALLBACKS HELDDPalette
#field DDHAL_DDEXEBUFCALLBACKS cbDDExeBufCallbacks
#field DDHAL_DDEXEBUFCALLBACKS HALDDExeBuf
#field DDHAL_DDEXEBUFCALLBACKS HELDDExeBuf
#field DDHAL_DDVIDEOPORTCALLBACKS cbDDVideoPortCallbacks
#field DDHAL_DDVIDEOPORTCALLBACKS HALDDVideoPort
#field DDHAL_DDCOLORCONTROLCALLBACKS cbDDColorControlCallbacks
#field DDHAL_DDCOLORCONTROLCALLBACKS HALDDColorControl
#field DDHAL_DDMISCELLANEOUSCALLBACKS cbDDMiscellaneousCallbacks
#field DDHAL_DDMISCELLANEOUSCALLBACKS HALDDMiscellaneous
#field DDHAL_DDKERNELCALLBACKS cbDDKernelCallbacks
#field DDHAL_DDKERNELCALLBACKS HALDDKernel
#field DDHAL_DDMOTIONCOMPCALLBACKS cbDDMotionCompCallbacks
#field DDHAL_DDMOTIONCOMPCALLBACKS HALDDMotionComp
#endstruct
stdim st, DDHAL_CALLBACKS ; NSTRUCT 変数を確保