Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

CDO : J'utilise cdosys.dll, mais la classe Person est introuvable

4 réponses
Avatar
Beetlejuice
Bonjour,

Je suis en VB .NET sous visual studio 2005.
Afin de mail-enabler des utilisateurs active directory, je souhaite
implémenter les namespaces CDOEXM et CDO.
Et en particulier, le truc sur lequel je bute, c'est d'avoir accès à la
classe CDO.Person.

Ce que j'ai fait :
Je suis donc allé dans Projet/Ajouter une référence/COM et là j'ai ajouté :

1. "Microsoft CDO for Exchange Management Library" => soit cdoexm.dll, qui
me donne accès au namespace CDOEXM.
=> Jusque là, tout fonctionne parfaitement.

2. J'ajoute "Microsoft CDO for Windows 2000 Library" => cdosys.dll qui me
donne accès au namespace CDO

De retour dans mon code:
Je fais un import des namespaces CDOEXM et CDO.

Et là, c'est le drame : je n'ai pas accès à CDO.Person. Pour lui il y a bien
des classes dans CDO (par exemple CDO.cdoCalendar, CDO.cdoCharset,
CDO.SMTPConnector..., mais pas "CDO.Person"

Est-ce que quelqu'un voit ce qui se passe? (histoire que je comprenne où est
mon erreur)

Est-ce bien cdosys.dll qui me permet en principe d'instancier des classes
CDO.Person?

Merci de votre aide,

Bisous

4 réponses

Avatar
Gilles TOURREAU
Le Fri, 05 Oct 2007 09:54:00 +0200, Beetlejuice
a écrit:

Bonjour,

Je suis en VB .NET sous visual studio 2005.
Afin de mail-enabler des utilisateurs active directory, je souhaite
implémenter les namespaces CDOEXM et CDO.
Et en particulier, le truc sur lequel je bute, c'est d'avoir accès à la
classe CDO.Person.

Ce que j'ai fait :
Je suis donc allé dans Projet/Ajouter une référence/COM et là j'ai
ajouté :

1. "Microsoft CDO for Exchange Management Library" => soit cdoexm.dll,
qui
me donne accès au namespace CDOEXM.
=> Jusque là, tout fonctionne parfaitement.

2. J'ajoute "Microsoft CDO for Windows 2000 Library" => cdosys.dll qui me
donne accès au namespace CDO

De retour dans mon code:
Je fais un import des namespaces CDOEXM et CDO.

Et là, c'est le drame : je n'ai pas accès à CDO.Person. Pour lui il y a
bien
des classes dans CDO (par exemple CDO.cdoCalendar, CDO.cdoCharset,
CDO.SMTPConnector..., mais pas "CDO.Person"

Est-ce que quelqu'un voit ce qui se passe? (histoire que je comprenne où
est
mon erreur)

Est-ce bien cdosys.dll qui me permet en principe d'instancier des classes
CDO.Person?

Merci de votre aide,

Bisous



CDO.Person est présent dans la bibliothèque CDOEX et non CDOEXM...

cf. :
http://msdn2.microsoft.com/en-us/library/aa488386.aspx

Cordialement

--
Gilles TOURREAU


S.A.R.L. P.O.S
Le spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr
Avatar
Beetlejuice
"Gilles TOURREAU" wrote:

Le Fri, 05 Oct 2007 09:54:00 +0200, Beetlejuice
a écrit:

> Bonjour,
>
> Je suis en VB .NET sous visual studio 2005.
> Afin de mail-enabler des utilisateurs active directory, je souhaite
> implémenter les namespaces CDOEXM et CDO.
> Et en particulier, le truc sur lequel je bute, c'est d'avoir accès à la
> classe CDO.Person.
>
> Ce que j'ai fait :
> Je suis donc allé dans Projet/Ajouter une référence/COM et là j'ai
> ajouté :
>
> 1. "Microsoft CDO for Exchange Management Library" => soit cdoexm.dll,
> qui
> me donne accès au namespace CDOEXM.
> => Jusque là, tout fonctionne parfaitement.
>
> 2. J'ajoute "Microsoft CDO for Windows 2000 Library" => cdosys.dll qui me
> donne accès au namespace CDO
>
> De retour dans mon code:
> Je fais un import des namespaces CDOEXM et CDO.
>
> Et là, c'est le drame : je n'ai pas accès à CDO.Person. Pour lui il y a
> bien
> des classes dans CDO (par exemple CDO.cdoCalendar, CDO.cdoCharset,
> CDO.SMTPConnector..., mais pas "CDO.Person"
>
> Est-ce que quelqu'un voit ce qui se passe? (histoire que je comprenne où
> est
> mon erreur)
>
> Est-ce bien cdosys.dll qui me permet en principe d'instancier des classes
> CDO.Person?
>
> Merci de votre aide,
>
> Bisous

