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 值,包括下列其中一個值。
傳回碼 | 描述 |
---|---|
|
方法成功 |
|
無效引數。 |
|
記憶體不足。 |
|
未實作的功能。 |
備註
如果使用 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 純文本檔案的開頭。 轉換值 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 |
另請參閱
概念
其他資源
參考