Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.01.14;
Скачать: [xml.tar.bz2];

Вниз

Как создать Ole обьект вручную,т.е. не используя tlb файл, без регистрации?   Найти похожие ветки 

 
kig   (2001-12-22 23:53) [10]

для InProc:
из dll вызвать DllGetClassObject, получить ссылку на IClassFactory

IClassFactory.CreateInstance - запросить ссылку на IUnknown объекта

IUnknown.QueryInterface - ссылка на интерфейс (_addref и _release надо на всякий случай не забыть)
Если использовать его напрямую (без позднего связывания) - просто вызывать его методы...

Если позднее связывание без регистрации в регистре - переписать методы реализации IDispatch (а заодно ITypeLib, ITypeInfo ...) - т.е. полная иммитация OLE-Automation ручками...

для local:
реализация заглушек stub-proxy для межпроцессного обмена (в том числе маршалинг данных) - вообщем - гимор - для чего он нужен???
(Про DCOM вообще не говорю...)

Может так проще?
Реализовать внутренний объект от TInterfaceObject (если не ошибся в названии) - его в dll и вывесить в dll аналог ф-ции DllGetClassObject - создающая это объект и возращающая IUnknown этого объекта?

Полностью согласен с последним P.S. y-soft



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2002.01.14;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.44 MB
Время: 0.004 c
14-42556
AlexKniga
2001-11-19 15:17
2002.01.14
Сброс пароля на BIOS


3-42336
ray_wagner
2001-12-07 16:31
2002.01.14
Русский шрифт в Database Desktop?


4-42612
sandman
2001-11-10 20:34
2002.01.14
Отсылка сообщения через OLE


1-42411
Bar
2001-12-25 20:34
2002.01.14
GetVolumeInformation неодинаково ведет себя под 98/Me и NT


14-42565
-=CrazyFish=-
2001-11-15 11:12
2002.01.14
какой процессор лучше?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский