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

IWICImagingFactory

COM
IIDec5ec8a9-c395-4314-9c77-54d7a935ff70継承元IUnknown自前メソッド開始 vtbl3

公式ドキュメント

デコーダー、エンコーダー、ピクセルフォーマットコンバーターなど、Windows Imaging Component (WIC) のコンポーネントを作成するためのメソッドを公開します。

メソッド 25

vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。

vtbl 3 HRESULT CreateDecoderFromFilename(LPWSTR wzFilename, GUID* pguidVendor, GENERIC_ACCESS_RIGHTS dwDesiredAccess, WICDecodeOptions metadataOptions, IWICBitmapDecoder** ppIDecoder)

指定されたファイルに基づいて、IWICBitmapDecoder クラスの新しいインスタンスを作成します。

wzFilenameLPWSTRin作成または開くオブジェクトの名前を指定する、null で終わる文字列へのポインター。
pguidVendorGUID*inoptional優先するデコーダーベンダーの GUID。優先するベンダーがない場合は NULL を使用します。
dwDesiredAccessGENERIC_ACCESS_RIGHTSin

オブジェクトへのアクセス。読み取り、書き込み、またはその両方を指定できます。

意味
GENERIC_READ
読み取りアクセス。
GENERIC_WRITE
書き込みアクセス。

詳細については、Generic Access Rights を参照してください。

metadataOptionsWICDecodeOptionsinデコーダーを作成するときに使用する WICDecodeOptions
ppIDecoderIWICBitmapDecoder**out新しい IWICBitmapDecoder へのポインターを受け取るポインター。

戻り値

型: HRESULT

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

vtbl 4 HRESULT CreateDecoderFromStream(IStream* pIStream, GUID* pguidVendor, WICDecodeOptions metadataOptions, IWICBitmapDecoder** ppIDecoder)

指定された IStream に基づいて、IWICBitmapDecoder クラスの新しいインスタンスを作成します。

pIStreamIStream*inデコーダーの作成元となるストリーム。
pguidVendorGUID*in優先するデコーダーベンダーの GUID。優先するベンダーがない場合は NULL を使用します。
metadataOptionsWICDecodeOptionsinデコーダーを作成するときに使用する WICDecodeOptions
ppIDecoderIWICBitmapDecoder**out新しい IWICBitmapDecoder へのポインターを受け取るポインター。

戻り値

型: HRESULT

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

vtbl 5 HRESULT CreateDecoderFromFileHandle(UINT_PTR hFile, GUID* pguidVendor, WICDecodeOptions metadataOptions, IWICBitmapDecoder** ppIDecoder)

指定されたファイルハンドルに基づいて、IWICBitmapDecoder の新しいインスタンスを作成します。

hFileUINT_PTRinデコーダーの作成元となるファイルハンドル。
pguidVendorGUID*in優先するデコーダーベンダーの GUID。優先するベンダーがない場合は NULL を使用します。
metadataOptionsWICDecodeOptionsinデコーダーを作成するときに使用する WICDecodeOptions
ppIDecoderIWICBitmapDecoder**out新しい IWICBitmapDecoder へのポインターを受け取るポインター。

戻り値

型: HRESULT

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

解説(Remarks)

このメソッドを使用してデコーダーを作成した場合、ファイルハンドルはデコーダーの有効期間中、有効なまま維持する必要があります。

vtbl 6 HRESULT CreateComponentInfo(GUID* clsidComponent, IWICComponentInfo** ppIInfo)

指定されたコンポーネントクラス識別子 (CLSID) に対応する IWICComponentInfo クラスの新しいインスタンスを作成します。

clsidComponentGUID*in対象のコンポーネントの CLSID。
ppIInfoIWICComponentInfo**out新しい IWICComponentInfo へのポインターを受け取るポインター。

戻り値

型: HRESULT

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

vtbl 7 HRESULT CreateDecoder(GUID* guidContainerFormat, GUID* pguidVendor, IWICBitmapDecoder** ppIDecoder)

IWICBitmapDecoder の新しいインスタンスを作成します。

guidContainerFormatGUID*in

対象のコンテナーフォーマットの GUID。

意味
GUID_ContainerFormatBmp
BMP コンテナーフォーマットの GUID。
GUID_ContainerFormatPng
PNG コンテナーフォーマットの GUID。
GUID_ContainerFormatIco
ICO コンテナーフォーマットの GUID。
GUID_ContainerFormatJpeg
JPEG コンテナーフォーマットの GUID。
GUID_ContainerFormatTiff
TIFF コンテナーフォーマットの GUID。
GUID_ContainerFormatGif
GIF コンテナーフォーマットの GUID。
GUID_ContainerFormatWmp
HD Photo コンテナーフォーマットの GUID。
pguidVendorGUID*in

