Condividi tramite


Metodo ITextDocument::Open (tom.h)

Apre un documento specificato. Esistono parametri per specificare privilegi di accesso e condivisione, creazione e conversione del file, nonché la tabella codici per il file.

Sintassi

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

Parametri

[in] pVar

Tipo: VARIANT*

VARIANT che specifica il nome del file da aprire.

Flags

Tipo: long

Creazione di file, apertura, condivisione e flag di conversione. Il valore predefinito è zero, che consente l'accesso in lettura/scrittura e la condivisione di lettura/scrittura, aprire sempre e il riconoscimento automatico del formato di file (i formati di file non riconosciuti vengono considerati come testo). Altri valori sono definiti nei gruppi seguenti.

Qualsiasi combinazione di questi valori può essere usata.

tomReadOnly

tomShareDenyRead

tomShareDenyWrite

tomPasteFile

Questi valori si escludono a vicenda.

tomCreateNew

tomCreateAlways

tomOpenExisting

tomOpenAlways

tomTruncateExisting

tomRTF

tomText

tomHTML

tomWordDocument

CodePage

Tipo: long

Tabella codici da usare per il file. Zero (il valore predefinito) indica CP_ACP (tabella codici ANSI) a meno che il file non inizi con un 0xfeff UNICODE, nel qual caso il file viene considerato Unicode. Si noti che la tabella codici 1200 è Unicode, CP_UTF8 è UTF-8.

Valore restituito

Tipo: HRESULT

Il valore restituito può essere un valore HRESULT che corrisponde a un errore di sistema o a un codice di errore COM, incluso uno dei valori seguenti.

Codice restituito Descrizione
S_OK
Metodo riuscito
E_INVALIDARG
Argomento non valido.
E_OUTOFMEMORY
Memoria insufficiente.
E_NOTIMPL
Funzionalità non implementata.

Commenti

Se viene creato un documento con il metodo ITextDocument::New e i valori zero vengono usati, il motore Text Object Model (TOM) deve scegliere i flag e la tabella codici da usare. UTF-8 Rich Text Format (RTF) (definito di seguito) è un valore predefinito interessante.

Microsoft Rich Edit 3.0 definisce una parola di controllo, \urtf8, che deve essere usata anziché \rtf1. Ciò significa che il file viene codificato in UTF-8. In input, i file RTF contengono le informazioni pertinenti sulla tabella codici, ma è possibile modificarle a scopo di salvataggio, consentendo quindi la conversione di una versione in un'altra.

Se il flag tomPasteFile non è impostato nel parametro Flags , il metodo chiude prima il documento corrente dopo aver salvato eventuali modifiche non salvate.

Un file viene riconosciuto come file di testo Unicode se inizia con l'0xfeff unicode BOM. Il metodo ITextDocument::Open rimuove questo BOM Unicode nell'input e ITextDocument::Save lo applica all'output. Vedere i commenti sul metodo ITextDocument::Save , che illustrano l'inserimento della BOM Unicode all'inizio dei file di testo normale Unicode. I valori di conversione tomRTF, tomHTML e tomWordDocument vengono usati principalmente per il metodo ITextDocument::Save, poiché questi formati vengono facilmente riconosciuti in input.

Gli errori vengono segnalati da valori negativi, ma poiché le operazioni dei file hanno molti tipi di errori, potrebbe non essere necessario disporre di tutte le informazioni sull'errore fornite. In particolare, potresti non prestare attenzione (o potresti già sapere) quale struttura file viene usata, ovvero Windows (pVar.vt = VT_BSTR) o l'archiviazione OLE per IStorage. Mascherando bit 18 di un valore HRESULT , è possibile ignorare la differenza e confrontarne il valore STG_E_xxx . Ad esempio:

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
}

Requisiti

Requisito Valore
Client minimo supportato Windows Vista [solo app desktop]
Server minimo supportato Windows Server 2003 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione tom.h
DLL Msftedit.dll

Vedi anche

Informazioni concettuali

IStorage

IStream

ITextDocument

Altre risorse

Riferimento

Salva

Modello a oggetti testo