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

ID3DShaderCacheApplication

COM
IIDfc688ee2-1b35-4913-93be-1ca3fa7df39e継承元IUnknown自前メソッド開始 vtbl3

メソッド 9

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

vtbl 3 HRESULT GetExePath(WORD** pExePath)
pExePathWORD**outこのアプリケーションの実行ファイルパスを受け取る出力ポインタ。
vtbl 4 HRESULT GetDesc(D3D_SHADER_CACHE_APPLICATION_DESC* pApplicationDesc)
pApplicationDescD3D_SHADER_CACHE_APPLICATION_DESC*outアプリケーションの記述情報を受け取る構造体ポインタ。
vtbl 5 HRESULT RegisterComponent(LPWSTR pName, LPWSTR pStateObjectDBPath, DWORD NumPSDB, D3D_SHADER_CACHE_PSDB_PROPERTIES* pPSDBs, GUID* riid, void** ppvComponent)
pNameLPWSTRin登録するコンポーネントの名前を表すワイド文字列。
pStateObjectDBPathLPWSTRinコンポーネントのステートオブジェクトDBのパス文字列。
NumPSDBDWORDinpPSDBs配列に含まれる事前コンパイル済みDBの個数。
pPSDBsD3D_SHADER_CACHE_PSDB_PROPERTIES*in事前コンパイル済みシェーダーDBのプロパティ配列ポインタ。
riidGUID*in取得するコンポーネントインターフェースのGUIDポインタ。
ppvComponentvoid**out生成したコンポーネントインターフェースを受け取る出力ポインタ。
vtbl 6 HRESULT RemoveComponent(ID3DShaderCacheComponent* pComponent)
pComponentID3DShaderCacheComponent*in削除対象のID3DShaderCacheComponentインスタンス。
vtbl 7 DWORD GetComponentCount()
vtbl 8 HRESULT GetComponent(DWORD index, GUID* riid, void** ppvComponent)
indexDWORDin取得するコンポーネントを示すゼロ基点のインデックス。
riidGUID*in取得するコンポーネントインターフェースのGUIDポインタ。
ppvComponentvoid**out指定コンポーネントインターフェースを受け取る出力ポインタ。
vtbl 9 DWORD GetPrecompileTargetCount(D3D_SHADER_CACHE_TARGET_FLAGS flags)
flagsD3D_SHADER_CACHE_TARGET_FLAGSin対象を絞り込むD3D_SHADER_CACHE_TARGET_FLAGSビットフラグ。
vtbl 10 HRESULT GetPrecompileTargets(DWORD ArraySize, D3D_SHADER_CACHE_COMPILER_PROPERTIES* pArray, D3D_SHADER_CACHE_TARGET_FLAGS flags)
ArraySizeDWORDinpArray配列に格納できる要素数。
pArrayD3D_SHADER_CACHE_COMPILER_PROPERTIES*in事前コンパイル対象のコンパイラプロパティを受け取る配列ポインタ。
flagsD3D_SHADER_CACHE_TARGET_FLAGSin対象を絞り込むD3D_SHADER_CACHE_TARGET_FLAGSビットフラグ。
vtbl 11 HRESULT GetInstallerName(WORD** pInstallerName)
pInstallerNameWORD**out関連付けられたインストーラ名文字列を受け取る出力ポインタ。

HSP用 COM定義

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

出力引数:
#define global IID_ID3DShaderCacheApplication "{FC688EE2-1B35-4913-93BE-1CA3FA7DF39E}"
#usecom global ID3DShaderCacheApplication IID_ID3DShaderCacheApplication "{}"
#comfunc global ID3DShaderCacheApplication_GetExePath                3 var
#comfunc global ID3DShaderCacheApplication_GetDesc                   4 var
#comfunc global ID3DShaderCacheApplication_RegisterComponent         5 wstr,wstr,int,var,var,sptr
#comfunc global ID3DShaderCacheApplication_RemoveComponent           6 sptr
#comfunc global ID3DShaderCacheApplication_GetComponentCount         7
#comfunc global ID3DShaderCacheApplication_GetComponent              8 int,var,sptr
#comfunc global ID3DShaderCacheApplication_GetPrecompileTargetCount  9 int
#comfunc global ID3DShaderCacheApplication_GetPrecompileTargets      10 int,var,int
#comfunc global ID3DShaderCacheApplication_GetInstallerName          11 var
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。