


alibek писал(а):Простейший — PaintPicture.


Хакер писал(а):IPictureDisp::Render?


Хакер писал(а):Давай сначала разберёмся.
И теперь два вопроса:
1) Исходная картинка: это объект именно класса StdPicture или просто объект какого-то произвольного класса (в т.ч. и StdPicture), поддерживающий IPicture(Disp)?
2) Выходная картинка обязана быть именно объектом класса StdPicture, или объектом любого класса (в том числе StdPicture, но может быть даже своего!), поддерживающим IPicture(Disp)?

Хакер писал(а):1) Исходная картинка: это объект именно класса StdPicture или просто объект какого-то произвольного класса (в т.ч. и StdPicture), поддерживающий IPicture(Disp)?
2) Выходная картинка обязана быть именно объектом класса StdPicture, или объектом любого класса (в том числе StdPicture, но может быть даже своего!), поддерживающим IPicture(Disp)?

arthur2 писал(а):1 А какие ещё объекты его поддерживают (из известных)?
arthur2 писал(а):Пусть "даже своим" Как сделать этот "даже свой" объект?
arthur2 писал(а):и что есть Disp


дальше куда?
Set Me.Picture = New VeryNonStdPicture
Implements IPictureDisp
(только больно не пинай за "русский" бейсик - другого под рукой нетуОшибка компелляции:
Неверное взаимодействие для Реализаций: Взаимодействие содержит области данных<дальше ничего>



Как? Писать Тлб, в которой вместо эни объявить лонг?Хакер писал(а):Надо свой определить, с тем же IID-ом, но с отличающимся определением.

arthur2 писал(а):Как? Писать Тлб, в которой вместо эни объявить лонг?


куда после этого - ума не прилажу - представляю на уровне каких-то смутных ощущений![]()

Что это? Какой из способов - не уточняетсяНеверное взаимодействие для Реализаций: способ имеет только выходной LCID параметр

typedef short VARIANT_BOOL; VARIANT_TRUE = 0xFFFF;
VARIANT_FALSE = 0x0000;

Dim p As myTlb.IPicture
Set p = Me.PictureDim c As cMyPic
Set c = p

Dim p As myTlb.IPicture
Set p = New cMyPic
Dim p As myTlb.IPicture
Set p = Me.Picture
Set pic1.Picture = p
Dim p As myTlb.IPicture
Set p = New cMyPic
Set pic1.Picture = p
arthur2 писал(а):о почему тогда первый и второй вариант работают?

Хакер писал(а):Потому что класс StdPicture реализует интерфейс IPicture, а твой класс (с неправильной реализацией) здесь вообще никак не участвует.

Как тогда может быть неправильная реализация у правильного интерфейса?
Private Sub IPicture_Render(...)
' Пишем тут всякую чушь
End Subarthur2 писал(а):Так что откуда берется StdPicture, мне вообще не понятно
И как же все-таки сделать правильную реализацию?И как же все-таки сделать правильную реализацию?

Выходит, если написать не чушь, то всё заработает? Я почему-то думал, что даже если вообще ничего не писать, оставив все методы пустыми, то при условии, что интерфейс "тот самый" - со всеми методами и с правильным идентификатором - по меньшей мере само присвоение должно получиться.Хакер писал(а):
- Код: Выделить всё
Private Sub IPicture_Render(...)
' Пишем тут всякую чушь
End Sub

Раз картинки через IPicture из моей тлб загружаются,
Выходит, если написать не чушь, то всё заработает? Я почему-то думал, что даже если вообще ничего не писать, оставив все методы пустыми, то при условии, что интерфейс "тот самый" - со всеми методами и с правильным идентификатором - по меньшей мере само присвоение должно получиться.

Хакер писал(а):Чё? Где такое?
Хакер писал(а):Есть Set-хендлер, а что в нём — угадай сам.
Dim p As myTlb.IPicture
Set p = LoadPicture("test.bmp")
Set Me.Picture = pИли всё равно нет?Артур писал(а):картинки через IPicture из моей тлб загружаются
Сейчас этот форум просматривают: AhrefsBot, SemrushBot и гости: 11