Compartir a través de


IMAPISupport::MakeInvalid

Hace referencia a: Outlook 2013 | Outlook 2016

Marca un objeto como inutilizable.

HRESULT MakeInvalid(
ULONG ulFlags,
LPVOID lpObject,
ULONG ulRefCount,
ULONG cMethods
);

Parameters

ulFlags

Reservados; debe ser cero.

lpObject

[in] Puntero al objeto que se va a invalidar. La interfaz del objeto debe derivarse de IUnknown.

ulRefCount

[in] Recuento de referencias actual del objeto.

cMethods

[in] Recuento de métodos en la tabla virtual del objeto.

Valor devuelto

S_OK

El objeto se ha marcado correctamente como inutilizable.

Comentarios

El método IMAPISupport::MakeInvalid se implementa para todos los objetos de soporte técnico. El objeto que se va a invalidar debe derivarse de la interfaz IUnknown o de una interfaz derivada de IUnknown.

MakeInvalid marca un objeto como inutilizable reemplazando la vtable del objeto por una tabla virtual de código auxiliar de tamaño similar en la que los métodos IUnknown::AddRef e IUnknown::Release funcionan según lo esperado. Sin embargo, se produce un error en cualquier otro método, lo que devuelve el valor MAPI_E_INVALID_OBJECT.

Notas para los llamadores

Los proveedores de servicios y los servicios de mensajes suelen llamar a MakeInvalid en el momento del apagado. Sin embargo, Se puede llamar a MakeInvalid en cualquier momento. Por ejemplo, si un cliente libera un objeto sin liberar algunos de sus subobjetos, puede llamar a MakeInvalid inmediatamente para liberar esos subobjetos.

Debe ser el propietario del objeto que intenta invalidar. Debe tener al menos 16 bytes de longitud y tener al menos tres métodos en su tabla virtual.

Puede llamar a MakeInvalid y, a continuación, realizar cualquier trabajo de apagado, como descartar estructuras de datos asociadas, que normalmente se realiza durante la liberación de un objeto. No es necesario conservar el código para admitir el objeto en memoria, ya que MAPI libera la memoria mediante una llamada a MAPIFreeBuffer y, a continuación, libera el objeto. Puede liberar recursos, llamar a MakeInvalid y, a continuación, omitir el objeto invalidado.

Vea también

MAPIAllocateBuffer

IMAPISupport: IUnknown