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

CreateFontPackage

関数
TrueTypeフォントのサブセット化フォントパッケージを作成する。
DLLFONTSUB.dll呼出規約cdecl対応OSWindows XP 以降

シグネチャ

// FONTSUB.dll
#include <windows.h>

DWORD CreateFontPackage(
    const BYTE* puchSrcBuffer,
    DWORD ulSrcBufferSize,
    BYTE** ppuchFontPackageBuffer,
    DWORD* pulFontPackageBufferSize,
    DWORD* pulBytesWritten,
    WORD usFlag,
    WORD usTTCIndex,
    WORD usSubsetFormat,
    WORD usSubsetLanguage,
    CREATE_FONT_PACKAGE_SUBSET_PLATFORM usSubsetPlatform,
    CREATE_FONT_PACKAGE_SUBSET_ENCODING usSubsetEncoding,
    const WORD* pusSubsetKeepList,
    WORD usSubsetListCount,
    CFP_ALLOCPROC lpfnAllocate,
    CFP_REALLOCPROC lpfnReAllocate,
    CFP_FREEPROC lpfnFree,
    void* lpvReserved
);

パラメーター

名前方向
puchSrcBufferBYTE*in
ulSrcBufferSizeDWORDin
ppuchFontPackageBufferBYTE**inout
pulFontPackageBufferSizeDWORD*inout
pulBytesWrittenDWORD*inout
usFlagWORDin
usTTCIndexWORDin
usSubsetFormatWORDin
usSubsetLanguageWORDin
usSubsetPlatformCREATE_FONT_PACKAGE_SUBSET_PLATFORMin
usSubsetEncodingCREATE_FONT_PACKAGE_SUBSET_ENCODINGin
pusSubsetKeepListWORD*in
usSubsetListCountWORDin
lpfnAllocateCFP_ALLOCPROCin
lpfnReAllocateCFP_REALLOCPROCin
lpfnFreeCFP_FREEPROCin
lpvReservedvoid*inout

戻り値の型: DWORD

各言語での呼び出し定義

// FONTSUB.dll
#include <windows.h>

