Форум: "Основная";
Текущий архив: 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.012 c