Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как получить IWMPSyncServices в C# 
:(
    Опции темы
HalkaR
Дата 21.2.2006, 19:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Пуфыстый назгул
****


Профиль
Группа: Экс. модератор
Сообщений: 2132
Регистрация: 8.12.2002
Где: В Москве

Репутация: 14
Всего: 42



В Windows Media Player SDK получение интерфейса IWMPSyncServices делается так:
Код

m_spPlayer->QueryInterface(&spSyncServices); 
Но как тоже самое сделать на C#?
Я пробовал
Код

IWMPSyncServices ss = (IWMPSyncServices)Player;
Но ss становится null.
Что делать?
Спасибо!
PM MAIL   Вверх
mr.DUDA
Дата 21.2.2006, 23:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



Ничего не понятно smile


--------------------
user posted image
PM MAIL WWW   Вверх
HalkaR
Дата 21.2.2006, 23:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Пуфыстый назгул
****


Профиль
Группа: Экс. модератор
Сообщений: 2132
Регистрация: 8.12.2002
Где: В Москве

Репутация: 14
Всего: 42



Вопрос простой - откуда получить интерфейс IWMPSyncServices.
PM MAIL   Вверх
mr.DUDA
Дата 22.2.2006, 16:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



А что за класс Player (или это свойство ?)
Нужно в студии (в крайнем случае, в отладке) смотреть тип Player'а, и можно ли его приводить к интерфейсу IWMPSyncServices. Вообще, обычно работа с COM в .NET производится через врапперы - interop'ы, создаваемые по "Add Reference..." на COM-компонент, и никакой речи о QueryInterface не идёт, а получить интерфейс можно создав экземпляр типа с аналогичным именем (как например в Word-е: new Word.ApplicationClass() возвращает объект, от которого можно получить всё остальное). Не знаю, что там особенного в Media Player'е, с ним не работал...


--------------------
user posted image
PM MAIL WWW   Вверх
HalkaR
Дата 3.3.2006, 14:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Пуфыстый назгул
****


Профиль
Группа: Экс. модератор
Сообщений: 2132
Регистрация: 8.12.2002
Где: В Москве

Репутация: 14
Всего: 42



В хэлпе написанно
Цитата

Retrieve a pointer to IWMPSyncServices by calling QueryInterface through IWMPPlayer.

Я делаю так
Код

            WindowsMediaPlayerClass wmp = new WindowsMediaPlayerClass();
            IWMPPlayer p = (IWMPPlayer)wmp;
            IWMPSyncServices ss = p as IWMPSyncServices;

однакоже ss = null
PM MAIL   Вверх
mr.DUDA
Дата 3.3.2006, 19:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



Код

IWMPPlayer p = (IWMPPlayer)wmp;
IWMPSyncServices ss = p as IWMPSyncServices;

Чушь. Приводишь один и тот же объект к двум разным типам. Конечно, если IWMPPlayer и IWMPSyncServices - разные интерфейсы, то ничего не получится. Это то же самое что просто написать:
Код

IWMPSyncServices ss = (IWMPSyncServices)(IWMPPlayer)wmp;

Всё что нужно на самом деле сделать - это найти у IWMPPlayer метод или свойство, возвращающее ссылку на объект с типом IWMPSyncServices.


--------------------
user posted image
PM MAIL WWW   Вверх
HalkaR
Дата 3.3.2006, 22:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Пуфыстый назгул
****


Профиль
Группа: Экс. модератор
Сообщений: 2132
Регистрация: 8.12.2002
Где: В Москве

Репутация: 14
Всего: 42



Цитата(mr.DUDA @ 3.3.2006, 19:30)
Код

IWMPPlayer p = (IWMPPlayer)wmp;
IWMPSyncServices ss = p as IWMPSyncServices;

Чушь. Приводишь один и тот же объект к двум разным типам. Конечно, если IWMPPlayer и IWMPSyncServices - разные интерфейсы, то ничего не получится. Это то же самое что просто написать:
Код

IWMPSyncServices ss = (IWMPSyncServices)(IWMPPlayer)wmp;

1. Я просто хотел показать откуда что берется. Просто в SDK написано что IWMPSyncServices берется из IWMPPlayer вот я и показал откуда что пытаюсь брать.
Цитата

Всё что нужно на самом деле сделать - это найти у IWMPPlayer метод или свойство, возвращающее ссылку на объект с типом IWMPSyncServices.

2. Вот это я и не знаю откуда найти
PM MAIL   Вверх
mr.DUDA
Дата 3.3.2006, 23:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



Что-то я нигде не нашёл интерфейса IWMPSyncServices smile
Хотя подключил обе библиотеки, добавляющие неймспейс MediaPlayer и WMPLib...


--------------------
user posted image
PM MAIL WWW   Вверх
HalkaR
Дата 5.3.2006, 12:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Пуфыстый назгул
****


Профиль
Группа: Экс. модератор
Сообщений: 2132
Регистрация: 8.12.2002
Где: В Москве

Репутация: 14
Всего: 42



Вот именно, я уже неделю долбаю, а нету - в хэлпе есть, а на деле нет. Правда вроде это проблема майкрасофта. Так что щас пишу модуль на С++.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0510 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.