IHttpStoredContext::CleanupStoredContext メソッド
格納されているコンテキストをクリーンアップします。
構文
virtual VOID CleanupStoredContext(
VOID
) = 0;
パラメーター
このメソッドは、パラメーターを受け取りません。
解説
このメソッドの動作は実装によって異なります。 ガイドラインとして次の情報を使用する必要がありますが、すべてのシナリオで正しくない場合があります。
一部の実装では、 メソッド中に空の操作が実行されます
CleanupStoredContext
。一部の実装では、現在の IHttpStoredContext ポインターで が呼び出
delete``this
されます。一部の実装では、 の各呼び出し中に内部参照カウントを使用し、内部参照カウントをデクリメントします
CleanupStoredContext
。 これらの実装者は、その参照カウントが 0 になった場合に、現在IHttpStoredContext
の をすぐに呼び出delete``this
します。
実装側の注意
IHttpStoredContext
実装者は、 または private``virtual
デストラクターをprotected
作成する必要があります。これは、IHttpStoredContext
削除のためにポインターを最も具体的なクラスにダウンキャストしないようにするためです。 代わりに、これらの実装者の削除は、内部的に各ポインターによって制御され、 の呼び出し中に CleanupStoredContext
処理される必要があります。
呼び出し元に関する注意事項
メソッドは CleanupStoredContext
ポインターで IHttpStoredContext
1 回だけ呼び出す必要があります。一部の実装では が呼び出されたときに がCleanupStoredContext
呼び出delete``this
されるためです。 ほとんどのIHttpStoredContext
ポインターで複数回呼び出CleanupStoredContext
すと、アクセス違反の例外がスローされるか、メモリ内のデータが破損します。
例
次のコード例では、 という名前MyStoredContext
のクラスをIHttpStoredContext
作成し、ポインターの内部的な削除を制御する方法をMyStoredContext
示します。 MyStoredContext
はデストラクターのみを private
実装し、 メソッドが呼び出されたときにそのデストラクターを CleanupStoredContext
呼び出します。
// The MyStoredContext class implements the IHttpStoredContext
// interface and demonstrates one possible solution for
// implementing the CleanupStoredContext method.
class MyStoredContext : public IHttpStoredContext
{
public:
// The MyStoredContext method is the public
// constructor for the MyStoredContext class.
MyStoredContext()
{
}
// The CleanupStoredContext method must be implemented
// by non-abstract classes that implement the
// IHttpStoredContext interface. This method
// calls delete this.
virtual void CleanupStoredContext(VOID)
{
delete this;
}
private:
// The MyStoredContext method is the private virtual
// destructor for the MyStoredContext class.
virtual ~MyStoredContext()
{
}
};
要件
Type | 説明 |
---|---|
Client | - Windows Vista 上の IIS 7.0 - Windows 7 上の IIS 7.5 - Windows 8 上の IIS 8.0 - Windows 10の IIS 10.0 |
サーバー | - Windows Server 2008 の IIS 7.0 - Windows Server 2008 R2 の IIS 7.5 - Windows Server 2012 の IIS 8.0 - Windows Server 2012 R2 の IIS 8.5 - Windows Server 2016の IIS 10.0 |
製品 | - IIS 7.0、IIS 7.5、IIS 8.0、IIS 8.5、IIS 10.0 - IIS Express 7.5、IIS Express 8.0、IIS Express 10.0 |
Header | Httpserv.h |