Les fichiers Dsofile.dll vous permettent de modifier les propriétés d’un document Office lorsque vous n’avez pas installé Office.

Notes

Office 365 ProPlus est renommé Applications Microsoft 365 pour les entreprises. Pour plus d’informations sur ce changement, lisez ce billet de blog.

Résumé

Le fichier d’exemple de Dsofile.dll est un composant ActiveX in-process destiné aux programmeurs qui utilisent Microsoft Visual Basic .NET ou Microsoft .NET Framework. Vous pouvez l’utiliser dans vos applications personnalisées pour lire et modifier les propriétés de document OLE associées à des fichiers Microsoft Office, telles que les suivantes :

  • Classeurs Microsoft Excel
  • Présentations Microsoft PowerPoint
  • Documents Microsoft Word
  • Projets Microsoft Project
  • Dessins Microsoft Visio
  • Autres fichiers enregistrés au format de stockage structuré OLE

L’exemple de fichier 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é OLE. Le composant convertit les données en types de données conviviaux Automation pour une utilisation plus facile par les langages de programmation de haut niveau tels que Visual Basic 6,0, Visual Basic .NET et C#. Le fichier d’exemple de Dsofile.dll est fourni avec le code source complet et inclut des exemples de clients écrits en Visual Basic 6,0 et Visual Basic .NET 2003 (7,1).

Informations supplémentaires

Télécharger un exemple de composant ActiveX

Les fichiers suivants peuvent être téléchargés à partir du centre de téléchargement Microsoft :

Télécharger le package de DsoFileSetup_KB224351_x86.exe maintenant.

Vous disposez d’un droit libre de redevance pour utiliser, modifier, reproduire et distribuer le Dsofile.dll exemple de composant de fichier et les fichiers de code source C++ de quelque façon que ce soit. Cela est assuré que vous acceptez que Microsoft n’offre aucune garantie, aucune obligation et aucune responsabilité pour leur utilisation ou pour les informations fournies dans. Le composant et le code source sont fournis gratuitement à des fins d’éducation uniquement et sont considérés comme des exemples. Si vous souhaitez utiliser le composant, ou une 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 vous-même.

Avertissement

Le Dsofile.dll, le code source et les échantillons associés sont fournis « en l’État » sans garantie d’aucune sorte, expresse ou implicite, y compris mais sans s’y limiter, les garanties implicites de qualité marchande et/ou d’adéquation à un usage particulier. Utilisez à vos propres risques.

Note Pour lire et modifier des documents Office 2007 à l’aide de cet exemple, vous devez installer le Pack de compatibilité Office 2007. Pour plus d’informations, reportez-vous à la section « ressources ».

Informations sur les propriétés de document OLE

Chaque document composé OLE peut stocker des informations supplémentaires sur le document dans des jeux de propriétés persistantes. Ces éléments sont appelés « propriétés récapitulatives 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 responsable du fichier.

Pour aider les développeurs qui souhaitent lire les propriétés de document, nous avons fourni les deux interfaces suivantes pour gérer les jeux de propriétés :

  • IPropertySetStorage
  • IPropertyStorage

Toutefois, certains langages de programmation de niveau supérieur peuvent avoir des difficultés à utiliser ces interfaces car les interfaces ne sont pas compatibles avec Automation. Pour résoudre ce problème, les développeurs peuvent utiliser une DLL ActiveX (par exemple, « DsoFile Sample ») pour lire et écrire les propriétés les plus courantes utilisées dans des documents composés OLE. Cela s’applique en particulier à ceux utilisés par les applications Microsoft Office.

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

Le fichier d’exemple de Dsofile.dll lit et écrit les propriétés standard et personnalisées à partir de n’importe quel fichier « OLE Structured Storage ». Cela inclut, sans s’y limiter, les éléments suivants :

  • Documents Word
  • Classeurs Excel
  • Présentations PowerPoint

En raison de la taille et de la vitesse du fichier d’exemple de Dsofile.dll, la DLL peut être bien plus efficace que d’essayer d’automatiser Office pour lire les propriétés du document.

Pour utiliser le composant, définissez une référence à la bibliothèque de types Dsofile nommée « DSO OLE Document Properties Reader 2,1 ». Le composant peut être utilisé pour les appels tardifs et les appels à liaison anticipée. l’exemple de fichier Dsofile.dll a un seul objet qui peut être créé. Cet objet est nommé DSOFile. OleDocumentProperties. L’objet DSOFile. OleDocumentProperties permet d’accéder aux propriétés de document OLE d’un fichier que vous chargez à l’aide de 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 par le biais de l’objet OleDocumentProperties à des fins de modification. Les propriétés sont réécrites uniquement dans le fichier lorsque vous appelez la propriété Save. Lorsque vous avez fini de modifier 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. De plus, vous pouvez énumérer l’ensemble de la collection à l’aide de la syntaxe « for each » dans Visual Basic .NET.

