OLE et le GreffeOLE et le GreffeWow, maintenant nous sommes de retour dans le Registre. Ce qui représente beaucoup de choses à couvrir, juste pour obtenir un handle de la bases de l'OLE. Comme je l'ai mentionné, OLE travaille beaucoup avec le Registre. Quand une application s'enregistre lui-même avec OLE en tant que serveur d'applications potentielles, ce processus d'inscription consiste à ajouter un nombre d'entrées dans le Registre. Pour les applications OLE, tels que les contrôles ActiveX, ces entrées sont relativement simples et faciles à suivre. Des applications plus complexes prennent OLE Microsoft Word comme un exemple-ont des centaines d'entrées dans le registre et sont généralement difficiles à comprendre. Regardons un contrôle OLE simple, le contrôle ActiveX appelé Contrôle Calendrier 10.0, qui est une application disponible auprès de Microsoft ( dans le cadre d'Office XP) qui permet aux utilisateurs d'insérer un calendrier dans leur document. Oui, Contrôle Calendrier 10.0 est intégrable dans un document Word (vous pouvez aussi l'incorporer dans de nombreux autres types de documents). Cet usage, qui est typique, est très utile de penser combien de fois vous avez eu besoin d'inclure un calendrier dans un document. Consultez la figure 6.4 pour voir Word et Contrôle Calendrier 10.0 travailler ensemble. Dans le document que j'ai utilisé pour cette figure, j'ai effectivement utilisé la date à laquelle j'ai écrit ce tutoriel. Taille et placement ...
Contrôle Calendrier 10.0 permet de redimensionnement facile. Toutefois, certaines versions de contrôles ActiveX ne fonctionnent pas aussi bien lorsqu'il est incorporé dans Word. Ils mai créer une fenêtre sous-jacente qui rend le calibrage fenêtre principale du contrôle difficile. De ce fait, le contrôle incorporé tend à redimensionner son écran de façon inattendue. Ce n'est pas un comportement acceptable, je pourrais ajouter. Si vous incorporez un objet qui est difficile à redimensionner, essayez ceci: d'abord redimensionner le contrôle fautif pour le rendre plus petits, puis rapidement, avant que Word pouvez la redimensionner, cliquez sur la fenêtre de base sous-jacente. Cela verrouille la fenêtre de base de sorte que vous pouvez redimensionner la fenêtre du contrôle selon le cas. Un simple double-cliquez n'importe où dans la fenêtre de base restaure l'affichage normal. Microsoft Contrôle Calendrier 10.0 permet beaucoup d'interaction avec d'autres documents et applications, vous pouvez définir le mois et l'année que désiré en utilisant les listes déroulantes liste. Néanmoins, pourquoi Souhaitez-vous, utilisateur, veulent d'autres interactions? Simple! Un exemple classique consiste à incorporer contrôle Calendrier dans une page Web, un document dont l'application est le navigateur Web. Un autre exemple est d'intégrer contrôle Calendar dans un message e-mail. Ding! La lumière n'a pas sonné? E-mail tout le monde dans votre équipe et d'inclure dans le message que les détails d'une réunion virtuelle avec le calendrier indiquant la date appropriée. Vous pouvez modifier les propriétés des objets incorporés. Il ya généralement deux façons de définir les propriétés de l'objet. La première consiste à utiliser l'interface de programmation (geek-voir Figure 6.5). Vous pouvez également utiliser l'objet boîte de dialogue Propriétés de l'objet (voir Figure 6.6). L'interface de programmation permet d'accéder à toutes les propriétés du possible, tandis que la boîte de dialogue Propriétés de l'objet permet la modification rapide et simple des propriétés des objets sélectionnés. Donc, nous avons un Microsoft Contrôle Calendrier 10.0 application serveur OLE mis en œuvre en tant que contrôle ActiveX. Regardons les entrées de registre pour Calendar Control. Premières Voici les entrées dans HKEY_LOCAL_MACHINE \ Software \ Classes \ CLSID. Ces entrées définissent en grande partie l'interface OLE: (8E27C92B-1264-101C-8A2F-040224009C02)] @ = "Contrôle Calendrier 10.0" Les lignes ci-dessus sont la ruche (HKEY_LOCAL_MACHINE), clé (logiciels), et sous-clés (Classes \ CLSID), suivie par toutes les valeurs que ces clés pourrait contenir. Une valeur sous la forme de @ = données désigne l'entrée de la valeur par défaut dans toutes les clés de registre et sous-clé. Remarque: Le CLSID Windows XP est identique sous Windows NT 2000 CLSID. Surpris? Ne soyez pas, comme le CLSID provient de l'application, pas le système d'exploitation. En outre, Contrôle Calendrier 10.0 a probablement le même CLSID Contrôle Calendrier 9.0. La sous-clé premier contient le CLSID du Contrôle Calendrier 10.0 serveur. Ce CLSID se trouve être 8E27C92B-1264-101C-8A2F-040224009C02, bien que d'autres versions de contrôle Calendar (si elles ont été sensiblement différents) pourraient avoir CLSID différent. Les données par défaut variable contient une chaîne décrivant le programme. Notez que cette chaîne se trouve également dans la deuxième section du registre, HKEY_LOCAL_MACHINE \ SOFTWARE \ Classes \ MSCAL.Calendar.7, décrit plus loin. (8E27C92B-1264-101C-8A2F-040224009C02) \ CLSID @ = "8E27C92B-1264-101C-8A2F-040224009C02" Windows utilise la sous-clé AuxUserType pour faire court, les personnes-noms lisibles pour l'application. Menus, réguliers et pop-up, utilisent ces noms courts. Microsoft recommande que les noms dans AuxUserType être limitée à un maximum de 15 caractères. L'entrée, InprocHandler32, raconte ce qui, dans le système de gestionnaire de processus sera utilisé. (8E27C92B-1264-101C-8A2F-040224009C02) \ InprocServer32 @ = "C: \ Program Files \ Microsoft Office \ Office10 \ MSCAL.OCX" De nombreuses applications utilisent InprocServer.dll que leurs en-gestionnaire processus, bien que ce n'est pas une exigence. Un autre couramment utilisé dans gestionnaire de processus est Mapi32.dll, qui est utilisé par la poste a permis de nombreux objets: Conçu pour une utilisation avec Windows XP, l'entrée insérable indique au système que l'application est répertoriée dans la liste Insérer du nouvel objet Insérer boîte de dialogue: (8E27C92B-1264-101C-8A2F-040224009C02) \ insérable @ = "" L'entrée suivante contient l'application de chemin d'accès complet et nom de fichier exécutable. Cette chaîne n'est pas un REG_EXPAND_SZ, donc n'utilisez pas de variables de substitution: (8E27C92B-1264-101C-8A2F-040224009C02) \ MiscStatus @ = "131473" Remarque: Dans MiscStatus, mélanger à l'aide des valeurs binaires ou plus au niveau du bit, la meilleure façon de faire une opération de bits est d'ajouter simplement les valeurs. Par exemple, une application avec les drapeaux: «L'objet définit le site du client d'abord» (131072), "Activer objet quand il est visible" (256) «L'objet est a l'envers" (128) «L'objet ne peut pas lier l'intérieur »(16), et« Quand le redimensionnement, l'objet est recomposé »(1) serait de stocker une valeur de (131072 + 256 + 128 + 16 + 1) = 131473 en MiscStatus, ce qui est exactement la valeur qui est dans notre calendrier MiscStatus objet de contrôle. Dans certaines entrées, la sous-clé imprimable désigne un objet OLE qui soutiendra la méthode IPrint (Imprimer ne se trouve pas dans tous les objets, seulement ceux qui sont imprimables en utilisant la méthode IPrint): (8E27C92B-1264-101C-8A2F-040224009C02) \ imprimable @ = "" Pour un objet qui mai inséré, il faut lui associer un ProgID valeur (ProgID est un raccourci pour «identifiant programmatiques»). Cette valeur se compose d'un nom court, un type et une valeur numérique (la valeur numérique est souvent un numéro de version): (8E27C92B-1264-101C-8A2F-040224009C02) \ ProgID @ = "MSCAL.Calendar.7" Une section du Registre est créée avec ce nom (voir l'entrée suivante), où plusieurs valeurs de Registre seront stockées pour cet article: (8E27C92B-1264-101C-8A2F-040224009C02) \ verb @ = "" Verbes indiquer les modes d'action que l'objet mai prendre. Toujours numérotées consécutivement dans le registre, il ya trois composantes à des entrées verbe, comme illustré ici: (8E27C92B-1264-101C-8A2F-040224009C02) \ verb \ 0 @ = "& Edit, 0,2" Ce verbe échantillon, Edition, montre trois choses. Premièrement, le texte utilisé dans le menu, & Edit. Le & indique que la lettre qui suit, il sera souligné et utilisée comme une valeur hotkey. Il existe une deuxième section du Registre pour le Contrôle Calendrier 10.0 objet OLE. Cette section, dans HKEY_LOCAL_MACHINE \ Software \ Classes, est appelé MSCAL.Calendar.7. Dans la sous-clé MSCAL.Calendar, il existe deux entrées de valeur possible. On trouvera ci-dessous: [HKEY_LOCAL_MACHINE \ SOFTWARE \ Classes \ MSCAL.Calendar] @ = "Contrôle Calendrier 10.0" L'entrée première valeur est la valeur par défaut (@ =) qui contient le nom ( "Contrôle Calendrier 10.0") utilisée dans la liste insert de l'objet boîte de dialogue Insertion. Une deuxième valeur que certains objets mai utilisation est EditFlags, qui contient le modifier drapeaux, exprimée en valeur hexadécimale. CLSID La sous-clé contient le CLSID de l'objet: [HKEY_LOCAL_MACHINE \ SOFTWARE \ Classes \ MSCAL.Calendar \ CLSID] @ = "(8E27C92B-1264-101C-8A2F-040224009C02)" Lorsqu'ils sont présents, la sous-clé suivante (qui fonctionne avec la technologie Microsoft DocObject OLE) mai contenir des informations sur les fonctionnalités de l'objet OLE: [HKEY_LOCAL_MACHINE \ SOFTWARE \ Classes \ MSCAL.Calendar.7 \ DocObject] @ = "0" Conçu pour une utilisation dans Windows 2000 et Windows XP, l'entrée suivante indique au système que la demande doit être répertorié dans la liste Insérer de la boîte de dialogue Insérer un objet à neuf: [HKEY_LOCAL_MACHINE \ SOFTWARE \ Classes \ MSCAL.Calendar \ insérable] @ = "" La sous-clé est un protocole utilisé pour la compatibilité avec OLE 1 conteneur (client) Applications: [HKEY_LOCAL_MACHINE \ SOFTWARE \ Classes \ MSCAL.Calendar \ protocol] @ = "" Il ya une sous-clé dans le protocole, appelé StdFileEditing. Au sein StdFileEditing, il existe un certain nombre d'éléments, comme illustré ici: [HKEY_LOCAL_MACHINE \ SOFTWARE \ Classes \ Word.Document.6 \ protocol \ StdFileEditin g] @ = "" L'entrée par défaut dans StdFileEditing est une chaîne vide. [HKEY_LOCAL_MACHINE \ SOFTWARE \ Classes \ Word.Document.6 \ protocol \ StdFileEditin g \ server] @ = "C: \ \ PROGRA ~ 1 \ \ MICROS ~ 2 \ \ winword.exe" La sous-clé StdFileEditing première est la sous-clé serveur. À l'intérieur du serveur par défaut est la chaîne contenant le nom pleinement qualifié du serveur de fichier exécutable. (Le contrôle Calendar ne possède pas cette entrée, alors je l'ai montré l'entrée pour Word.) Parce que cette chaîne est REG_SZ, n'utilisez pas de variables de substitution, tels que% SystemRoot%, en elle. [HKEY_LOCAL_MACHINE \ SOFTWARE \ Classes \ MSCAL.Calendar \ protocol \ StdFileEditing \ verb] @ = "" La sous-clé suivante dans StdFileEditing est verbe. Inside verbe ya un ou plusieurs sous-clés numérotées, les numéros commençant par 0 et doivent être consécutives. Chaque verbe que l'application OLE utilise dans un menu sera inclus, comme illustré ici: [HKEY_LOCAL_MACHINE \ SOFTWARE \ Classes \ MSCAL.Calendar \ protocol \ StdFileEditing \ verb \ 0] @ = "& Editer" Ce verbe est la sélection du menu Edition. Le texte utilisé dans le menu est & Edit. Le & indique que la lettre qui suit, il sera souligné et utilisée comme une valeur hotkey. Enfin, une version indépendante de ProgID est créé. Même lorsque le contrôle est mis à jour, cet article ne changera pas: HKEY_LOCAL_MACHINE \ SOFTWARE \ Classes \ CLSID \ (8E27C92B-1264-101C-8A2F-040224009C02) \ VersionIndependentProgID @ = "MSCAL.Calendar" Comme ProgID, cette identifie le programme, sans aucune référence de version. un article présenté par Mathenes Dessue Disclaimer:Notre site n'est pas responsable du contenu de cet article. Webarticles est une ressource d'information gratuite. Important: Cet article «OLE et le Registre" a été traduit par un logiciel automatique. Nous nous sentons désolés pour les fautes d'orthographe que mai ont eu lieu. Nous vous remercions de votre compréhension.
|
|||||
| Online: 242 users browsing the articles directory |
|
|