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 代码页) ,除非文件以 Unicode BOM 0xfeff开头,在这种情况下,该文件被视为 Unicode。 请注意,代码页 1200 为 Unicode,CP_UTF8为 UTF-8。
返回值
类型: HRESULT
返回值可以是对应于系统错误或 COM 错误代码的 HRESULT 值,包括以下值之一。
返回代码 | 说明 |
---|---|
|
方法成功 |
|
无效的参数。 |
|
内存不足。 |
|
功能未实现。 |
注解
如果使用 ITextDocument::New 方法创建文档并使用零值,则文本对象模型 (TOM) 引擎必须选择要使用的标志和代码页。 UTF-8 RTF 格式 (下面定义的 RTF) () 是一个有吸引力的默认值。
Microsoft Rich Edit 3.0 定义了一个控件字 \urtf8,应使用该字而不是 \rtf1。 这意味着该文件以 UTF-8 进行编码。 输入时,RTF 文件包含相关的代码页信息,但为了保存目的,可以更改此信息,从而允许将一个版本转换为另一个版本。
如果未在 Flags 参数中设置 tomPasteFile 标志,该方法在保存任何未保存的更改后首先关闭当前文档。
如果文件以 Unicode BOM 0xfeff开头,则会将其识别为 Unicode 文本文件。 ITextDocument::Open 方法在输入时去除此 Unicode BOM,ITextDocument::Save 将其应用于输出。 请参阅 有关 ITextDocument::Save 方法的注释,其中讨论了将 Unicode BOM 放在 Unicode 纯文本文件的开头。 转换值 tomRTF、 tomHTML 和 tomWordDocument 主要用于 ITextDocument::Save 方法,因为这些格式在输入时很容易识别。
错误由负值报告,但由于文件操作具有多种错误,因此可能不需要提供的所有错误信息。 具体而言,你可能不在乎 (,或者你可能已经知道) 使用了哪个文件工具,即 Windows (pVar.vt = VT_BSTR
) 或 IStorage 的 OLE 存储。 通过屏蔽 HRESULT 值的 18 位,可以忽略差异并将其 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 |
标头 | tom.h |
DLL | Msftedit.dll |
请参阅
概念性
其他资源
引用