DWORD CreateFontPackage(
    const BYTE* puchSrcBuffer,
    DWORD ulSrcBufferSize,
    BYTE** ppuchFontPackageBuffer,
    DWORD* pulFontPackageBufferSize,
    DWORD* pulBytesWritten,
    WORD usFlag,
    WORD usTTCIndex,
    WORD usSubsetFormat,
    WORD usSubsetLanguage,
    CREATE_FONT_PACKAGE_SUBSET_PLATFORM usSubsetPlatform,
    CREATE_FONT_PACKAGE_SUBSET_ENCODING usSubsetEncoding,
    const WORD* pusSubsetKeepList,
    WORD usSubsetListCount,
    CFP_ALLOCPROC lpfnAllocate,
    CFP_REALLOCPROC lpfnReAllocate,
    CFP_FREEPROC lpfnFree,
    void* lpvReserved
);
[DllImport("FONTSUB.dll", ExactSpelling = true, CallingConvention = CallingConvention.Cdecl)]
static extern uint CreateFontPackage(
    IntPtr puchSrcBuffer,   // BYTE*
    uint ulSrcBufferSize,   // DWORD
    IntPtr ppuchFontPackageBuffer,   // BYTE** in/out
    ref uint pulFontPackageBufferSize,   // DWORD* in/out
    ref uint pulBytesWritten,   // DWORD* in/out
    ushort usFlag,   // WORD
    ushort usTTCIndex,   // WORD
    ushort usSubsetFormat,   // WORD
    ushort usSubsetLanguage,   // WORD
    short usSubsetPlatform,   // CREATE_FONT_PACKAGE_SUBSET_PLATFORM
    short usSubsetEncoding,   // CREATE_FONT_PACKAGE_SUBSET_ENCODING
    ref ushort pusSubsetKeepList,   // WORD*
    ushort usSubsetListCount,   // WORD
    IntPtr lpfnAllocate,   // CFP_ALLOCPROC
    IntPtr lpfnReAllocate,   // CFP_REALLOCPROC
    IntPtr lpfnFree,   // CFP_FREEPROC
    IntPtr lpvReserved   // void* in/out
);
<DllImport("FONTSUB.dll", ExactSpelling:=True, CallingConvention:=CallingConvention.Cdecl)>
Public Shared Function CreateFontPackage(
    puchSrcBuffer As IntPtr,   ' BYTE*
    ulSrcBufferSize As UInteger,   ' DWORD
    ppuchFontPackageBuffer As IntPtr,   ' BYTE** in/out
    ByRef pulFontPackageBufferSize As UInteger,   ' DWORD* in/out
    ByRef pulBytesWritten As UInteger,   ' DWORD* in/out
    usFlag As UShort,   ' WORD
    usTTCIndex As UShort,   ' WORD
    usSubsetFormat As UShort,   ' WORD
    usSubsetLanguage As UShort,   ' WORD
    usSubsetPlatform As Short,   ' CREATE_FONT_PACKAGE_SUBSET_PLATFORM
    usSubsetEncoding As Short,   ' CREATE_FONT_PACKAGE_SUBSET_ENCODING
    ByRef pusSubsetKeepList As UShort,   ' WORD*
    usSubsetListCount As UShort,   ' WORD
    lpfnAllocate As IntPtr,   ' CFP_ALLOCPROC
    lpfnReAllocate As IntPtr,   ' CFP_REALLOCPROC
    lpfnFree As IntPtr,   ' CFP_FREEPROC
    lpvReserved As IntPtr   ' void* in/out
) As UInteger
End Function
' puchSrcBuffer : BYTE*
' ulSrcBufferSize : DWORD
' ppuchFontPackageBuffer : BYTE** in/out
' pulFontPackageBufferSize : DWORD* in/out
' pulBytesWritten : DWORD* in/out
' usFlag : WORD
' usTTCIndex : WORD
' usSubsetFormat : WORD
' usSubsetLanguage : WORD
' usSubsetPlatform : CREATE_FONT_PACKAGE_SUBSET_PLATFORM
' usSubsetEncoding : CREATE_FONT_PACKAGE_SUBSET_ENCODING
' pusSubsetKeepList : WORD*
' usSubsetListCount : WORD
' lpfnAllocate : CFP_ALLOCPROC
' lpfnReAllocate : CFP_REALLOCPROC
' lpfnFree : CFP_FREEPROC
' lpvReserved : void* in/out
Declare PtrSafe Function CreateFontPackage Lib "fontsub" ( _
    ByVal puchSrcBuffer As LongPtr, _
    ByVal ulSrcBufferSize As Long, _
    ByVal ppuchFontPackageBuffer As LongPtr, _
    ByRef pulFontPackageBufferSize As Long, _
    ByRef pulBytesWritten As Long, _
    ByVal usFlag As Integer, _
    ByVal usTTCIndex As Integer, _
    ByVal usSubsetFormat As Integer, _
    ByVal usSubsetLanguage As Integer, _
    ByVal usSubsetPlatform As Integer, _
    ByVal usSubsetEncoding As Integer, _
    ByRef pusSubsetKeepList As Integer, _
    ByVal usSubsetListCount As Integer, _
    ByVal lpfnAllocate As LongPtr, _
    ByVal lpfnReAllocate As LongPtr, _
    ByVal lpfnFree As LongPtr, _
    ByVal lpvReserved As LongPtr) As Long
' VBA7前提(PtrSafe)。32bit Office では LongPtr→Long。Integer=16bit / Long=32bit / LongLong=64bit。
import ctypes
from ctypes import wintypes

