Win32 API 日本語リファレンス
ホームGraphics.DirectDraw › DD_MORECAPS

DD_MORECAPS

構造体
サイズx64: 36 バイト / x86: 36 バイト

サイズ=各フィールドのバイト数(x64/x86 で異なる場合は x64/x86 と併記)。x64/x86 列=フィールドのバイトオフセット(HSPで dupptr / lpoke / wpoke 等に使用)。

フィールド

フィールドサイズx64x86説明
dwSizeDWORD4+0+0この構造体のサイズをバイト単位で示す。
dwAlphaCapsDWORD4+4+4アルファブレンドの能力を示すフラグ。
dwSVBAlphaCapsDWORD4+8+8システムメモリからビデオメモリへのBltにおけるアルファ能力を示すフラグ。
dwVSBAlphaCapsDWORD4+12+12ビデオメモリからシステムメモリへのBltにおけるアルファ能力を示すフラグ。
dwSSBAlphaCapsDWORD4+16+16システムメモリ間Bltにおけるアルファ能力を示すフラグ。
dwFilterCapsDWORD4+20+20ストレッチ時のフィルタ能力を示すフラグ。
dwSVBFilterCapsDWORD4+24+24システムからビデオへのBltにおけるフィルタ能力を示すフラグ。
dwVSBFilterCapsDWORD4+28+28ビデオからシステムへのBltにおけるフィルタ能力を示すフラグ。
dwSSBFilterCapsDWORD4+32+32システムメモリ間Bltにおけるフィルタ能力を示すフラグ。

各言語での定義

#include <windows.h>

// DD_MORECAPS  (x64 36 / x86 36 バイト)
typedef struct DD_MORECAPS {
    DWORD dwSize;
    DWORD dwAlphaCaps;
    DWORD dwSVBAlphaCaps;
    DWORD dwVSBAlphaCaps;
    DWORD dwSSBAlphaCaps;
    DWORD dwFilterCaps;
    DWORD dwSVBFilterCaps;
    DWORD dwVSBFilterCaps;
    DWORD dwSSBFilterCaps;
} DD_MORECAPS;
using System;
using System.Runtime.InteropServices;

[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct DD_MORECAPS
{
    public uint dwSize;
    public uint dwAlphaCaps;
    public uint dwSVBAlphaCaps;
    public uint dwVSBAlphaCaps;
    public uint dwSSBAlphaCaps;
    public uint dwFilterCaps;
    public uint dwSVBFilterCaps;
    public uint dwVSBFilterCaps;
    public uint dwSSBFilterCaps;
}
Imports System.Runtime.InteropServices

<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode)>
Public Structure DD_MORECAPS
    Public dwSize As UInteger
    Public dwAlphaCaps As UInteger
    Public dwSVBAlphaCaps As UInteger
    Public dwVSBAlphaCaps As UInteger
    Public dwSSBAlphaCaps As UInteger
    Public dwFilterCaps As UInteger
    Public dwSVBFilterCaps As UInteger
    Public dwVSBFilterCaps As UInteger
    Public dwSSBFilterCaps As UInteger
End Structure
import ctypes
from ctypes import wintypes

class DD_MORECAPS(ctypes.Structure):
    _fields_ = [
        ("dwSize", wintypes.DWORD),
        ("dwAlphaCaps", wintypes.DWORD),
        ("dwSVBAlphaCaps", wintypes.DWORD),
        ("dwVSBAlphaCaps", wintypes.DWORD),
        ("dwSSBAlphaCaps", wintypes.DWORD),
        ("dwFilterCaps", wintypes.DWORD),
        ("dwSVBFilterCaps", wintypes.DWORD),
        ("dwVSBFilterCaps", wintypes.DWORD),
        ("dwSSBFilterCaps", wintypes.DWORD),
    ]
#[repr(C)]
pub struct DD_MORECAPS {
    pub dwSize: u32,
    pub dwAlphaCaps: u32,
    pub dwSVBAlphaCaps: u32,
    pub dwVSBAlphaCaps: u32,
    pub dwSSBAlphaCaps: u32,
    pub dwFilterCaps: u32,
    pub dwSVBFilterCaps: u32,
    pub dwVSBFilterCaps: u32,
    pub dwSSBFilterCaps: u32,
}
import "golang.org/x/sys/windows"

