Win32 API 日本語リファレンス
ホームMedia.WindowsMediaFormat › WMT_VIDEOIMAGE_SAMPLE2

WMT_VIDEOIMAGE_SAMPLE2

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

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

フィールド

フィールドサイズx64x86説明
dwMagicDWORD4+0+0構造体識別用のマジック値。
dwStructSizeDWORD4+4+4この構造体のサイズをバイトで示す。
dwControlFlagsDWORD4+8+8画像変換・効果の制御フラグ。
dwViewportWidthDWORD4+12+12出力ビューポートの幅をピクセルで示す。
dwViewportHeightDWORD4+16+16出力ビューポートの高さをピクセルで示す。
dwCurrImageWidthDWORD4+20+20現フレーム画像の幅をピクセルで示す。
dwCurrImageHeightDWORD4+24+24現フレーム画像の高さをピクセルで示す。
fCurrRegionX0FLOAT4+28+28現フレームの表示領域左上X座標(正規化浮動小数点)。
fCurrRegionY0FLOAT4+32+32現フレームの表示領域左上Y座標(正規化浮動小数点)。
fCurrRegionWidthFLOAT4+36+36現フレームの表示領域の幅(正規化浮動小数点)。
fCurrRegionHeightFLOAT4+40+40現フレームの表示領域の高さ(正規化浮動小数点)。
fCurrBlendCoefFLOAT4+44+44現フレームのブレンド係数(浮動小数点)。
dwPrevImageWidthDWORD4+48+48前フレーム画像の幅をピクセルで示す。
dwPrevImageHeightDWORD4+52+52前フレーム画像の高さをピクセルで示す。
fPrevRegionX0FLOAT4+56+56前フレームの表示領域左上X座標(正規化浮動小数点)。
fPrevRegionY0FLOAT4+60+60前フレームの表示領域左上Y座標(正規化浮動小数点)。
fPrevRegionWidthFLOAT4+64+64前フレームの表示領域の幅(正規化浮動小数点)。
fPrevRegionHeightFLOAT4+68+68前フレームの表示領域の高さ(正規化浮動小数点)。
fPrevBlendCoefFLOAT4+72+72前フレームのブレンド係数(浮動小数点)。
dwEffectTypeDWORD4+76+76適用する遷移効果の種類を示す値。
dwNumEffectParasDWORD4+80+80有効な効果パラメータの数。
fEffectPara0FLOAT4+84+84効果パラメータ0(浮動小数点)。
fEffectPara1FLOAT4+88+88効果パラメータ1(浮動小数点)。
fEffectPara2FLOAT4+92+92効果パラメータ2(浮動小数点)。
fEffectPara3FLOAT4+96+96効果パラメータ3(浮動小数点)。
fEffectPara4FLOAT4+100+100効果パラメータ4(浮動小数点)。
bKeepPrevImageBOOL4+104+104前フレーム画像を保持し再利用するならTRUE。

各言語での定義

#include <windows.h>

// WMT_VIDEOIMAGE_SAMPLE2  (x64 108 / x86 108 バイト)
typedef struct WMT_VIDEOIMAGE_SAMPLE2 {
    DWORD dwMagic;
    DWORD dwStructSize;
    DWORD dwControlFlags;
    DWORD dwViewportWidth;
    DWORD dwViewportHeight;
    DWORD dwCurrImageWidth;
    DWORD dwCurrImageHeight;
    FLOAT fCurrRegionX0;
    FLOAT fCurrRegionY0;
    FLOAT fCurrRegionWidth;
    FLOAT fCurrRegionHeight;
    FLOAT fCurrBlendCoef;
    DWORD dwPrevImageWidth;
    DWORD dwPrevImageHeight;
    FLOAT fPrevRegionX0;
    FLOAT fPrevRegionY0;
    FLOAT fPrevRegionWidth;
    FLOAT fPrevRegionHeight;
    FLOAT fPrevBlendCoef;
    DWORD dwEffectType;
    DWORD dwNumEffectParas;
    FLOAT fEffectPara0;
    FLOAT fEffectPara1;
    FLOAT fEffectPara2;
    FLOAT fEffectPara3;
    FLOAT fEffectPara4;
    BOOL bKeepPrevImage;
} WMT_VIDEOIMAGE_SAMPLE2;
using System;
using System.Runtime.InteropServices;

