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