Lorsque la méthode Open est appelée, l’objet OleDocumentProperties nommé Dsofile tente 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 se trouvent sur un partage NTFS qui fournit uniquement un accès en lecture, l’appel peut échouer. You may receive the following error message:

« Erreur 70 : autorisation refusée »

Si vous souhaitez ouvrir le fichier pour un accès en lecture uniquement, transmettez la valeur true pour le paramètre ReadOnly sur la méthode Open. En outre, vous pouvez transmettre l’indicateur dsoOptionOpenReadOnlyIfNoWriteAccess si vous voulez que dsofile essaie d’ouvrir le fichier pour modification. Toutefois, si Dsofile ne peut pas accéder en lecture seule ou s’il est verrouillé par un autre processus, ouvrez une copie en lecture seule. Ensuite, 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 ou modifiée, vous pouvez utiliser la propriété IsDirty pour vérifier si le jeu de propriétés doit être enregistré. Les modifications apportées ne sont pas écrites dans le fichier tant que l’enregistrement n’est pas effectué. Si vous n’appelez pas l’enregistrement, vos modifications sont perdues lors de la fermeture.

Outre les messages d’erreur Automation Standard, Dsofile peut renvoyer l’un des messages d’erreur personnalisés suivants en cas de problème :

« Erreur-2147217151 (&H80041101) : vous devez ouvrir un document pour effectuer l’action demandée. »

« Erreur-2147217150 (&H80041102) : vous devez fermer le document actif avant d’en ouvrir un nouveau dans le même objet. »

« Erreur-2147217149 (&H80041103) : le document est utilisé par un autre programme et ne peut pas être ouvert pour un accès en lecture et en é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 mode lecture seule. »

"Error-2147217146 (&H80041106) : la commande est disponible uniquement pour les fichiers de stockage structurés 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 de 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 au format 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 des jeux, par exemple lors de l’ajout de propriétés à un fichier qui n’en a aucun. Si vous souhaitez que Dsofile crée le jeu à l’aide du format MBCS pour les chaînes, vous pouvez transmettre l’indicateur dsoOptionUseMBCStringsForNewSets dans la méthode Open.

Étant donné que les jeux de propriétés existants peuvent utiliser le format MBCS, Dsofile doit stocker les chaînes dans le même format pendant un enregistrement. Si vous essayez d’ajouter une chaîne qui ne peut pas être mappée sur 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 que vous identifiez dans la page de code du système qui a créé le fichier. Vous pouvez également vérifier que tous les jeux de propriétés sont au format Unicode avant de modifier ces propriétés.

Note Dsofile ne convertit pas un jeu de propriétés MBCS existant en Unicode. Si vous souhaitez ajouter cette fonctionnalité, vous devez modifier l’exemple.

Étapes de configuration et de test de la DLL

Le programme d’installation auto-extractible installe et inscrit le composant DsoFile.dll à un emplacement de votre choix. Le programme d’installation auto-extractible installe également deux applications de test Visual Basic .NET qui montrent comment utiliser le composant et tout le code source.

Si vous déplacez la DLL vers un autre emplacement ou vers un autre ordinateur, vous devez ré-enregistrer la DLL avant de pouvoir l’utiliser à nouveau. Pour ce faire, tapez regsvr32 [FilePath] \dsofile.dll dans la boîte de dialogue Exécuter dans le menu Démarrer.

Pour exécuter l’exemple, procédez comme suit :

Pour une démonstration Visual Basic 6,0

  1. Ouvrez l’exemple de projet Visual Basic 6,0 nommé comme suit :

    .\Source\Vb6Demo\PropDemo.vbp

  2. Assurez-vous que Dsofile.dll a été correctement référencé. Pour ce faire, sélectionnez références dans le menu projet. Vérifiez si une référence est définie pour les propriétés de document OLE DSO (en anglais) lecteur 2,1.

  3. Appuyez sur F5 pour exécuter le projet.

  4. Lorsque vous êtes invité à ouvrir un fichier de document composé, sélectionnez un fichier approprié et notez que ses propriétés de document apparaissent.

Pour une démonstration Visual Basic 2003 (7,1) ou Visual Basic 2005 (8,0)

  1. Ouvrez le projet Visual Basic 7,1 nommé comme suit :

    .\Source\Vb7Demo\FilePropDemoVB7.sln

    Vous pouvez ouvrir ce projet dans Visual Basic 7,1 dans Visual Studio .NET 2003 ou dans Visual Basic 8,0 dans Visual Studio 2005.

  2. Si vous êtes invité à convertir automatiquement la solution au format 8,0, cliquez sur Oui, puis suivez les instructions de l’Assistant pour convertir le projet.

  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.

    Notez 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 du document.