[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct WMT_VIDEOIMAGE_SAMPLE2
{
    public uint dwMagic;
    public uint dwStructSize;
    public uint dwControlFlags;
    public uint dwViewportWidth;
    public uint dwViewportHeight;
    public uint dwCurrImageWidth;
    public uint dwCurrImageHeight;
    public float fCurrRegionX0;
    public float fCurrRegionY0;
    public float fCurrRegionWidth;
    public float fCurrRegionHeight;
    public float fCurrBlendCoef;
    public uint dwPrevImageWidth;
    public uint dwPrevImageHeight;
    public float fPrevRegionX0;
    public float fPrevRegionY0;
    public float fPrevRegionWidth;
    public float fPrevRegionHeight;
    public float fPrevBlendCoef;
    public uint dwEffectType;
    public uint dwNumEffectParas;
    public float fEffectPara0;
    public float fEffectPara1;
    public float fEffectPara2;
    public float fEffectPara3;
    public float fEffectPara4;
    [MarshalAs(UnmanagedType.Bool)] public bool bKeepPrevImage;
}
Imports System.Runtime.InteropServices

<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode)>
Public Structure WMT_VIDEOIMAGE_SAMPLE2
    Public dwMagic As UInteger
    Public dwStructSize As UInteger
    Public dwControlFlags As UInteger
    Public dwViewportWidth As UInteger
    Public dwViewportHeight As UInteger
    Public dwCurrImageWidth As UInteger
    Public dwCurrImageHeight As UInteger
    Public fCurrRegionX0 As Single
    Public fCurrRegionY0 As Single
    Public fCurrRegionWidth As Single
    Public fCurrRegionHeight As Single
    Public fCurrBlendCoef As Single
    Public dwPrevImageWidth As UInteger
    Public dwPrevImageHeight As UInteger
    Public fPrevRegionX0 As Single
    Public fPrevRegionY0 As Single
    Public fPrevRegionWidth As Single
    Public fPrevRegionHeight As Single
    Public fPrevBlendCoef As Single
    Public dwEffectType As UInteger
    Public dwNumEffectParas As UInteger
    Public fEffectPara0 As Single
    Public fEffectPara1 As Single
    Public fEffectPara2 As Single
    Public fEffectPara3 As Single
    Public fEffectPara4 As Single
    <MarshalAs(UnmanagedType.Bool)> Public bKeepPrevImage As Boolean
End Structure
import ctypes
from ctypes import wintypes

class WMT_VIDEOIMAGE_SAMPLE2(ctypes.Structure):
    _fields_ = [
        ("dwMagic", wintypes.DWORD),
        ("dwStructSize", wintypes.DWORD),
        ("dwControlFlags", wintypes.DWORD),
        ("dwViewportWidth", wintypes.DWORD),
        ("dwViewportHeight", wintypes.DWORD),
        ("dwCurrImageWidth", wintypes.DWORD),
        ("dwCurrImageHeight", wintypes.DWORD),
        ("fCurrRegionX0", ctypes.c_float),
        ("fCurrRegionY0", ctypes.c_float),
        ("fCurrRegionWidth", ctypes.c_float),
        ("fCurrRegionHeight", ctypes.c_float),
        ("fCurrBlendCoef", ctypes.c_float),
        ("dwPrevImageWidth", wintypes.DWORD),
        ("dwPrevImageHeight", wintypes.DWORD),
        ("fPrevRegionX0", ctypes.c_float),
        ("fPrevRegionY0", ctypes.c_float),
        ("fPrevRegionWidth", ctypes.c_float),
        ("fPrevRegionHeight", ctypes.c_float),
        ("fPrevBlendCoef", ctypes.c_float),
        ("dwEffectType", wintypes.DWORD),
        ("dwNumEffectParas", wintypes.DWORD),
        ("fEffectPara0", ctypes.c_float),
        ("fEffectPara1", ctypes.c_float),
        ("fEffectPara2", ctypes.c_float),
        ("fEffectPara3", ctypes.c_float),
        ("fEffectPara4", ctypes.c_float),
        ("bKeepPrevImage", wintypes.BOOL),
    ]
