ICLRHostBindingPolicyManager::ModifyApplicationPolicy メソッド

指定したアセンブリのバインド ポリシーを変更し、新しいバージョンのポリシーを作成します。

構文

HRESULT  ModifyApplicationPolicy (  
    [in] LPCWSTR     pwzSourceAssemblyIdentity,
    [in] LPCWSTR     pwzTargetAssemblyIdentity,  
    [in] BYTE       *pbApplicationPolicy,  
    [in] DWORD       cbAppPolicySize,  
    [in] DWORD       dwPolicyModifyFlags,  
    [out, size_is(*pcbNewAppPolicySize)] BYTE *pbNewApplicationPolicy,
    [in, out] DWORD *pcbNewAppPolicySize  
);  

パラメーター

pwzSourceAssemblyIdentity
[in] 変更するアセンブリの ID。

pwzTargetAssemblyIdentity
[in] 変更されたアセンブリの新しい ID。

pbApplicationPolicy
[in] 変更するアセンブリのバインド ポリシー データを格納するバッファーへのポインター。

cbAppPolicySize
[in] 置換されるバインド ポリシーのサイズ。

dwPolicyModifyFlags
[in] リダイレクトの制御を示す EHostBindingPolicyModifyFlags 値の論理和の組み合わせ。

pbNewApplicationPolicy
[out] 新しいバインド ポリシーデータを格納するバッファーへのポインター。

pcbNewAppPolicySize
[in, out] 新しいバインド ポリシー バッファーのサイズへのポインター。

戻り値

HRESULT 説明
S_OK ポリシーが正常に変更されました。
E_INVALIDARG pwzSourceAssemblyIdentity または pwzTargetAssemblyIdentity が null 参照です。
ERROR_INSUFFICIENT_BUFFER pbNewApplicationPolicy が小さすぎます。
HOST_E_CLRNOTAVAILABLE 共通言語ランタイム (CLR) がプロセスに読み込まれていないか、CLR がマネージド コードを実行できないまたは呼び出しを正常に処理できない状態です。
HOST_E_TIMEOUT 呼び出しがタイムアウトになりました。
HOST_E_NOT_OWNER 呼び出し元がロックを所有していません。
HOST_E_ABANDONED ブロックされたスレッドまたはファイバーが待機しているときに、イベントが取り消されました。
E_FAIL 原因不明の致命的なエラーが発生しました。 メソッドにより E_FAIL が返された後、そのプロセス内で CLR が使用できなくなります。 後続のホスティング メソッドの呼び出しでは HOST_E_CLRNOTAVAILABLE が返されます。

解説

ModifyApplicationPolicy メソッドは、2 回呼び出すことができます。 1 回目の呼び出しでは、pbNewApplicationPolicy パラメーターに null 値を指定する必要があり ます。 この呼び出しは、pcbNewAppPolicySize に必要な値で返されます。 2 回目の呼び出しでは、この値が pcbNewAppPolicySize に指定され、pbNewApplicationPolicy のサイズのバッファーが示される必要があります。

必要条件

:システム要件」を参照してください。

ヘッダー: MSCorEE.h

ライブラリ: MSCorEE.dll にリソースとして含まれます

.NET Framework のバージョン: 2.0 以降で使用可能

関連項目