Share via


IDebugPendingBreakpoint2::Delete

Deletes this pending breakpoint and all breakpoints bound from it.

HRESULT Delete( 
   void 
);
int Delete();

Return Value

If successful, returns S_OK; otherwise, returns an error code. Returns E_BP_DELETED if the breakpoint has been deleted.

Example

The following example shows how to implement this method for a simple CPendingBreakpoint object that implements the IDebugPendingBreakpoint2 interface.

HRESULT CPendingBreakpoint::Delete(void)  
{  
   HRESULT hr;  
  
   // Verify that the pending breakpoint has not been deleted. If deleted,  
   // then return hr = E_BP_DELETED.  
   if (m_state.state != PBPS_DELETED)  
   {  
      // If the pending breakpoint has bound and has an associated bound 
      // breakpoint, delete and release the bound breakpoint and set the 
      // pointer to NULL.  
      if (m_pBoundBP)  
      {  
         m_pBoundBP->Delete();  
         m_pBoundBP->Release();  
         m_pBoundBP = NULL;  
      }  
      // If the pending breakpoint did not bind and has an associated 
      // error breakpoint, release the error breakpoint and set the 
      // pointer to NULL. 
      if (m_pErrorBP)  
      {  
         m_pErrorBP->Release();  
         m_pErrorBP = NULL;  
      }  
  
      // Set the PENDING_BP_STATE in the PENDING_BP_STATE_INFO structure 
      // to deleted.   
      m_state.state = PBPS_DELETED;  
   }  
   else  
   {  
      hr = E_BP_DELETED;  
   }  
  
   return hr;  
}  

See Also

Reference

IDebugPendingBreakpoint2