ITextDocument::Open-Methode (tom.h)

Öffnet ein angegebenes Dokument. Es gibt Parameter zum Angeben von Zugriffs- und Freigabeberechtigungen, zum Erstellen und Konvertieren der Datei sowie zur Codepage für die Datei.

Syntax

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

Parameter

[in] pVar

Typ: VARIANT*

Ein VARIANT-Wert , der den Namen der zu öffnenden Datei angibt.

Flags

Typ: long

Die Dateierstellungs-, Öffnen-, Freigabe- und Konvertierungsflags. Der Standardwert ist 0, wodurch Lese-/Schreibzugriff und Lese-/Schreibfreigabe, immer geöffnet und das Dateiformat automatisch erkannt wird (nicht erkannte Dateiformate werden als Text behandelt). Andere Werte werden in den folgenden Gruppen definiert.

Es kann eine beliebige Kombination dieser Werte verwendet werden.

tomReadOnly

tomShareDenyRead

tomShareDenyWrite

tomPasteFile

Diese Werte schließen sich gegenseitig aus.

tomCreateNew

tomCreateAlways

tomOpenExisting

tomOpenAlways

tomTruncateExisting

tomRTF

tomText

tomHTML

tomWordDocument

CodePage

Typ: long

Die Codepage, die für die Datei verwendet werden soll. Null (Standardwert) bedeutet CP_ACP (ANSI-Codepage), es sei denn, die Datei beginnt mit einer Unicode-BOM-0xfeff. In diesem Fall gilt die Datei als Unicode. Beachten Sie, dass die Codepage 1200 Unicode ist, CP_UTF8 UTF-8 ist.

Rückgabewert

Typ: HRESULT

Der Rückgabewert kann ein HRESULT-Wert sein, der einem Systemfehler- oder COM-Fehlercode entspricht, einschließlich eines der folgenden Werte.

Rückgabecode BESCHREIBUNG
S_OK
Methode erfolgreich
E_INVALIDARG
Ungültiges Argument.
E_OUTOFMEMORY
Nicht genügend Arbeitsspeicher.
E_NOTIMPL
Feature nicht implementiert.

Hinweise

Wenn ein Dokument mit der ITextDocument::New-Methode erstellt wird und die Nullwerte verwendet werden, muss die TextObjektmodell-Engine (TOM) auswählen, welche Flags und Codepage verwendet werden sollen. UTF-8 Rich Text Format (RTF) (unten definiert) ist ein attraktiver Standardwert.

Microsoft Rich Edit 3.0 definiert das Steuerelementwort \urtf8, das anstelle von \rtf1 verwendet werden soll. Dies bedeutet, dass die Datei in UTF-8 codiert ist. Bei der Eingabe enthalten RTF-Dateien die relevanten Codepageinformationen, aber dies kann zum Speichern geändert werden, sodass eine Version in eine andere übersetzt werden kann.

Wenn das tomPasteFile-Flag im Flags-Parameter nicht festgelegt ist, schließt die Methode zuerst das aktuelle Dokument, nachdem nicht gespeicherte Änderungen gespeichert wurden.

Eine Datei wird als Unicode-Textdatei erkannt, wenn sie mit der Unicode-BOM-0xfeff beginnt. Die ITextDocument::Open-Methode entfernt diese Unicode-BOM bei der Eingabe, und ITextDocument::Save wendet sie bei der Ausgabe an. Sehen Sie sich die Kommentare zur ITextDocument::Save-Methode an, in der erläutert wird, die Unicode-BOM am Anfang von Unicode-Klartextdateien zu platzieren. Die Konvertierungswerte tomRTF, tomHTML und tomWordDocument werden in erster Linie für die ITextDocument::Save-Methode verwendet, da diese Formate bei der Eingabe leicht erkannt werden.

Fehler werden durch negative Werte gemeldet, aber da Dateivorgänge viele Arten von Fehlern aufweisen, benötigen Sie möglicherweise nicht alle bereitgestellten Fehlerinformationen. Insbesondere ist Es Ihnen möglicherweise egal (oder Sie wissen bereits), welche Dateifunktion verwendet wird, nämlich Windows (pVar.vt = VT_BSTR) oder OLE-Speicher für IStorage. Durch Maskieren von Bit 18 eines HRESULT-Werts können Sie die Differenz ignorieren und mit dem STG_E_xxx-Wert vergleichen. Beispiel:

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
}

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows Vista [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2003 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile tom.h
DLL Msftedit.dll

Siehe auch

Konzept

IStorage

IStream

ITextDocument

Andere Ressourcen

Referenz

Speichern

Textobjektmodell