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

Вниз

Как создать объект с помощью OleCreate???   Найти похожие ветки 

 
madm   (2003-12-18 17:35) [0]

Здравствуйте.
Интересуюет сабж :)


 
madm   (2003-12-18 17:38) [1]

Создаю Equation...


 
Digitman   (2003-12-18 17:41) [2]

что-то не припомню такой ф-ции


 
Amoeba   (2003-12-18 17:45) [3]

По-видимому имеется в виду примочка из MS Office


 
Семен Сорокин   (2003-12-18 17:54) [4]

наверное автор имелл ввиду CreateOleObject, так это в справке есть.


 
Ega23   (2003-12-18 17:59) [5]


> По-видимому имеется в виду примочка из MS Office

Ага, редактор формул.


 
Digitman   (2003-12-18 18:06) [6]

примерно так :

var MyEquationInstance: OleVariant;

...

MyEquationInstance := CreateOleObject("Microsoft.Equation");


 
madm   (2003-12-18 18:11) [7]

Нет.
Вы не поняли :(
Есть такая api-функция OleCreate:


WINOLEAPI OleCreate(

REFCLSID rclsid, //CLSID of embedded object to be created

REFIID riid, //Reference to the identifier of the interface

// used to communicate with new object

DWORD renderopt, //RENDEROPT value indicating cached capabilities

FORMATETC * pFormatEtc,

//Pointer to a FORMATETC structure

IOleClientSite * pClientSite,

//Pointer to request services from the container

IStorage * pStg, //Pointer to storage for the object

void ** ppvObject //Address of output variable that receives the

// interface pointer requested in riid

);


Вот с ее помощью я и хочу создать объект...
А Equation это действительно из офиса - редактор формул. Но не принципиально создавать именно его. Просто в голове крутился когда вопрос писал :)


 
Polevi   (2003-12-18 18:13) [8]

используй OleContainer


 
Polevi   (2003-12-18 18:15) [9]

это ActiveX


 
Digitman   (2003-12-18 18:18) [10]


> madm


как объяснил - так и поняли)

а что, VCL-оболочка для создания и использования олей-контейнеров никак не подходит тебе ? обязательно прямо таки непосредственно к API обращаться ?


 
madm   (2003-12-18 18:20) [11]

2Polevi, Digitman:
Увы, но задача не позволяет использовать контейнер.
Я вставляю OLE-объект в стандартный борландовый RichEdit.
Может у кого прямо такой примерчик есть(размечтался)? :)


 
madm   (2003-12-18 18:22) [12]

Могу кинуть исходники, если это кого на мысль наведет :)


 
Polevi   (2003-12-19 09:37) [13]

RichEdit майкрософтовский


 
REA   (2003-12-19 09:49) [14]

Там сильно много писанины нужно, которая будет обслуживать OleObject. Контейнер предоставляет эти интерфейсы, а вот RichEdit не уверен. Пример есть в исходниках контейнера.


 
Polevi   (2003-12-19 09:49) [15]

можешь конечно свой ActiveX-контайнер написать, но придется реализовать порядка 20 интерфейсов


 
madm   (2003-12-19 10:06) [16]

RichEdit майкрософтовский - не подойдет по условиям задачи.
2REA:
На сколько я понимаю не так уж много, хотя и не мало :)
RichEdit поддерживает все нужные интерфесы.

2All:
Собственно объект я так уже вставлял, но создавался он еще одной api-функцией(OleUIInsertObject), а мне надо создать и вставить объект не используя эту функцию - потому что она выводит окно чтобы юзверь выбрал какой ActiveX объект он хочет вставить. Мне же нужно чтобы вставлялся только мой. Типа щелкнул он на кнопке "Вставить объект" и автоматом, без лишних диалогов, объект вставился в RichEdit.


 
REA   (2003-12-19 10:11) [17]

Согласен, контейнер в реализации Borland слабоват и глюковат, но вот как получить интерфейсы RichEdit для Ole объектов не встречал.


 
madm   (2003-12-19 11:49) [18]

интерфейс легко :)


IRichEditOle *pIRichEditOle;
if (!::SendMessage(RichEdit1->Handle, EM_GETOLEINTERFACE, 0, (LPARAM) &pIRichEditOle))
throw EOleError("IRichEditInterface not supported :(");


 
Polevi   (2003-12-19 11:54) [19]

>madm (19.12.03 10:06) [16]
ты не понял, "стандартный борландовый RichEdit" всего лишь обертка майкрософтовского продукта


 
REA   (2003-12-19 12:23) [20]


> интерфейс легко :)

Ну тогда добудь еще IOleClientSite и IStorage


 
madm   (2003-12-22 13:09) [21]

2Polevi:
Я в курсе. :)
2REA:
Добыл :)

2All:
Собственно я разобрался уже сам :) Но все равно всем спасибо :)


 
REA   (2003-12-22 14:21) [22]

Ну кинь что получилось то - вдруг пригодится.



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

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

Наверх





Память: 0.48 MB
Время: 0.013 c
1-25404
webpauk
2003-12-24 16:10
2004.01.09
Эффекты Winampa


3-25223
@lex
2003-12-11 12:24
2004.01.09
Как восстановить БД IB6?


4-25661
Spawn
2003-10-30 15:53
2004.01.09
Хук в разных ОС


1-25397
Michael K
2003-12-24 14:54
2004.01.09
GraphicEx требует JPG.PAS, а его нет!


3-25188
perova
2003-12-12 13:42
2004.01.09
Уважаемые мастера, подскажите, пожалуйста, как скрыть сценарий БД





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский