C++ builder OLE et Word

Résolu
BernieNoel68 Messages postés 92 Date d'inscription vendredi 12 octobre 2007 Statut Membre Dernière intervention 20 novembre 2009 - 2 nov. 2007 à 15:26
BernieNoel68 Messages postés 92 Date d'inscription vendredi 12 octobre 2007 Statut Membre Dernière intervention 20 novembre 2009 - 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

1 réponse

BernieNoel68 Messages postés 92 Date d'inscription vendredi 12 octobre 2007 Statut Membre Dernière intervention 20 novembre 2009 1
2 nov. 2007 à 16:16
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...
3
Rejoignez-nous