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

WICRawCapabilitiesInfo

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

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

フィールド

フィールドサイズx64x86説明
cbSizeDWORD4+0+0本構造体のサイズ(バイト単位)。呼び出し前に設定する。
CodecMajorVersionDWORD4+4+4RAWコーデックのメジャーバージョン番号。
CodecMinorVersionDWORD4+8+8RAWコーデックのマイナーバージョン番号。
ExposureCompensationSupportWICRawCapabilities4+12+12露出補正のサポート状況を示すWICRawCapabilities列挙値。
ContrastSupportWICRawCapabilities4+16+16コントラスト調整のサポート状況を示すWICRawCapabilities列挙値。
RGBWhitePointSupportWICRawCapabilities4+20+20RGB指定によるホワイトポイント調整のサポート状況。
NamedWhitePointSupportWICRawCapabilities4+24+24名前付きホワイトポイント(昼光等)のサポート状況。
NamedWhitePointSupportMaskDWORD4+28+28サポートされる名前付きホワイトポイントを示すビットマスク。
KelvinWhitePointSupportWICRawCapabilities4+32+32色温度(ケルビン)指定ホワイトポイントのサポート状況。
GammaSupportWICRawCapabilities4+36+36ガンマ調整のサポート状況を示すWICRawCapabilities列挙値。
TintSupportWICRawCapabilities4+40+40色合い(ティント)調整のサポート状況。
SaturationSupportWICRawCapabilities4+44+44彩度調整のサポート状況。
SharpnessSupportWICRawCapabilities4+48+48シャープネス調整のサポート状況。
NoiseReductionSupportWICRawCapabilities4+52+52ノイズリダクションのサポート状況。
DestinationColorProfileSupportWICRawCapabilities4+56+56出力カラープロファイル指定のサポート状況。
ToneCurveSupportWICRawCapabilities4+60+60トーンカーブ調整のサポート状況。
RotationSupportWICRawRotationCapabilities4+64+64回転処理のサポート状況を示すWICRawRotationCapabilities列挙値。
RenderModeSupportWICRawCapabilities4+68+68レンダリングモード切替のサポート状況。

各言語での定義

#include <windows.h>

// WICRawCapabilitiesInfo  (x64 72 / x86 72 バイト)
typedef struct WICRawCapabilitiesInfo {
    DWORD cbSize;
    DWORD CodecMajorVersion;
    DWORD CodecMinorVersion;
    WICRawCapabilities ExposureCompensationSupport;
    WICRawCapabilities ContrastSupport;
    WICRawCapabilities RGBWhitePointSupport;
    WICRawCapabilities NamedWhitePointSupport;
    DWORD NamedWhitePointSupportMask;
    WICRawCapabilities KelvinWhitePointSupport;
    WICRawCapabilities GammaSupport;
    WICRawCapabilities TintSupport;
    WICRawCapabilities SaturationSupport;
    WICRawCapabilities SharpnessSupport;
    WICRawCapabilities NoiseReductionSupport;
    WICRawCapabilities DestinationColorProfileSupport;
    WICRawCapabilities ToneCurveSupport;
    WICRawRotationCapabilities RotationSupport;
    WICRawCapabilities RenderModeSupport;
} WICRawCapabilitiesInfo;
using System;
using System.Runtime.InteropServices;

[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct WICRawCapabilitiesInfo
{
    public uint cbSize;
    public uint CodecMajorVersion;
    public uint CodecMinorVersion;
    public int ExposureCompensationSupport;
    public int ContrastSupport;
    public int RGBWhitePointSupport;
    public int NamedWhitePointSupport;
    public uint NamedWhitePointSupportMask;
    public int KelvinWhitePointSupport;
    public int GammaSupport;
    public int TintSupport;
    public int SaturationSupport;
    public int SharpnessSupport;
    public int NoiseReductionSupport;
    public int DestinationColorProfileSupport;
    public int ToneCurveSupport;
    public int RotationSupport;
    public int RenderModeSupport;
}
Imports System.Runtime.InteropServices

<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode)>
Public Structure WICRawCapabilitiesInfo
    Public cbSize As UInteger
    Public CodecMajorVersion As UInteger
    Public CodecMinorVersion As UInteger
    Public ExposureCompensationSupport As Integer
    Public ContrastSupport As Integer
    Public RGBWhitePointSupport As Integer
    Public NamedWhitePointSupport As Integer
    Public NamedWhitePointSupportMask As UInteger
    Public KelvinWhitePointSupport As Integer
    Public GammaSupport As Integer
    Public TintSupport As Integer
    Public SaturationSupport As Integer
    Public SharpnessSupport As Integer
    Public NoiseReductionSupport As Integer
    Public DestinationColorProfileSupport As Integer
    Public ToneCurveSupport As Integer
    Public RotationSupport As Integer
    Public RenderModeSupport As Integer
