Здравствуйте, PingVinOk, Вы писали:
PVO>Добрый день. Подскажите, пожалуйста, как написать ActiveX без использования mfc и atl?
Использовать вижуал бейсик )). Если ерьезно, берешь "Inside OLE" Брокшмидта, и вперед.
Для простых объектов делаешь так:
— описываешь интерфейс и его coclass на idl
— имплементируешь интерфейс классом C++
— имплементируешь IUnknown и ref counting
— не забываешь вернуть IUnknown и свой интерфейс из QueryInterface()
— делаешь delete this в Release(), если refCount == 0
— делаешь dll
— из нее экспортируешь функции:
DllRegisterServer — для регистрации своего класса
DllUnregisterServer — здесь удаляешь то, что зарегистрировал в DllRegisterServer
DllGetClassObject — из которой выдаешь созданный через new свой объект с refCount = 1, если спрашивают твой CLSID и IID
DllCanUnloadNow — из нее возвращаешь S_OK, если не оталось живых объектов и S_FALSE, если наоборот.
На самом деле все немного сложнее. Я не вижу смысла в наше время писать com-объекты без atl. Тем более, если это ActiveX Control для IE.