Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Como conocer el CLSID de un ocx

241 views
Skip to first unread message

Antonio Liberal

unread,
Dec 22, 2003, 2:36:46 AM12/22/03
to
Hola buenas.

Pues eso, ¿alguien sabe como obtener el CLSID de un ocx, dado este?

Saludos.


Rubén Vigón

unread,
Dec 22, 2003, 3:01:04 AM12/22/03
to
Sólo tienes que leer el valor predeterminado (REG_SZ) de la siguiente clave del registro:

HKEY_CLASSES_ROOT\Libreria.Clase\CLSID

Una vez obtenido el CLSID correspondiente, puedes obtener la ruta del archivo (*.OCX, *.DLL) leyendo el valor predeterminado de la
siguiente clave

HKEY_CLASSES_ROOT\CLSID\{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}\InprocServer32

Un saludo!

Rubén Vigón
Microsoft MVP Visual Basic


Antonio Liberal

unread,
Dec 22, 2003, 5:43:13 AM12/22/03
to
Hola Rubén, gracias por la respuesta.

El problema que tengo es que sólo tengo el nombre del ocx, no las clases que
van dentro. Por ejemplo, puedo tener un fichero llamado MiOCX.OCX, y dentro
de el dos controles, uno que se llame MiMenu y otro MiToolBar. ¿Se puede
obtener lo que hay dentro del OCX?.

¿Es algo así como buscar en la rama HKCR\CLSID\MiOCX.*, y con las ramas que
encuentre, abrirlas y abrir la subrama CLSID y obtener el valor
predeterminado?


Saludos.

"Rubén Vigón" <vi...@QUITAESTOwanadoo.es> escribió en el mensaje
news:OVV2DGGy...@TK2MSFTNGP11.phx.gbl...

Eduardo A. Morcillo [MS MVP VB]

unread,
Dec 22, 2003, 10:24:19 AM12/22/03
to
Antonio Liberal wrote:
> Hola Rubén, gracias por la respuesta.
>
> El problema que tengo es que sólo tengo el nombre del ocx, no las
> clases que van dentro. Por ejemplo, puedo tener un fichero llamado
> MiOCX.OCX, y dentro de el dos controles, uno que se llame MiMenu y
> otro MiToolBar. ¿Se puede obtener lo que hay dentro del OCX?.

Puedes utilizar la libreria "TypeLib Information" (tlbinf32.dll) para ver que clases tiene el OCX. Por ejemplo, el siguiente codigo te lista todos las clases e interfaces que tiene el comctl32.ocx:


--
Eduardo A. Morcillo [MS MVP VB]
http://www.mvps.org/emorcillo

Eduardo A. Morcillo [MS MVP VB]

unread,
Dec 22, 2003, 10:29:07 AM12/22/03
to
El codigo:

Dim oTLI As TypeLibInfo
Dim oTI As TypeInfo

Set oTLI = TypeLibInfoFromFile("comctl32.ocx")

For Each oTI In oTLI.TypeInfos
Debug.Print oTI.Name, oTI.Guid
Next

Antonio Liberal

unread,
Dec 22, 2003, 12:27:38 PM12/22/03
to
Muchas gracias Eduardo, he podido sacar el GUID desde el mismo objeto
TypeLibInfo

Una cosa más, ya he visto que esta librería viene con el Visual Studio 6.
¿Se puede distribuir con mi programa? ¿Hay alguna limitación en cuanto al
S.O.?

Gracias por tu ayuda

"Eduardo A. Morcillo [MS MVP VB]" <emorcilloATmvps.org> escribió en el
mensaje news:uwZ6TBKy...@TK2MSFTNGP12.phx.gbl...

Eduardo A. Morcillo [MS MVP VB]

unread,
Dec 23, 2003, 12:07:00 PM12/23/03
to
> ¿Se puede distribuir con mi programa?

Si. Si tienes duda sobre si se puede distribuir o no algun archivo incluido con el VB, fijate si figura en el archivo Redist.txt que esta en la carpeta del Visual.

> ¿Hay alguna limitación en cuanto al S.O.?

No.

Antonio Liberal

unread,
Dec 23, 2003, 12:50:07 PM12/23/03
to
Gracias, esta librería me va a servir para mucho....

"Eduardo A. Morcillo [MS MVP VB]" <emorcilloATmvps.org> escribió en el

mensaje news:eYWlvcXy...@TK2MSFTNGP09.phx.gbl...

0 new messages