Метод 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-ошибки, включая одно из следующих значений.
Код возврата | Описание |
---|---|
|
Метод выполнен успешно |
|
Недопустимый аргумент. |
|
Недостаточно памяти. |
|
Функция не реализована. |
Комментарии
Если документ создается с помощью метода 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 |
См. также раздел
Основные понятия
Другие ресурсы
Справочные материалы