#[repr(C)]
pub struct WMT_VIDEOIMAGE_SAMPLE2 {
    pub dwMagic: u32,
    pub dwStructSize: u32,
    pub dwControlFlags: u32,
    pub dwViewportWidth: u32,
    pub dwViewportHeight: u32,
    pub dwCurrImageWidth: u32,
    pub dwCurrImageHeight: u32,
    pub fCurrRegionX0: f32,
    pub fCurrRegionY0: f32,
    pub fCurrRegionWidth: f32,
    pub fCurrRegionHeight: f32,
    pub fCurrBlendCoef: f32,
    pub dwPrevImageWidth: u32,
    pub dwPrevImageHeight: u32,
    pub fPrevRegionX0: f32,
    pub fPrevRegionY0: f32,
    pub fPrevRegionWidth: f32,
    pub fPrevRegionHeight: f32,
    pub fPrevBlendCoef: f32,
    pub dwEffectType: u32,
    pub dwNumEffectParas: u32,
    pub fEffectPara0: f32,
    pub fEffectPara1: f32,
    pub fEffectPara2: f32,
    pub fEffectPara3: f32,
    pub fEffectPara4: f32,
    pub bKeepPrevImage: i32,
}
import "golang.org/x/sys/windows"

type WMT_VIDEOIMAGE_SAMPLE2 struct {
	dwMagic uint32
	dwStructSize uint32
	dwControlFlags uint32
	dwViewportWidth uint32
	dwViewportHeight uint32
	dwCurrImageWidth uint32
	dwCurrImageHeight uint32
	fCurrRegionX0 float32
	fCurrRegionY0 float32
	fCurrRegionWidth float32
	fCurrRegionHeight float32
	fCurrBlendCoef float32
	dwPrevImageWidth uint32
	dwPrevImageHeight uint32
	fPrevRegionX0 float32
	fPrevRegionY0 float32
	fPrevRegionWidth float32
	fPrevRegionHeight float32
	fPrevBlendCoef float32
	dwEffectType uint32
	dwNumEffectParas uint32
	fEffectPara0 float32
	fEffectPara1 float32
	fEffectPara2 float32
	fEffectPara3 float32
	fEffectPara4 float32
	bKeepPrevImage int32
}
type
  WMT_VIDEOIMAGE_SAMPLE2 = record
    dwMagic: DWORD;
    dwStructSize: DWORD;
    dwControlFlags: DWORD;
    dwViewportWidth: DWORD;
    dwViewportHeight: DWORD;
    dwCurrImageWidth: DWORD;
    dwCurrImageHeight: DWORD;
    fCurrRegionX0: Single;
    fCurrRegionY0: Single;
    fCurrRegionWidth: Single;
    fCurrRegionHeight: Single;
    fCurrBlendCoef: Single;
    dwPrevImageWidth: DWORD;
    dwPrevImageHeight: DWORD;
    fPrevRegionX0: Single;
    fPrevRegionY0: Single;
    fPrevRegionWidth: Single;
    fPrevRegionHeight: Single;
    fPrevBlendCoef: Single;
    dwEffectType: DWORD;
    dwNumEffectParas: DWORD;
    fEffectPara0: Single;
    fEffectPara1: Single;
    fEffectPara2: Single;
    fEffectPara3: Single;
    fEffectPara4: Single;
    bKeepPrevImage: BOOL;
  end;