CreateFontPackage = ctypes.cdll.fontsub.CreateFontPackage
CreateFontPackage.restype = wintypes.DWORD
CreateFontPackage.argtypes = [
    ctypes.POINTER(ctypes.c_ubyte),  # puchSrcBuffer : BYTE*
    wintypes.DWORD,  # ulSrcBufferSize : DWORD
    ctypes.c_void_p,  # ppuchFontPackageBuffer : BYTE** in/out
    ctypes.POINTER(wintypes.DWORD),  # pulFontPackageBufferSize : DWORD* in/out
    ctypes.POINTER(wintypes.DWORD),  # pulBytesWritten : DWORD* in/out
    ctypes.c_ushort,  # usFlag : WORD
    ctypes.c_ushort,  # usTTCIndex : WORD
    ctypes.c_ushort,  # usSubsetFormat : WORD
    ctypes.c_ushort,  # usSubsetLanguage : WORD
    ctypes.c_short,  # usSubsetPlatform : CREATE_FONT_PACKAGE_SUBSET_PLATFORM
    ctypes.c_short,  # usSubsetEncoding : CREATE_FONT_PACKAGE_SUBSET_ENCODING
    ctypes.POINTER(ctypes.c_ushort),  # pusSubsetKeepList : WORD*
    ctypes.c_ushort,  # usSubsetListCount : WORD
    ctypes.c_void_p,  # lpfnAllocate : CFP_ALLOCPROC
    ctypes.c_void_p,  # lpfnReAllocate : CFP_REALLOCPROC
    ctypes.c_void_p,  # lpfnFree : CFP_FREEPROC
    ctypes.POINTER(None),  # lpvReserved : void* in/out
]
require 'fiddle'
require 'fiddle/import'

lib = Fiddle.dlopen('FONTSUB.dll')
CreateFontPackage = Fiddle::Function.new(
  lib['CreateFontPackage'],
  [
    Fiddle::TYPE_VOIDP,  # puchSrcBuffer : BYTE*
    -Fiddle::TYPE_INT,  # ulSrcBufferSize : DWORD
    Fiddle::TYPE_VOIDP,  # ppuchFontPackageBuffer : BYTE** in/out
    Fiddle::TYPE_VOIDP,  # pulFontPackageBufferSize : DWORD* in/out
    Fiddle::TYPE_VOIDP,  # pulBytesWritten : DWORD* in/out
    -Fiddle::TYPE_SHORT,  # usFlag : WORD
    -Fiddle::TYPE_SHORT,  # usTTCIndex : WORD
    -Fiddle::TYPE_SHORT,  # usSubsetFormat : WORD
    -Fiddle::TYPE_SHORT,  # usSubsetLanguage : WORD
    Fiddle::TYPE_SHORT,  # usSubsetPlatform : CREATE_FONT_PACKAGE_SUBSET_PLATFORM
    Fiddle::TYPE_SHORT,  # usSubsetEncoding : CREATE_FONT_PACKAGE_SUBSET_ENCODING
    Fiddle::TYPE_VOIDP,  # pusSubsetKeepList : WORD*
    -Fiddle::TYPE_SHORT,  # usSubsetListCount : WORD
    Fiddle::TYPE_VOIDP,  # lpfnAllocate : CFP_ALLOCPROC
    Fiddle::TYPE_VOIDP,  # lpfnReAllocate : CFP_REALLOCPROC
    Fiddle::TYPE_VOIDP,  # lpfnFree : CFP_FREEPROC
    Fiddle::TYPE_VOIDP,  # lpvReserved : void* in/out
  ],
  -Fiddle::TYPE_INT, Fiddle::Function::CDECL)