End Structure
import ctypes
from ctypes import wintypes

class WICRawCapabilitiesInfo(ctypes.Structure):
    _fields_ = [
        ("cbSize", wintypes.DWORD),
        ("CodecMajorVersion", wintypes.DWORD),
        ("CodecMinorVersion", wintypes.DWORD),
        ("ExposureCompensationSupport", ctypes.c_int),
        ("ContrastSupport", ctypes.c_int),
        ("RGBWhitePointSupport", ctypes.c_int),
        ("NamedWhitePointSupport", ctypes.c_int),
        ("NamedWhitePointSupportMask", wintypes.DWORD),
        ("KelvinWhitePointSupport", ctypes.c_int),
        ("GammaSupport", ctypes.c_int),
        ("TintSupport", ctypes.c_int),
        ("SaturationSupport", ctypes.c_int),
        ("SharpnessSupport", ctypes.c_int),
        ("NoiseReductionSupport", ctypes.c_int),
        ("DestinationColorProfileSupport", ctypes.c_int),
        ("ToneCurveSupport", ctypes.c_int),
        ("RotationSupport", ctypes.c_int),
        ("RenderModeSupport", ctypes.c_int),
    ]
#[repr(C)]
pub struct WICRawCapabilitiesInfo {
    pub cbSize: u32,
    pub CodecMajorVersion: u32,
    pub CodecMinorVersion: u32,
    pub ExposureCompensationSupport: i32,
    pub ContrastSupport: i32,
    pub RGBWhitePointSupport: i32,
    pub NamedWhitePointSupport: i32,
    pub NamedWhitePointSupportMask: u32,
    pub KelvinWhitePointSupport: i32,
    pub GammaSupport: i32,
    pub TintSupport: i32,
    pub SaturationSupport: i32,
    pub SharpnessSupport: i32,
    pub NoiseReductionSupport: i32,
    pub DestinationColorProfileSupport: i32,
    pub ToneCurveSupport: i32,
    pub RotationSupport: i32,
    pub RenderModeSupport: i32,
}
import "golang.org/x/sys/windows"

type WICRawCapabilitiesInfo struct {
	cbSize uint32
	CodecMajorVersion uint32
	CodecMinorVersion uint32
	ExposureCompensationSupport int32
	ContrastSupport int32
	RGBWhitePointSupport int32
	NamedWhitePointSupport int32
	NamedWhitePointSupportMask uint32
	KelvinWhitePointSupport int32
	GammaSupport int32
	TintSupport int32
	SaturationSupport int32
	SharpnessSupport int32
	NoiseReductionSupport int32
	DestinationColorProfileSupport int32
	ToneCurveSupport int32
	RotationSupport int32
	RenderModeSupport int32
}
type
  WICRawCapabilitiesInfo = record
    cbSize: DWORD;
    CodecMajorVersion: DWORD;
    CodecMinorVersion: DWORD;
    ExposureCompensationSupport: Integer;
    ContrastSupport: Integer;
    RGBWhitePointSupport: Integer;
    NamedWhitePointSupport: Integer;
    NamedWhitePointSupportMask: DWORD;
    KelvinWhitePointSupport: Integer;
    GammaSupport: Integer;
    TintSupport: Integer;
    SaturationSupport: Integer;
    SharpnessSupport: Integer;
    NoiseReductionSupport: Integer;
    DestinationColorProfileSupport: Integer;
    ToneCurveSupport: Integer;
    RotationSupport: Integer;
    RenderModeSupport: Integer;
  end;
const WICRawCapabilitiesInfo = extern struct {
    cbSize: u32,
    CodecMajorVersion: u32,
    CodecMinorVersion: u32,
    ExposureCompensationSupport: i32,
    ContrastSupport: i32,
    RGBWhitePointSupport: i32,
    NamedWhitePointSupport: i32,
    NamedWhitePointSupportMask: u32,
    KelvinWhitePointSupport: i32,
    GammaSupport: i32,
    TintSupport: i32,
    SaturationSupport: i32,
    SharpnessSupport: i32,
    NoiseReductionSupport: i32,
    DestinationColorProfileSupport: i32,
    ToneCurveSupport: i32,
    RotationSupport: i32,
    RenderModeSupport: i32,
};
type
  WICRawCapabilitiesInfo {.bycopy.} = object
    cbSize: uint32
    CodecMajorVersion: uint32
    CodecMinorVersion: uint32
    ExposureCompensationSupport: int32
    ContrastSupport: int32
    RGBWhitePointSupport: int32
    NamedWhitePointSupport: int32
    NamedWhitePointSupportMask: uint32
    KelvinWhitePointSupport: int32
    GammaSupport: int32
    TintSupport: int32
    SaturationSupport: int32
    SharpnessSupport: int32
    NoiseReductionSupport: int32
    DestinationColorProfileSupport: int32
    ToneCurveSupport: int32
    RotationSupport: int32
    RenderModeSupport: int32
