Функция CoRegisterMallocSpy (objbase.h)

Регистрирует реализацию интерфейса IMallocSpy , после чего требуется, чтобы OLE вызывал свои методы-оболочки вокруг каждого вызова соответствующего метода IMalloc .

Синтаксис

HRESULT CoRegisterMallocSpy(
  [in] LPMALLOCSPY pMallocSpy
);

Параметры

[in] pMallocSpy

Указатель на экземпляр реализации IMallocSpy .

Возвращаемое значение

Эта функция может возвращать стандартное возвращаемое значение E_INVALIDARG, а также следующие значения.

Код возврата Описание
S_OK
Объект успешно зарегистрирован.
CO_E_OBJISREG
Объект уже зарегистрирован.

Комментарии

Функция CoRegisterMallocSpy регистрирует объект IMallocSpy , который используется для отладки вызовов методов IMalloc . Функция вызывает QueryInterface для указателя pMallocSpy для интерфейса IID_IMallocSpy. Это необходимо для того, чтобы pMallocSpy действительно указывал на реализацию IMallocSpy. Согласно правилам OLE ожидается, что при успешном вызове QueryInterface добавлена ссылка (с помощью метода AddRef ) на объект IMallocSpy . То есть CoRegisterMallocSpy не вызывает напрямую AddRef для pMallocSpy, но полностью ожидает, что вызов QueryInterface будет выполняться.

При регистрации объекта IMallocSpy при каждом вызове одного из методов IMalloc OLE сначала вызывает соответствующий предварительный метод IMallocSpy . Затем, после выполнения метода IMalloc , OLE вызывает соответствующий пост-метод IMallocSpy . Например, при вызове IMalloc::Alloc из любого источника OLE вызывает IMallocSpy::P reAlloc, вызывает Alloc, а после завершения выделения вызывает IMallocSpy::P ostAlloc.

Требования

Требование Значение
Минимальная версия клиента Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Целевая платформа Windows
Header objbase.h
Библиотека Ole32.lib
DLL Ole32.dll

См. также раздел

CoGetMalloc

CoRevokeMallocSpy

IMallocSpy