#[link(name = "fontsub")]
extern "C" {
    fn CreateFontPackage(
        puchSrcBuffer: *const u8,  // BYTE*
        ulSrcBufferSize: u32,  // DWORD
        ppuchFontPackageBuffer: *mut *mut u8,  // BYTE** in/out
        pulFontPackageBufferSize: *mut u32,  // DWORD* in/out
        pulBytesWritten: *mut u32,  // DWORD* in/out
        usFlag: u16,  // WORD
        usTTCIndex: u16,  // WORD
        usSubsetFormat: u16,  // WORD
        usSubsetLanguage: u16,  // WORD
        usSubsetPlatform: i16,  // CREATE_FONT_PACKAGE_SUBSET_PLATFORM
        usSubsetEncoding: i16,  // CREATE_FONT_PACKAGE_SUBSET_ENCODING
        pusSubsetKeepList: *const u16,  // WORD*
        usSubsetListCount: u16,  // WORD
        lpfnAllocate: *const core::ffi::c_void,  // CFP_ALLOCPROC
        lpfnReAllocate: *const core::ffi::c_void,  // CFP_REALLOCPROC
        lpfnFree: *const core::ffi::c_void,  // CFP_FREEPROC
        lpvReserved: *mut ()  // void* in/out
    ) -> u32;
}
// crates: windows-sys provides ready-made bindings for this API.
$sig = @"
[DllImport("FONTSUB.dll", CallingConvention = CallingConvention.Cdecl)]
public static extern uint CreateFontPackage(IntPtr puchSrcBuffer, uint ulSrcBufferSize, IntPtr ppuchFontPackageBuffer, ref uint pulFontPackageBufferSize, ref uint pulBytesWritten, ushort usFlag, ushort usTTCIndex, ushort usSubsetFormat, ushort usSubsetLanguage, short usSubsetPlatform, short usSubsetEncoding, ref ushort pusSubsetKeepList, ushort usSubsetListCount, IntPtr lpfnAllocate, IntPtr lpfnReAllocate, IntPtr lpfnFree, IntPtr lpvReserved);
"@
$api = Add-Type -MemberDefinition $sig -Name 'FONTSUB_CreateFontPackage' -Namespace Win32 -PassThru
# $api::CreateFontPackage(puchSrcBuffer, ulSrcBufferSize, ppuchFontPackageBuffer, pulFontPackageBufferSize, pulBytesWritten, usFlag, usTTCIndex, usSubsetFormat, usSubsetLanguage, usSubsetPlatform, usSubsetEncoding, pusSubsetKeepList, usSubsetListCount, lpfnAllocate, lpfnReAllocate, lpfnFree, lpvReserved)
#uselib "FONTSUB.dll"
#func global CreateFontPackage "CreateFontPackage" sptr, sptr, sptr, sptr, sptr, sptr, sptr, sptr, sptr, sptr, sptr, sptr, sptr, sptr, sptr, sptr, sptr
; CreateFontPackage varptr(puchSrcBuffer), ulSrcBufferSize, varptr(ppuchFontPackageBuffer), varptr(pulFontPackageBufferSize), varptr(pulBytesWritten), usFlag, usTTCIndex, usSubsetFormat, usSubsetLanguage, usSubsetPlatform, usSubsetEncoding, varptr(pusSubsetKeepList), usSubsetListCount, lpfnAllocate, lpfnReAllocate, lpfnFree, lpvReserved   ; 戻り値は stat
; puchSrcBuffer : BYTE* -> "sptr"
; ulSrcBufferSize : DWORD -> "sptr"
; ppuchFontPackageBuffer : BYTE** in/out -> "sptr"
; pulFontPackageBufferSize : DWORD* in/out -> "sptr"
; pulBytesWritten : DWORD* in/out -> "sptr"
; usFlag : WORD -> "sptr"
; usTTCIndex : WORD -> "sptr"
; usSubsetFormat : WORD -> "sptr"
; usSubsetLanguage : WORD -> "sptr"
; usSubsetPlatform : CREATE_FONT_PACKAGE_SUBSET_PLATFORM -> "sptr"
; usSubsetEncoding : CREATE_FONT_PACKAGE_SUBSET_ENCODING -> "sptr"
; pusSubsetKeepList : WORD* -> "sptr"
; usSubsetListCount : WORD -> "sptr"
; lpfnAllocate : CFP_ALLOCPROC -> "sptr"
; lpfnReAllocate : CFP_REALLOCPROC -> "sptr"
; lpfnFree : CFP_FREEPROC -> "sptr"
; lpvReserved : void* in/out -> "sptr"
; ※HSP3.7は #func のため戻り値はシステム変数 stat に格納されます。
出力引数:
#uselib "FONTSUB.dll"
#cfunc global CreateFontPackage "CreateFontPackage" var, int, var, var, var, int, int, int, int, int, int, var, int, sptr, sptr, sptr, sptr
; res = CreateFontPackage(puchSrcBuffer, ulSrcBufferSize, ppuchFontPackageBuffer, pulFontPackageBufferSize, pulBytesWritten, usFlag, usTTCIndex, usSubsetFormat, usSubsetLanguage, usSubsetPlatform, usSubsetEncoding, pusSubsetKeepList, usSubsetListCount, lpfnAllocate, lpfnReAllocate, lpfnFree, lpvReserved)
; puchSrcBuffer : BYTE* -> "var"
; ulSrcBufferSize : DWORD -> "int"
; ppuchFontPackageBuffer : BYTE** in/out -> "var"
; pulFontPackageBufferSize : DWORD* in/out -> "var"
; pulBytesWritten : DWORD* in/out -> "var"
; usFlag : WORD -> "int"
; usTTCIndex : WORD -> "int"
; usSubsetFormat : WORD -> "int"
; usSubsetLanguage : WORD -> "int"
; usSubsetPlatform : CREATE_FONT_PACKAGE_SUBSET_PLATFORM -> "int"
; usSubsetEncoding : CREATE_FONT_PACKAGE_SUBSET_ENCODING -> "int"
; pusSubsetKeepList : WORD* -> "var"
; usSubsetListCount : WORD -> "int"
; lpfnAllocate : CFP_ALLOCPROC -> "sptr"
; lpfnReAllocate : CFP_REALLOCPROC -> "sptr"
; lpfnFree : CFP_FREEPROC -> "sptr"
; lpvReserved : void* in/out -> "sptr"
; ※出力/バッファ引数は var 方式(変数を直接渡す)。varptr 方式にも切替可。
出力引数:
; DWORD CreateFontPackage(BYTE* puchSrcBuffer, DWORD ulSrcBufferSize, BYTE** ppuchFontPackageBuffer, DWORD* pulFontPackageBufferSize, DWORD* pulBytesWritten, WORD usFlag, WORD usTTCIndex, WORD usSubsetFormat, WORD usSubsetLanguage, CREATE_FONT_PACKAGE_SUBSET_PLATFORM usSubsetPlatform, CREATE_FONT_PACKAGE_SUBSET_ENCODING usSubsetEncoding, WORD* pusSubsetKeepList, WORD usSubsetListCount, CFP_ALLOCPROC lpfnAllocate, CFP_REALLOCPROC lpfnReAllocate, CFP_FREEPROC lpfnFree, void* lpvReserved)
#uselib "FONTSUB.dll"
#cfunc global CreateFontPackage "CreateFontPackage" var, int, var, var, var, int, int, int, int, int, int, var, int, intptr, intptr, intptr, intptr
; res = CreateFontPackage(puchSrcBuffer, ulSrcBufferSize, ppuchFontPackageBuffer, pulFontPackageBufferSize, pulBytesWritten, usFlag, usTTCIndex, usSubsetFormat, usSubsetLanguage, usSubsetPlatform, usSubsetEncoding, pusSubsetKeepList, usSubsetListCount, lpfnAllocate, lpfnReAllocate, lpfnFree, lpvReserved)
; puchSrcBuffer : BYTE* -> "var"
; ulSrcBufferSize : DWORD -> "int"
; ppuchFontPackageBuffer : BYTE** in/out -> "var"
; pulFontPackageBufferSize : DWORD* in/out -> "var"
; pulBytesWritten : DWORD* in/out -> "var"
; usFlag : WORD -> "int"
; usTTCIndex : WORD -> "int"
; usSubsetFormat : WORD -> "int"
; usSubsetLanguage : WORD -> "int"
; usSubsetPlatform : CREATE_FONT_PACKAGE_SUBSET_PLATFORM -> "int"
; usSubsetEncoding : CREATE_FONT_PACKAGE_SUBSET_ENCODING -> "int"
; pusSubsetKeepList : WORD* -> "var"
; usSubsetListCount : WORD -> "int"
; lpfnAllocate : CFP_ALLOCPROC -> "intptr"
; lpfnReAllocate : CFP_REALLOCPROC -> "intptr"
; lpfnFree : CFP_FREEPROC -> "intptr"
; lpvReserved : void* in/out -> "intptr"
; ※出力/バッファ引数は var 方式(変数を直接渡す)。varptr 方式にも切替可。
import (
	"golang.org/x/sys/windows"
	"unsafe"
)

