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


Метод ITextDocument::Open (tom.h)

Открывает указанный документ. Существуют параметры для указания привилегий доступа и общего доступа, создания и преобразования файла, а также кодовой страницы для файла.

Синтаксис

HRESULT Open(
  [in] VARIANT *pVar,
       long    Flags,
       long    CodePage
);

Параметры

[in] pVar

Тип: VARIANT*

Значение VARIANT, указывающее имя открываемого файла.

Flags

Тип: long

Флаги создания, открытия, совместного использования и преобразования файлов. Значение по умолчанию равно нулю, что дает доступ для чтения и записи, а также общий доступ для чтения и записи, всегда открыт и автоматически распознает формат файла (нераспознанные форматы файлов обрабатываются как текст). Другие значения определяются в следующих группах.

Можно использовать любое сочетание этих значений.

tomReadOnly

tomShareDenyRead

tomShareDenyWrite

tomPasteFile

Эти значения являются взаимоисключающими.

tomCreateNew

tomCreateAlways

tomOpenExisting

tomOpenAlways

tomTruncateExisting

tomRTF

tomText

tomHTML

tomWordDocument

CodePage

Тип: long

Кодовая страница, используемая для файла. Ноль (значение по умолчанию) означает CP_ACP (кодовая страница ANSI), если файл не начинается с 0xfeff спецификации Юникода. В этом случае файл считается Юникодом. Обратите внимание, что кодовая страница 1200 — Юникод, CP_UTF8 — UTF-8.

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

Тип: HRESULT

Возвращаемое значение может быть значением HRESULT , соответствующим системной ошибке или коду com-ошибки, включая одно из следующих значений.

Код возврата Описание
S_OK
Метод выполнен успешно
E_INVALIDARG
Недопустимый аргумент.
E_OUTOFMEMORY
Недостаточно памяти.
E_NOTIMPL
Функция не реализована.

Комментарии

Если документ создается с помощью метода ITextDocument::New и используются нулевые значения, обработчику текстовой объектной модели (TOM) необходимо выбрать, какие флаги и кодовую страницу следует использовать. Формат формат rtf (RTF) UTF-8 (определяется ниже) является привлекательным по умолчанию.

Microsoft Rich Edit 3.0 определяет управляющее слово \urtf8, которое следует использовать вместо \rtf1. Это означает, что файл закодирован в кодировке UTF-8. При входных данных RTF-файлы содержат соответствующие сведения о кодовой странице, но их можно изменить в целях сохранения, тем самым позволяя перевести одну версию в другую.

Если флаг tomPasteFile не задан в параметре Flags , метод сначала закрывает текущий документ после сохранения несохраненных изменений.

Файл распознается как текстовый файл Юникода, если он начинается с 0xfeff спецификации Юникода. Метод ITextDocument::Open удаляет эту метку спецификации Юникода для входных данных, а ITextDocument::Save применяет ее к выходным данным. См. комментарии к методу ITextDocument::Save , в которых обсуждается размещение метки в Юникоде в начале файлов в формате Обычного текста в Юникоде. Значения преобразования tomRTF, tomHTML и tomWordDocument используются в основном для метода ITextDocument::Save , так как эти форматы легко распознаются при входных данных.

Ошибки сообщаются отрицательными значениями, но так как операции с файлами имеют множество типов ошибок, могут потребоваться не все предоставленные сведения об ошибках. В частности, вам может быть не важно (или вы, возможно, уже знаете), какое средство файлов используется, а именно Windows (pVar.vt = VT_BSTR) или OLE-хранилище для IStorage. Маскируя бит 18 значения HRESULT , можно игнорировать разницу и сравнить с ее STG_E_xxx значением. Пример:

HRESULT hr;
VARIANT Var;
VariantInit(&Var)

Var.vt = VT_BSTR;
Var.bstrVal = SysAllocString(L"test.txt"); // Use file command
hr = pDoc->Open(&Var, tomOpenExisting, 0);
hr &= ~0x40000; // Mask off bit 18
if(hr == STG_E_FILENOTFOUND)
{
...// the rest of the code
}

Требования

Требование Значение
Минимальная версия клиента Windows Vista [только классические приложения]
Минимальная версия сервера Windows Server 2003 [только классические приложения]
Целевая платформа Windows
Header tom.h
DLL Msftedit.dll

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

Основные понятия

IStorage

IStream

ITextDocument

Другие ресурсы

Справочные материалы

Сохранить

Текстовая объектная модель