優先するエンコーダーベンダーの GUID。

意味
NULL
優先するコーデックベンダーなし。
GUID_VendorMicrosoft
Microsoft エンコーダーの使用を優先します。
GUID_VendorMicrosoftBuiltIn
ネイティブの Microsoft エンコーダーの使用を優先します。
ppIDecoderIWICBitmapDecoder**out新しい IWICBitmapDecoder へのポインターを受け取るポインター。この IWICBitmapDecoder は、後で Initialize メソッドを使用してストリーム上で初期化する必要があります。

戻り値

型: HRESULT

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

解説(Remarks)

インストールされている WIC 対応エンコーダーによっては、guidContainerFormatpguidVendor の両方で他の値も利用できる場合があります。 ここに記載されている値は、オペレーティングシステムがネイティブにサポートするものです。

vtbl 8 HRESULT CreateEncoder(GUID* guidContainerFormat, GUID* pguidVendor, IWICBitmapEncoder** ppIEncoder)

IWICBitmapEncoder クラスの新しいインスタンスを作成します。

guidContainerFormatGUID*in

対象のコンテナーフォーマットの GUID。

意味
GUID_ContainerFormatBmp
BMP コンテナーフォーマットの GUID。
GUID_ContainerFormatPng
PNG コンテナーフォーマットの GUID。
GUID_ContainerFormatIco
ICO コンテナーフォーマットの GUID。
GUID_ContainerFormatJpeg
JPEG コンテナーフォーマットの GUID。
GUID_ContainerFormatTiff
TIFF コンテナーフォーマットの GUID。
GUID_ContainerFormatGif
GIF コンテナーフォーマットの GUID。
GUID_ContainerFormatWmp
HD Photo コンテナーフォーマットの GUID。
pguidVendorGUID*in

優先するエンコーダーベンダーの GUID。

意味
NULL
優先するコーデックベンダーなし。
GUID_VendorMicrosoft
Microsoft エンコーダーの使用を優先します。
GUID_VendorMicrosoftBuiltIn
ネイティブの Microsoft エンコーダーの使用を優先します。
ppIEncoderIWICBitmapEncoder**out新しい IWICBitmapEncoder へのポインターを受け取るポインター。

戻り値

型: HRESULT

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

解説(Remarks)

インストールされている WIC 対応エンコーダーによっては、guidContainerFormatpguidVendor の両方で他の値も利用できる場合があります。 ここに記載されている値は、オペレーティングシステムがネイティブにサポートするものです。

vtbl 9 HRESULT CreatePalette(IWICPalette** ppIPalette)

IWICPalette クラスの新しいインスタンスを作成します。

ppIPaletteIWICPalette**out新しい IWICPalette へのポインターを受け取るポインター。

戻り値

型: HRESULT

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

vtbl 10 HRESULT CreateFormatConverter(IWICFormatConverter** ppIFormatConverter)

IWICFormatConverter クラスの新しいインスタンスを作成します。

ppIFormatConverterIWICFormatConverter**out新しい IWICFormatConverter へのポインターを受け取るポインター。

戻り値

型: HRESULT

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

vtbl 11 HRESULT CreateBitmapScaler(IWICBitmapScaler** ppIBitmapScaler)

IWICBitmapScaler の新しいインスタンスを作成します。

ppIBitmapScalerIWICBitmapScaler**out新しい IWICBitmapScaler へのポインターを受け取るポインター。

戻り値

型: HRESULT

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

vtbl 12 HRESULT CreateBitmapClipper(IWICBitmapClipper** ppIBitmapClipper)

IWICBitmapClipper オブジェクトの新しいインスタンスを作成します。

ppIBitmapClipperIWICBitmapClipper**out新しい IWICBitmapClipper へのポインターを受け取るポインター。

戻り値

型: HRESULT

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

vtbl 13 HRESULT CreateBitmapFlipRotator(IWICBitmapFlipRotator** ppIBitmapFlipRotator)

IWICBitmapFlipRotator オブジェクトの新しいインスタンスを作成します。

ppIBitmapFlipRotatorIWICBitmapFlipRotator**out新しい IWICBitmapFlipRotator へのポインターを受け取るポインター。

戻り値

型: HRESULT

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

vtbl 14 HRESULT CreateStream(IWICStream** ppIWICStream)

IWICStream クラスの新しいインスタンスを作成します。

ppIWICStreamIWICStream**out新しい IWICStream へのポインターを受け取るポインター。

戻り値

型: HRESULT

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

vtbl 15 HRESULT CreateColorContext(IWICColorContext** ppIWICColorContext)

IWICColorContext クラスの新しいインスタンスを作成します。

ppIWICColorContextIWICColorContext**out新しい IWICColorContext へのポインターを受け取るポインター。

戻り値

型: HRESULT

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

vtbl 16 HRESULT CreateColorTransformer(IWICColorTransform** ppIWICColorTransform)

IWICColorTransform クラスの新しいインスタンスを作成します。

ppIWICColorTransformIWICColorTransform**out新しい IWICColorTransform へのポインターを受け取るポインター。

戻り値

型: HRESULT

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

vtbl 17 HRESULT CreateBitmap(DWORD uiWidth, DWORD uiHeight, GUID* pixelFormat, WICBitmapCreateCacheOption option, IWICBitmap** ppIBitmap)

IWICBitmap オブジェクトを作成します。

uiWidthDWORDin新しいビットマップの幅。
uiHeightDWORDin新しいビットマップの高さ。
pixelFormatGUID*in新しいビットマップのピクセルフォーマット。
optionWICBitmapCreateCacheOptionin

新しいビットマップのキャッシュ作成オプション。WICBitmapCreateCacheOption 列挙体の値のいずれかを指定できます。

意味
WICBitmapCacheOnDemand
ビットマップが最初に使用されるときにシステムメモリを割り当てます。
WICBitmapCacheOnLoad
初期化時にビットマップ用のシステムメモリを割り当てます。
WICBitmapNoCache
このオプションはこのメソッドでは有効ではなく、使用しないでください。
ppIBitmapIWICBitmap**out新しいビットマップへのポインターを受け取るポインター。

戻り値

型: HRESULT

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

vtbl 18 HRESULT CreateBitmapFromSource(IWICBitmapSource* pIBitmapSource, WICBitmapCreateCacheOption option, IWICBitmap** ppIBitmap)

IWICBitmapSource から IWICBitmap を作成します。

pIBitmapSourceIWICBitmapSource*inビットマップの作成元となる IWICBitmapSource
optionWICBitmapCreateCacheOptionin

新しいビットマップのキャッシュオプション。WICBitmapCreateCacheOption 列挙体の値のいずれかを指定できます。

意味
WICBitmapNoCache
システムメモリのコピーを作成しません。ソースとビットマップを共有します。
WICBitmapCacheOnDemand
ビットマップが最初に使用されるときにシステムメモリのコピーを作成します。
WICBitmapCacheOnLoad
このメソッドが呼び出されたときにシステムメモリのコピーを作成します。
ppIBitmapIWICBitmap**out新しいビットマップへのポインターを受け取るポインター。

戻り値

型: HRESULT

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

vtbl 19 HRESULT CreateBitmapFromSourceRect(IWICBitmapSource* pIBitmapSource, DWORD x, DWORD y, DWORD width, DWORD height, IWICBitmap** ppIBitmap)

IWICBitmapSource の指定した矩形から IWICBitmap を作成します。

pIBitmapSourceIWICBitmapSource*inビットマップの作成元となる IWICBitmapSource
xDWORDin矩形の左上隅の水平座標。
yDWORDin矩形の左上隅の垂直座標。
widthDWORDin矩形および新しいビットマップの幅。
heightDWORDin矩形および新しいビットマップの高さ。
ppIBitmapIWICBitmap**out新しいビットマップへのポインターを受け取るポインター。

戻り値

型: HRESULT

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

解説(Remarks)

ソースより大きい矩形を指定すると、結果は未定義となります。

このメソッドは、キャッシュオプション WICBitmapCacheOnLoad と同様に、常にソース画像の独立したコピーを作成します。

vtbl 20 HRESULT CreateBitmapFromMemory(DWORD uiWidth, DWORD uiHeight, GUID* pixelFormat, DWORD cbStride, DWORD cbBufferSize, BYTE* pbBuffer, IWICBitmap** ppIBitmap)

メモリブロックから IWICBitmap を作成します。

uiWidthDWORDin新しいビットマップの幅。
uiHeightDWORDin新しいビットマップの高さ。
pixelFormatGUID*in新しいビットマップのピクセルフォーマット。有効なピクセルフォーマットについては、Native Pixel Formats を参照してください。
cbStrideDWORDinpbBuffer 内の連続するスキャンライン間のバイト数。
cbBufferSizeDWORDinpbBuffer のサイズ。
pbBufferBYTE*inビットマップの作成に使用するバッファー。
ppIBitmapIWICBitmap**out新しいビットマップへのポインターを受け取るポインター。

戻り値

型: HRESULT

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

