Dsofile.dll vous permet de modifier les propriétés d'un document Office sans Office dans Visual Basic .NET 2003 et dans Visual Basic .NET 2002

Traductions disponibles Traductions disponibles
Numéro d'article: 224351 - Voir les produits auxquels s'applique cet article
Cet article peut contenir des liens vers des informations en langue anglaise (pas encore traduites).
Agrandir tout | Réduire tout

Sommaire

Résumé

Le fichier d'exemple Dsofile.dll est un composant ActiveX in-process pour les programmeurs qui utilisent Microsoft Visual Basic .NET ou le Microsoft .NET Framework. Vous pouvez l'utiliser dans vos applications personnalisées pour lire et modifier les propriétés de document OLE qui sont associées à des fichiers Microsoft Office, tels que :
  • des classeurs Microsoft Excel
  • des présentations Microsoft PowerPoint
  • des documents Microsoft Word
  • des projets Microsoft Project
  • des dessins Microsoft Visio
  • d'autres fichiers sans les produits Office installés


Le fichier d'exemple Dsofile.dll est écrit en Microsoft Visual C++. Le fichier d'exemple Dsofile.dll montre comment utiliser l'interface OLE32 IPropertyStorage pour accéder aux propriétés étendues des fichiers de stockage structurés OLE. Le composant convertit les données en types de données conviviaux Automation pour une utilisation aisée par Visual Basic .NET et le .NET Framework. Le fichier d'exemple Dsofile.dll est fourni avec l'intégralité du code source et inclut des exemples client écrits en Visual Basic .NET.

Plus d'informations

Télécharger l'exemple de composant ActiveX

Vous pouvez télécharger les fichiers suivants à partir du Centre de téléchargement Microsoft :
Réduire cette imageAgrandir cette image
Télécharger
Télécharger le package DsoFileSetup_KB224351_x86.exe maintenant. (en anglais)
Vous disposez d'un droit non soumis à redevance d'utiliser, modifier, reproduire et distribuer l'exemple de composant Dsofile.dll et les fichiers de code Visual Basic .NET comme vous le souhaitez. À condition que vous acceptiez que Microsoft exclut toute garantie, obligation ou responsabilité relative à leur utilisation ou aux informations fournies. Le composant et le code source sont fournis gratuitement à des fins éducatives uniquement et sont considérés comme des exemples. Si vous souhaitez utiliser le composant, ou toute partie de celui-ci, dans une solution de production, vous êtes responsable de l'examen, de la modification, du test et de la prise en charge du composant lui-même.

Avertissement Le fichier Dsofile.dll et l'exemple de code associé sont fournis « en l'état », sans garantie d'aucune sorte, explicite ou implicite, y compris, de manière non limitative, les garanties implicites de qualité marchande et/ou d'adéquation à un usage particulier. Vous assumez l'ensemble des risques liés leur utilisation.

Informations relatives aux propriétés de document OLE

Chaque document composé OLE peut stocker des informations supplémentaires relatives au document dans des jeux de propriétés persistants. Ceux-ci sont appelés collectivement les « propriétés de résumé du document ». Ces jeux de propriétés sont gérés par « COM/OLE » afin que les clients tiers puissent lire ces informations sans l'aide de l'application principale qui est responsable du fichier.

Pour aider les développeurs qui souhaitent lire ces propriétés de document, nous avons fourni les deux interfaces suivantes pour gérer les jeux de propriétés :
  • IPropertySetStorage
  • IPropertyStorage
Cependant, les programmeurs Visual Basic .NET ne peuvent pas utiliser ces interfaces directement, car elles ne sont pas compatibles Automation. Pour résoudre ce problème, les développeurs Visual Basic .NET peuvent utiliser une DLL ActiveX, tel que « exemple DsoFile » pour lire et écrire les propriétés les plus courantes utilisées dans les documents composés OLE. Cela s'applique en particulier à celles utilisées par Office.

Remarque Le fichier d'exemple Dsofile.dll est écrit spécifiquement pour une utilisation par les programmeurs Visual Basic .NET. Toutefois, le fichier d'exemple Dsofile.dll peut être utilisé avec tout langage prenant en charge COM.

Utiliser le composant DsoFile à partir de votre application personnalisée

Le fichier d'exemple Dsofile.dll lit et écrit à la fois les propriétés standard et les propriétés personnalisées de n'importe quel fichier de « stockage structuré OLE ». Ces fichiers sont notamment les suivants :
  • les documents Word
  • les classeurs Excel
  • les présentations PowerPoint
En raison de la taille et de la rapidité du fichier d'exemple Dsofile.dll, il est beaucoup plus efficace d'utiliser la DLL que d'essayer d'automatiser Office pour lire les propriétés de document.

Pour utiliser ce composant, définissez une référence à la bibliothèque de types Dsofile appelée « DSO OLE Document Properties Reader 2.0 ». Ce composant peut être utilisé à la fois pour des appels de liaison tardive et des appels de liaison anticipée. Le fichier d'exemple Dsofile.dll a un seul objet qui peut être créé. Cet objet s'appelle DSOFile.OleDocumentProperties. L'objet DSOFile.OleDocumentProperties fournit l'accès aux propriétés de document OLE d'un fichier que vous chargez en utilisant la méthode Open. Toutes les propriétés sont lues et mises en cache à l'ouverture. Toutes les propriétés sont ensuite disponibles via l'objet OleDocumentProperties pour modification. Les propriétés sont écrites dans le fichier uniquement lorsque vous appelez Save. Lorsque vous avez fini la modification d'un fichier, appelez Close pour libérer le verrou de fichier.

Les propriétés OLE standard et les propriétés de résumé Office standard peuvent être obtenues à partir de la propriété SummaryProperties. Les propriétés personnalisées sont répertoriées dans la collection CustomProperties. Chaque propriété personnalisée a un nom unique. Chaque propriété personnalisée est accessible dans la collection par ce nom. Vous pouvez ajouter ou supprimer des propriétés individuelles. Vous pouvez également énumérer l'intégralité de la collection en utilisant la syntaxe « For Each » en Visual Basic .NET.

Lorsque la méthode Open est appelée, l'objet OleDocumentProperties qui est nommé Dsofile essaie d'ouvrir le document pour un accès en lecture et en écriture. Si le fichier a été marqué en lecture seule ou si les fichiers sont situés sur un partage NTFS qui fournit uniquement l'accès Lecture, l'appel peut échouer. Le message d'erreur suivant peut s'afficher :
Erreur 70 : Autorisation refusée
Si vous souhaitez ouvrir le fichier pour un accès en lecture seule, passez True pour le paramètre ReadOnly de la méthode Open. Vous pouvez également passer l'indicateur dsoOptionOpenReadOnlyIfNoWriteAccess si vous souhaitez que Dsofile essaie d'ouvrir le fichier pour le modifier. Cependant, si Dsofile n'a pas accès car le fichier est en lecture seule ou est verrouillé par un autre processus, ouvrez une copie en lecture seule. Puis, vous pouvez vérifier si le document est ouvert en lecture seule à l'aide de la propriété IsReadOnly.

Une fois qu'une propriété a été modifiée, vous pouvez utiliser la propriété IsDirty pour vérifier si le jeu de propriétés doit être enregistré. Les modifications qui sont apportées ne sont pas écrites dans le fichier tant que Save n'est pas appelé. Si vous n'appelez pas Save, vos modifications sont perdues à l'appel de Close.

En plus des messages d'erreur Automation standard, Dsofile peut retourner l'un des messages d'erreur personnalisés suivants en cas de problème :
Erreur -2147217151 (&H80041101) : Vous devez ouvrir un document pour exécuter l'action demandée.
Erreur -2147217150 (&H80041102) : Vous devez fermer le document actuel avant d'en ouvrir un nouveau dans le même objet.
Erreur -2147217149 (&H80041103) : Le document est en cours d'utilisation par un autre programme et ne peut pas être ouvert en lecture-écriture.
Erreur -2147217148 (&H80041104) : Le document n'est pas un fichier OLE et ne prend pas en charge les propriétés de document étendues.
Erreur -2147217147 (&H80041105) : La commande n'est pas disponible car le document a été ouvert en lecture seule.
Erreur -2147217146 (&H80041106) : La commande est disponible uniquement pour les fichiers de stockage structuré OLE.
Erreur -2147217145 (&H80041107) : L'objet n'est pas connecté au document (il a été supprimé ou le document a été fermé).
Erreur -2147217144 (&H80041108) : Impossible d'accéder à la propriété car le jeu auquel elle appartient n'existe pas.
Erreur -2147217143 (&H80041109) : La propriété demandée n'existe pas dans la collection.
Erreur -2147217142 (&H8004110A) : Un élément portant ce nom existe déjà dans la collection.

Jeux de propriétés Unicode