var (
	fontsub = windows.NewLazySystemDLL("FONTSUB.dll")
	procCreateFontPackage = fontsub.NewProc("CreateFontPackage")
)

// puchSrcBuffer (BYTE*), ulSrcBufferSize (DWORD), ppuchFontPackageBuffer (BYTE** in/out), pulFontPackageBufferSize (DWORD* in/out), pulBytesWritten (DWORD* in/out), usFlag (WORD), usTTCIndex (WORD), usSubsetFormat (WORD), usSubsetLanguage (WORD), usSubsetPlatform (CREATE_FONT_PACKAGE_SUBSET_PLATFORM), usSubsetEncoding (CREATE_FONT_PACKAGE_SUBSET_ENCODING), pusSubsetKeepList (WORD*), usSubsetListCount (WORD), lpfnAllocate (CFP_ALLOCPROC), lpfnReAllocate (CFP_REALLOCPROC), lpfnFree (CFP_FREEPROC), lpvReserved (void* in/out)
r1, _, err := procCreateFontPackage.Call(
	uintptr(puchSrcBuffer),
	uintptr(ulSrcBufferSize),
	uintptr(ppuchFontPackageBuffer),
	uintptr(pulFontPackageBufferSize),
	uintptr(pulBytesWritten),
	uintptr(usFlag),
	uintptr(usTTCIndex),
	uintptr(usSubsetFormat),
	uintptr(usSubsetLanguage),
	uintptr(usSubsetPlatform),
	uintptr(usSubsetEncoding),
	uintptr(pusSubsetKeepList),
	uintptr(usSubsetListCount),
	uintptr(lpfnAllocate),
	uintptr(lpfnReAllocate),
	uintptr(lpfnFree),
	uintptr(lpvReserved),
)
_ = err  // syscall.Errno (valid when the call sets last-error)
_ = r1   // DWORD
function CreateFontPackage(
  puchSrcBuffer: Pointer;   // BYTE*
  ulSrcBufferSize: DWORD;   // DWORD
  ppuchFontPackageBuffer: Pointer;   // BYTE** in/out
  pulFontPackageBufferSize: Pointer;   // DWORD* in/out
  pulBytesWritten: Pointer;   // DWORD* in/out
  usFlag: Word;   // WORD
  usTTCIndex: Word;   // WORD
  usSubsetFormat: Word;   // WORD
  usSubsetLanguage: Word;   // WORD
  usSubsetPlatform: Smallint;   // CREATE_FONT_PACKAGE_SUBSET_PLATFORM
  usSubsetEncoding: Smallint;   // CREATE_FONT_PACKAGE_SUBSET_ENCODING
  pusSubsetKeepList: Pointer;   // WORD*
  usSubsetListCount: Word;   // WORD
  lpfnAllocate: Pointer;   // CFP_ALLOCPROC
  lpfnReAllocate: Pointer;   // CFP_REALLOCPROC
  lpfnFree: Pointer;   // CFP_FREEPROC
  lpvReserved: Pointer   // void* in/out
): DWORD; cdecl;
  external 'FONTSUB.dll' name 'CreateFontPackage';