CDO.Person est présent dans la bibliothèque CDOEX et non CDOEXM...

cf. :
http://msdn2.microsoft.com/en-us/library/aa488386.aspx

Cordialement

--
Gilles TOURREAU


S.A.R.L. P.O.S
Le spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr



Bonjour et merci pour cette réponse rapide.

J'ai supprimé la référence à la mauvaise DLL, et importé cdoex.dll à la place.

Point de changement, je vois toujours des classes dans CDO, mais pas
"Person"...

J'y perds mon latin...

Note : j'ai utilisé une dll qui se trouvait sur ma machine suite à de
nombreux tests sur ce problème, mais je ne sais plus où je l'ai trouvée à la
base. Où suis-je censé la récupérer en principe?

Encore merci,
Avatar
Beetlejuice
Bonjour,

Problème corrigé :

En fait, comme je voyais des classes dans CDO, je me disais que la DLL était
enregistrée, mais ce n'était pas le cas.

A tout hasard j'ai enregistré cdoex.dll et pouf ! Person apparaît dans la
liste des classes CDO disponibles.

Merci en tous cas.
Avatar
Gilles TOURREAU
Le Fri, 05 Oct 2007 10:59:01 +0200, Beetlejuice
a écrit:



"Gilles TOURREAU" wrote:

Le Fri, 05 Oct 2007 09:54:00 +0200, Beetlejuice
a écrit:

> Bonjour,
>
> Je suis en VB .NET sous visual studio 2005.
> Afin de mail-enabler des utilisateurs active directory, je souhaite
> implémenter les namespaces CDOEXM et CDO.
> Et en particulier, le truc sur lequel je bute, c'est d'avoir accès à
la
> classe CDO.Person.
>
> Ce que j'ai fait :
> Je suis donc allé dans Projet/Ajouter une référence/COM et là j'ai
> ajouté :
>
> 1. "Microsoft CDO for Exchange Management Library" => soit cdoexm.dll,
> qui
> me donne accès au namespace CDOEXM.
> => Jusque là, tout fonctionne parfaitement.
>
> 2. J'ajoute "Microsoft CDO for Windows 2000 Library" => cdosys.dll
qui me
> donne accès au namespace CDO
>
> De retour dans mon code:
> Je fais un import des namespaces CDOEXM et CDO.
>
> Et là, c'est le drame : je n'ai pas accès à CDO.Person. Pour lui il y
a
> bien
> des classes dans CDO (par exemple CDO.cdoCalendar, CDO.cdoCharset,
> CDO.SMTPConnector..., mais pas "CDO.Person"
>
> Est-ce que quelqu'un voit ce qui se passe? (histoire que je comprenne

> est
> mon erreur)
>
> Est-ce bien cdosys.dll qui me permet en principe d'instancier des
classes
> CDO.Person?
>
> Merci de votre aide,
>
> Bisous

CDO.Person est présent dans la bibliothèque CDOEX et non CDOEXM...

cf. :
http://msdn2.microsoft.com/en-us/library/aa488386.aspx

Cordialement

--
Gilles TOURREAU


S.A.R.L. P.O.S
Le spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr



Bonjour et merci pour cette réponse rapide.

J'ai supprimé la référence à la mauvaise DLL, et importé cdoex.dll à la
place.



Il ne faut pas ajoutez une référence vers la DLL mais vers l'objet COM
"Microsoft CDO for Exchange 2000 Library" (Onglet COM)


Point de changement, je vois toujours des classes dans CDO, mais pas
"Person"...

J'y perds mon latin...

Note : j'ai utilisé une dll qui se trouvait sur ma machine suite à de
nombreux tests sur ce problème, mais je ne sais plus où je l'ai trouvée
à la
base. Où suis-je censé la récupérer en principe?



Je ne sais pas (sans doute System32 ou Répertoire Microsoft Shared ou
Exchange), mais vous n'avez pas à vous soucier de l'emplacement des
fichiers nécessaire à l'utilisation de votre objet COM.
Les objets COM sont enregistrés à leur installation dans la base de
registre (Nom + Emplacement de la DLL/EXE + Blabla).
Ensuite quand accéderez à votre objet COM via son Nom (ou plustôt le GUID)
c'est .NET/Windows qui se charge de charger les fichiers nécessaires...


Encore merci,



Cordialement

--
Gilles TOURREAU


S.A.R.L. P.O.S
Le spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr