// Registers object, typelib and all interfaces in typelib
hRes = _Module.RegisterServer (TRUE);
if (FAILED (hRes))
return hRes;
Il s'agit du début de la fonction DllRegisterServer().
D'une part je n'arrive pas à savoir pourquoi RegisterServer() renvoie
une erreur, ni à quoi cette erreur corresponds. (Visiblement c'est quand
même un problème d'écriture dans le registre à un endroit interdit pour
les simples utilisateurs).
D'autre part comment dois-je m'y prendre pour enregister mon module en
tant que non Admin ?
Je me perds dans la MSDN, j'ai lu une bonne partie de la présentation du
sandard COM, pas tout je l'avoue, et un peu les exemples, mais là j'y
arrive vraiment pas, il me faut un petit coup de pouce, je ne sais plus
trop par ou chercher.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Thierry
In article <40783af9$0$17517$, says...
D'une part je n'arrive pas à savoir pourquoi RegisterServer() renvoie une erreur, ni à quoi cette erreur corresponds. (Visiblement c'est quand même un problème d'écriture dans le registre à un endroit interdit pour les simples utilisateurs).
C'est ça : les objets COM s'enregistrent dans HKLM, dont l'ecriture n'est possible qu'avec des droits d'admins.
D'autre part comment dois-je m'y prendre pour enregister mon module en tant que non Admin ?
Ce n'est ni possible, ni souhaitable.
-- Thierry
In article <40783af9$0$17517$626a14ce@news.free.fr>, ag@tb.fr says...
D'une part je n'arrive pas à savoir pourquoi RegisterServer() renvoie
une erreur, ni à quoi cette erreur corresponds. (Visiblement c'est quand
même un problème d'écriture dans le registre à un endroit interdit pour
les simples utilisateurs).
C'est ça : les objets COM s'enregistrent dans HKLM, dont l'ecriture
n'est possible qu'avec des droits d'admins.
D'autre part comment dois-je m'y prendre pour enregister mon module en
tant que non Admin ?
D'une part je n'arrive pas à savoir pourquoi RegisterServer() renvoie une erreur, ni à quoi cette erreur corresponds. (Visiblement c'est quand même un problème d'écriture dans le registre à un endroit interdit pour les simples utilisateurs).
C'est ça : les objets COM s'enregistrent dans HKLM, dont l'ecriture n'est possible qu'avec des droits d'admins.
D'autre part comment dois-je m'y prendre pour enregister mon module en tant que non Admin ?
Ce n'est ni possible, ni souhaitable.
-- Thierry
AG
Thierry wrote:
D'autre part comment dois-je m'y prendre pour enregister mon module en tant que non Admin ?
Ce n'est ni possible, ni souhaitable.
Est ce que cela signifie que :
La dll (c'est une dll) doit être enregistrée une fois par l'intermédiaire de la fonction DllRegisterServer() (qui elle même appelle la fonction RegisterServer()) en tant qu'Admin. Ceci correspondrait à l'installation.
Une fois la dll enregistré en tant qu'Admin, elle ne doit pas tenter de recommencer ?
ça voudrait dire que je devrais modifier mon code comme ci-dessous ?
//teste si le module à déjà été enregistré une fois // si oui, lancer _Module.RegisterServer(FALSE) // si non lancer _Module.RegisterServer(TRUE) // Registers object, typelib and all interfaces in typelib hRes = _Module.RegisterServer (TRUE); if (FAILED (hRes)) return hRes;
En tout cas Merci Thierry pour ces quelques précisions.
Alexandre.
Thierry wrote:
D'autre part comment dois-je m'y prendre pour enregister mon module en
tant que non Admin ?
Ce n'est ni possible, ni souhaitable.
Est ce que cela signifie que :
La dll (c'est une dll) doit être enregistrée une fois par
l'intermédiaire de la fonction DllRegisterServer() (qui elle même
appelle la fonction RegisterServer()) en tant qu'Admin. Ceci
correspondrait à l'installation.
Une fois la dll enregistré en tant qu'Admin, elle ne doit pas tenter de
recommencer ?
ça voudrait dire que je devrais modifier mon code comme ci-dessous ?
//teste si le module à déjà été enregistré une fois
// si oui, lancer _Module.RegisterServer(FALSE)
// si non lancer _Module.RegisterServer(TRUE)
// Registers object, typelib and all interfaces in typelib
hRes = _Module.RegisterServer (TRUE);
if (FAILED (hRes))
return hRes;
En tout cas Merci Thierry pour ces quelques précisions.
D'autre part comment dois-je m'y prendre pour enregister mon module en tant que non Admin ?
Ce n'est ni possible, ni souhaitable.
Est ce que cela signifie que :
La dll (c'est une dll) doit être enregistrée une fois par l'intermédiaire de la fonction DllRegisterServer() (qui elle même appelle la fonction RegisterServer()) en tant qu'Admin. Ceci correspondrait à l'installation.
Une fois la dll enregistré en tant qu'Admin, elle ne doit pas tenter de recommencer ?
ça voudrait dire que je devrais modifier mon code comme ci-dessous ?
//teste si le module à déjà été enregistré une fois // si oui, lancer _Module.RegisterServer(FALSE) // si non lancer _Module.RegisterServer(TRUE) // Registers object, typelib and all interfaces in typelib hRes = _Module.RegisterServer (TRUE); if (FAILED (hRes)) return hRes;
En tout cas Merci Thierry pour ces quelques précisions.
Alexandre.
Thierry
In article <4079448c$0$18217$, says...
La dll (c'est une dll) doit être enregistrée une fois par l'intermédiaire de la fonction DllRegisterServer() (qui elle même appelle la fonction RegisterServer()) en tant qu'Admin. Ceci correspondrait à l'installation.
Oui : pas besoin de l'enregistrer a chaque fois.
Une fois la dll enregistré en tant qu'Admin, elle ne doit pas tenter de recommencer ?
Elle peut tenter mais ca ne marchera pas.
ça voudrait dire que je devrais modifier mon code comme ci-dessous ?
Plutot que de toucher a cette fonction ne l'appelle que lors de l'installation.
-- Thierry
In article <4079448c$0$18217$626a14ce@news.free.fr>, ag@tb.fr says...
La dll (c'est une dll) doit être enregistrée une fois par
l'intermédiaire de la fonction DllRegisterServer() (qui elle même
appelle la fonction RegisterServer()) en tant qu'Admin. Ceci
correspondrait à l'installation.
Oui : pas besoin de l'enregistrer a chaque fois.
Une fois la dll enregistré en tant qu'Admin, elle ne doit pas tenter de
recommencer ?
Elle peut tenter mais ca ne marchera pas.
ça voudrait dire que je devrais modifier mon code comme ci-dessous ?
Plutot que de toucher a cette fonction ne l'appelle que lors de
l'installation.
La dll (c'est une dll) doit être enregistrée une fois par l'intermédiaire de la fonction DllRegisterServer() (qui elle même appelle la fonction RegisterServer()) en tant qu'Admin. Ceci correspondrait à l'installation.
Oui : pas besoin de l'enregistrer a chaque fois.
Une fois la dll enregistré en tant qu'Admin, elle ne doit pas tenter de recommencer ?
Elle peut tenter mais ca ne marchera pas.
ça voudrait dire que je devrais modifier mon code comme ci-dessous ?
Plutot que de toucher a cette fonction ne l'appelle que lors de l'installation.
-- Thierry
AG
Thierry wrote:
ça voudrait dire que je devrais modifier mon code comme ci-dessous ?
Plutot que de toucher a cette fonction ne l'appelle que lors de l'installation.
Merci Thierry, je vois le bout du tunnel.
Ce n'est pas moi qui gère l'appel à cette fonction. La fonction est appelée automatiquement, et si elle ne renvoie pas le bon code d'erreur, je ne peux pas accéder à mon add-in.
En modifiant la fonction et en renvoyant S_OK si jamais la fonction à déjà été enregistrée, tout fonctionne comme il faut.
Merci.
Alexandre.
Thierry wrote:
ça voudrait dire que je devrais modifier mon code comme ci-dessous ?
Plutot que de toucher a cette fonction ne l'appelle que lors de
l'installation.
Merci Thierry, je vois le bout du tunnel.
Ce n'est pas moi qui gère l'appel à cette fonction. La fonction est
appelée automatiquement, et si elle ne renvoie pas le bon code d'erreur,
je ne peux pas accéder à mon add-in.
En modifiant la fonction et en renvoyant S_OK si jamais la fonction à
déjà été enregistrée, tout fonctionne comme il faut.
ça voudrait dire que je devrais modifier mon code comme ci-dessous ?
Plutot que de toucher a cette fonction ne l'appelle que lors de l'installation.
Merci Thierry, je vois le bout du tunnel.
Ce n'est pas moi qui gère l'appel à cette fonction. La fonction est appelée automatiquement, et si elle ne renvoie pas le bon code d'erreur, je ne peux pas accéder à mon add-in.
En modifiant la fonction et en renvoyant S_OK si jamais la fonction à déjà été enregistrée, tout fonctionne comme il faut.
Merci.
Alexandre.
tresorunikin
AG a écrit le 10/04/2004 à 20h20 :
Bonjour,
Je cherche à comprendre pourquoi le code ci-dessous passe quand je suis
// Registers object, typelib and all interfaces in typelib hRes = _Module.RegisterServer (TRUE); if (FAILED (hRes)) return hRes;
Il s'agit du début de la fonction DllRegisterServer().
D'une part je n'arrive pas à savoir pourquoi RegisterServer() renvoie une erreur, ni à quoi cette erreur corresponds. (Visiblement c'est quand
même un problème d'écriture dans le registre à un endroit interdit pour les simples utilisateurs).
D'autre part comment dois-je m'y prendre pour enregister mon module en tant que non Admin ?
Je me perds dans la MSDN, j'ai lu une bonne partie de la présentation du
sandard COM, pas tout je l'avoue, et un peu les exemples, mais là j'y arrive vraiment pas, il me faut un petit coup de pouce, je ne sais plus trop par ou chercher.
Merci d'avance.
Alexandre.
Bcp d'années plutard... Suis dans le même cas! As-tu bien réalisé que tu cherchais tout simplement à utiliser et non créer? ou sinon tu voulais creer des élements pour un système d"exploitation?
ha! rien ne pourrit sur le web!
AG a écrit le 10/04/2004 à 20h20 :
Bonjour,
Je cherche à comprendre pourquoi le code ci-dessous passe quand je suis
// Registers object, typelib and all interfaces in typelib
hRes = _Module.RegisterServer (TRUE);
if (FAILED (hRes))
return hRes;
Il s'agit du début de la fonction DllRegisterServer().
D'une part je n'arrive pas à savoir pourquoi RegisterServer() renvoie
une erreur, ni à quoi cette erreur corresponds. (Visiblement c'est quand
même un problème d'écriture dans le registre à un
endroit interdit pour
les simples utilisateurs).
D'autre part comment dois-je m'y prendre pour enregister mon module en
tant que non Admin ?
Je me perds dans la MSDN, j'ai lu une bonne partie de la présentation du
sandard COM, pas tout je l'avoue, et un peu les exemples, mais là j'y
arrive vraiment pas, il me faut un petit coup de pouce, je ne sais plus
trop par ou chercher.
Merci d'avance.
Alexandre.
Bcp d'années plutard...
Suis dans le même cas!
As-tu bien réalisé que tu cherchais tout simplement à utiliser et non créer? ou sinon tu voulais creer des élements pour un système d"exploitation?
// Registers object, typelib and all interfaces in typelib hRes = _Module.RegisterServer (TRUE); if (FAILED (hRes)) return hRes;
Il s'agit du début de la fonction DllRegisterServer().
D'une part je n'arrive pas à savoir pourquoi RegisterServer() renvoie une erreur, ni à quoi cette erreur corresponds. (Visiblement c'est quand
même un problème d'écriture dans le registre à un endroit interdit pour les simples utilisateurs).
D'autre part comment dois-je m'y prendre pour enregister mon module en tant que non Admin ?
Je me perds dans la MSDN, j'ai lu une bonne partie de la présentation du
sandard COM, pas tout je l'avoue, et un peu les exemples, mais là j'y arrive vraiment pas, il me faut un petit coup de pouce, je ne sais plus trop par ou chercher.
Merci d'avance.
Alexandre.
Bcp d'années plutard... Suis dans le même cas! As-tu bien réalisé que tu cherchais tout simplement à utiliser et non créer? ou sinon tu voulais creer des élements pour un système d"exploitation?