Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.01.09;
Скачать: CL | DM;

Вниз

Как создать объект с помощью 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;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.017 c
1-25332
незнайка
2003-12-22 10:37
2004.01.09
Окно MessageDlg и его расположение на экране...


14-25577
JibSkeart
2003-12-17 13:11
2004.01.09
тест для курильшиков :)


3-25200
Stinger
2003-12-11 22:35
2004.01.09
курсоры Oracle


1-25432
AlexNx
2003-12-23 13:11
2004.01.09
Где взять русские XXConsts.pas для Delphi 7.0


1-25400
Rte
2003-12-25 17:54
2004.01.09
Как обьявить структуру как в C?