Автор вопроса: Winand | Web-сайт:winandfx.narod.ru
Плохо понимаю интерфейсы и всё такое.
http://msdn.microsoft.com/en-us/library/dd391698(VS.85).aspx
Возможно ли в vb6 получить доступ к этой функции? При том желательно безо всякого раннего связывания обойтись, чтобы можно было сделать обработчик ошибок и запускать под WinXP
Уэээ... Если вдуматься в суть дела, и переформулировать вопрос, чувак спрашивает, как работать с таскбаром Windows 7, а именно - использовение иконки программы как прогрессбара.
VBD, а ты знаешь как?) Я так понимаю, из-за интерфэйса сложности возникают
Sharp, их никто не написал еще? они не универсальны? Если два нет, то наверное мне не добраться туда
Видел для C#. Щас не нашел, но нашел для C++
http://msdn.microsoft.com/en-us/magazine/dd942846.aspx
Только переписать на VB6 и все. И вообще я никогда не поверю, чтобы Microsoft делала на таком убогом уровне программирование своей очередной новой фичи.
Товарищи! Я читал обе статьи по ссылкам выше. Как я понимаю в explorerframe.dll имеется интерфейс ITaskbarList3, содержащий нужные функции.
Проблемы две: я плохо понимаю суть интерфейсов, я не знаю как добраться до функции из VB6
Cудя по всему тебе еще понадобится CLSIDFromString
Плюс проштудировать вот эту статейку http://vbrussian.com/Article.asp?ID=110
в частности раздел - Создаем COM-объект по его GUID-у... там более менее все описано..
ну и осталось дело за малым.. сесть и все написать.. )))
З.Ы Нужные GUID есть в документации
з.ы.ы Тебе нужен не ITaskBarList3 а ITaskBarList.. этот интерфейс дает полный доступ к TaskBar Extentions, а ITaskBarList3 - это всего лишь частный случай, прародитель...
Создать нужный COM-объект легко, прочитав любой букварь по COM. А вот чтобы заюзать IUnknown-унаследованный интерфейс, в VB6 нужны хаки, описанные тут: http://www.vbstreets.ru/VB/Articles/65974.aspx
Вуухуу! Предвещается много кодинга и размышлений) Только я хотел написать, что не получается работать с объектом
Private Function ObjectCreate(CLSID As String, IID As String) As Object
 im myObj As Object, IID_C1(15) As Byte
Call CLSIDFromString(StrPtr(CLSID), IID_C1(0))
Call CLSIDFromString(StrPtr(IID), IID_C2(0))
If Not (CoCreateInstance(IID_C1(0), 0&, CLSCTX_ALL, IID_C2(0), myObj) = 0& Then _
Set myObj = Nothing
Set ObjectCreate = myObj
End Function
Как я понимаю мне нужен файл shobjidl.h из Win7 SDK, чтобы определить номера функций, но качать ради него ~4Гб вообще не хочется)
EROS, это из ReactOS, они еще далеко не полностью реализовали функциональность винды.
Вот значит я нашел файлик: http://www.openwatcom.org:4000/@md=c&cd=//&cdf=//depot/openwatcom/bld/w32api/include/shobjidl.mh&ra=s&rc=s&c=LT9@//depot/openwatcom/bld/w32api/include/shobjidl.mh?ac=64
Написал класс:
Option Explicit
PrivateDeclareSub CopyMemory Lib"kernel32.dll"Alias"RtlMoveMemory" (ByRef Destination As Any, ByRef Source As Any, ByVal Length AsLong)
Проблема в том, что не получается вызвать SetProgressValue, хотя SetProgressState работает как надо.
В SetProgressValue параметры типа ULONGLONG (8 байт?), что я туда только не передавал, и currency и double и arr(7) as byte
http://msdn.microsoft.com/en-us/library/dd391698(VS.85).aspx
http://rghost.ru/871119 Вроде всё самое гламурное реализовал)
Overlay иконки, всплывающие подсказки, кнопки (с обработкой событий от них), выбор области отображаемой на тамбнейле и прогресс