result := DllCall("FONTSUB\CreateFontPackage"
    , "Ptr", puchSrcBuffer   ; BYTE*
    , "UInt", ulSrcBufferSize   ; DWORD
    , "Ptr", ppuchFontPackageBuffer   ; BYTE** in/out
    , "Ptr", pulFontPackageBufferSize   ; DWORD* in/out
    , "Ptr", pulBytesWritten   ; DWORD* in/out
    , "UShort", usFlag   ; WORD
    , "UShort", usTTCIndex   ; WORD
    , "UShort", usSubsetFormat   ; WORD
    , "UShort", usSubsetLanguage   ; WORD
    , "Short", usSubsetPlatform   ; CREATE_FONT_PACKAGE_SUBSET_PLATFORM
    , "Short", usSubsetEncoding   ; CREATE_FONT_PACKAGE_SUBSET_ENCODING
    , "Ptr", pusSubsetKeepList   ; WORD*
    , "UShort", usSubsetListCount   ; WORD
    , "Ptr", lpfnAllocate   ; CFP_ALLOCPROC
    , "Ptr", lpfnReAllocate   ; CFP_REALLOCPROC
    , "Ptr", lpfnFree   ; CFP_FREEPROC
    , "Ptr", lpvReserved   ; void* in/out
    , "Cdecl UInt")   ; return: DWORD
