2010-05-24 11 views
1

Je souhaite appeler une DLL ActiveX ou un objet OLE2 à partir d'ABAP.Comment puis-je savoir si une application prend en charge OLE2 et quelles méthodes et attributs sont exposés?

Je connais déjà la syntaxe de comment instancier l'objet & exécuter les méthodes:

data: my_object type ole2_object. 

create object my_object <ole2object>. 

call method of my_object <objectmethod>. 

Mais étant donné une application particulière, comment puis-je savoir si cela est pris en charge, quelles sont les valeurs/noms de ole2object et objectmethod est? Transaction SOLE fournit une table d'applications OLE, parmi lesquelles Excel.Application que je sais peut être instancié en tant qu'objet OLE, il semble donc que vous devez d'abord ajouter l'application OLE2 à cette table, mais encore là où Puis-je lire les données comme CLSID & LibType de - est-il publié dans le cadre de l'application?

Répondre

1

Dans ce cas, vous utilisez simplement OLE2 pour accéder à une interface COM. Si vous êtes dans l'accès aux applications Office, vous pouvez jeter un oeil à KB222101. Pour les autres applications et bibliothèques, vous aurez besoin de la documentation API, quelques exemples appropriés (pas nécessairement dans ABAP, VB fera très bien). Oh, et il y a un outil appelé OLE/COM Object Explorer par MiTeC qui peut être downloaded for free from their website et

Oh! Je ne l'ai pas utilisé moi-même, mais il semble que cela pourrait être utile.

+0

Salut vwegert, merci pour votre réponse. Attention si j'utilise le bâton pointu sur les drones de sécurité qui croient que les développeurs ne peuvent pas avoir confiance pour avoir des droits d'administrateur local sur leur PC de travail? – Esti

+0

@Esti: Allez-y - et n'oubliez pas d'utiliser l'extrémité arrondie du manche pour battre les développeurs qui perdent connaissance et qui écrivent des applications qui nécessitent des droits d'administrateur sur le PC local pour fonctionner ... – vwegert

+0

A accepté cette réponse pour la référence au navigateur OLE/COM de MiTeC, cela a été l'outil le plus utile jusqu'à présent. J'ai déjà essayé le navigateur OLE/COM de Microsoft, mais il était buggé sur les nouvelles versions de Windows. – Esti

2

Les objets proviennent de la table TOLE. Leurs méthodes et leurs propriétés sont stockées dans la table OLELOAD.

J'ai trouvé il y a quelques temps certains documents (this one et this one) qui contenaient des indications sur la façon de trouver les propriétés et les méthodes.

Les indications sur le CLSID sont succint, mais il semble que ce soit la valeur dans le registre avec HKEY_CLASS_ROOt/CLSID qui va avec l'application indiquée (ie VISIO.APPLICATION par exemple). Si vous recherchez cette valeur d'application avec regedit, vous trouverez le CLSID correspondant.

espère qu'il aide
Guillaume

+0

Merci pour votre réponse PATRY – Esti