Les jeux de propriétés OLE peuvent stocker des chaînes au format Unicode ou MBCS (Multi-Byte Character String) avec une page de codes spécifiée. Dsofile peut lire et écrire dans n'importe quel type de jeu de propriétés. Par défaut, Dsofile sélectionne Unicode lorsque Dsofile crée de nouveaux jeux, par exemple lors de l'ajout de propriétés à un fichier qui n'en a pas. Si vous souhaitez que Dsofile crée le jeu en utilisant le format MBCS pour les chaînes, vous pouvez passer l'indicateur dsoOptionUseMBCStringsForNewSets dans la méthode Open.

Dans la mesure où les jeux de propriétés existants peuvent utiliser le format MBCS, Dsofile doit stocker les chaînes dans ce même format pendant une sauvegarde. Si vous essayez d'ajouter une chaîne qui n'est pas en mesure de trouver une correspondance dans la page de codes pour le jeu de propriétés, l'opération peut échouer. Par conséquent, limitez vos chaînes aux caractères qui existent dans la page de codes du système qui a créé le fichier. Ou bien, assurez-vous que tous les jeux de propriétés sont au format Unicode avant de modifier ces propriétés.

Remarque Dsofile ne convertit pas un jeu de propriétés MBCS existant en Unicode. Vous devez modifier l'exemple si vous souhaitez ajouter cette fonctionnalité.

Étapes pour installer et tester la DLL

Le programme d'installation à extraction automatique installe et enregistre le composant DsoFile.dll dans un emplacement que vous souhaitez. Il installe également deux applications de test Visual Basic .NET qui montrent comment utiliser le composant et le code source.

Si vous déplacez la DLL à un autre emplacement ou sur un autre ordinateur, vous devez réinscrire la DLL avant de pouvoir l'utiliser. Pour ce faire, tapez regsvr32 [filepath]\dsofile.dll dans la boîte de dialogue Exécuter du menu Démarrer.

Pour exécuter le code, procédez comme suit :

Pour une démonstration Visual Basic 6.0

  1. Ouvrez l'exemple de projet Visual Basic 6.0 appelé :

    .\Source\Vb6Demo\PropDemo.vbp
  2. Assurez-vous que Dsofile.dll a été référencé correctement. Pour ce faire, sélectionnez Références dans le menu Projet. Vérifiez si une référence est définie pour DSO OLE Document Properties Reader 2.0.
  3. Appuyez sur F5 pour exécuter le projet.
  4. Lorsque le système vous demande d'ouvrir un document composé, sélectionnez le fichier approprié et remarquez que ses propriétés de document s'affichent.

Pour une démonstration Visual Basic .NET 7.0 ou Visual Basic .NET 7.1

  1. Ouvrez l'exemple de projet Visual Basic 7.0 appelé :

    .\Source\Vb7Demo\FilePropDemoVB7.sln

    Vous pouvez ouvrir ce projet dans Visual Basic 7.0 dans Visual Studio .NET 2002 ou dans Visual Basic 7.1 dans Visual Studio .NET 2003.
  2. Si le système vous demande de convertir automatiquement la solution du format 7.0 en 7.1, cliquez Oui.
  3. Appuyez sur F5 pour compiler et exécuter le projet Visual Basic.
  4. Lorsque le formulaire s'affiche, cliquez sur Ouvrir.
  5. Sélectionnez un fichier Office approprié et cliquez sur OK.

    Remarquez que les propriétés de document du fichier Office s'affichent dans la boîte de dialogue. Vous pouvez modifier les propriétés de document.

Références

Pour plus d'informations sur la façon de lire les propriétés de document dans Visual C++, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft.
186898 Comment faire pour lire directement les propriétés de document composé avec VC++

Propriétés

Numéro d'article: 224351 - Dernière mise à jour: vendredi 23 mars 2007 - Version: 8.2
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft Visual Basic .NET 2003 Initiation
  • Microsoft Visual Basic .NET 2002 Initiation
  • Microsoft Visual Basic 6.0 Édition professionnelle
  • Microsoft Visual Studio 6.0 Enterprise Edition
  • 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
  • Microsoft PowerPoint 2002 Standard
  • Microsoft Word 2002 Standard Edition
  • Microsoft Visio 2002 Professionnel
  • Microsoft Project 2002 Standard
Mots-clés : 
kbdownload kbautomation kbfile kbinfo kbpersistst KB224351
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.

Envoyer des commentaires

 

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