Какие компоненты COM необходимы для записи DVD в Windows XP с использованием .NET? - PullRequest
3 голосов
/ 31 марта 2010

Я пытаюсь записать DVD / CD через код C # внешнего интерфейса ...

Я использовал IMAPI2 для записи CD / DVD в Windows XP ... но это дает мне необработанное исключение ... как: -

System.InvalidCastException: невозможно преобразовать COM-объект типа 'IMAPI2.Interop.MsftFileSystemImageClass' в интерфейсный тип 'IMAPI2.Interop.MsftFileSystemImage'. Эта операция завершилась неудачно, поскольку вызов QueryInterface для компонента COM для интерфейса с IID '{7CFF842C-7E97-4807-8304-910DD8F7C051}' завершился ошибкой из-за следующей ошибки: такой интерфейс не поддерживается (Исключение из HRESULT: 0x80004002 (E_NOINTERFACE))

Может кто-нибудь, пожалуйста, помогите мне решить эту проблему. Я не могу решить эту ошибку. Этот проект работает нормально в Windows7, но не может работать с XP.

Ответы [ 2 ]

1 голос
/ 31 марта 2010

IMAPI2 распространяется с Vista или выше, XP поставляется с IMAPI, в которой DVD не поддерживаются. Вы можете скачать IMAPI2 для XP здесь .

0 голосов
/ 31 марта 2010

Меня это интересует, потому что я начинаю похожий проект. В любом случае, похоже, что ответ находится на странице, на которую вы ссылаетесь. Под веткой «Приложение BurnMedia на XP SP3 не работает?», На странице 2 комментариев кто-то сообщает точно такую ​​же ошибку. Другой автор заявляет, что он решил это, изменив:

[ComImport]
[CoClass(typeof(MsftFileSystemImageClass))]
[Guid("7CFF842C-7E97-4807-8304-910DD8F7C051")]
public interface MsftFileSystemImage : IFileSystemImage3, DFileSystemImage_Event
{
}

до

[ComImport]
[Guid("2C941FE1-975B-59BE-A960-9A2A262853A5")]
[CoClass(typeof(MsftFileSystemImageClass))]
public interface MsftFileSystemImage : IFileSystemImage, DFileSystemImage_Event
{
}

в одном из файлов взаимодействия.

Однако в еще более новом потоке автор предполагает, что это изменение (которое, как сообщается, работает в Windows 7 и XP SP3) нарушает Vista, и что он работает над решением (на несколько дней назад).

...