![]() |
|
Модераторы: gambit, Partizan |
![]()
|
|
| Brain89 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 68 Регистрация: 18.1.2010 Репутация: нет Всего: 2 |
Здравствуйте. У меня проект, в котором я использую ActiveX-компонент Windows Media Player (wmp.dll). На более раннем этапе я добавил его на форму, используя Tools -> Choose Toolbox Items... и, соответственно, контрол отобразился на toolbox'е. Перетащил на форму, создалось два файла (AxInterop.WMPLib.dll, Interop.WMPLib.dll), и после я нормально работал с контролом. Но сейчас таскать за собой эти файлы не хочется, тем более, что у каждого пользователя, у которого стоит Windows Media Player, есть wmp.dll. Поэтому хотелось бы грузить эту dll'ку динамически во время запуска приложения и, соответственно, также динамически создавать плеер. Но понятия не имею, как это сделать
|
|||
|
||||
| jonie |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 5 Всего: 118 |
его самому грузить не надо - за это для вас сделаем COM подсистема.
Для того чтобы использовать динамические интерфейсы можно использовать dynamic [http://msdn.microsoft.com/en-us/library/dd264736.aspx] т.е. вам надо сначала создать экземпляр класса, потом создать экземпляр, потом заюзать dynamic.
Если интересна "магия", то начать стоит чтение с IDispatch. Если вы работает с .NET Fx<4.0, тогда вам надо будет руками это производить (обращаясь как раз через IDispatch) Пример: http://stackoverflow.com/questions/403218/...ch-late-binding Это сообщение отредактировал(а) jonie - 14.6.2011, 15:37 -------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
|||
|
||||
| Voyager |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 532 Регистрация: 8.2.2005 Репутация: 3 Всего: 18 |
С приложением достаточно распростарнять AxInterop.WMPLib.dll, Interop.WMPLib.dll. Остальное подхватится само.
|
|||
|
||||
| Brain89 |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 68 Регистрация: 18.1.2010 Репутация: нет Всего: 2 |
2jonie
Что-то про Activator я забыл. Спасибо. Так вполне COM-объект создается:
А через InvokeMember доступ к свойствам я получил:
Вот только как отобразить теперь его на форме? Т.е. проект я запускаю, где-то на фоне звук есть, а вот как отобразить объект как контрол на форме - я не понимаю. У этого плеера нет такого свойства "UserControl", как в примере. 2Voyager В том-то и задача, чтобы не таскать эти файлы с собой. Ведь создаются они из wmp.dll, которая, в принципе, есть у пользователя. Да и добавить их в инсталлятор не получиться - они защищены Microsoft:) |
||||
|
|||||
| jonie |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 5 Всего: 118 |
Brain89, вообще говоря в .NET 4 (точнее говоря в VS2010) появилась вохможность указать что тебе надо isolated com - это в свойствах reference-а -- тогда информацию о типах система включит сама в главную сборку, не делая интеропов.
-------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
|||
|
||||
| Brain89 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 68 Регистрация: 18.1.2010 Репутация: нет Всего: 2 |
2jonie
Первый раз о таком слышу |
|||
|
||||
| jonie |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 5 Всего: 118 |
-------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Разработка Windows Forms | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |