CComBSTR::operator &
Retorna o endereço de BSTR armazenado no membro de m_str .
BSTR* operator &( ) throw( );
Comentários
CComBstr operator & tem uma declaração especial associada a ela para ajudar a identificar vazamentos de memória.o programa afirmará quando o membro de m_str é inicializado.Essa declaração foi criada para identificar as situações onde um programador & operator usa para atribuir um novo valor para o membro de m_str sem liberar a primeira alocação de m_str.Se é igual a de m_str ANULAM, o programa pressupõe que o m_str ainda não foi atribuído.Em esse caso, o programa não afirmará.
Essa declaração não é ativada por padrão.Defina ATL_CCOMBSTR_ADDRESS_OF_ASSERT para habilitar essa declaração.
Exemplo
#define ATL_NO_CCOMBSTR_ADDRESS_OF_ASSERT
void MyInitFunction(BSTR* pbstr)
{
::SysReAllocString(pbstr, OLESTR("Hello World"));
return;
}
CComBSTR bstrStr ;
// bstrStr is not initialized so this call will not assert.
MyInitFunction(&bstrStr);
CComBSTR bstrStr2(OLESTR("Hello World"));
// bstrStr2 is initialized so this call will assert.
::SysReAllocString(&bstrStr2, OLESTR("Bye"));
Requisitos
Header: atlbase.h