Bonjour, je développe actuellement un addon Outlook et je suis bloqué sur la partie transfert de Variable de ma DLL Delphi2010 vers mon addon VB.net.
Ma DLL me retourne un pointeur de type PWideChar.

Mon addon est censé récupérer le string pointé par ce PWideChar. Seul problème, après plusieurs jour de recherche, je ne trouve pas la bonne solution à adopter pour faire fonctionner ce complément qui fonctionne sous XP mais pas sous Seven... La seul erreur que j'ai est : "Outlook ne répond pas" et plante.

Voici le code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
 
Imports Outlook = Microsoft.Office.Interop.Outlook
Imports Microsoft.Office.Core
 
<Runtime.InteropServices.ComVisible(True)> _
Public Class Ribbon
    Implements Office.IRibbonExtensibility
    'permet l'utilisation de la dll
    Declare Function AjoutMail Lib "DLMDLL.dll" Alias "Ajouter_une_piece_jointe_a_un_mail" () As String
 
    'déclaration du ruban pour surcharger le principal
    Private ribbon As Office.IRibbonUI
    Dim MailItem As Outlook.MailItem
 
    Public Sub New()
    End Sub
 
    'fonction qui permet d'intérargir avec le ruban d'outlook 2010
    Public Function GetCustomUI(ByVal ribbonID As String) As String Implements Office.IRibbonExtensibility.GetCustomUI
        Return GetResourceText("DLMOutlookAddIn2010.Ribbon.xml")
    End Function
 
    'fonction appelée au click sur le bouton pièce jointe
    Public Sub Attach(ByVal control As IRibbonControl, ByRef cancelDefault As Boolean)
        'permet de récupérer l'objet email que l'utilisateur vient de créer
        MailItem = TryCast(ThisAddIn.outApp.ActiveInspector().CurrentItem, Outlook.MailItem)
        Dim temp As String
        Dim count As Integer
 
        'lance la fonction qui apple dlm
        temp = AjoutMail()
 
        'si renvoie pas -1
        If temp <> "-1" Then
 
            'click passe à True pour dire que le bouton a bien été clické
            ThisAddIn.click = True
            'Mise en pièce jointes du html
 
            MailItem.Attachments.Add(temp)
            'sinon
        Else
            'on compte le nb de pièce jointe
            count = MailItem.Attachments.Count
            MsgBox("annulation de l'envoie de pièce jointe")
            'on supprime la dernière ajouté
            MailItem.Attachments.Remove(count)
        End If
        'permet de ne pas lancer la fenêtre de recherche de fichiers par défault (outlook)
        cancelDefault = True
    End Sub
 
End Class
Merci de vos réponses