C++ builder OLE et Word [Résolu]

BernieNoel68 97 Messages postés vendredi 12 octobre 2007Date d'inscription 20 novembre 2009 Dernière intervention - 2 nov. 2007 à 15:26 - Dernière réponse : BernieNoel68 97 Messages postés vendredi 12 octobre 2007Date d'inscription 20 novembre 2009 Dernière intervention
- 2 nov. 2007 à 16:16
Bonjour!

J'ai un problème à l'utilisation de OLE avec C++ Builder.

Je souhaite acceder à des signets sous Word (Office 97) pour y inserer du texte.

J'ai suivi ce très bon tutorial.

Le problème c'est que mon programme n'arrive pas a acceder aux signet qui pourtant existe!

la fonction çi dessous retourne toujours false (alors que le signet existe bien)!
vBookMarks.OleFunction("Exists", "MySignet")

EXEMPLE:

//replissage d'une ListBox avec tout les signet du documents
int iCount;
AnsiString aBookName;
vBookMarks = vWDocument.OlePropertyGet("BookMarks");
iCount = vBookMarks.OlePropertyGet("Count");
for (int i=1; i <= iCount; i++) {
vBookMark = vBookMarks.OleFunction("Item", i);
aBookName = vBookMark.OlePropertyGet("Name");
ListBox1->Items->Add(aBookName);
vBookMark = Unassigned;
}

// [..]

vBookMarks = vWDocument.OlePropertyGet("BookMarks");
if (vBookMarks.OleFunction("Exists", ListBox1->Items->Strings[1])) <= FAUX !! alors que le signet existe!
{
vBookMark = vBookMarks.OleFunction("Item", "signet1");
vBookMark.OleFunction("Select");
}

// [..]

vBookMarks = vWDocument.OlePropertyGet("BookMarks");
if (vBookMarks.OleFunction("Exists", "MySignet")) <= FAUX !! alors que le signet existe!
{
vBookMark = vBookMarks.OleFunction("Item", "signet1");
vBookMark.OleFunction("Select");
}

si vous avez une idée d'où vient le problème, je suis preneur!

Merci d'avance
Afficher la suite 

Votre réponse

1 réponse

BernieNoel68 97 Messages postés vendredi 12 octobre 2007Date d'inscription 20 novembre 2009 Dernière intervention - 2 nov. 2007 à 16:16
+3
Utile
J'ai trouvé!

en faite il y a une petite erreur dans le tutorial!

en faite lorsque l'on fait un
if (vBookMarks.OleFunction("Exists", "MySignet") )

il ne faut pas mettre "MySignet" mais StringToOleStr( "MySignet" ) !

Si jamais ça peut aidé quelqu'un d'autre...
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de BernieNoel68

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.