Accueil > > > DLLREGISTER (UN VRAI REGISTER/UNREGISTER D'OCX, SANS REGSVR32)
DLLREGISTER (UN VRAI REGISTER/UNREGISTER D'OCX, SANS REGSVR32)
Information sur la source
Description
Ouhais, moi, j'en ai marre des code dégeus qui explique comment, pour la xème fois, enregistrer un OCX avec regsvr32... Bien crade, quoi. Alors voici comment enregistrer en interne, dynamiquement, un composants ActiveX en utilisant les API. Principe : Les ActiveX possèdent tous deux méthodes qui s'appellent 'DLLRegisterServer' et 'DLLUnRegisterServer' ; REGSVR32 ne fait rien d'autres que les appeller suivant le cas...
Source
- Option Explicit
-
- ' #####################################################################################
- ' # Reg auto d'un ActiveX
- ' # Peut être utile pour un plug in
- ' #####################################################################################
-
- Private Declare Function FreeLibrary Lib "kernel32" (ByVal hLibModule As Long) As Long
- Private Declare Function LoadLibrary Lib "kernel32" Alias "LoadLibraryA" (ByVal lpLibFileName As String) As Long
- Private Declare Function GetProcAddress Lib "kernel32" (ByVal hModule As Long, ByVal lpProcName As String) As Long
- Private Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hWnd As Long, ByVal Msg As Any, ByVal wParam As Any, ByVal lParam As Any) As Long
- Private Const ERROR_SUCCESS = &H0
-
- Public Function RegisterServer(ByVal Prm_L_hWnd As Long, ByVal Prm_S_DllServerPath As String, byval Prm_B_Register As Boolean) as boolean
-
- On Error Goto RegisterServer_Err
-
- Dim L_Lib As Long
- Dim L_ProcAdress As Long
-
- L_Lib = LoadLibrary(Prm_S_DllServerPath)
-
- If Prm_B_Register Then
- L_ProcAdress = GetProcAddress(L_Lib, "DllRegisterServer")
- Else
- L_ProcAdress = GetProcAddress(L_Lib, "DllUnregisterServer")
- End If
-
- If CallWindowProc(L_ProcAdress, Prm_L_hWnd, ByVal 0&, ByVal 0&, ByVal 0&) = ERROR_SUCCESS Then
- RegisterServer = True
- Else
- RegisterServer = False
- End If
-
- Call FreeLibrary(L_Lib)
-
- Exit Function
-
- RegisterServer_Err:
-
- Call MsgBox("Erreur numéro : " & Err.Number & vbCrLf & "Description : " & Err.Description)
-
- End Function
Option Explicit
' #####################################################################################
' # Reg auto d'un ActiveX
' # Peut être utile pour un plug in
' #####################################################################################
Private Declare Function FreeLibrary Lib "kernel32" (ByVal hLibModule As Long) As Long
Private Declare Function LoadLibrary Lib "kernel32" Alias "LoadLibraryA" (ByVal lpLibFileName As String) As Long
Private Declare Function GetProcAddress Lib "kernel32" (ByVal hModule As Long, ByVal lpProcName As String) As Long
Private Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hWnd As Long, ByVal Msg As Any, ByVal wParam As Any, ByVal lParam As Any) As Long
Private Const ERROR_SUCCESS = &H0
Public Function RegisterServer(ByVal Prm_L_hWnd As Long, ByVal Prm_S_DllServerPath As String, byval Prm_B_Register As Boolean) as boolean
On Error Goto RegisterServer_Err
Dim L_Lib As Long
Dim L_ProcAdress As Long
L_Lib = LoadLibrary(Prm_S_DllServerPath)
If Prm_B_Register Then
L_ProcAdress = GetProcAddress(L_Lib, "DllRegisterServer")
Else
L_ProcAdress = GetProcAddress(L_Lib, "DllUnregisterServer")
End If
If CallWindowProc(L_ProcAdress, Prm_L_hWnd, ByVal 0&, ByVal 0&, ByVal 0&) = ERROR_SUCCESS Then
RegisterServer = True
Else
RegisterServer = False
End If
Call FreeLibrary(L_Lib)
Exit Function
RegisterServer_Err:
Call MsgBox("Erreur numéro : " & Err.Number & vbCrLf & "Description : " & Err.Description)
End Function
Conclusion
Voila... Donc, pour l'utiliser :
Call RegisterServer(Form1.hWnd, "COMCTL32.OCX", True) ' False pour Unregister
Sources du même auteur
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
Impossible de register MCI32.ocx [ par olivierarnaud ]
que ce soit par regsrv32 ou par l'API. KK'un aurait-il une petite idée.J'ai utiliser l'API pour registrer comctl32.ocx et ça marche mais pas avec MCI3
shell [ par drpsico ]
bonjour est ce quelqu'un c pk a et b ne son pas reconnuDim A, BPrivate Sub Form_Load()A = App.Path & "\MSCOMCTL.OCX"B = App.Path & "\MSWINSCK.OCX"Shel
Enregistrement d'ocx [ par whombat ]
Bonjour, Je suis très ennuyé. Je viens de changer de configuration informatique etr aussi d'OS. Je suis passé de W2000 à XP Media. J'avais des ocx
Contraire de Regsvr32 [ par pimousse75 ]
Bjr,comment effacer une ocx en base de registre, cad le contraire de regsvr32 mon_ocx.ocxMerci !
OCX + register? [ par zen69 ]
Salut tout le monde,Petite question tres simple, est-ce qu'on est obligé de register un ocx que l'on veut utiliser dans son projet?Parce que je croyai
probleme de register avec anciens OCX... [ par yorom ]
bonjourje viens de reprendre la prog d'un logiciel ecrit en vb4 qui utilisait les controls Sheridan 3d, Outline et Grid (tous ocx) hors depuis vb5 et
VSSBrowser.ocx [ par francis de ziburu ]
[size=200]j'utilise le control vssbrowser.ocx pour lire un bd sourcesafe dans visual basic; je l'ai recuperé sur sourceforge.net mais quand je tape l
Installation OCX sur Seven [ par pnavarre ]
Bonjour, J'ai créé en 2004 un « activex (.ocx) » avec "Visual studio 6", mais suite à de nombreux déplacements et à un krash sérieux, j'ai perdu les
tabctl32.ocx OK mais pas de choix MS Tabbed dialog [ par mika7787 ]
Bonjour, Je suis en VB5. Je veux activer SSTab. J'ai bien tabctl32.ocx présent dans windows\system32 mais, quand je fais Projet/Composants, l'option
trouver les fichiers dll et ocx necessaire au bon fonction du soft [ par metallicox78 ]
Salut,j'aimerai savoir comment faire pour connaitre les fichiers dll et ocx nécessaires au fonctionnement du .exe pour qu'il puisse marcher sur un aut
|
Derniers Blogs
[WP7] DYNAMICALLY CHANGE STARTUP PAGE[WP7] DYNAMICALLY CHANGE STARTUP PAGE par KooKiz
Let's say that you want to allow the user to customize the startup page of your application. You can easily change the startup page by editing the 'NavigationPage' attribute in the manifest file. But the manifest cannot be modified once the applicatio...
Cliquez pour lire la suite de l'article par KooKiz SESSION SILVERLIGHT 5 3D : SLIDES ET DEMOSSESSION SILVERLIGHT 5 3D : SLIDES ET DEMOS par Groc
Durant les techdays, j'ai eu le plaisir d'animer une session sur Silverlight 5 et la 3D avec Simon Ferquel. Comme promis, voici nos slides et mes démos (celles avec le viper BSG) ici et là. Pour mémoire, les démos utilisent toutes le viper BSG...
Cliquez pour lire la suite de l'article par Groc [TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES[TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES par gpommier
Suite à la session que j'ai présenté sur WebMatrix 2, vous pouvez trouver les slides ici, ainsi que les démos en packages nuget : démos1 et démos2 J'en profite pour remercier chaleureusement tous ceux qui sont venus très nombreux à cette sess...
Cliquez pour lire la suite de l'article par gpommier [SHAREPOINT] LES SESSIONS TECHDAYS 2012.[SHAREPOINT] LES SESSIONS TECHDAYS 2012. par Patrick Guimonet
Voici donc pour ceux qui n'ont pas pu venir, ou ceux qui n'ont pas pu toutes les suivre la liste des sessions SharePoint aux TechDays 2012, que je mettrais à jour dès que les liens des vidéo seront disponibles. Ou ici : http...
Cliquez pour lire la suite de l'article par Patrick Guimonet TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3 par ROMELARD Fabrice
Speaker: Bernard Ourghanlian Cette session est comme chaque jour transmise en live par BrainSonic, et j'ai donc suivi cette troisième pleinière par ce moyen sur mon iPad . Elle est dédiée comme chaque année à la mise en perspective de l'é...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Forum
LISTER KEYS.KEYLISTER KEYS.KEY par Onin42
Cliquez pour lire la suite par Onin42
Logiciels
Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning
|