Los archivos Dsofile.dll le permite editar las propiedades de documento de Office cuando no tienen instalado Office

Seleccione idioma Seleccione idioma
Id. de artículo: 224351 - Ver los productos a los que se aplica este artículo
Expandir todo | Contraer todo

En esta página

Resumen

El archivo de ejemplo de Dsofile.dll es un componente de ActiveX en el proceso para los programadores que utilizan Microsoft Visual Basic .NET o Microsoft .NET Framework. Puede utilizar en las aplicaciones personalizadas para leer y modificar las propiedades de documento OLE que están asociadas con archivos de Microsoft Office, como la siguiente:
  • Libros de Microsoft Excel
  • Presentaciones de PowerPoint
  • Documentos de Microsoft Word
  • Proyectos de Microsoft Project
  • Dibujos de Microsoft Visio
  • Otros archivos que se guardan en el formato de almacenamiento estructurado OLE
El archivo de ejemplo Dsofile.dll está escrito en Microsoft Visual C++. El archivo de ejemplo Dsofile.dll demuestra cómo utilizar la interfaz Ole32 IPropertyStorage para tener acceso a las propiedades extendidas de archivos de almacenamiento estructurado OLE. El componente convierte los datos en tipos de datos descriptivos de automatización para más fácil utilizar por lenguajes como Visual Basic 6.0, Visual Basic.NET y C# de programación de nivel alto. El archivo de ejemplo Dsofile.dll recibe con código fuente completo y incluye a clientes de ejemplo escritos en Visual Basic 6.0 y Visual Basic .NET 2003 (7.1).

Más información

Descargar ejemplo componente ActiveX

Los archivos siguientes están disponibles para descargarlos del Centro de descarga de Microsoft:
Contraer esta imagenAmpliar esta imagen
Download
Download the DsoFileSetup_KB224351_x86.exe package now.
Tendrá derecho libre de regalías para usar, modificar, reproducir y distribuir el componente de archivo de ejemplo Dsofile.dll y los archivos de código de origen de C++ de ninguna manera que le útil. Esto es siempre que usted acepta que Microsoft tiene ninguna garantía, no hay obligaciones y ausencia de responsabilidad para su uso o para la información proporcionada en. Se proporciona el componente y código fuente libre de cargos sólo con fines educativos y se considera un ejemplo. Si desea utilizar el componente o cualquier parte de ellas, en una solución de producción, es responsable de revisar para modificar, para probar y para admitir el componente usted mismo.

Advertencia El Dsofile.dll, el código fuente y los ejemplos asociados se proporcionan "tal es" sin garantía de ningún tipo, ya sea expresa o implícita, incluyendo, pero no limitarse a, las garantías implícitas de comerciabilidad e idoneidad para un propósito determinado. Utilícelo bajo su responsabilidad.

Nota Para leer y editar documentos de Office 2007 mediante este ejemplo, debe instalar el paquete de compatibilidad de Office 2007. Para obtener más información, vea la sección "Recursos".

Información sobre propiedades de documento OLE

Cada documento compuesto OLE puede almacenar información adicional sobre el documento en conjuntos de propiedades persistentes. Estos se denominan colectivamente el "documento resumen propiedades". Estos conjuntos de propiedades se administran mediante "COM/OLE" para que los clientes de otros fabricantes pueden leer esta información sin la Ayuda de la aplicación principal que es responsable el archivo.

Para ayudar a los desarrolladores que están interesados en leer las propiedades del documento, hemos proporcionado las dos interfaces para administrar conjuntos de propiedades siguientes:
  • IPropertySetStorage
  • IPropertyStorage
Sin embargo, algunos lenguajes de programación de alto nivel pueden tener problemas al utilizar estas interfaces, porque las interfaces no son compatibles con la automatización. Para resolver este problema, los desarrolladores pueden utilizar una DLL de ActiveX, tal el "DsoFile sample" para leer y escribir las propiedades más comunes que se utilizan en los documentos compuestos OLE. Esto aplica especialmente a los que utilizan aplicaciones de Microsoft Office.

Utilizar el componente DsoFile desde su aplicación personalizada

El archivo de ejemplo Dsofile.dll lee y escribe tanto a las propiedades estándar como a las propiedades personalizadas de cualquier archivo "Almacenamiento estructurado OLE". Esto incluye, pero no está limitado al siguiente:
  • Documentos de Word
  • Libros de Excel
  • Presentaciones de PowerPoint
Porque del tamaño y la velocidad del archivo de ejemplo Dsofile.dll, el archivo DLL puede ser mucho más eficaz que intentar automatizar Office para leer las propiedades del documento.

Para utilizar el componente, establezca una referencia a la biblioteca de tipo de Dsofile se denomina "DSO OLE documento propiedades lector 2.1." El componente puede utilizarse para las llamadas en tiempo de ejecución y las llamadas enlazadas anticipadas. el archivo de ejemplo de Dsofile.dll tiene sólo un objeto que se puede crear. Ese objeto se denomina DSOFile.OleDocumentProperties . El objeto DSOFile.OleDocumentProperties proporciona acceso a las propiedades de documento OLE de un archivo que carga mediante el método Open . Todas las propiedades se lea en y en caché en Abrir. Todas las propiedades, a continuación, están disponibles mediante el objeto OleDocumentProperties para su edición. Las propiedades sólo se escriben volver al archivo cuando se llama a Guardar . Cuando haya terminado de editar un archivo llamada Close para liberar el archivo bloquear.

Las propiedades OLE estándar y las propiedades estándar de resumen de Office pueden obtenerse de la propiedad SummaryProperties . Propiedades personalizadas se muestran en la colección CustomProperties . Cada propiedad personalizada tiene un nombre único. Cada propiedad personalizada es accesible en la colección con ese nombre. Puede agregar o quitar propiedades individuales. Además, puede enumerar toda la colección mediante la sintaxis "For Each" en Visual Basic. NET.

Cuando se llama el método Open , el objeto OleDocumentProperties que se denomina Dsofile intenta abrir el documento de acceso de lectura y escritura. Si el archivo se ha marcado de sólo lectura o si los archivos se encuentran en un recurso compartido NTFS que sólo proporciona acceso de lectura, la llamada puede fallar. Es posible que reciba un mensaje de error parecido al siguiente:
Error 70: Permiso denegado
Si desea abrir el archivo para acceso de lectura sólo pasa true para el parámetro ReadOnly en el método Open . Además, puede pasar el indicador dsoOptionOpenReadOnlyIfNoWriteAccess si desea Dsofile intente abrir el archivo para editarlo. Sin embargo, si Dsofile no puede obtener acceso porque archivo es de sólo lectura o está bloqueado por otro proceso, abrir una copia de sólo lectura. A continuación, puede comprobar si el documento se abre de sólo lectura mediante la propiedad IsReadOnly .

Una vez que una propiedad se ha cambiado o modificado, puede utilizar la propiedad IsDirty para comprobar si tiene el conjunto de propiedades que se va a guardar. No se escriben los cambios realizados en el archivo hasta que se llama Guardar . Si no se llama a Guardar , se perderán los cambios en Cerrar .

Además los mensajes de error estándar de automatización, Dsofile puede devolver uno de los siguientes mensajes de error personalizado cuando algo va mal:
Error-2147217151 (& H80041101): Se debe abrir un documento para realizar la acción solicitada.
Error-2147217150 (& H80041102): Debe cerrar el documento actual antes de abrir uno nuevo en el mismo objeto.
Error-2147217149 (& H80041103): El documento está en uso por otro programa y no se puede abrir para acceso de lectura y escritura.
Error-2147217148 (& H80041104): El documento no es un archivo OLE y no admite propiedades de documento extendido.
Error-2147217147 (& H80041105): El comando no está disponible porque se abrió el documento en modo de sólo lectura.
Error-2147217146 (& H80041106): El comando está disponible para sólo los archivos de almacenamiento estructurado OLE.
Error-2147217145 (& H80041107): El objeto no está conectado al documento (se ha quitado o se cierra el documento).
Error-2147217144 (& H80041108): No se puede tener acceso a propiedad porque no existe el conjunto que pertenece.
Error-2147217143 (& H80041109): La propiedad solicitada no existe en la colección.
Error-2147217142 (& H8004110A): Elemento con ese nombre ya existe en la colección.

Conjuntos de propiedades de Unicode

Conjuntos de propiedades OLE pueden almacenar cadenas en formato Unicode o en formato de cadena de caracteres de Multi-Byte (MBCS) con una página de códigos especificada. Dsofile puede leer y escribir en cualquier tipo de conjunto de propiedades. De forma predeterminada, Dsofile selecciona Unicode cuando Dsofile crea nuevos conjuntos, como al agregar propiedades a un archivo que no tiene ninguno. Si desea Dsofile para crear el conjunto utilizando formato MBCS para las cadenas, se puede pasar el indicador dsoOptionUseMBCStringsForNewSets en el método Open .

Dado que conjuntos de propiedades existentes pueden utilizar el formato MBCS, Dsofile tiene que almacenar cadenas en el mismo formato durante una operación de guardar. Si intenta agregar una cadena que no puede asignar a la página de códigos para el conjunto de propiedades, puede fallar la operación. Por lo tanto, limitar las cadenas de caracteres que sabe que existe en la página de códigos del sistema realizados por el archivo. Opcionalmente, asegúrese de que todos los conjuntos de propiedades están en formato Unicode antes de modificar las propiedades.

Nota Dsofile no convierte una propiedad MBCS existente que se establece en Unicode. Tendrá que modificar el ejemplo, si desea agregar esta capacidad.

Pasos para configurar y probar el archivo DLL

La instalación autoextraíble instala y registra el componente DsoFile.dll en una ubicación que desee. La instalación autoextraíble también instala dos aplicaciones de prueba de Visual Basic .NET que demuestran cómo utilizar el componente y todo el código fuente.

Si la DLL se mueve a otra ubicación o a otro equipo, deberá volver a registrar la DLL antes de poder utilizar nuevo. Para ello, escriba regsvr32 [filepath]\dsofile.dll en el cuadro de diálogo Ejecutar en el menú Inicio .

Para ejecutar el ejemplo, siga estos pasos:

Para una demostración de 6.0 Basic Visual

  1. Abra el proyecto de ejemplo de Visual Basic 6.0 que se denominados como sigue:

    .\Source\Vb6Demo\PropDemo.vbp
  2. Asegúrese de que Dsofile.dll ha hecho referencia correctamente a. Para ello, seleccione referencias en el menú proyecto . Compruebe si está establecida una referencia para DSO OLE documento propiedades lector 2.1 .
  3. Presione F5 para ejecutar el proyecto.
  4. Cuando se le pida para abrir un archivo de documento compuesto, seleccione un archivo apropiado y observe que aparecen sus propiedades de documento.

Para Visual Basic 2003 (7.1) o para una demostración de Visual Basic 2005 (8.0)

  1. Abra el proyecto 7.1 de Visual Basic que se denomina como sigue:

    .\Source\Vb7Demo\FilePropDemoVB7.sln

    Puede abrir este proyecto en cualquier 7.1 de Visual Basic en Visual Studio .NET 2003 o en Visual Basic 8.0 en Visual Studio 2005.
  2. Si se le pida para convertir automáticamente la solución en formato 8.0, haga clic en y siga el Asistente para convertir el proyecto.
  3. Presione F5 para compilar y ejecutar el proyecto de Visual Basic.
  4. Cuando aparezca el formulario, haga clic en Abrir .
  5. Seleccione un archivo de Office adecuado y haga clic en Aceptar .

    Observe que las propiedades de documento del archivo de Office aparecen en el cuadro de diálogo. Puede editar las propiedades del documento.

Referencias

Se ha actualizado el componente Dsofile.dll para leer y editar propiedades de documento para archivos de Microsoft Office 2007 si también instala el paquete de compatibilidad de Office 2007. Para descargar e instalar el paquete de compatibilidad, visite el siguiente sitio Web de Microsoft:
http://www.microsoft.com/downloads/details.aspx?FamilyID=941b3470-3ae9-4aee-8f43-c6bb74cd1466
Para obtener información adicional acerca de cómo leer las propiedades del documento de Visual C++, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
186898Cómo leer las propiedades de documento compuesto directamente con VC ++

Propiedades

Id. de artículo: 224351 - Última revisión: miércoles, 13 de junio de 2007 - Versión: 9.3
La información de este artículo se refiere 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
  • 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
Palabras clave: 
kbmt kbdownload kbautomation kbfile kbinfo kbpersistst KB224351 KbMtes
Traducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 224351

Enviar comentarios

 

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