[Win32/OLE] Acceder a une variable complexe (array) avec Win32::OLE ?

Acceder a une variable complexe (array) avec Win32::OLE ? [Win32/OLE] - Perl - Programmation

Marsh Posté le 05-12-2002 à 16:32:10    

Voila , j'essaie d'acceder a un tableau de valeur pour automatiser via Perl certaines taches Outlook.  
Les dernieres version de ce dernier etant protegees contre l'usage externe j'utilise donc Outlook Redemption (http://www.dimastr.com/redemption/).  
 
Et je rencontre quelques problemes lors de l'acces au champs "Fields" (un array selon la doc de Redemption) :
 

Citation :


Fields(PropTag) array property
 
Returns any Extended MAPI property available on the item. PropTag - integer. Returns a variant of type determined by the property kind (integer, string, etc). To see what properties are available on the item, use OutlookSpy. For more information on Extended MAPI properties see Miscellaneous Redemption objects. See also example below


 
Donc pour faire simple, pour acceder a un scalair ou un property on fait comme ça $object->{name} = $val, mais comment fait-on dans le cas où "name" est un tableau ?? J'ai essaye toute sorte de syntaxe possible mais rien ne marche...
 
:jap:

Reply

Marsh Posté le 05-12-2002 à 16:32:10   

Reply

Marsh Posté le 05-12-2002 à 21:31:18    

Pas d'amateur de Perl/Win32 apparemment...
:bounce:

Reply

Marsh Posté le 06-12-2002 à 09:00:12    

Trracer a écrit :

Donc pour faire simple, pour acceder a un scalair ou un property on fait comme ça $object->{name} = $val, mais comment fait-on dans le cas où "name" est un tableau ?? J'ai essaye toute sorte de syntaxe possible mais rien ne marche...


 
Bon, j'suis po réveillé, j'ai po encore pris mes 37 cafés matinaux, aussi la réponse va sans doute être hors sujet et/ou nulle à chier mais as-tu essayé ceci ?
 

Code :
  1. @{$object->{name}} = @val;


---------------
Samsung Galaxy S1 -> Samsung Galaxy S2 -> Samsung Note 2 -> Huawei Ascend Mate 7 -> ZTE Axon 7 -> OnePlus 6T -> Oppo Find X2 PRO -> Google Pixel 9 PRO XL
Reply

Marsh Posté le 06-12-2002 à 10:13:30    

Merci de m'avoir epargner le bide total et complet :jap: ;)
 
En fait je ne veux pas assigner un tableau dans sa totalite, mais juste modifier une valeur au sein de ce tableau.  
 
Par exemple l'element '0x3707001E' contient normalement le nom long du fichier attache d'un mail. Je voudrais pouvoir le modifier, mais je ne n'arrive pas a acceder au tableau.
 

Code :
  1. $AttachItem->{Fields[0x3707001E]} = ...


Ne fonctionne pas. Il me donne ce genre de message ou simplement ne revient pas de l'appel a la DLL et plante le process...
 

Code :
  1. Win32::OLE(0.1502) error 0x8002000e: "Nombre de paramÞtres non valide"
  2.     in METHOD/PROPERTYGET "Fields" at mail-connect.inc.pl line 244
  3. Win32::OLE(0.1502) error 0x8002000e: "Nombre de paramÞtres non valide"
  4.     in PROPERTYPUT "Fields" at mail-connect.inc.pl line 244
  5. Use of uninitialized value in print at mail-connect.inc.pl line 244.


 
 
En VB, il font comme cela :  

Code :
  1. set Attach = sItem.Attachments.Add("c:\temp\test.jpg" )
  2. 'content type
  3. Attach.Fields(&H370E001E) = "image/jpeg"


 
Mais je reste bloque sur cette histoire de tableau non accessible :/


Message édité par Trracer le 06-12-2002 à 10:13:58
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed