Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Determines that the function at the specified debug address is deleted.
Syntax
Parameters
pAddress
[in] The debug address represented by an IDebugAddress interface. This address must be a METHOD_ADDRESS.
Return Value
If the function is deleted, returns S_OK. If the function is exists, returns S_FALSE.
Example
The following example shows how to implement this method for a CDebugSymbolProvider object that exposes the IDebugComPlusSymbolProvider interface.
HRESULT CDebugSymbolProvider::IsFunctionDeleted(
IDebugAddress* pAddress
)
{
HRESULT hr = S_OK;
CDEBUG_ADDRESS address;
CComPtr<CModule> pModule;
ASSERT(IsValidObjectPtr(this, CDebugSymbolProvider));
ASSERT(IsValidInterfacePtr(pAddress, IDebugAddress));
METHOD_ENTRY( CDebugSymbolProvider::IsFunctionDeleted );
IfFalseGo( pAddress, S_FALSE );
IfFailGo( pAddress->GetAddress( &address ) );
ASSERT(address.addr.dwKind == ADDRESS_KIND_METADATA_METHOD);
IfFalseGo( address.addr.dwKind == ADDRESS_KIND_METADATA_METHOD, S_FALSE );
IfFailGo( GetModule( address.GetModule(), &pModule) );
if (!pModule->IsFunctionDeleted( address.addr.addr.addrMethod.tokMethod,
address.addr.addr.addrMethod.dwVersion,
address.addr.addr.addrMethod.dwOffset ))
{
// S_FALSE indicates the function is not deleted
hr = S_FALSE;
}
Error:
METHOD_EXIT( CDebugSymbolProvider::IsFunctionDeleted, hr );
if (!SUCCEEDED(hr))
{
hr = S_FALSE;
}
return hr;
}