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

IDxcPdbUtils

COM
IIDe6c9647e-9d6a-4c3b-b94c-524b5a6c343d継承元IUnknown自前メソッド開始 vtbl3

メソッド 24

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

vtbl 3 HRESULT Load(IDxcBlob* pPdbOrDxil)
pPdbOrDxilIDxcBlob*in解析対象のPDBデータまたはデバッグ情報付きDXILを格納した入力Blob。
vtbl 4 HRESULT GetSourceCount(DWORD* pCount)
pCountDWORD*outPDBに含まれるソースファイルの総数を受け取るDWORDポインタ。
vtbl 5 HRESULT GetSource(DWORD uIndex, IDxcBlobEncoding** ppResult)
uIndexDWORDin取得するソースファイルを示すゼロ基点のインデックス。
ppResultIDxcBlobEncoding**out指定ソースファイルの内容をエンコーディング付きで受け取る出力Blob。
vtbl 6 HRESULT GetSourceName(DWORD uIndex, LPWSTR* pResult)
uIndexDWORDin取得するソースファイルを示すゼロ基点のインデックス。
pResultLPWSTR*out指定ソースファイルの名前を受け取るワイド文字列ポインタ。要解放。
vtbl 7 HRESULT GetFlagCount(DWORD* pCount)
pCountDWORD*outコンパイル時に使われたフラグの総数を受け取るDWORDポインタ。
vtbl 8 HRESULT GetFlag(DWORD uIndex, LPWSTR* pResult)
uIndexDWORDin取得するフラグを示すゼロ基点のインデックス。
pResultLPWSTR*out指定インデックスのコンパイルフラグ文字列を受け取るポインタ。要解放。
vtbl 9 HRESULT GetArgCount(DWORD* pCount)
pCountDWORD*outコンパイル時の引数の総数を受け取るDWORDポインタ。
vtbl 10 HRESULT GetArg(DWORD uIndex, LPWSTR* pResult)
uIndexDWORDin取得する引数を示すゼロ基点のインデックス。
pResultLPWSTR*out指定インデックスのコンパイル引数文字列を受け取るポインタ。要解放。
vtbl 11 HRESULT GetArgPairCount(DWORD* pCount)
pCountDWORD*out名前と値の組で表される引数ペアの総数を受け取るDWORDポインタ。
vtbl 12 HRESULT GetArgPair(DWORD uIndex, LPWSTR* pName, LPWSTR* pValue)
uIndexDWORDin取得する引数ペアを示すゼロ基点のインデックス。
pNameLPWSTR*out引数ペアの名前部分を受け取るワイド文字列ポインタ。要解放。
pValueLPWSTR*out引数ペアの値部分を受け取るワイド文字列ポインタ。値が無ければ空文字。
vtbl 13 HRESULT GetDefineCount(DWORD* pCount)
pCountDWORD*outコンパイル時に指定されたマクロ定義の総数を受け取るDWORDポインタ。
vtbl 14 HRESULT GetDefine(DWORD uIndex, LPWSTR* pResult)
uIndexDWORDin取得するマクロ定義を示すゼロ基点のインデックス。
pResultLPWSTR*out指定インデックスのマクロ定義文字列を受け取るポインタ。要解放。
vtbl 15 HRESULT GetTargetProfile(LPWSTR* pResult)
pResultLPWSTR*outコンパイルのターゲットプロファイル文字列(例: ps_6_0)を受け取るポインタ。
vtbl 16 HRESULT GetEntryPoint(LPWSTR* pResult)
pResultLPWSTR*outシェーダーのエントリポイント関数名を受け取るワイド文字列ポインタ。
vtbl 17 HRESULT GetMainFileName(LPWSTR* pResult)
pResultLPWSTR*outコンパイル対象の主ソースファイル名を受け取るワイド文字列ポインタ。
vtbl 18 HRESULT GetHash(IDxcBlob** ppResult)
ppResultIDxcBlob**outシェーダーのハッシュ値を表すBlobを受け取る出力ポインタ。
vtbl 19 HRESULT GetName(LPWSTR* pResult)
pResultLPWSTR*outPDBの名前を受け取るワイド文字列ポインタ。要解放。
vtbl 20 BOOL IsFullPDB()
vtbl 21 HRESULT GetFullPDB(IDxcBlob** ppFullPDB)
ppFullPDBIDxcBlob**outソースを含む完全なPDBデータを受け取る出力Blobポインタ。
vtbl 22 HRESULT GetVersionInfo(IDxcVersionInfo** ppVersionInfo)
ppVersionInfoIDxcVersionInfo**outPDB生成に使われたコンパイラのバージョン情報を受け取るIDxcVersionInfo。
vtbl 23 HRESULT SetCompiler(IDxcCompiler3* pCompiler)
pCompilerIDxcCompiler3*in完全PDB再生成に使用するIDxcCompiler3コンパイラインスタンス。
vtbl 24 HRESULT CompileForFullPDB(IDxcResult** ppResult)
ppResultIDxcResult**outPDB情報を用いた再コンパイル結果を受け取るIDxcResult出力ポインタ。
vtbl 25 HRESULT OverrideArgs(DxcArgPair* pArgPairs, DWORD uNumArgPairs)
pArgPairsDxcArgPair*in再コンパイル時に上書きする引数ペアの配列を指すポインタ。
uNumArgPairsDWORDinpArgPairs配列に含まれる引数ペアの個数。
vtbl 26 HRESULT OverrideRootSignature(LPWSTR pRootSignature)
pRootSignatureLPWSTRin再コンパイル時に上書きするルートシグネチャを表すワイド文字列。

HSP用 COM定義

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

出力引数:
#define global IID_IDxcPdbUtils "{E6C9647E-9D6A-4C3B-B94C-524B5A6C343D}"
#usecom global IDxcPdbUtils IID_IDxcPdbUtils "{}"
#comfunc global IDxcPdbUtils_Load                   3 sptr
#comfunc global IDxcPdbUtils_GetSourceCount         4 var
#comfunc global IDxcPdbUtils_GetSource              5 int,sptr
#comfunc global IDxcPdbUtils_GetSourceName          6 int,var
#comfunc global IDxcPdbUtils_GetFlagCount           7 var
#comfunc global IDxcPdbUtils_GetFlag                8 int,var
#comfunc global IDxcPdbUtils_GetArgCount            9 var
#comfunc global IDxcPdbUtils_GetArg                 10 int,var
#comfunc global IDxcPdbUtils_GetArgPairCount        11 var
#comfunc global IDxcPdbUtils_GetArgPair             12 int,var,var
#comfunc global IDxcPdbUtils_GetDefineCount         13 var
#comfunc global IDxcPdbUtils_GetDefine              14 int,var
#comfunc global IDxcPdbUtils_GetTargetProfile       15 var
#comfunc global IDxcPdbUtils_GetEntryPoint          16 var
#comfunc global IDxcPdbUtils_GetMainFileName        17 var
#comfunc global IDxcPdbUtils_GetHash                18 sptr
#comfunc global IDxcPdbUtils_GetName                19 var
#comfunc global IDxcPdbUtils_IsFullPDB              20
#comfunc global IDxcPdbUtils_GetFullPDB             21 sptr
#comfunc global IDxcPdbUtils_GetVersionInfo         22 sptr
#comfunc global IDxcPdbUtils_SetCompiler            23 sptr
#comfunc global IDxcPdbUtils_CompileForFullPDB      24 sptr
#comfunc global IDxcPdbUtils_OverrideArgs           25 var,int
#comfunc global IDxcPdbUtils_OverrideRootSignature  26 wstr
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。