begin process at 2012 05 28 05:16:10
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Windows

 > 

ActiveX / COM

 > 

ActiveX


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

ActiveX

lundi 20 août 2007 à 16:33:14 | ActiveX

babaslow

Bonjour,

J'ai un petit problème d'enregistrement avec un activeX (SetACL.ocx). Celui-ci fonctionne très bien seulement au premier appel on doit l'enregistrer via la commande regsvr32.exe SetACL.ocx.

J'aimerais savoir s'il est possible de faire en sorte qu'il s'enregistre automatiquement CAD sans "intervention humaine" (inscription dans la BDR peut-être, ou déclarer quelque chose dans le projet, ou ???)

J'ai essayé plusieurs choses mais sans succés pour l'instant...

Merci !
lundi 20 août 2007 à 17:29:42 | Re : ActiveX

racpp

Administrateur CodeS-SourceS
Salut,
C'est facile. Il suffit d'appeler la fonction DllRegisterServer() exportée par l'ocx. Voici un exemple:

// Définir un type de pointeur pour notre fonction:
typedef HRESULT (WINAPI* fonction) (void);
// Charger l'ocx:
HINSTANCE hocx=LoadLibrary("c:\\SetACL.ocx");
// Récupérer l'adresse de la fonction:
fonction RegisterServer =(fonction)GetProcAddress(hocx,"DllRegisterServer");
// Appeler la fonction:
HRESULT res=RegisterServer();
// Libérer l'ocx:
FreeLibrary(hocx);


Si l'activex a été correctement enregistré, la fonction retournera 0.
L'opération inverse est assurée par la fonction DllUnregisterServer().

lundi 20 août 2007 à 19:16:51 | Re : ActiveX

babaslow

C'est probablement facile mais moi j'arrive pas à l'implémenter dans le code existant...

Voilà comment l'auteur initialise et déclare la COM :

#include "SetACL.h"


//////////////////////////////////////////////////////////////////////
//
// Defines
//
//////////////////////////////////////////////////////////////////////


#ifdef _DEBUG
    #define new DEBUG_NEW
#undef THIS_FILE
    static char THIS_FILE[] = __FILE__;
#endif


//////////////////////////////////////////////////////////////////////
//
// Global variables
//
//////////////////////////////////////////////////////////////////////


// The application object
CSetACLApp NEAR    theApp;


//////////////////////////////////////////////////////////////////////
//
// Constants
//
//////////////////////////////////////////////////////////////////////


const GUID CDECL BASED_CODE _tlid    =    {0x34052989, 0xca79, 0x44a1, {0x8e, 0x31, 0x31, 0xa6, 0xf1, 0x4b, 0x21, 0xf6}};

const WORD _wVerMajor    =    1;
const WORD _wVerMinor    =    0;


//////////////////////////////////////////////////////////////////////
//
// Functions
//
//////////////////////////////////////////////////////////////////////


//
// InitInstance - DLL initialization
//
BOOL CSetACLApp::InitInstance ()
{

    if (! COleControlModule::InitInstance ())
    {
        return false;
    }


    return true;
}


//
// ExitInstance - DLL end
//
int CSetACLApp::ExitInstance ()
{
    return COleControlModule::ExitInstance ();
}


//
// DllRegisterServer - adds COM data to the registry
//
STDAPI DllRegisterServer (void)
{
    AFX_MANAGE_STATE (_afxModuleAddrThis);

    if (! AfxOleRegisterTypeLib (AfxGetInstanceHandle (), _tlid))
    {
        return ResultFromScode (SELFREG_E_TYPELIB);
    }

    if (! COleObjectFactoryEx::UpdateRegistryAll (TRUE))
    {
        return ResultFromScode (SELFREG_E_CLASS);
    }

    return NOERROR;
}


//
// DllUnregisterServer - removes COM data from the registry
//
STDAPI DllUnregisterServer (void)
{
    AFX_MANAGE_STATE (_afxModuleAddrThis);

    if (! AfxOleUnregisterTypeLib (_tlid, _wVerMajor, _wVerMinor))
    {
        return ResultFromScode (SELFREG_E_TYPELIB);
    }

    if (! COleObjectFactoryEx::UpdateRegistryAll (FALSE))
    {
        return ResultFromScode(SELFREG_E_CLASS);
    }

    return NOERROR;
}

Ensuite il déclare les paramètres du module dans SetACL.def  comme ceci :

LIBRARY      "SETACL.OCX"

EXPORTS
    DllCanUnloadNow     PRIVATE
    DllGetClassObject   PRIVATE
    DllRegisterServer   PRIVATE
    DllUnregisterServer PRIVATE


Pour moi c'est un vrai labyrinthe. J'ai 36 erreurs à chaque fois que je tente de charger la librairie...as-tu une idée ?


mardi 21 août 2007 à 03:11:44 | Re : ActiveX

babaslow

Re,

Quelques heures plus tard pour te dire résolu

Je m'y prends autrement m'enfin seul le résultat compte n'est-il pas ?

Merci en tout cas.
mardi 11 mars 2008 à 13:50:58 | Re : ActiveX

snipeurcoq

Bonjour, je suis débutant dans les activex. Je voudrais savoir comment vous avez fait pour enregistrer automatiquement votre activex. J'explique le contexte de mon projet. J'ai un activex qui doit être téléchargeable d'une page Internet. Internet Explorer me demande si je veux installer l'activex de la page. Après lui avoir répondu "installer", l'activex ne marche toujours pas et je ne le vois pas dans la base de registre. Cet activex a été développé en c++, sous un environnement visual studio 2003. Je voudrais savoir si mon problème vient des postes de travail ou si c'est les fonctions d'enregistrement de l'activex qui marche pas.


Cette discussion est classée dans : ocx, activex, setacl


Répondre à ce message

Sujets en rapport avec ce message

enregestrement activeX [ par cashroc ] salutj'ai programme un controle activeX en c++ soit un ocxj'ai un probleme, je n'arrive pas a enregistrer ce controle si il n'y a pas visual c++ sur l Insérer un ActiveX (ocx) Help svp!!!!!!!!!!!!!!! [ par pepsidrinker ] Salut tlm;Bah voila, je veux insérer un activex(.ocx fait en vb) dans on appli en c++  ki utilise les mfc evidemment(un appli console ou windows , c s activex flash [ par mathieu57100 ] Bonjourje voudrai intégrer une animation flash dans une appli réalisée avec c++ builder 6...lorsque je fais Composant, Importer un composant activex.. Porbleme Installation Activex via .CAB et Fichiers .INF [ par colibri44 ] Bonjour à tous, j'ai créé un activeX. Je souhaite le déployer via un fichier .cab et un fichier .inf pour ajouter en plus de l'installation de l'OC Comment enregistrer un ocx avec Windows 7 [ par misterN ] Bonjour, Comment enregistrer un ocx avec Windows 7 alors qu'il fonctionnait très bien sous XP? Depuis mon nouveau portable Windows 7 ça pose problème. ActiveX MFC Thread et envoie d'Event [ par fredlynx ] Voilà mon soucis... J'ai créé une ActiveX de communication Modbus, et je voudrais lancer mes acquisition sur le port série dans un thread pour que le DLL en ActiveX sous builder6 [ par Pij26 ] Bonjour, Je suis étudiant, et pour un projet je dois utiliser un ActiveX. Celui-ci contient des classes sous forme de 'Package' Elle me sert comme un visualiser un fichier pdf dans une Cdialog sans uliser l'activeX Adobe Reader [ par Nouaim90 ] Bonjour tout le monde !! Je suis en stage d'application , et j'ai comme projet (mini projet plutot :p) une application en Visual C++ consistant à cha Probleme OCX [ par lallthis ] je suis sous windows 98, et je souhaite enregistrer un ocx qui est seulement sous windows NT4Comment faire?C assez urgent, c pour un projet de bts.Si ie4 activex [ par Xam ] bonjour,je cherche de la doc sur l'activex d'internet explorer.Plus précisemment, je cherche à savoir comment ouvrir une url dans une nouvelle fenetre


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,593 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales