Os ficheiros Dsofile.dll permite-lhe editar propriedades de documento do Office quando não tiver o Office instalado

Traduções de Artigos Traduções de Artigos
Artigo: 224351 - Ver produtos para os quais este artigo se aplica.
Expandir tudo | Reduzir tudo

Nesta página

Sumário

O ficheiro de exemplo Dsofile.dll é um componente do ActiveX dentro do processo para programadores que utilizam o Microsoft Visual Basic .NET ou o Microsoft .NET Framework. Pode utilizar este nas suas aplicações personalizadas para ler e editar as propriedades de documento OLE que estão associadas a ficheiros do Microsoft Office, tais como os seguintes:
  • Livros do Microsoft Excel
  • Apresentações do Microsoft PowerPoint
  • Documentos do Microsoft Word
  • Projectos do Microsoft Project
  • Desenhos do Microsoft Visio
  • Outros ficheiros que são guardados no formato OLE armazenamento estruturado
O ficheiro de exemplo Dsofile.dll é escrito em Microsoft Visual C++. O ficheiro de exemplo Dsofile.dll demonstra como utilizar a interface Ole32 IPropertyStorage para aceder às propriedades expandidas de ficheiros de armazenamento estruturado OLE. O componente converte os dados para tipos de dados amigável automatização mais fácil utilizar por nível alto linguagens de programação como Visual Basic 6.0, Visual Basic .NET e C#. O ficheiro de exemplo Dsofile.dll é fornecido com o código fonte completo e inclui exemplos clientes escritos em Visual Basic 6.0 e o Visual Basic .NET 2003 (7.1).

Mais Informação

Transferir exemplo o componente ActiveX

Os ficheiros seguintes estão disponíveis para transferência a partir do Centro de transferências da Microsoft:
Reduzir esta imagemExpandir esta imagem
Download
Download the DsoFileSetup_KB224351_x86.exe package now.
Ter o direito livre de royalties para utilizar, para modificar, reproduzir e distribuir o componente de ficheiro de exemplo Dsofile.dll e ficheiros de código de origem do C++ de qualquer modo que é útil. Esta é desde que o Adquirente concorda em que Microsoft tem não oferece nenhuma garantia, sem obrigações e não responsabilidade para sua utilização ou para as informações fornecidas no. O componente do código de origem é fornecido gratuitamente apenas a fins educacionais e é considerado um exemplo. Se pretende utilizar o componente ou qualquer parte dos mesmos, uma solução de produção, é responsável pela rever, para modificar, para testar e para o componente de suporte manualmente.

aviso O Dsofile.dll, o código de origem e os exemplos associados são fornecidos "tal como estão" sem garantias de qualquer tipo, expressa ou implícita, incluindo sem limitação as garantias implícitas de comercialização e/ou adequação a um fim específico. As suas próprias risco utilização.

Nota Para ler e editar documentos do Office 2007 utilizando este exemplo, tem de instalar o Office 2007 Compatibilidade Pack. Para mais informações, consulte a secção "Recursos".

Informações sobre propriedades de documento OLE

Todos os documentos compostos OLE podem armazenar informações adicionais sobre o documento em conjuntos de propriedades persistente. Estes são colectivamente chamados as "documento resumo propriedades." Estes conjuntos de propriedades são geridos pelo "COM/OLE" para que os clientes de outros fabricantes podem ler estas informações sem a ajuda da aplicação principal que é responsável pelo ficheiro.

Para ajudar os programadores que estejam interessados em ler as propriedades do documento, fornecemos as seguintes duas interfaces para gerir conjuntos de propriedades:
  • IPropertySetStorage
  • IPropertyStorage
No entanto, alguns idiomas de programação de alto nível podem ter problemas ao utilizar estas interfaces porque as interfaces não são compatíveis com a automatização. Para resolver este problema, os programadores podem utilizar uma DLL de ActiveX, esse "DsoFile exemplo" para ler e escrever as propriedades mais comuns que são utilizadas em documentos compostos OLE. Isto aplica-se especialmente aquelas que são utilizados por aplicações do Microsoft Office.

Utilizar o componente DsoFile da aplicação personalizada

O ficheiro de exemplo Dsofile.dll lê e grava as propriedades padrão e as propriedades personalizadas a partir de qualquer ficheiro de "OLE armazenamento estruturado". Isto inclui, mas não está limitado a, o seguinte:
  • Documentos do Word
  • Livros do Excel
  • Apresentações do PowerPoint
Devido a velocidade do ficheiro de exemplo Dsofile.dll e o tamanho, a DLL pode ser muito mais eficaz do que tentar automatizar o Office para ler as propriedades do documento.

