REVISIÓN: Windows side-by-side ejecución no es compatible con controles ActiveX de Visual Basic 6.0

Seleccione idioma Seleccione idioma
Id. de artículo: 828629 - Ver los productos a los que se aplica este artículo
Expandir todo | Contraer todo

Síntomas

Con Microsoft Windows XP y versiones posteriores, puede ejecutar módulos DLL del modelo de objetos componentes (COM) de Microsoft en modo lado por lado (SxS). Con las distintas versiones de una DLL de COM para coexistir en el mismo entorno de equipo sin conflictos de SxS. Este comportamiento se produce mediante archivos .manifest que especifican cómo se puede enlazar un programa a una DLL COM determinado. Los controles de ActiveX de Microsoft Visual Basic 6.0 son esencialmente los módulos de DLL COM con extensiones de nombre de archivo .ocx. Si intenta configurar estos módulos para la operación de SxS en Windows XP, recibirá el siguiente mensaje de error:

Error de ejecución '336' componentes correctamente registrado.

Causa

Este problema se produce debido a tiempos de ejecución el Windows y Visual Basic no admiten configuración ejecución aislados de los controles ActiveX de Visual Basic 6.0.

Solución

Para resolver este problema completamente debe tener ambas de las acciones siguientes:
  • La versión de Visual Basic runtime que se incluye con Service Pack 6 (SP6) de Visual Basic 6
  • Windows XP Service Pack 2 (SP2)
Para obtener información adicional acerca de cómo obtener el tiempo de ejecución más reciente de Visual Basic, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
290887VBRun60sp6.exe instala archivos de tiempo de ejecución de Service Pack 6 de Visual Basic 6.0
Para obtener Windows XP SP2, visite el siguiente sitio Web de Microsoft Knowledge Base:
http://support.microsoft.com/default.aspx?scid=fh;EN-US;windowsxpsp2
Si no se puede instalar Windows XP SP2, puede obtener la revisión de Windows XP como una revisión. Para obtener información adicional, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
843524REVISIÓN: El manifiesto del módulo de DLL de COM Side-by-side para controles ActiveX de Visual Basic 6.0 se reemplaza por el registro en Windows XP

Más información

Para habilitar esta revisión, debe agregar campos a los archivos .manifest. The following is a sample .manifest file:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
	<assemblyIdentity type="win32" name="control.ocx" version="1.0.0.0" processorArchitecture="x86"/>
	<file name="control.ocx">
		<comClass description="Sub control" clsid="{76548630-0CC8-48E4-B471-A9001865AE65}" 
			miscStatus="recomposeonresize,cantlinkinside,insideout,activatewhenvisible,setclientsitefirst"
			progid="Control.TextBox" threadingModel="Apartment"
			tlbid="{8A1ADF05-8164-4D5B-9267-FA74E601D826}"/>
		<typelib tlbid="{8A1ADF05-8164-4D5B-9267-FA74E601D826}" version="1.0" helpdir=""/>
	</file>
</assembly>
Observe que se ha agregado el atributo miscStatus . Ahora cinco nuevos atributos están disponibles en el elemento de ensamblado o en el elemento comClass para representar los distintos valores DVASPECT que están disponibles:
Contraer esta tablaAmpliar esta tabla
AtributoNota
miscStatus Los indicadores de estado predeterminados que se obtienen cuando se pasa 0 para el argumento dwAspect a la API OleRegGetMiscStatus
miscStatusIcon Se asigna a DVASPECT_ICON
miscStatusThumbnail Se asigna a DVASPECT_THUMBNAIL
miscStatusDocPrint Se asigna a DVASPECT_CONTENT
miscStatusContent Se asigna a DVASPECT_CONTENT
Para cada aspecto, el siguiente conjunto de indicadores puede especificarse como una lista separada por comas. No utilice caracteres de espacio ("") pero los indicadores pueden ser mayúsculas. Estos elementos se toman de la enumeración de indicador OLEMISC.
Contraer esta tablaAmpliar esta tabla
Recomposeonresize Onlyiconic Insertnotreplace
EstáticoCantlinkinsideCanlinkbyole1
IslinkobjectInsideoutActivatewhenvisible
RenderingisdeviceindependentInvisibleatruntimeAlwaysrun
ActslikebuttonActslikelabelNouiactivate
AlignableSimpleframeSetclientsitefirst
ImemodeIgnoreactivatewhenvisibleWantstomenumerge
Supportsmultilevelundo
Observe que también debe utilizar el atributo tlbid en el elemento de ensamblado o en el elemento comClass para indicar qué biblioteca de tipo de la clase COM procede Runtime resolverlo correctamente.

Estado

Microsoft ha confirmado que se trata de un problema de los productos de Microsoft enumerados en la sección "La información de este artículo se refiere a:".

Propiedades

Id. de artículo: 828629 - Última revisión: martes, 25 de octubre de 2005 - Versión: 1.1
La información de este artículo se refiere a:
  • Microsoft Visual Basic 6.0 Enterprise Edition Service Pack 5
  • Microsoft Visual Basic 6.0 Edición de aprendizaje
  • Microsoft Visual Basic Professional Edition for Windows 6.0 SP5
  • Microsoft Windows XP Professional SP1
  • Microsoft Windows XP Professional SP1a
Palabras clave: 
kbmt kbhotfixserver kbqfe kbqfe kbwinxppresp2fix kbfix kbbug KB828629 KbMtes
Traducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 828629

Enviar comentarios

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com