Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 | 2 |

 

  Вопрос: интерфейсы, COM Добавлено: 28.09.10 22:23  

Автор вопроса:  Winand | Web-сайт: winandfx.narod.ru

Ответить

  Ответы Всего ответов: 25  

Номер ответа: 16
Автор ответа:
 LamerOnLine



ICQ: 334781088 

Вопросов: 108
Ответов: 2822
 Профиль | | #16 Добавлено: 01.10.10 17:25
Winand, один вопрос.. ты понимаешь суть и назначение интерфейсов?

А ты сам как думаешь?
Если человек приходит в компьютерный магазин и просит продать ему две штуки USB.
На наводящие вопросы продавца (мол, вам нужен жесткий диск, мышка или веб камера?) он отвечает что, мол, не знаю, попросили просто купить USB. Он в теме?

Ответить

Номер ответа: 17
Автор ответа:
 EROS



Вопросов: 58
Ответов: 4255
 Профиль | | #17 Добавлено: 01.10.10 17:27
Если не секрет, а чем плох VB-шный OLEDrag?

А он позволяет корректно перетащить объекты из твоего приложения в стороннее? Скажем можно сделать операцию копирования файлов из твоей программы путем перетаскивания файлов в стандартный проводник?

Ответить

Номер ответа: 18
Автор ответа:
 EROS



Вопросов: 58
Ответов: 4255
 Профиль | | #18 Добавлено: 01.10.10 17:36
А ты сам как думаешь?

Ну не знаю.. но прочитав фразу
запросу программы создавать инстанс и возвращать указатель.

я почему то подумал, что он имел ввиду - создать инстанс объекта имплементирующего указазный интерфейс.. я думал он понимает что невозможно создать инстанс интерфейса..
Я достаточно давно знаю его по этому форуму, и мне казалось что он должен понимать подобные нюансы, поэтому не стал заострять на этом его внимание..

Ответить

Номер ответа: 19
Автор ответа:
 LamerOnLine



ICQ: 334781088 

Вопросов: 108
Ответов: 2822
 Профиль | | #19 Добавлено: 01.10.10 17:52
увы, но лишь
некоторое время поисков в инете и тыканья в программе OLEView

привели его к мысли что
их вообще нельзя создать с помощью CoCreateInstanse

Касаемо драга - это уже проблема "принимающей стороны" то как она будет интерпретировать событие OLEDragDrop.
В случае с проводником никакой проблемы не возникнет.

Ответить

Номер ответа: 20
Автор ответа:
 Серёга



ICQ: 262809473 

Вопросов: 17
Ответов: 561
 Web-сайт: houselab.narod.ru
 Профиль | | #20
Добавлено: 01.10.10 19:06
можно сделать операцию копирования файлов из твоей программы путем перетаскивания файлов в стандартный проводник?

  1. Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
  2. Me.OLEDrag
  3. End Sub
  4.  
  5. Private Sub Form_OLEStartDrag(Data As DataObject, AllowedEffects As Long)
  6. With Data
  7.     .Clear
  8.     .Files.Add "c:\windows\system32\notepad.exe"
  9.     .SetData , ClipBoardConstants.vbCFFiles
  10. End With
  11. AllowedEffects = 1 'копирование
  12. 'AllowedEffects = 2 'перемещение
  13. End Sub

Ответить

Номер ответа: 21
Автор ответа:
 EROS



Вопросов: 58
Ответов: 4255
 Профиль | | #21 Добавлено: 01.10.10 19:16
ну не знаю.. может у него нестандартная операция и ему надо передать какие то свои объекты..

Ответить

Номер ответа: 22
Автор ответа:
 Winand



Вопросов: 87
Ответов: 2795
 Web-сайт: winandfx.narod.ru
 Профиль | | #22
Добавлено: 02.10.10 11:47
во первых мне обязательно нужна будет поддержка юникода, стандартные ср-ва vb не прокатят, а в либе своей я это сделаю.
во-вторых - интерфейс это типа стандартная розетка привинченная к имлементирущему классу, а розетка без электросети не работает. Но я был сбит столку тем, что itaskbarlist3 например уже где-то реализован в винде, и cocreateinstanse'ом я что-то создавал.

Ответить

Номер ответа: 23
Автор ответа:
 EROS



Вопросов: 58
Ответов: 4255
 Профиль | | #23 Добавлено: 02.10.10 21:18
и cocreateinstanse'ом я что-то создавал

ты создавал не что-то, а инстанс объекта(класса), который имплементирует(реализует) данный интерфейс

Ответить

Номер ответа: 24
Автор ответа:
 Winand



Вопросов: 87
Ответов: 2795
 Web-сайт: winandfx.narod.ru
 Профиль | | #24
Добавлено: 03.10.10 14:00
ах точно, на мсдн написано
An implementation of this interface is provided in Windows as CLSID_TaskbarList. This interface is not implemented by third parties.
Только мне не понятно зачем нужен интерфейс, если имплементация у него всего одна

Ответить

Номер ответа: 25
Автор ответа:
 EROS



Вопросов: 58
Ответов: 4255
 Профиль | | #25 Добавлено: 03.10.10 18:20
Только мне не понятно зачем нужен интерфейс, если имплементация у него всего одна

В этом и есть главная прелесть интерфейсов, что ты можешь написать сколько угодно имлементаций.. Может тебя не устраивает родная виндовая реализация и у тебя есть возможность написать свою и подсунуть ее винде.. А то что она сейчас одна - ни о чем не говорит, со следующим апдейтом их может быть 5...
И вообще, использование интерфейсов в качестве параметров, и возвращаемых значений ,имхо, это правильно..

Ответить

Страница: 1 | 2 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам