Метод IWMDMStorageControl2::Insert2 (mswmdm.h)
Метод Insert2 помещает содержимое в хранилище или рядом с ним. Этот метод расширяет IWMDMStorageControl::Insert , позволяя приложению указать новое имя назначения и предоставить указатель на пользовательский COM-объект.
Синтаксис
HRESULT Insert2(
[in] UINT fuMode,
[in] LPWSTR pwszFileSource,
[in] LPWSTR pwszFileDest,
[in] IWMDMOperation *pOperation,
[in] IWMDMProgress *pProgress,
[in] IUnknown *pUnknown,
[out] IWMDMStorage **ppNewObject
);
Параметры
[in] fuMode
Режим обработки, используемый для операции Insert2 . В следующей таблице перечислены режимы обработки, которые можно указать в параметре fuMode . Необходимо указать только один из первых двух режимов, ровно один из режимов STORAGECONTROL и ровно один из режимов CONTENT. Если указаны WMDM_MODE_BLOCK и WMDM_MODE_THREAD, используется режим блокировки.
Комбинации | Режим | Описание |
---|---|---|
Ровно один из следующих вариантов: | WMDM_MODE_BLOCK | Операция выполняется с помощью обработки в блочных режимах. Вызов не будет возвращать, пока операция не будет завершена. |
- | WMDM_MODE_THREAD | Операция выполняется с помощью обработки в потоковом режиме. Вызов возвращается немедленно, и операция выполняется в фоновом потоке. |
Необязательно | WMDM_MODE_QUERY | Выполняется проверка, чтобы определить, может ли операция вставки быть успешной, но вставка не будет выполнена. |
Ровно один из следующих вариантов: | WMDM_STORAGECONTROL_INSERTBEFORE | Объект вставляется перед целевым объектом . |
- | WMDM_STORAGECONTROL_INSERTAFTER | Объект вставляется после целевого объекта. |
- | WMDM_STORAGECONTROL_INSERTINTO | Объект вставляется в текущий объект . Это будет работать, только если текущий объект является папкой. |
Необязательно | WMDM_FILE_CREATE_OVERWRITE | Объект заменит целевой объект. |
Ровно один из следующих вариантов: | WMDM_CONTENT_FILE | Вставляемое содержимое — это файл. |
- | WMDM_CONTENT_FOLDER | Вставляемое содержимое — это папка. Это не приведет к переносу содержимого папки. |
Необязательно | WMDM_CONTENT_OPERATIONINTERFACE | Вставляемое содержимое является интерфейсом операции. Данные для содержимого должны быть записаны в интерфейс IWMDMOperation , реализованный приложением. |
Необязательно | WMDM_MODE_PROGRESS | Уведомления о ходе выполнения должны отправляться с помощью параметра pProgress . |
Необязательный один из следующих вариантов: | WMDM_MODE_TRANSFER_PROTECTED | Вставка находится в защищенном режиме передачи. |
- | WMDM_MODE_TRANSFER_UNPROTECTED | Вставка находится в незащищенном режиме передачи. |
[in] pwszFileSource
Указатель на строку с расширенным символом, завершающуюся значением NULL, указывающую полное имя и путь к объекту для отправки на устройство. Этот параметр должен иметь значение NULL , если WMDM_CONTENT_OPERATIONINTERFACE указан в fuMode.
[in] pwszFileDest
Необязательное имя файла на устройстве. Если не указано и приложение передает указатель IWMDMOperation в pOperation, диспетчер устройств Windows Media запросит имя назначения, вызвав IWMDMOperation::GetObjectName. Если не указано и приложение не использует pOperation, используются исходное имя файла и расширение (без пути).
[in] pOperation
Необязательный указатель на интерфейс IWMDMOperation для управления передачей содержимого на устройство мультимедиа. Если этот параметр задан, fuMode должен включать флаг WMDM_CONTENT_OPERATIONINTERFACE. Этот параметр должен иметь значение NULL , если в fuMode указан WMDM_CONTENT_FILE или WMDM_CONTENT_FOLDER.
[in] pProgress
Необязательный указатель на интерфейс IWMDMProgress для передачи отчета о ходе выполнения действия в приложение. Если этот параметр задан, fuMode должен включать WMDM_MODE_PROGRESS.
[in] pUnknown
Необязательный указатель IUnknown любого пользовательского COM-объекта, передаваемого поставщику защищенного содержимого. Это позволяет передавать пользовательские сведения поставщику защищенного содержимого, если приложение имеет достаточные сведения о поставщике безопасного содержимого.
[out] ppNewObject
Указатель на интерфейс IWMDMStorage , который будет содержать новое содержимое. Вызывающий объект должен освободить этот интерфейс по завершении работы с ним.
Возвращаемое значение
Метод возвращает HRESULT. Все методы интерфейса в Windows Media диспетчер устройств могут возвращать любой из следующих классов кодов ошибок:
- Стандартные коды ошибок COM
- Коды ошибок Windows, преобразованные в значения HRESULT
- Коды ошибок диспетчер устройств Windows Media
Комментарии
Если устройство поддерживает IWMDMStorageControl3::Insert3, это предпочтительный метод.
Если указан флаг WMDM_MODE_THREAD, необходимо получить состояние завершения, вызвав IWMDMProgress2::End2 или IWMDMProgress3::End3. Эти методы гарантируют завершение операции, а также возвращают HRESULT со сведениями об успешном или неудачном выполнении.
Если приложение использует WMDM_MODE_THREAD и передает параметр pProgress, отличный от NULL, приложение должно убедиться, что объект, которому принадлежит pProgress, не будет уничтожен до завершения операции вставки, так как диспетчер устройств Windows Media будет отправлять уведомления о ходе выполнения в этот объект. Этот объект можно уничтожить только после получения уведомления о завершении. Невыполнение этого действия приведет к нарушениям доступа.
Требования
Требование | Значение |
---|---|
Целевая платформа | Windows |
Header | mswmdm.h |
Библиотека | Mssachlp.lib |