Поделиться через


Метод IStream::Commit (objidl.h)

Метод Commit гарантирует, что все изменения, внесенные в объект потока, открытый в режиме транзакций, отражаются в родительском хранилище. Если объект потока открыт в прямом режиме, IStream::Commit не оказывает никакого влияния, кроме очистки всех буферов памяти в объект хранилища следующего уровня. Реализация потоков составного com-файла не поддерживает открытие потоков в режиме транзакций.

Синтаксис

HRESULT Commit(
  [in] DWORD grfCommitFlags
);

Параметры

[in] grfCommitFlags

Необходимо проследить за фиксацией изменений объекта-потока. Определение этих значений см. в перечислении STGC .

Возвращаемое значение

Этот метод может возвращать одно из этих значений.

Код возврата Описание
S_OK Изменения объекта потока успешно зафиксированы на родительском уровне.
E_PENDING Только асинхронное хранилище. Часть или все данные потока в настоящее время недоступны.
STG_E_MEDIUMFULL Операция фиксации завершилась сбоем из-за нехватки места на запоминаемом устройстве.
STG_E_REVERTED Объект был признан недействительным операцией отменить изменения над ним в дереве транзакций.

Комментарии

Метод Commit гарантирует, что изменения объекта потока, открытого в режиме транзакций, отражаются в родительском хранилище. Изменения, внесенные в поток с момента его открытия или последней фиксации, отражаются в родительском объекте хранилища. Если родительский элемент открыт в режиме транзакций, родительский объект может отменить изменения позже, откатив изменения в этом объекте потока. Реализация составного файла не поддерживает открытие потоков в режиме транзакций, поэтому этот метод оказывает очень мало влияния, кроме очистки буферов памяти. Дополнительные сведения см. в разделе IStream — реализация составного файла.

Если поток открыт в прямом режиме, этот метод гарантирует, что все буферы памяти были сброшены в базовый объект хранилища. Это во многом похоже на очистку в традиционных файловых системах.

Метод IStream::Commit полезен в потоке прямого режима, если реализация интерфейса IStream является оболочкой для базовых API файловой системы. В этом случае IStream::Commit будет подключен к вызову очистки файловой системы.

Требования

Требование Значение
Минимальная версия клиента Windows 2000 Профессиональная [классические приложения | Приложения UWP]
Минимальная версия сервера Windows 2000 Server [классические приложения | Приложения UWP]
Целевая платформа Windows
Header objidl.h
Библиотека Uuid.lib
DLL Ole32.dll

См. также раздел

IStorage::Commit

IStream — реализация составного файла