struct WICRawCapabilitiesInfo
{
    uint cbSize;
    uint CodecMajorVersion;
    uint CodecMinorVersion;
    int ExposureCompensationSupport;
    int ContrastSupport;
    int RGBWhitePointSupport;
    int NamedWhitePointSupport;
    uint NamedWhitePointSupportMask;
    int KelvinWhitePointSupport;
    int GammaSupport;
    int TintSupport;
    int SaturationSupport;
    int SharpnessSupport;
    int NoiseReductionSupport;
    int DestinationColorProfileSupport;
    int ToneCurveSupport;
    int RotationSupport;
    int RenderModeSupport;
}

HSP用 定義

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

; HSP3.7/3.8 は構造体機能が無いため、4byte整数の配列変数で操作します。(x64 レイアウト)
; WICRawCapabilitiesInfo サイズ: 72 バイト(x64)
dim st, 18    ; 4byte整数×18(構造体サイズ 72 / 4 切り上げ)
; cbSize : DWORD (+0, 4byte)  st.0 = 値  /  値 = st.0   (lpoke/lpeek も可)
; CodecMajorVersion : DWORD (+4, 4byte)  st.1 = 値  /  値 = st.1   (lpoke/lpeek も可)
; CodecMinorVersion : DWORD (+8, 4byte)  st.2 = 値  /  値 = st.2   (lpoke/lpeek も可)
; ExposureCompensationSupport : WICRawCapabilities (+12, 4byte)  st.3 = 値  /  値 = st.3   (lpoke/lpeek も可)
; ContrastSupport : WICRawCapabilities (+16, 4byte)  st.4 = 値  /  値 = st.4   (lpoke/lpeek も可)
; RGBWhitePointSupport : WICRawCapabilities (+20, 4byte)  st.5 = 値  /  値 = st.5   (lpoke/lpeek も可)
; NamedWhitePointSupport : WICRawCapabilities (+24, 4byte)  st.6 = 値  /  値 = st.6   (lpoke/lpeek も可)
; NamedWhitePointSupportMask : DWORD (+28, 4byte)  st.7 = 値  /  値 = st.7   (lpoke/lpeek も可)
; KelvinWhitePointSupport : WICRawCapabilities (+32, 4byte)  st.8 = 値  /  値 = st.8   (lpoke/lpeek も可)
; GammaSupport : WICRawCapabilities (+36, 4byte)  st.9 = 値  /  値 = st.9   (lpoke/lpeek も可)
; TintSupport : WICRawCapabilities (+40, 4byte)  st.10 = 値  /  値 = st.10   (lpoke/lpeek も可)
; SaturationSupport : WICRawCapabilities (+44, 4byte)  st.11 = 値  /  値 = st.11   (lpoke/lpeek も可)
; SharpnessSupport : WICRawCapabilities (+48, 4byte)  st.12 = 値  /  値 = st.12   (lpoke/lpeek も可)
; NoiseReductionSupport : WICRawCapabilities (+52, 4byte)  st.13 = 値  /  値 = st.13   (lpoke/lpeek も可)
; DestinationColorProfileSupport : WICRawCapabilities (+56, 4byte)  st.14 = 値  /  値 = st.14   (lpoke/lpeek も可)
; ToneCurveSupport : WICRawCapabilities (+60, 4byte)  st.15 = 値  /  値 = st.15   (lpoke/lpeek も可)
; RotationSupport : WICRawRotationCapabilities (+64, 4byte)  st.16 = 値  /  値 = st.16   (lpoke/lpeek も可)
; RenderModeSupport : WICRawCapabilities (+68, 4byte)  st.17 = 値  /  値 = st.17   (lpoke/lpeek も可)
; ※4byte境界の整数は添字 st.N(N=オフセット/4)で読み書き可。それ以外は peek/poke 系を使用。
; IronHSP は NSTRUCT(構造体)をサポート。32bit/64bit どちらでも同じコードで動作します。
#defstruct global WICRawCapabilitiesInfo
    #field int cbSize
    #field int CodecMajorVersion
    #field int CodecMinorVersion
    #field int ExposureCompensationSupport
    #field int ContrastSupport
    #field int RGBWhitePointSupport
    #field int NamedWhitePointSupport
    #field int NamedWhitePointSupportMask
    #field int KelvinWhitePointSupport
    #field int GammaSupport
    #field int TintSupport
    #field int SaturationSupport
    #field int SharpnessSupport
    #field int NoiseReductionSupport
    #field int DestinationColorProfileSupport
    #field int ToneCurveSupport
    #field int RotationSupport
    #field int RenderModeSupport
#endstruct

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