次の方法で共有


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

参照

IHttpStoredContext インターフェイス