Win32 API 日本語リファレンス
ホームGraphics.Direct3D.Dxc › IDxcLibrary

IDxcLibrary

COM
IIDe5204dc7-d18c-4c3c-bdfb-851673980fe7継承元IUnknown自前メソッド開始 vtbl3

メソッド 10

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

vtbl 3 HRESULT SetMalloc(IMalloc* pMalloc)
pMallocIMalloc*inoptionalライブラリが内部で使用するメモリアロケータを指すポインタ。
vtbl 4 HRESULT CreateBlobFromBlob(IDxcBlob* pBlob, DWORD offset, DWORD length, IDxcBlob** ppResult)
pBlobIDxcBlob*in元データとなる既存Blobを指すポインタ。
offsetDWORDin元Blob内で切り出しを開始するバイトオフセット。
lengthDWORDin切り出すバイト長を指定する。
ppResultIDxcBlob**out生成された部分Blobを受け取る出力ポインタ。
vtbl 5 HRESULT CreateBlobFromFile(LPWSTR pFileName, DXC_CP* codePage, IDxcBlobEncoding** pBlobEncoding)
pFileNameLPWSTRin読み込むファイルのパス(UTF-16)を指すポインタ。
codePageDXC_CP*inoptionalファイル内容のコードページを指すポインタ。NULL可で自動判定。
pBlobEncodingIDxcBlobEncoding**outファイル内容を格納したエンコード付きBlobを受け取る出力ポインタ。
vtbl 6 HRESULT CreateBlobWithEncodingFromPinned(void* pText, DWORD size, DXC_CP codePage, IDxcBlobEncoding** pBlobEncoding)
pTextvoid*inピン留め済みのテキストデータを指すポインタ。寿命は呼び出し側が保証する。
sizeDWORDinテキストデータのバイト長を指定する。
codePageDXC_CPinテキストのコードページ番号を指定する。
pBlobEncodingIDxcBlobEncoding**out生成されたエンコード付きBlobを受け取る出力ポインタ。
vtbl 7 HRESULT CreateBlobWithEncodingOnHeapCopy(void* pText, DWORD size, DXC_CP codePage, IDxcBlobEncoding** pBlobEncoding)
pTextvoid*inコピー元のテキストデータを指すポインタ。
sizeDWORDinテキストデータのバイト長を指定する。
codePageDXC_CPinテキストのコードページ番号を指定する。
pBlobEncodingIDxcBlobEncoding**outヒープへ複製した内容を保持するBlobを受け取る出力ポインタ。
vtbl 8 HRESULT CreateBlobWithEncodingOnMalloc(void* pText, IMalloc* pIMalloc, DWORD size, DXC_CP codePage, IDxcBlobEncoding** pBlobEncoding)
pTextvoid*inコピー元のテキストデータを指すポインタ。
pIMallocIMalloc*inBlobの保持に使用するメモリアロケータを指すポインタ。
sizeDWORDinテキストデータのバイト長を指定する。
codePageDXC_CPinテキストのコードページ番号を指定する。
pBlobEncodingIDxcBlobEncoding**out指定アロケータ上に確保された内容を保持するBlobを受け取る出力ポインタ。
vtbl 9 HRESULT CreateIncludeHandler(IDxcIncludeHandler** ppResult)
ppResultIDxcIncludeHandler**out生成された既定のインクルードハンドラを受け取る出力ポインタ。
vtbl 10 HRESULT CreateStreamFromBlobReadOnly(IDxcBlob* pBlob, IStream** ppStream)
pBlobIDxcBlob*inストリーム化する元Blobを指すポインタ。
ppStreamIStream**out生成された読み取り専用ストリームを受け取る出力ポインタ。
vtbl 11 HRESULT GetBlobAsUtf8(IDxcBlob* pBlob, IDxcBlobEncoding** pBlobEncoding)
pBlobIDxcBlob*in変換元のBlobを指すポインタ。
pBlobEncodingIDxcBlobEncoding**outUTF-8へ変換した内容を保持するBlobを受け取る出力ポインタ。
vtbl 12 HRESULT GetBlobAsWide(IDxcBlob* pBlob, IDxcBlobEncoding** pBlobEncoding)
pBlobIDxcBlob*in変換元のBlobを指すポインタ。
pBlobEncodingIDxcBlobEncoding**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 指定が可能。