Compartilhar via


Método ITextDocument::Open (tom.h)

Abre um documento especificado. Há parâmetros para especificar privilégios de acesso e compartilhamento, criação e conversão do arquivo, bem como a página de código do arquivo.

Sintaxe

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

Parâmetros

[in] pVar

Tipo: VARIANT*

Uma VARIANT que especifica o nome do arquivo a ser aberto.

Flags

Tipo: long

Os sinalizadores de criação, abertura, compartilhamento e conversão de arquivo. O valor padrão é zero, que fornece acesso de leitura/gravação e compartilhamento de leitura/gravação, sempre aberto e reconhecimento automático do formato de arquivo (formatos de arquivo não reconhecidos são tratados como texto). Outros valores são definidos nos grupos a seguir.

Qualquer combinação desses valores pode ser usada.

tomReadOnly

tomShareDenyRead

tomShareDenyWrite

tomPasteFile

Esses valores são mutuamente exclusivos.

tomCreateNew

tomCreateAlways

tomOpenExisting

tomOpenAlways

tomTruncateExisting

tomRTF

tomText

tomHTML

tomWordDocument

CodePage

Tipo: long

A página de código a ser usada para o arquivo. Zero (o valor padrão) significa CP_ACP (página de código ANSI), a menos que o arquivo comece com um bom 0xfeff Unicode, nesse caso, o arquivo é considerado Unicode. Observe que a página de código 1200 é Unicode, CP_UTF8 é UTF-8.

Retornar valor

Tipo: HRESULT

O valor retornado pode ser um valor HRESULT que corresponde a um erro do sistema ou código de erro COM, incluindo um dos valores a seguir.

Código de retorno Descrição
S_OK
O método é bem-sucedido
E_INVALIDARG
Argumento inválido.
E_OUTOFMEMORY
Memória insuficiente.
E_NOTIMPL
Recurso não implementado.

Comentários

Se um documento for criado com o método ITextDocument::New e os valores zero forem usados, o mecanismo TOM (Modelo de Objeto de Texto) precisará escolher quais sinalizadores e página de código usar. O RTF (Formato de Rich Text) UTF-8 (definido abaixo) é um padrão atraente.

O Microsoft Rich Edit 3.0 define uma palavra de controle, \urtf8, que deve ser usada em vez de \rtf1. Isso significa que o arquivo é codificado em UTF-8. Na entrada, os arquivos RTF contêm as informações relevantes da página de código, mas isso pode ser alterado para fins de salvamento, permitindo assim que uma versão seja traduzida para outra.

Se o sinalizador tomPasteFile não estiver definido no parâmetro Flags , o método primeiro fechará o documento atual depois de salvar as alterações não salvas.

Um arquivo será reconhecido como um arquivo de texto Unicode se ele começar com o 0xfeff BOM Unicode. O método ITextDocument::Open remove essa BOM Unicode na entrada e ITextDocument::Save o aplica na saída. Consulte os comentários sobre o método ITextDocument::Save , que discutem a colocação da BOM Unicode no início de arquivos de texto sem formatação Unicode. Os valores de conversão tomRTF, tomHTML e tomWordDocument são usados principalmente para o método ITextDocument::Save , pois esses formatos são facilmente reconhecidos na entrada.

Os erros são relatados por valores negativos, mas como as operações de arquivo têm muitos tipos de erros, talvez você não precise de todas as informações de erro fornecidas. Em particular, talvez você não se importe (ou talvez já saiba) qual recurso de arquivo é usado, ou seja, Windows (pVar.vt = VT_BSTR) ou armazenamento OLE para IStorage. Ao mascarar o bit 18 de um valor HRESULT , você pode ignorar a diferença e comparar com seu valor STG_E_xxx . Por exemplo:

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
}

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows Vista [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2003 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho tom.h
DLL Msftedit.dll

Confira também

Conceitual

IStorage

Istream

ITextDocument

Outros recursos

Referência

Salvar

Modelo de objeto de texto