const WMT_VIDEOIMAGE_SAMPLE2 = extern struct {
    dwMagic: u32,
    dwStructSize: u32,
    dwControlFlags: u32,
    dwViewportWidth: u32,
    dwViewportHeight: u32,
    dwCurrImageWidth: u32,
    dwCurrImageHeight: u32,
    fCurrRegionX0: f32,
    fCurrRegionY0: f32,
    fCurrRegionWidth: f32,
    fCurrRegionHeight: f32,
    fCurrBlendCoef: f32,
    dwPrevImageWidth: u32,
    dwPrevImageHeight: u32,
    fPrevRegionX0: f32,
    fPrevRegionY0: f32,
    fPrevRegionWidth: f32,
    fPrevRegionHeight: f32,
    fPrevBlendCoef: f32,
    dwEffectType: u32,
    dwNumEffectParas: u32,
    fEffectPara0: f32,
    fEffectPara1: f32,
    fEffectPara2: f32,
    fEffectPara3: f32,
    fEffectPara4: f32,
    bKeepPrevImage: i32,
};
type
  WMT_VIDEOIMAGE_SAMPLE2 {.bycopy.} = object
    dwMagic: uint32
    dwStructSize: uint32
    dwControlFlags: uint32
    dwViewportWidth: uint32
    dwViewportHeight: uint32
    dwCurrImageWidth: uint32
    dwCurrImageHeight: uint32
    fCurrRegionX0: float32
    fCurrRegionY0: float32
    fCurrRegionWidth: float32
    fCurrRegionHeight: float32
    fCurrBlendCoef: float32
    dwPrevImageWidth: uint32
    dwPrevImageHeight: uint32
    fPrevRegionX0: float32
    fPrevRegionY0: float32
    fPrevRegionWidth: float32
    fPrevRegionHeight: float32
    fPrevBlendCoef: float32
    dwEffectType: uint32
    dwNumEffectParas: uint32
    fEffectPara0: float32
    fEffectPara1: float32
    fEffectPara2: float32
    fEffectPara3: float32
    fEffectPara4: float32
    bKeepPrevImage: int32
struct WMT_VIDEOIMAGE_SAMPLE2
{
    uint dwMagic;
    uint dwStructSize;
    uint dwControlFlags;
    uint dwViewportWidth;
    uint dwViewportHeight;
    uint dwCurrImageWidth;
    uint dwCurrImageHeight;
    float fCurrRegionX0;
    float fCurrRegionY0;
    float fCurrRegionWidth;
    float fCurrRegionHeight;
    float fCurrBlendCoef;
    uint dwPrevImageWidth;
    uint dwPrevImageHeight;
    float fPrevRegionX0;
    float fPrevRegionY0;
    float fPrevRegionWidth;
    float fPrevRegionHeight;
    float fPrevBlendCoef;
    uint dwEffectType;
    uint dwNumEffectParas;
    float fEffectPara0;
    float fEffectPara1;
    float fEffectPara2;
    float fEffectPara3;
    float fEffectPara4;
    int bKeepPrevImage;
}

HSP用 定義

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

