Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.49 MB
Время: 0.019 c
14-25532
reticon
2003-12-19 11:01
2004.01.09
Кто-нибудь еще помнит язык ДОСа?


14-25537
Alex_Bredin
2003-12-19 10:06
2004.01.09
Счетчик трафика


4-25641
dream
2003-11-06 12:18
2004.01.09
как создать новую форму программно?


14-25539
Delpher_Gray
2003-12-09 16:43
2004.01.09
Обсуждение ресурсов по программарованию в Delphi


3-25228
AlexA
2003-12-11 10:13
2004.01.09
Возращение всех множеств в ХП




   Наверх