●CreateFontPackage(puchSrcBuffer, ulSrcBufferSize, ppuchFontPackageBuffer, pulFontPackageBufferSize, pulBytesWritten, usFlag, usTTCIndex, usSubsetFormat, usSubsetLanguage, usSubsetPlatform, usSubsetEncoding, pusSubsetKeepList, usSubsetListCount, lpfnAllocate, lpfnReAllocate, lpfnFree, lpvReserved) = DLL("FONTSUB.dll", "dword CreateFontPackage(void*, dword, void*, void*, void*, int, int, int, int, int, int, void*, int, void*, void*, void*, void*)")
# 呼び出し: CreateFontPackage(puchSrcBuffer, ulSrcBufferSize, ppuchFontPackageBuffer, pulFontPackageBufferSize, pulBytesWritten, usFlag, usTTCIndex, usSubsetFormat, usSubsetLanguage, usSubsetPlatform, usSubsetEncoding, pusSubsetKeepList, usSubsetListCount, lpfnAllocate, lpfnReAllocate, lpfnFree, lpvReserved)
# puchSrcBuffer : BYTE* -> "void*"
# ulSrcBufferSize : DWORD -> "dword"
# ppuchFontPackageBuffer : BYTE** in/out -> "void*"
# pulFontPackageBufferSize : DWORD* in/out -> "void*"
# pulBytesWritten : DWORD* in/out -> "void*"
# usFlag : WORD -> "int"
# usTTCIndex : WORD -> "int"
# usSubsetFormat : WORD -> "int"
# usSubsetLanguage : WORD -> "int"
# usSubsetPlatform : CREATE_FONT_PACKAGE_SUBSET_PLATFORM -> "int"
# usSubsetEncoding : CREATE_FONT_PACKAGE_SUBSET_ENCODING -> "int"
# pusSubsetKeepList : WORD* -> "void*"
# usSubsetListCount : WORD -> "int"
# lpfnAllocate : CFP_ALLOCPROC -> "void*"
# lpfnReAllocate : CFP_REALLOCPROC -> "void*"
# lpfnFree : CFP_FREEPROC -> "void*"
# lpvReserved : void* in/out -> "void*"
# なでしこ1は32bit・ANSI(Shift_JIS)。文字列=char*(ANSI)、ポインタ/ハンドル=void*(4byte)。
# ※cdecl関数。DLL()宣言はstdcall前提。cdeclは EXEC_PTR(`cdecl`,…) を使用。