; HSP3.7/3.8 は構造体機能が無いため、4byte整数の配列変数で操作します。(x64 レイアウト)
; WMT_VIDEOIMAGE_SAMPLE2 サイズ: 108 バイト(x64)
dim st, 27    ; 4byte整数×27(構造体サイズ 108 / 4 切り上げ)
; dwMagic : DWORD (+0, 4byte)  st.0 = 値  /  値 = st.0   (lpoke/lpeek も可)
; dwStructSize : DWORD (+4, 4byte)  st.1 = 値  /  値 = st.1   (lpoke/lpeek も可)
; dwControlFlags : DWORD (+8, 4byte)  st.2 = 値  /  値 = st.2   (lpoke/lpeek も可)
; dwViewportWidth : DWORD (+12, 4byte)  st.3 = 値  /  値 = st.3   (lpoke/lpeek も可)
; dwViewportHeight : DWORD (+16, 4byte)  st.4 = 値  /  値 = st.4   (lpoke/lpeek も可)
; dwCurrImageWidth : DWORD (+20, 4byte)  st.5 = 値  /  値 = st.5   (lpoke/lpeek も可)
; dwCurrImageHeight : DWORD (+24, 4byte)  st.6 = 値  /  値 = st.6   (lpoke/lpeek も可)
; fCurrRegionX0 : FLOAT (+28, 4byte)  st.7 = 値  /  値 = st.7   (lpoke/lpeek も可)
; fCurrRegionY0 : FLOAT (+32, 4byte)  st.8 = 値  /  値 = st.8   (lpoke/lpeek も可)
; fCurrRegionWidth : FLOAT (+36, 4byte)  st.9 = 値  /  値 = st.9   (lpoke/lpeek も可)
; fCurrRegionHeight : FLOAT (+40, 4byte)  st.10 = 値  /  値 = st.10   (lpoke/lpeek も可)
; fCurrBlendCoef : FLOAT (+44, 4byte)  st.11 = 値  /  値 = st.11   (lpoke/lpeek も可)
; dwPrevImageWidth : DWORD (+48, 4byte)  st.12 = 値  /  値 = st.12   (lpoke/lpeek も可)
; dwPrevImageHeight : DWORD (+52, 4byte)  st.13 = 値  /  値 = st.13   (lpoke/lpeek も可)
; fPrevRegionX0 : FLOAT (+56, 4byte)  st.14 = 値  /  値 = st.14   (lpoke/lpeek も可)
; fPrevRegionY0 : FLOAT (+60, 4byte)  st.15 = 値  /  値 = st.15   (lpoke/lpeek も可)
; fPrevRegionWidth : FLOAT (+64, 4byte)  st.16 = 値  /  値 = st.16   (lpoke/lpeek も可)
; fPrevRegionHeight : FLOAT (+68, 4byte)  st.17 = 値  /  値 = st.17   (lpoke/lpeek も可)
; fPrevBlendCoef : FLOAT (+72, 4byte)  st.18 = 値  /  値 = st.18   (lpoke/lpeek も可)
; dwEffectType : DWORD (+76, 4byte)  st.19 = 値  /  値 = st.19   (lpoke/lpeek も可)
; dwNumEffectParas : DWORD (+80, 4byte)  st.20 = 値  /  値 = st.20   (lpoke/lpeek も可)
; fEffectPara0 : FLOAT (+84, 4byte)  st.21 = 値  /  値 = st.21   (lpoke/lpeek も可)
; fEffectPara1 : FLOAT (+88, 4byte)  st.22 = 値  /  値 = st.22   (lpoke/lpeek も可)
; fEffectPara2 : FLOAT (+92, 4byte)  st.23 = 値  /  値 = st.23   (lpoke/lpeek も可)
; fEffectPara3 : FLOAT (+96, 4byte)  st.24 = 値  /  値 = st.24   (lpoke/lpeek も可)
; fEffectPara4 : FLOAT (+100, 4byte)  st.25 = 値  /  値 = st.25   (lpoke/lpeek も可)
; bKeepPrevImage : BOOL (+104, 4byte)  st.26 = 値  /  値 = st.26   (lpoke/lpeek も可)
; ※4byte境界の整数は添字 st.N(N=オフセット/4)で読み書き可。それ以外は peek/poke 系を使用。
; IronHSP は NSTRUCT(構造体)をサポート。32bit/64bit どちらでも同じコードで動作します。
#defstruct global WMT_VIDEOIMAGE_SAMPLE2
    #field int dwMagic
    #field int dwStructSize
    #field int dwControlFlags
    #field int dwViewportWidth
    #field int dwViewportHeight
    #field int dwCurrImageWidth
    #field int dwCurrImageHeight
    #field float fCurrRegionX0
    #field float fCurrRegionY0
    #field float fCurrRegionWidth
    #field float fCurrRegionHeight
    #field float fCurrBlendCoef
    #field int dwPrevImageWidth
    #field int dwPrevImageHeight
    #field float fPrevRegionX0
    #field float fPrevRegionY0
    #field float fPrevRegionWidth
    #field float fPrevRegionHeight
    #field float fPrevBlendCoef
    #field int dwEffectType
    #field int dwNumEffectParas
    #field float fEffectPara0
    #field float fEffectPara1
    #field float fEffectPara2
    #field float fEffectPara3
    #field float fEffectPara4
    #field bool bKeepPrevImage
#endstruct

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