type DD_MORECAPS struct {
	dwSize uint32
	dwAlphaCaps uint32
	dwSVBAlphaCaps uint32
	dwVSBAlphaCaps uint32
	dwSSBAlphaCaps uint32
	dwFilterCaps uint32
	dwSVBFilterCaps uint32
	dwVSBFilterCaps uint32
	dwSSBFilterCaps uint32
}
type
  DD_MORECAPS = record
    dwSize: DWORD;
    dwAlphaCaps: DWORD;
    dwSVBAlphaCaps: DWORD;
    dwVSBAlphaCaps: DWORD;
    dwSSBAlphaCaps: DWORD;
    dwFilterCaps: DWORD;
    dwSVBFilterCaps: DWORD;
    dwVSBFilterCaps: DWORD;
    dwSSBFilterCaps: DWORD;
  end;
const DD_MORECAPS = extern struct {
    dwSize: u32,
    dwAlphaCaps: u32,
    dwSVBAlphaCaps: u32,
    dwVSBAlphaCaps: u32,
    dwSSBAlphaCaps: u32,
    dwFilterCaps: u32,
    dwSVBFilterCaps: u32,
    dwVSBFilterCaps: u32,
    dwSSBFilterCaps: u32,
};
type
  DD_MORECAPS {.bycopy.} = object
    dwSize: uint32
    dwAlphaCaps: uint32
    dwSVBAlphaCaps: uint32
    dwVSBAlphaCaps: uint32
    dwSSBAlphaCaps: uint32
    dwFilterCaps: uint32
    dwSVBFilterCaps: uint32
    dwVSBFilterCaps: uint32
    dwSSBFilterCaps: uint32
struct DD_MORECAPS
{
    uint dwSize;
    uint dwAlphaCaps;
    uint dwSVBAlphaCaps;
    uint dwVSBAlphaCaps;
    uint dwSSBAlphaCaps;
    uint dwFilterCaps;
    uint dwSVBFilterCaps;
    uint dwVSBFilterCaps;
    uint dwSSBFilterCaps;
}

HSP用 定義

HSP3.7/3.8 は構造体機能が無いため4byte整数配列(dim)+peek/poke で操作(32/64bitでサイズ・位置が異なる場合はタブで分割)。IronHSP は NSTRUCT(#defstruct/stdim/->)で32/64bit共通。

; HSP3.7/3.8 は構造体機能が無いため、4byte整数の配列変数で操作します。(x64 レイアウト)
; DD_MORECAPS サイズ: 36 バイト(x64)
dim st, 9    ; 4byte整数×9(構造体サイズ 36 / 4 切り上げ)
; dwSize : DWORD (+0, 4byte)  st.0 = 値  /  値 = st.0   (lpoke/lpeek も可)
; dwAlphaCaps : DWORD (+4, 4byte)  st.1 = 値  /  値 = st.1   (lpoke/lpeek も可)
; dwSVBAlphaCaps : DWORD (+8, 4byte)  st.2 = 値  /  値 = st.2   (lpoke/lpeek も可)
; dwVSBAlphaCaps : DWORD (+12, 4byte)  st.3 = 値  /  値 = st.3   (lpoke/lpeek も可)
; dwSSBAlphaCaps : DWORD (+16, 4byte)  st.4 = 値  /  値 = st.4   (lpoke/lpeek も可)
; dwFilterCaps : DWORD (+20, 4byte)  st.5 = 値  /  値 = st.5   (lpoke/lpeek も可)
; dwSVBFilterCaps : DWORD (+24, 4byte)  st.6 = 値  /  値 = st.6   (lpoke/lpeek も可)
; dwVSBFilterCaps : DWORD (+28, 4byte)  st.7 = 値  /  値 = st.7   (lpoke/lpeek も可)
; dwSSBFilterCaps : DWORD (+32, 4byte)  st.8 = 値  /  値 = st.8   (lpoke/lpeek も可)
; ※4byte境界の整数は添字 st.N(N=オフセット/4)で読み書き可。それ以外は peek/poke 系を使用。
; IronHSP は NSTRUCT(構造体)をサポート。32bit/64bit どちらでも同じコードで動作します。
#defstruct global DD_MORECAPS
    #field int dwSize
    #field int dwAlphaCaps
    #field int dwSVBAlphaCaps
    #field int dwVSBAlphaCaps
    #field int dwSSBAlphaCaps
    #field int dwFilterCaps
    #field int dwSVBFilterCaps
    #field int dwVSBFilterCaps
    #field int dwSSBFilterCaps
#endstruct

stdim st, DD_MORECAPS        ; NSTRUCT 変数を確保
st->dwSize = 100
mes "dwSize=" + st->dwSize