AcAxOleLinkManager
AcAxOleLinkManager используется, чтобы управлять связью от объекта резидента базы до его объекта COM. Это сделано, прикрепляя переходный реактор к AcDbObject. Переходный реактор имеет одну переменную, содержащую IUNKNOWN объекта COM. Этот переходный реактор также используется, чтобы вызвать IACADBASEOBJECT:: OnModified () когда AcDbObject изменяется.
Получить указатель на OLE связывают менеджера, используют AcAxGetOleLinkManager (). AcAxOleLinkManager класс описан ниже:
// AcAxOleLinkManager
используется, чтобы поддержать связь между объектами ARX и их соответствующей оберткой COM.
//
class AcAxOleLinkManager
{
public:
// Учитывая указатель на объект резидента базы, возвратите IUNKNOWN
// обертки COM. NULL возвращен, если никакая обертка не найдена.
//
virtual IUnknown* GetIUnknown(AcDbObject* pObject) = 0;
// Установить связь между объектом резидента базы и оберткой COM.
// Если IUNKNOWN
- NULL, то связь удалена.
//
virtual Adesk::Boolean SetIUnknown(AcDbObject* pObject, IUnknown* pUnknown) = 0;
// Учитывая указатель на объект базы данных, возвратите IUNKNOWN
// обертки COM. NULL возвращен, если никакая обертка не найдена.
//
virtual IUnknown* GetIUnknown(AcDbDatabase* pDatabase) = 0;
// Установить связь между объектом базы данных и оберткой COM.
// Если IUNKNOWN
- NULL, то связь удалена.
//
virtual Adesk::Boolean SetIUnknown(AcDbDatabase* pDatabase,
IUnknown* pUnknown) = 0;
// Учитывая указатель на объект базы данных, возвратите IDISPATCH объекта документа.
// NULL возвращен, если база данных не принадлежит специфическому документу.
//
virtual IDispatch* GetDocIDispatch(AcDbDatabase* pDatabase)= 0;
// Установить связь между объектом базы данных и IDISPATCH
документа, которому
// это принадлежит. Если IDISPATCH
- NULL, то связь удалена.
//
virtual Adesk::Boolean SetDocIDispatch(AcDbDatabase* pDatabase,
IDispatch* pDispatch) = 0;
};