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

要用於檔案的代碼頁。 零 (預設值 ) 表示除非 檔案以 Unicode BOM 0xfeff開頭,否則除非檔案以 Unicode BOM 0xfeff開頭,否則CP_ACP (ANSI 代碼) 頁。 請注意,代碼頁 1200 是 Unicode,CP_UTF8是 UTF-8。

傳回值

類型: HRESULT

傳回值可以是對應至系統錯誤或 COM 錯誤碼的 HRESULT 值,包括下列其中一個值。

傳回碼 描述
S_OK
方法成功
E_INVALIDARG
無效引數。
E_OUTOFMEMORY
記憶體不足。
E_NOTIMPL
未實作的功能。

備註

如果使用 ITextDocument::New 方法建立檔,並使用零值,則 TEXT 物件模型 (TOM) 引擎必須選擇要使用的旗標和代碼頁。 UTF-8 RTF 格式 (RTF) (定義) 是吸引人的預設值。

Microsoft Rich Edit 3.0 會定義應該使用而非 \rtf1 的控件字 \urtf8。 這表示檔案是以UTF-8編碼。 在輸入時,RTF 檔案包含相關的代碼頁資訊,但為了儲存目的而變更,因此允許將某個版本轉譯為另一個版本。

如果未在 Flags 參數中設定 tomPasteFile 旗標,方法會在儲存任何未儲存的變更之後,先關閉目前的檔。

如果檔案以 Unicode BOM 0xfeff開頭,則會將其辨識為 Unicode 文本檔。 ITextDocument::Open 方法會從輸入上的這個 Unicode BOM 移除,而 ITextDocument::Save 會在輸出上套用它。 請參閱 ITextDocument::Save 方法上的批注,其討論將 Unicode BOM 放在 Unicode 純文本檔案的開頭。 轉換值 tomRTFtomHTML 和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

另請參閱

概念

IStorage

IStream

ITextDocument

其他資源

參考

儲存

文字物件模型