解説(Remarks)

作成する IWICBitmap のサイズは、pbBuffer 内の画像のサイズ以下である必要があります。

作成先ビットマップのストライドは、指定した幅と高さに関係なく、ソースデータの stride と等しくなります。

pixelFormat パラメーターは、入力データと出力ビットマップの両方のピクセルフォーマットを定義します。

vtbl 21 HRESULT CreateBitmapFromHBITMAP(HBITMAP hBitmap, HPALETTE hPalette, WICBitmapAlphaChannelOption options, IWICBitmap** ppIBitmap)

ビットマップハンドルから IWICBitmap を作成します。

hBitmapHBITMAPinビットマップの作成元となるビットマップハンドル。
hPaletteHPALETTEinビットマップの作成に使用するパレットハンドル。
optionsWICBitmapAlphaChannelOptioninビットマップを作成する際のアルファチャンネルオプション。
ppIBitmapIWICBitmap**out新しいビットマップへのポインターを受け取るポインター。

戻り値

型: HRESULT

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

解説(Remarks)

パレット化されていないビットマップの場合は、hPalette パラメーターに NULL を設定します。

vtbl 22 HRESULT CreateBitmapFromHICON(HICON hIcon, IWICBitmap** ppIBitmap)

アイコンハンドルから IWICBitmap を作成します。

hIconHICONin新しいビットマップの作成元となるアイコンハンドル。
ppIBitmapIWICBitmap**out新しいビットマップへのポインターを受け取るポインター。

戻り値

型: HRESULT

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

vtbl 23 HRESULT CreateComponentEnumerator(DWORD componentTypes, DWORD options, IEnumUnknown** ppIEnumUnknown)

指定したコンポーネントタイプの IEnumUnknown オブジェクトを作成します。

componentTypesDWORDin列挙する WICComponentType のタイプ。
optionsDWORDin指定したコンポーネントタイプの列挙に使用する WICComponentEnumerateOptions
ppIEnumUnknownIEnumUnknown**out新しいコンポーネント列挙子へのポインターを受け取るポインター。

戻り値

型: HRESULT

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

解説(Remarks)

コンポーネントタイプは個別に列挙する必要があります。コンポーネントタイプと WICAllComponents の組み合わせはサポートされていません。

vtbl 24 HRESULT CreateFastMetadataEncoderFromDecoder(IWICBitmapDecoder* pIDecoder, IWICFastMetadataEncoder** ppIFastEncoder)

指定された IWICBitmapDecoder に基づいて、高速メタデータエンコーダーの新しいインスタンスを作成します。

pIDecoderIWICBitmapDecoder*in高速メタデータエンコーダーの作成元となるデコーダー。
ppIFastEncoderIWICFastMetadataEncoder**outこのメソッドが返るとき、新しい IWICFastMetadataEncoder へのポインターが格納されます。

戻り値

型: HRESULT

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

解説(Remarks)

Windows が提供するコーデックは、デコーダーレベルでの高速メタデータエンコードをサポートしておらず、フレームレベルでの高速メタデータエンコードのみをサポートします。フレームから高速メタデータエンコーダーを作成するには、CreateFastMetadataEncoderFromFrameDecode を参照してください。

vtbl 25 HRESULT CreateFastMetadataEncoderFromFrameDecode(IWICBitmapFrameDecode* pIFrameDecoder, IWICFastMetadataEncoder** ppIFastEncoder)

指定された画像フレームに基づいて、高速メタデータエンコーダーの新しいインスタンスを作成します。

pIFrameDecoderIWICBitmapFrameDecode*inIWICFastMetadataEncoder の作成元となる IWICBitmapFrameDecode
ppIFastEncoderIWICFastMetadataEncoder**outこのメソッドが返るとき、新しい高速メタデータエンコーダーへのポインターが格納されます。

戻り値

型: HRESULT

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

解説(Remarks)

高速メタデータエンコードでサポートされるメタデータフォーマットの一覧については、WIC Metadata Overview を参照してください。

Examples

次のコードは、高速メタデータエンコードのために CreateFastMetadataEncoderFromFrameDecode メソッドを使用する方法を示しています。

IWICFastMetadataEncoder *pFME = NULL;
IWICMetadataQueryWriter *pFMEQW = NULL;

hr = pFactory->CreateFastMetadataEncoderFromFrameDecode(pFrameDecode, &pFME);

if (SUCCEEDED(hr))
{
  hr = pFME->GetMetadataQueryWriter(&pFMEQW);
}