Para utilizar o componente, definir uma referência à biblioteca de tipos Dsofile é denominado "DSO OLE documento propriedades leitor 2.1." O componente pode ser utilizado para chamadas atrasadas e antecipadas chamadas de ligação. o ficheiro de exemplo Dsofile.dll tem apenas um objecto que pode ser criado. Esse objecto é denominado DSOFile.OleDocumentProperties . O objecto DSOFile.OleDocumentProperties fornece acesso às propriedades de documento OLE de um ficheiro que carregar utilizando o método Open . Todas as propriedades são ler e colocados na cache abrir. Todas as propriedades, em seguida, ficam disponíveis através do objecto OleDocumentProperties para edição. As propriedades são apenas escritas novamente no ficheiro quando chamada a Guardar . Quando terminar de editar um ficheiro, chamada Fechar para libertar o ficheiro bloquear.

É possível obter as propriedades OLE padrão e as propriedades de resumo do Office padrão da propriedade SummaryProperties . Propriedades personalizadas são listadas na colecção CustomProperties . Cada propriedade personalizada tem um nome exclusivo. Cada propriedade personalizada está acessível na colecção com esse nome. Pode adicionar ou remover propriedades individuais. Além disso, pode enumerar através do conjunto inteiro utilizando a sintaxe "For Each" no Visual Basic. NET.

Quando o método Open é chamado, o objecto OleDocumentProperties que chama Dsofile tenta abrir o documento para o acesso de leitura e o acesso de escrita. Se tiver sido marcado como o ficheiro só de leitura ou se os ficheiros está localizado no poderá falhar uma partilha NTFS só fornece acesso de leitura, a chamada. Poderá receber a seguinte mensagem de erro:
Erro 70: Permissão negada
Se pretender abrir o ficheiro para acesso só de leitura, passa Verdadeiro para o parâmetro só de leitura no método Abrir . Além disso, pode passar o sinalizador dsoOptionOpenReadOnlyIfNoWriteAccess se pretender Dsofile para tentar abrir o ficheiro para edição. No entanto, se Dsofile não consegue aceder porque ficheiro é só de leitura ou está bloqueado por outro processo, abrir uma cópia só de leitura. Em seguida, pode verificar se o documento é aberto só de leitura utilizando a propriedade IsReadOnly .

Depois de uma propriedade ter sido alterada ou modificada, pode utilizar a propriedade IsDirty para verificar se o conjunto de propriedades sejam guardadas. As alterações efectuadas não são escritas para o ficheiro até Guardar é chamado. Se não chamar Guardar , as alterações são perdidas em Fechar .

Juntamente com as mensagens de erro automatização padrão, Dsofile pode retornar uma das seguintes mensagens de erro personalizado quando algo de errado acontecer:
Erro-2147217151 (& H80041101): É necessário abrir um documento para executar a acção pedida.
Erro-2147217150 (& H80041102):, Tem de fechar o documento actual antes de abrir um novo no mesmo objecto.
Erro-2147217149 (& H80041103): O documento está a ser utilizado por outro programa e não pode ser aberto para acesso de leitura / escrita.
Erro-2147217148 (& H80041104): O documento não é um ficheiro OLE e não suporta propriedades do documento expandida.
Erro-2147217147 (& H80041105): O comando não está disponível porque o documento foi aberto em modo só de leitura.
Erro-2147217146 (& H80041106): O comando está disponível para apenas ficheiros OLE armazenamento estruturado.
Erro-2147217145 (& H80041107): O objecto não está ligado ao documento (foi removido ou o documento foi fechado).
Erro-2147217144 (& H80041108): Não é possível aceder a propriedade porque o conjunto pertence a não existe.
Erro-2147217143 (& H80041109): A propriedade pedida não existe na colecção.
Erro-2147217142 (& H8004110A): Um item com esse nome já existe na colecção.

Conjuntos de propriedades de Unicode

Conjuntos de propriedades OLE pode armazenar cadeias no formato Unicode ou no formato de cadeia de caracteres Multi-Byte (MBCS) com uma página de códigos especificada. Dsofile pode ler e escrever qualquer tipo de conjunto de propriedades. Por predefinição, o Dsofile selecciona Unicode quando Dsofile cria novos conjuntos, tal como quando adicionar propriedades a um ficheiro com nenhum. Se pretender Dsofile para criar o conjunto utilizando formato MBCS cadeias, pode passar o sinalizador dsoOptionUseMBCStringsForNewSets no método de Abrir .

Uma vez que conjuntos de propriedades existentes podem utilizar o formato MBCS, Dsofile tem de armazenar cadeias no mesmo formato enquanto o guarda. Se tentar adicionar uma cadeia que não consegue mapear para a página de códigos para o conjunto de propriedades, a operação pode falhar. Por conseguinte, limite as cadeias de caracteres que sabe que existe a página de código do sistema efectuadas no ficheiro. Em alternativa, certifique-se de que todos os conjuntos de propriedades estão no formato Unicode antes de editar as propriedades.

Nota Dsofile não converte uma propriedade MBCS existente definida para Unicode. Tem de modificar o exemplo se pretende adicionar esta capacidade.

Passos para configurar e testar a DLL

A configuração de extracção automática instala e regista o componente DsoFile.dll numa localização que pretende. A configuração de extracção automática também instala duas aplicações de teste de Visual Basic .NET que demonstram como utilizar o componente e todo o código de origem.

Se mover a DLL para outra localização ou a outro computador, tem de voltar a registar a DLL antes de utilizá-lo novamente. Para o fazer, escreva regsvr32 [filepath]\dsofile.dll na caixa de diálogo Executar no menu Iniciar .

Para executar o exemplo, siga estes passos:

Para uma demonstração de 6.0 Visual Basic

  1. Abra o projecto de exemplo do Visual Basic 6.0 é denominado da seguinte forma:

    .\Source\Vb6Demo\PropDemo.vbp
  2. Certifique-se de que Dsofile.dll foi referenciado correctamente. Para o fazer, seleccione References no menu projecto . Verifique se se uma referência está definida para DSO OLE documento propriedades leitor 2.1 .
  3. Prima F5 para executar o projecto.
  4. Quando for pedido para abrir um ficheiro de documento composto, seleccione um ficheiro adequado e repare que são apresentadas as propriedades do documento.

Para a 2003 do Visual Basic (7.1) ou para uma demonstração do Visual Basic 2005 (8.0)

  1. Abra o projecto do Visual Basic 7.1 denominado da seguinte forma:

    .\Source\Vb7Demo\FilePropDemoVB7.SLN

    É possível abrir este projecto no 7.1 ou Visual Basic no Visual Studio .NET 2003 ou no Visual Basic 8.0 no Visual Studio 2005.
  2. Se lhe for pedido para converter automaticamente a solução para o formato 8.0, clique em Sim e siga o Assistente para converter o projecto.
  3. Prima F5 para compilar e executar o projecto do Visual Basic.
  4. Quando o formulário for apresentado, clique em Abrir .
  5. Seleccione um ficheiro do Office adequado e clique em OK .

    Repare que as propriedades de documento do Office ficheiro aparecem na caixa de diálogo. Pode editar as propriedades do documento.

Referências

O componente Dsofile.dll foi actualizado para ler e editar propriedades de documento para ficheiros do Microsoft Office 2007 se também de instalar o Office 2007 Compatibilidade Pack. Para transferir e instalar o pacote de compatibilidade, visite o seguinte Web site da Microsoft:
http://www.microsoft.com/downloads/details.aspx?FamilyID=941b3470-3ae9-4aee-8f43-c6bb74cd1466
Para obter informações adicionais sobre como ler as propriedades do documento a partir do Visual C++, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
186898Como ler as propriedades de documentos compostos directamente com VC ++

Propriedades

Artigo: 224351 - Última revisão: 13 de junho de 2007 - Revisão: 9.3
A informação contida neste artigo aplica-se a:
  • Microsoft Visual Basic 2005
  • Microsoft Visual Basic .NET 2003 Standard Edition
  • Microsoft Visual Basic .NET 2002 Standard Edition
  • Microsoft Visual Basic 6.0 Professional Edition
  • Microsoft Visual Studio 6.0 Enterprise Edition
  • Microsoft Office Excel 2007
  • Microsoft Office PowerPoint 2007
  • Microsoft Office Word 2007
  • Microsoft Office Visio Professional 2007
  • Microsoft Office Excel 2003
  • Microsoft Office PowerPoint 2003
  • Microsoft Office Word 2003
  • Microsoft Office Visio Professional 2003
  • Microsoft Office Project Professional 2003
  • Microsoft Excel 2002 Standard Edition
  • Microsoft PowerPoint 2002 Standard Edition
  • Microsoft Word 2002 Standard Edition
  • Microsoft Visio 2002 Professional Edition
  • Microsoft Project 2002 Standard Edition
Palavras-chave: 
kbmt kbdownload kbautomation kbfile kbinfo kbpersistst KB224351 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 224351

Submeter comentários

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com