ホーム › Graphics.Direct3D.Dxc › IDxcLibrary
IDxcLibrary
COMメソッド 10
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
| pMalloc | IMalloc* | inoptional | ライブラリが内部で使用するメモリアロケータを指すポインタ。 |
| pBlob | IDxcBlob* | in | 元データとなる既存Blobを指すポインタ。 |
| offset | DWORD | in | 元Blob内で切り出しを開始するバイトオフセット。 |
| length | DWORD | in | 切り出すバイト長を指定する。 |
| ppResult | IDxcBlob** | out | 生成された部分Blobを受け取る出力ポインタ。 |
vtbl 5 HRESULT CreateBlobFromFile(LPWSTR pFileName, DXC_CP* codePage, IDxcBlobEncoding** pBlobEncoding)
| pFileName | LPWSTR | in | 読み込むファイルのパス(UTF-16)を指すポインタ。 |
| codePage | DXC_CP* | inoptional | ファイル内容のコードページを指すポインタ。NULL可で自動判定。 |
| pBlobEncoding | IDxcBlobEncoding** | out | ファイル内容を格納したエンコード付きBlobを受け取る出力ポインタ。 |
vtbl 6 HRESULT CreateBlobWithEncodingFromPinned(void* pText, DWORD size, DXC_CP codePage, IDxcBlobEncoding** pBlobEncoding)
| pText | void* | in | ピン留め済みのテキストデータを指すポインタ。寿命は呼び出し側が保証する。 |
| size | DWORD | in | テキストデータのバイト長を指定する。 |
| codePage | DXC_CP | in | テキストのコードページ番号を指定する。 |
| pBlobEncoding | IDxcBlobEncoding** | out | 生成されたエンコード付きBlobを受け取る出力ポインタ。 |
vtbl 7 HRESULT CreateBlobWithEncodingOnHeapCopy(void* pText, DWORD size, DXC_CP codePage, IDxcBlobEncoding** pBlobEncoding)
| pText | void* | in | コピー元のテキストデータを指すポインタ。 |
| size | DWORD | in | テキストデータのバイト長を指定する。 |
| codePage | DXC_CP | in | テキストのコードページ番号を指定する。 |
| pBlobEncoding | IDxcBlobEncoding** | out | ヒープへ複製した内容を保持するBlobを受け取る出力ポインタ。 |
vtbl 8 HRESULT CreateBlobWithEncodingOnMalloc(void* pText, IMalloc* pIMalloc, DWORD size, DXC_CP codePage, IDxcBlobEncoding** pBlobEncoding)
| pText | void* | in | コピー元のテキストデータを指すポインタ。 |
| pIMalloc | IMalloc* | in | Blobの保持に使用するメモリアロケータを指すポインタ。 |
| size | DWORD | in | テキストデータのバイト長を指定する。 |
| codePage | DXC_CP | in | テキストのコードページ番号を指定する。 |
| pBlobEncoding | IDxcBlobEncoding** | out | 指定アロケータ上に確保された内容を保持するBlobを受け取る出力ポインタ。 |
vtbl 9 HRESULT CreateIncludeHandler(IDxcIncludeHandler** ppResult)
| ppResult | IDxcIncludeHandler** | out | 生成された既定のインクルードハンドラを受け取る出力ポインタ。 |
| pBlob | IDxcBlob* | in | ストリーム化する元Blobを指すポインタ。 |
| ppStream | IStream** | out | 生成された読み取り専用ストリームを受け取る出力ポインタ。 |
vtbl 11 HRESULT GetBlobAsUtf8(IDxcBlob* pBlob, IDxcBlobEncoding** pBlobEncoding)
| pBlob | IDxcBlob* | in | 変換元のBlobを指すポインタ。 |
| pBlobEncoding | IDxcBlobEncoding** | out | UTF-8へ変換した内容を保持するBlobを受け取る出力ポインタ。 |
vtbl 12 HRESULT GetBlobAsWide(IDxcBlob* pBlob, IDxcBlobEncoding** pBlobEncoding)
| pBlob | IDxcBlob* | in | 変換元のBlobを指すポインタ。 |
| pBlobEncoding | IDxcBlobEncoding** | out | ワイド文字(UTF-16)へ変換した内容を保持するBlobを受け取る出力ポインタ。 |
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
出力引数:
#define global IID_IDxcLibrary "{E5204DC7-D18C-4C3C-BDFB-851673980FE7}" #usecom global IDxcLibrary IID_IDxcLibrary "{}" #comfunc global IDxcLibrary_SetMalloc 3 sptr #comfunc global IDxcLibrary_CreateBlobFromBlob 4 sptr,int,int,sptr #comfunc global IDxcLibrary_CreateBlobFromFile 5 wstr,var,sptr #comfunc global IDxcLibrary_CreateBlobWithEncodingFromPinned 6 sptr,int,int,sptr #comfunc global IDxcLibrary_CreateBlobWithEncodingOnHeapCopy 7 sptr,int,int,sptr #comfunc global IDxcLibrary_CreateBlobWithEncodingOnMalloc 8 sptr,sptr,int,int,sptr #comfunc global IDxcLibrary_CreateIncludeHandler 9 sptr #comfunc global IDxcLibrary_CreateStreamFromBlobReadOnly 10 sptr,sptr #comfunc global IDxcLibrary_GetBlobAsUtf8 11 sptr,sptr #comfunc global IDxcLibrary_GetBlobAsWide 12 sptr,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_IDxcLibrary "{E5204DC7-D18C-4C3C-BDFB-851673980FE7}" #usecom global IDxcLibrary IID_IDxcLibrary "{}" #comfunc global IDxcLibrary_SetMalloc 3 sptr #comfunc global IDxcLibrary_CreateBlobFromBlob 4 sptr,int,int,sptr #comfunc global IDxcLibrary_CreateBlobFromFile 5 wstr,sptr,sptr #comfunc global IDxcLibrary_CreateBlobWithEncodingFromPinned 6 sptr,int,int,sptr #comfunc global IDxcLibrary_CreateBlobWithEncodingOnHeapCopy 7 sptr,int,int,sptr #comfunc global IDxcLibrary_CreateBlobWithEncodingOnMalloc 8 sptr,sptr,int,int,sptr #comfunc global IDxcLibrary_CreateIncludeHandler 9 sptr #comfunc global IDxcLibrary_CreateStreamFromBlobReadOnly 10 sptr,sptr #comfunc global IDxcLibrary_GetBlobAsUtf8 11 sptr,sptr #comfunc global IDxcLibrary_GetBlobAsWide 12 sptr,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。