if (SUCCEEDED(hr))
{
  // Add additional metadata
  PROPVARIANT value;

  PropVariantInit(&value);

  value.vt = VT_UI2;
  value.uiVal = 99;
  hr = pFMEQW->SetMetadataByName(L"/app1/ifd/{ushort=18249}", &value);

  PropVariantClear(&value);
}

if (SUCCEEDED(hr))
{
  hr = pFME->Commit();
}
vtbl 26 HRESULT CreateQueryWriter(GUID* guidMetadataFormat, GUID* pguidVendor, IWICMetadataQueryWriter** ppIQueryWriter)

クエリライターの新しいインスタンスを作成します。

guidMetadataFormatGUID*in対象のメタデータフォーマットの GUID。
pguidVendorGUID*in優先するメタデータライターベンダーの GUID。優先するベンダーがない場合は NULL を使用します。
ppIQueryWriterIWICMetadataQueryWriter**outこのメソッドが返るとき、新しい IWICMetadataQueryWriter へのポインターが格納されます。

戻り値

型: HRESULT

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

vtbl 27 HRESULT CreateQueryWriterFromReader(IWICMetadataQueryReader* pIQueryReader, GUID* pguidVendor, IWICMetadataQueryWriter** ppIQueryWriter)

指定されたクエリリーダーに基づいて、クエリライターの新しいインスタンスを作成します。クエリライターには、クエリリーダーのメタデータがあらかじめ設定されます。

pIQueryReaderIWICMetadataQueryReader*inIWICMetadataQueryWriter の作成元となる IWICMetadataQueryReader
pguidVendorGUID*in優先するメタデータライターベンダーの GUID。優先するベンダーがない場合は NULL を使用します。
ppIQueryWriterIWICMetadataQueryWriter**outこのメソッドが返るとき、新しいメタデータライターへのポインターが格納されます。

戻り値

型: HRESULT

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)

HSP用 COM定義

#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"

出力引数:
#define global IID_IWICImagingFactory "{EC5EC8A9-C395-4314-9C77-54D7A935FF70}"
#usecom global IWICImagingFactory IID_IWICImagingFactory "{CACAF262-9370-4615-A13B-9F5539DA4C0A}"
#comfunc global IWICImagingFactory_CreateDecoderFromFilename                 3 wstr,var,int,int,sptr
#comfunc global IWICImagingFactory_CreateDecoderFromStream                   4 sptr,var,int,sptr
#comfunc global IWICImagingFactory_CreateDecoderFromFileHandle               5 sptr,var,int,sptr
#comfunc global IWICImagingFactory_CreateComponentInfo                       6 var,sptr
#comfunc global IWICImagingFactory_CreateDecoder                             7 var,var,sptr
#comfunc global IWICImagingFactory_CreateEncoder                             8 var,var,sptr
#comfunc global IWICImagingFactory_CreatePalette                             9 sptr
#comfunc global IWICImagingFactory_CreateFormatConverter                     10 sptr
#comfunc global IWICImagingFactory_CreateBitmapScaler                        11 sptr
#comfunc global IWICImagingFactory_CreateBitmapClipper                       12 sptr
#comfunc global IWICImagingFactory_CreateBitmapFlipRotator                   13 sptr
#comfunc global IWICImagingFactory_CreateStream                              14 sptr
#comfunc global IWICImagingFactory_CreateColorContext                        15 sptr
#comfunc global IWICImagingFactory_CreateColorTransformer                    16 sptr
#comfunc global IWICImagingFactory_CreateBitmap                              17 int,int,var,int,sptr
#comfunc global IWICImagingFactory_CreateBitmapFromSource                    18 sptr,int,sptr
#comfunc global IWICImagingFactory_CreateBitmapFromSourceRect                19 sptr,int,int,int,int,sptr
#comfunc global IWICImagingFactory_CreateBitmapFromMemory                    20 int,int,var,int,int,var,sptr
#comfunc global IWICImagingFactory_CreateBitmapFromHBITMAP                   21 sptr,sptr,int,sptr
#comfunc global IWICImagingFactory_CreateBitmapFromHICON                     22 sptr,sptr
#comfunc global IWICImagingFactory_CreateComponentEnumerator                 23 int,int,sptr
#comfunc global IWICImagingFactory_CreateFastMetadataEncoderFromDecoder      24 sptr,sptr
#comfunc global IWICImagingFactory_CreateFastMetadataEncoderFromFrameDecode  25 sptr,sptr
#comfunc global IWICImagingFactory_CreateQueryWriter                         26 var,var,sptr
#comfunc global IWICImagingFactory_CreateQueryWriterFromReader               27 sptr,var,sptr
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※#usecom 末尾は CoCreateInstance 用のクラスID(コクラスCLSID, SDKから自動取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。