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

IWICComponentFactory

COM
IID412d0c3a-9650-44fa-af5b-dd2a06c8e8fb継承元IWICImagingFactory自前メソッド開始 vtbl28

公式ドキュメント

コンポーネント開発者が使用するコンポーネントを作成するためのメソッドを公開します。これには、コーデックおよびメタデータ ハンドラーの開発者が使用するメタデータ リーダー、ライター、その他のサービスが含まれます。

メソッド 7

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

vtbl 28 HRESULT CreateMetadataReader(GUID* guidMetadataFormat, GUID* pguidVendor, DWORD dwOptions, IStream* pIStream, IWICMetadataReader** ppIReader)

指定されたパラメーターに基づいて IWICMetadataReader を作成します。(IWICComponentFactory.CreateMetadataReader)

guidMetadataFormatGUID*in目的のメタデータ形式の GUID。
pguidVendorGUID*in目的のメタデータ リーダー ベンダーの GUID へのポインター。
dwOptionsDWORDinメタデータ リーダーの作成時に使用する WICPersistOptions および WICMetadataCreationOptions オプション。
pIStreamIStream*inリーダーの初期化に使用するストリームへのポインター。NULL の場合、メタデータ リーダーは空になります。
ppIReaderIWICMetadataReader**out新しいメタデータ リーダーへのポインターを受け取るポインター。

戻り値

型: HRESULT

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

vtbl 29 HRESULT CreateMetadataReaderFromContainer(GUID* guidContainerFormat, GUID* pguidVendor, DWORD dwOptions, IStream* pIStream, IWICMetadataReader** ppIReader)

指定されたパラメーターに基づいて IWICMetadataReader を作成します。(IWICComponentFactory.CreateMetadataReaderFromContainer)

guidContainerFormatGUID*inリーダーの基にするコンテナー形式の GUID。
pguidVendorGUID*inメタデータ リーダーのベンダー GUID へのポインター。
dwOptionsDWORDinメタデータ リーダーの作成時に使用する WICPersistOptions および WICMetadataCreationOptions オプション。
pIStreamIStream*inリーダーの初期化に使用するストリームへのポインター。NULL の場合、メタデータ リーダーは空になります。
ppIReaderIWICMetadataReader**out新しいメタデータ リーダーへのポインターを受け取るポインター。

戻り値

型: HRESULT

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

vtbl 30 HRESULT CreateMetadataWriter(GUID* guidMetadataFormat, GUID* pguidVendor, DWORD dwMetadataOptions, IWICMetadataWriter** ppIWriter)

指定されたパラメーターに基づいて IWICMetadataWriter を作成します。

guidMetadataFormatGUID*in目的のメタデータ形式の GUID。
pguidVendorGUID*in目的のメタデータ リーダー ベンダーの GUID へのポインター。
dwMetadataOptionsDWORDinメタデータ リーダーの作成時に使用する WICPersistOptions および WICMetadataCreationOptions オプション。
ppIWriterIWICMetadataWriter**out新しいメタデータ ライターへのポインターを受け取るポインター。

戻り値

型: HRESULT

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

vtbl 31 HRESULT CreateMetadataWriterFromReader(IWICMetadataReader* pIReader, GUID* pguidVendor, IWICMetadataWriter** ppIWriter)

指定された IWICMetadataReader から IWICMetadataWriter を作成します。

pIReaderIWICMetadataReader*inメタデータ ライターの基にするメタデータ リーダーへのポインター。
pguidVendorGUID*in目的のメタデータ リーダー ベンダーの GUID へのポインター。
ppIWriterIWICMetadataWriter**out新しいメタデータ ライターへのポインターを受け取るポインター。

戻り値

型: HRESULT

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

vtbl 32 HRESULT CreateQueryReaderFromBlockReader(IWICMetadataBlockReader* pIBlockReader, IWICMetadataQueryReader** ppIQueryReader)

指定された IWICMetadataBlockReader から IWICMetadataQueryReader を作成します。

pIBlockReaderIWICMetadataBlockReader*inクエリ リーダーの基にするブロック リーダーへのポインター。
ppIQueryReaderIWICMetadataQueryReader**out新しいメタデータ クエリ リーダーへのポインターを受け取るポインター。

戻り値

型: HRESULT

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

vtbl 33 HRESULT CreateQueryWriterFromBlockWriter(IWICMetadataBlockWriter* pIBlockWriter, IWICMetadataQueryWriter** ppIQueryWriter)

指定された IWICMetadataBlockWriter から IWICMetadataQueryWriter を作成します。

pIBlockWriterIWICMetadataBlockWriter*inメタデータ クエリ ライターの基にするメタデータ ブロック リーダーへのポインター。
ppIQueryWriterIWICMetadataQueryWriter**out新しいメタデータ クエリ ライターへのポインターを受け取るポインター。

戻り値

型: HRESULT

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

vtbl 34 HRESULT CreateEncoderPropertyBag(PROPBAG2* ppropOptions, DWORD cCount, IPropertyBag2** ppIPropertyBag)

エンコーダー プロパティ バッグを作成します。

ppropOptionsPROPBAG2*inエンコーダー プロパティ バッグの作成に使用する PROPBAG2 オプションの配列へのポインター。
cCountDWORDinppropOptions 配列内の PROPBAG2 構造体の数。
ppIPropertyBagIPropertyBag2**outエンコーダーの IPropertyBag2 へのポインターを受け取るポインター。

戻り値

型: 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_IWICComponentFactory "{412D0C3A-9650-44FA-AF5B-DD2A06C8E8FB}"
#usecom global IWICComponentFactory IID_IWICComponentFactory "{}"
#comfunc global IWICComponentFactory_CreateMetadataReader               28 var,var,int,sptr,sptr
#comfunc global IWICComponentFactory_CreateMetadataReaderFromContainer  29 var,var,int,sptr,sptr
#comfunc global IWICComponentFactory_CreateMetadataWriter               30 var,var,int,sptr
#comfunc global IWICComponentFactory_CreateMetadataWriterFromReader     31 sptr,var,sptr
#comfunc global IWICComponentFactory_CreateQueryReaderFromBlockReader   32 sptr,sptr
#comfunc global IWICComponentFactory_CreateQueryWriterFromBlockWriter   33 sptr,sptr
#comfunc global IWICComponentFactory_CreateEncoderPropertyBag           34 var,int,sptr
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。