Vous êtes sur la page 1sur 9

CONVENCIONES DE NOMENCLATURA PARA VISUAL BASIC

Resumen
Es una buena idea establecer convenciones de nomenclatura para el cdigo de Visual Basic. Este artculo proporciona las convenciones de nomenclatura utilizadas por Microsoft Consulting Services (MCS). Este documento es un superconjunto de las convenciones de codificacin de Visual Basic que se encuentra en Visual Basic "Gua del programador". Nota: Los controles de terceros mencionados en este artculo estn fabricados por proveedores independientes de Microsoft. Microsoft no otorga ninguna garanta, implcita o de otro tipo, respecto al rendimiento de estos controles o confiabilidad.

Desarrollo
Convenciones de nomenclatura ayudan a los programadores de Visual Basic:

estandarizar la estructura, codificacin de estilo y la lgica de una aplicacin. crear cdigo precisa, legible y inequvoca el origen. ser coherente con otras convenciones de lenguaje (lo que es ms importante, la Gua de programadores de Visual Basic y notacin hngara de Windows de C estndar). ser eficiente de un tamao de cadena y punto de vista mano de obra, permitiendo as una mayor oportunidad de ms y ms completo nombres de objeto. Defina los requisitos mnimos necesarios para realizar la anterior.

Establecer las opciones de entorno


Utilice Option Explicit. Declarar las variables todo para guardar el tiempo de programacin reduciendo el nmero de errores causados por errores tipogrficos (por ejemplo, aUserNameTmp frente a sUserNameTmp frente a sUserNameTemp). En el cuadro de dilogo Opciones de entorno, establezca la declaracin de variable requerida en S. La instruccin Option Explicit requiere declarar todas las variables en el programa de Visual Basic. Guardar archivos como texto ASCII. Guardar formulario (.frm) y mdulo (.BAS) archivos como texto ASCII para facilitar el uso de sistemas de control de versiones y minimizar los daos que pueden deberse a daos en el disco. Adems, puede:

realizar anlisis externo de su cdigo de Visual Basic Para que guarde siempre los archivos como texto ASCII, desde el cuadro de dilogo Opciones de entorno de Visual Basic, establezca la opcin Guardar como formato predeterminado a texto.

utilizar su propio editor utilizar herramientas automatizadas, tales como grep crear herramientas CASE o generacin de cdigo para Visual Basic

Objeto convenciones de nomenclatura para objetos estndar


Las siguientes tablas definen los prefijos de nombre de objeto estndar de MCS. Estos prefijos son coherentes con los documentados en la Gua de programadores de Visual Basic.

Prefix Object Type Example ------------------------------------------------------ani Animation button aniMailBox bed Pen Bedit bedFirstName cbo Combo box and drop down list box cboEnglish chk Checkbox chkReadOnly clp Picture clip clpToolbar cmd (3d) Command button (3D) cmdOk (cmd3dOk) com Communications comFax ctr Control (when specific type unknown) ctrCurrent dat Data control datBiblio dir Directory list box dirSource dlg Common dialog control dlgFileOpen

drv fil frm fra (3d) gau gpb gra grd hed hsb img ink key lbl lin lst mdi mpm mps mci mnu opt (3d) ole out pic pnl3d rpt shp spn txt tmr vsb

Drive list box File list box Form Frame (3d) Gauge Group push button Graph Grid Pen Hedit Horizontal scroll bar Image Pen Ink Keyboard key status Label Line List box MDI child form MAPI message MAPI session MCI Menu Option Button (3d) OLE control Outline control Picture 3d Panel Report control Shape controls Spin control Text Box Timer Vertical scroll bar

drvTarget filSource frmEntry fraStyle (fra3dStyle) gauStatus gpbChannel graRevenue grdPrices hedSignature hsbVolume imgIcon inkMap keyCaps lblHelpMessage linVertical lstPolicyCodes mdiNote mpmSentMessage mpsSession mciVideo mnuFileOpen optRed (opt3dRed) oleWorksheet outOrgChart picVGA pnl3d rptQtr1Earnings shpCircle spnPages txtLastName tmrAlarm vsbRate

Objeto convencin de nomenclatura para objetos de base de datos

Prefix Object Type Example -----------------------------------------db ODBC Database dbAccounts ds ODBC Dynaset object dsSalesByRegion fdc Field collection fdcCustomer fd Field object fdAddress ix Index object ixAge ixc Index collection ixcNewAge qd QueryDef object qdSalesByRegion qry (suffix) Query (see NOTE) SalesByRegionQry ss Snapshot object ssForecast tb Table object tbCustomer td TableDef object tdCustomers

Nota: Utilizar un sufijo para consultas permite que cada consulta para ordenarse con su tabla asociada en dilogos de Microsoft Access (Agregar tabla, lista de tablas instantneas).

Convenciones de nomenclatura de men

Las aplicaciones utilizan con frecuencia una abundancia de controles de men. Como resultado, necesita un conjunto de convenciones de nomenclatura diferente para estos controles. Los prefijos de control de men deben extenderse ms all de la etiqueta inicial mnu agregando un prefijo adicional para cada nivel de anidamiento, con el ttulo de men final al final de la cadena de nombre. Por ejemplo:

Menu Caption Sequence Help.Contents File.Open Format.Character File.Send.Fax File.Send.Email

Menu Handler Name mnuHelpContents mnuFileOpen mnuFormatCharacter mnuFileSendFax mnuFileSendEmail

cuando se utiliza esta convencin, todos los miembros de un grupo men determinado se muestran junto a entre s en el objeto desplegable cuadros de lista (de la ventana de cdigo y la ventana de propiedades). Adems, los nombres de control de men Documente claramente los elementos de men al que estn conectados.

Convenciones de nomenclatura para otros controles


Para controles nuevos no enumerados anteriormente, intente idear un prefijo de tres caracteres nico. Sin embargo, es ms importante que desactive que al ceirse a tres caracteres. Para los controles derivados, como un cuadro de lista mejorada, amplan los prefijos anteriores por lo que no hay confusin sobre el control que realmente se utiliza. Normalmente tambin se aadirn al prefijo de una abreviatura de minscula para el fabricante. Por ejemplo, una instancia del control creada desde el marco 3D podra Visual Basic Professional utiliza un prefijo de fra3d para evitar confusiones sobre qu control realmente se utiliza. Un botn de comando desde MicroHelp podra utilizar cmdm para diferenciarlo en el botn de comando estndar (cmd).

Controles de terceros
Cada control de terceros utilizado en una aplicacin debe enumerarse en seccin de comentario de informacin general de la aplicacin, que proporciona el prefijo utilizado para el control, el nombre completo del control y el nombre del proveedor de software:

Prefix cmdm

Control Type Command Button

Vendor MicroHelp

Variable y el nombre de rutina


Los nombres de variable y funcin tienen la siguiente estructura: <prefix><body><qualifier><suffix>

Part Description Example -------------------------------------------------------------------------<prefix> Describes the use and scope of the variable. iGetRecordNext <body> Describes the variable. iGetNameFirst <qualifier> Denotes a derivative of the variable. iGetNameLast <suffix> The optional Visual Basic type character. iGetRecordNext%
prefijos: Las siguientes tablas definen prefijos de nombre de variable y funcin que se basan en notacin hngara C para Windows. Estos prefijos se deben utilizar con todas las variables y nombres de funcin. Uso de sufijos bsicos antiguos (como % & #, etc.) son desaconsejado. Variable y prefijos de nombre de funcin:

Prefix Converged Variable Use Data Type Suffix -------------------------------------------------------------------------b bln Boolean Integer % c cur Currency - 64 bits Currency @ d dbl Double - 64 bit Double # signed quantity dt dat Date and Time Variant e err Error

sng

h i l n s u

lng int str

vnt a

udt vnt

Float/Single - 32 bit signed floating point Handle Index Long - 32 bit signed quantity Number/Counter String Unsigned - 16 bit unsigned quantity User-defined type Variant Array

Single

Integer Integer Long Integer String Long

% % & % $ &

Variant

Nota: los valores de la columna Converged representan los esfuerzos para reunir los estndares de nomenclatura para Visual Basic, Visual Basic para aplicaciones y Access Basic. Es probable que estos prefijos se convertir en el futuro en los estndares de Microsoft en algn momento. mbito y prefijos de uso:

Prefix g m st (no prefix) v r

Description Global Local to module or form Static variable Non-static variable, prefix local to procedure Variable passed by value (local to a routine) Variable passed by reference (local to a routine)

notacin hngara es tan valioso en Visual Basic como en C. Aunque los sufijos de tipo Visual Basic lo indican el tipo de datos de una variable, no explican lo que se utiliza una variable o funcin para o cmo se puede obtener acceso a l. stos son algunos ejemplos: iSend - representa un recuento del nmero de mensajes enviados bSend - A flag definir el xito de la ltima operacin de envo hSend - un identificador para la interfaz de comunicaciones Indique cada uno de estos nombres de variables a un programador algo muy diferente. Esta informacin se pierde cuando el nombre de la variable se reduce a enviar %. Prefijos del mbito como g y m tambin reducen el problema de contencin de nombre especialmente en proyectos de varios programadores. Notacin hngara es tambin muy utilizado por los programadores de C de Windows y hace referencia continuamente en la documentacin del producto de Microsoft y en libros de programacin del sector. Adems, el bono entre los programadores C y programadores que utilizan Visual Basic ser mucho ms fuerte como el impulso de ganancias C++ del sistema de desarrollo. Esta transicin dar como resultado muchos programadores de Visual Basic mover a C para la primera vez y muchos programadores con frecuencia mover hacia delante y hacia atrs entre ambos entornos.

El cuerpo de variable y nombres de rutina


El cuerpo de una variable o el nombre de rutina debe utilizar maysculas y minsculas mezcladas y debe ser tan largo como sea necesario para describir su finalidad. Adems, los nombres de funcin deben comenzar con un verbo, como InitNameArray o CloseDialog. Para trminos utilizados con frecuencia o largos, se recomiendan mantener las longitudes de nombre razonable abreviaturas estndar. En general, los nombres de variables mayor de 32 caracteres pueden difciles de leer en pantallas VGA. Al utilizar abreviaturas, asegrese de que sean coherentes en toda la aplicacin. Cambiar aleatoriamente entre nmero y nmero dentro de un proyecto se conducir a confusin innecesario.

Calificadores de variable y nombres de rutina


Variables relacionadas y rutinas suelen utilizarse para administrar y manipular un objeto comn. En estos casos, utilice calificadores estndar para etiquetar las variables derivadas y rutinas. Aunque poner el calificador despus de que el cuerpo del nombre puede parecer un poco complicado (como en sGetNameFirst, sGetNameLast en lugar de sGetFirstName, sGetLastName) este ejercicio

ayudar a listas de estos nombres juntos en la rutina de editor de Visual Basic, lo que el lgica y la estructura de la aplicacin sea ms fcil de entender el orden. En la tabla siguiente se definen los calificadores comunes y su significado estndar:

Qualifier Description (follows Body) -------------------------------------------------------------------------First First element of a set. Last Last element of a set. Next Next element in a set. Prev Previous element in a set. Cur Current element in a set. Min Minimum value in a set. Max Maximum value in a set. Save Used to preserve another variable that must be reset later. Tmp A "scratch" variable whose scope is highly localized within the code. The value of a Tmp variable is usually only valid across a set of contiguous statements within a single procedure. Src Source. Frequently used in comparison and transfer routines. Dst Destination. Often used in conjunction with Source.
Tipos definidos por el usuario
Declarar tipos de definido por el usuario en maysculas con _TYPE anexado al final del nombre del smbolo. Por ejemplo:

Type CUSTOMER_TYPE sName As String sState As String * 2 lID as Long End Type
cuando declara una variable de instancia de un usuario define el tipo, agregar un prefijo al nombre de variable para el tipo de referencia. Por ejemplo:

Dim custNew as CUSTOMER_TYPE


Constantes de nomenclatura
El cuerpo de los nombres de constantes debe ser UPPER_CASE con caracteres de subrayado (_) entre palabras. Aunque constantes estndar de Visual Basic no incluyen informacin hngaro, prefijos como i, s, g y m puede ser muy til para comprender el valor y el mbito de una constante. Para los nombres de constantes, siguen las mismas reglas como variables. Por ejemplo:

<mnUSER_LIST_MAX gsNEW_LINE

' Max entry limit for User list (integer value, ' local to module) ' New Line character string (global to entire ' application)

Tipo de datos Variant


Si sabe que una variable siempre almacenar datos de un tipo determinado, Visual Basic puede controlar los datos ms eficazmente si declara una variable de ese tipo. Sin embargo, el tipo de datos variant puede ser muy til al trabajar con bases de datos, mensajes, DDE u OLE. Muchas bases de datos permiten NULL como un valor vlido para un campo. El cdigo necesita distinguir entre NULL, 0 (cero), y "" (cadena vaca). Muchas veces, estos tipos de operaciones pueden utilizar una rutina de servicio genrico no es necesario conocer el tipo de datos que recibe para procesar o pasar en los datos. Por ejemplo:

Sub ConvertNulls(rvntOrg As Variant, rvntSub As Variant) ' If rvntOrg = Null, replace the Null with rvntSub If IsNull(rvntOrg) Then rvntOrg = rvntSub End Sub

el sin embargo, son algunos inconvenientes al uso de variantes. Instrucciones de cdigo que utilizan variantes a veces pueden ser ambiguas para el programador. Por ejemplo:

vnt1 = "10.01" : vntResult = vnt1 vntResult = vnt2 vntResult = vnt1 vntResult = vnt3 vntResult = vnt2 vntResult = vnt3

vnt2 = 11 : vnt3 = "11" : vnt4 = "x4" + vnt2 ' Does vntResult = 21.01 or 10.0111? + vnt1 ' Does vntResult = 21.01 or 1110.01? + vnt3 ' Does vntResult = 21.01 or 10.0111? + vnt1 ' Does vntResult = 21.01 or 1110.01? + vnt4 ' Does vntResult = 11x4 or ERROR? + vnt4 ' Does vntResult = 11x4 or ERROR?

los ejemplos anteriores sera mucho menos ambiguo y fciles de leer, depurar y mantener si las rutinas de conversin de tipo de Visual Basic se utilizaron en su lugar. Por ejemplo:

iVar1 = 5 + val(sVar2) vntVar1 = 5 + vntVar2


Comentarios del cdigo

' use this (explicit conversion) ' not this (implicit conversion)

Todos los procedimientos y funciones deben comenzar con un breve comentario que describe las caractersticas funcionales de la rutina (lo que hace). Esta descripcin debera describir no los detalles de implementacin (cmo lo hace) porque estos suelen cambian a lo largo del tiempo, lo trabajo de mantenimiento de comentario innecesarios o peor an, comentarios errneos. El propio cdigo y los comentarios en lnea o locales necesarios se describen la implementacin. Parmetros pasados a una rutina deben ser descritos cuando sus funciones no son obvias y cuando la rutina espera los parmetros en un intervalo especfico. Funcin devolver valores y variables globales que han cambiado por la rutina (especialmente a travs de los parmetros de referencia) tambin deben describirse al principio de cada rutina. Comentario del encabezado rutina deben buscar bloques como este (consulte la seccin siguiente "Formato el cdigo" para obtener un ejemplo):

Section Comment Description -------------------------------------------------------------------------Purpose What the routine does (not how). Inputs Each non-obvious parameter on a separate line with in-line comments Assumes List of each non-obvious external variable, control, open file, and so on. Returns Explanation of value returned for functions. Effects List of each effected external variable, control, file, and so on and the affect it has (only if this is not obvious)
cada declaracin de variable no trivial debe incluir un comentario de en lnea que describe el uso de la variable est declarada. Las variables, controles y rutinas deben tener un nombre lo suficientemente claro para que comentarios en lnea slo es necesario para detalles de implementacin complejas o no intuitivo. Una descripcin de informacin general de la aplicacin, enumerar objetos de datos principal, rutinas y algoritmos, cuadros de dilogo, base de datos y archivo de dependencias del sistema y as sucesivamente deben ser incluida al principio del mdulo .BAS que contiene declaraciones de constante genricas del proyecto Visual Basic. Nota: La ventana de proyecto intrnsecamente describe la lista de archivos en un proyecto, por lo que esta seccin de informacin general slo se necesita proporcionar informacin sobre los mdulos y los archivos ms importantes o los archivos que no mostrar la ventana proyecto, como archivos de base de datos o de inicializacin (ini).

El cdigo de formato
Dado que muchos programadores utilizan todava muestra VGA, inmobiliaria de pantalla debe se ahorra tanto como sea posible pero permitiendo formato para reflejar la estructura lgica y el anidamiento de cdigo. Bloque estndar, basada en ficha, las sangras de anidamiento debe ser dos a cuatro espacios. Ms de cuatro espacios innecesarios y puede hacer que las instrucciones que se oculta o trunca accidentalmente. Menos de dos espacios no muestra suficientemente

anidamiento lgica. En Microsoft Knowledge Base, utilizamos una sangra de espacio de tres. Utilice el cuadro de dilogo Opciones de entorno para establecer el ancho de la ficha predeterminado. El comentario de introduccin funcional de una rutina debe ser un espacio de sangra. Las instrucciones de nivel ms altos que siga el comentario de introduccin deben ser una ficha con sangra, con cada bloque anidado aplica sangra a una ficha adicional. Por ejemplo:

************************************************************************** 'Purpose: Locate first occurrence of a specified user in UserList array. 'Inputs: rasUserList(): the list of users to be searched ' rsTargetUser: the name of the user to search for 'Returns: the index of the first occurrence of the rsTargetUser ' in the rasUserList array. If target user not found, return -1. '************************************************************************** 'VB3Line: Enter the following lines as one line Function iFindUser (rasUserList() As String, rsTargetUser as String) _ As Integer Dim i As Integer ' loop counter Dim bFound As Integer ' target found flag iFindUser = -1 i = 0 While i <= Ubound(rasUserList) and Not bFound If rasUserList(i) = rsTargetUser Then bFound = True iFindUser = i End If Wend End Function
variables y constantes no genricas deben estar agrupadas por funcin en lugar de por va a dividir desactivar reas aisladas o archivos especiales. Constantes genricos de Visual Basic como el reloj de ARENA deben agruparse en un solo mdulo (VB_STD.BAS) para mantenerlos independiente de las declaraciones de especficos de la aplicacin.

Operadores
Siempre utilice una y comercial (&) al concatenar cadenas y el signo ms (+) cuando se trabaja con valores numricos. Con un signo ms (+) con valores no numricos, puede causar problemas cuando funciona en las dos variantes. Por ejemplo:

vntVar1 = vntVar2 = vntResult vntResult


mbito

"10.01" 11 = vntVar1 + vntVar2 = vntVar1 & vntVar2

' vntResult = 21.01 ' vntResult = 10.0111

Siempre se deben definir las variables con el mbito ms pequeo posible. Variables globales pueden cree mquinas de estado enormemente complejos y realice la lgica de una aplicacin extremadamente difciles de entender. Variables globales tambin que la reutilizacin y mantenimiento de su cdigo mucho ms difcil. Variables en Visual Basic pueden tener el siguiente mbito:

Scope Variable Declared In: Visibility -------------------------------------------------------------------------Procedure-level Event procedure, sub, or Visible in the function procedure in which it is declared Form-level, Declarations section of a form Visible in every Module-level or code module (.FRM, .BAS) procedure in the form or code module Global Declarations section of a code Always visible

module (.BAS, using Global keyword)


en una aplicacin de Visual Basic, slo utilizar variables globales cuando no hay ninguna manera otro conveniente compartir datos entre formularios. Puede que desee almacenar informacin en propiedad de etiqueta del control, lo que puede tener acceso global mediante la sintaxis form.object.property. Si debe utilizar variables globales, es conveniente declarar todas ellas en un solo mdulo y agruparlos por funcin. Asignar el mdulo de un nombre significativo que indique su propsito, como GLOBAL.BAS. Con la excepcin de variables (que no deben pasarse), procedimientos y funciones globales slo deben trabajar con objetos que se pasan a ellos. Variables globales que se utilizan en las rutinas deben identificarse en el rea comentario general en el principio de la rutina. Adems, pasar argumentos a subrutinas y funciones mediante ByVal, a menos que explcitamente desee cambiar el valor del argumento pasado. Escribir cdigo modular siempre que sea posible. Por ejemplo, si la aplicacin muestra un cuadro de dilogo, colocar todos los controles y cdigo necesario para realizar tareas del cuadro de dilogo en un solo formulario. Esto ayuda a mantener el cdigo de la aplicacin organizado en componentes tiles y reduce su sobrecarga de tiempo de ejecucin.

Controles de terceros
Nota: Los productos que se describen a continuacin estn fabricados por proveedores independientes de Microsoft. Microsoft no otorga ninguna garanta, implcita o de otro tipo, con respecto al rendimiento o confiabilidad de estos productos. La tabla siguiente muestra caracteres de prefijo nombre de proveedor estndar de terceros para utilizarse con los prefijos de control:

Vendor Abbv ------------------------MicroHelp (VBTools) Pioneer Software Crescent Software Sheridan Software Other (Misc) m p c s o

la tabla siguiente muestra los prefijos de control de terceros estndar:

Control Control Abbr Vendor Example VBX File Type Name Name -------------------------------------------------------------------------Alarm Alarm almm MicroHelp almmAlarm MHTI200.VBX Animate Animate anim MicroHelp animAnimate MHTI200.VBX Callback Callback calm MicroHelp calmCallback MHAD200.VBX Combo Box DB_Combo cbop Pioneer cbopComboBox QEVBDBF.VBX Combo Box SSCombo cbos Sheridan cbosComboBox SS3D2.VBX Check Box DB_Check chkp Pioneer chkpCheckBox QEVBDBF.VBX Chart Chart chtm MicroHelp chtmChart MHGR200.VBX Clock Clock clkm MicroHelp clkmClock MHTI200.VBX Button Command cmdm MicroHelp cmdmCommandButton MHEN200.VBX Button Button DB_Command cmdp Pioneer cmdpCommandButton QEVBDBF.VBX Button (Group) Command cmgm MicroHelp cmgmBtton MHGR200.VBX Button (multiple) Button Command cmim MicroHelp cmimCommandButton MHEN200.VBX Button (icon) CardDeck CardDeck crdm MicroHelp crdmCard MHGR200.VBX Dice Dice dicm MicroHelp dicmDice MHGR200.VBX List Box (Dir) SSDir dirs Sheridan dirsDirList SS3D2.VBX

List Box (Drv) List Box (File) List Box (File) Flip Scroll Bar Gauge Graph Grid Scroll Bar Scroll Bar Graph Invisible List Box Key State Label Line List Box List Box MDI Child Menu Marque Picture Picture Picture Property Vwr Option (Group) Slider Button (Spin) Spreadsheet Picture Screen Saver Switcher List Box Timer ToolBar List Box Input Box Input Box Scroll Bar Scroll Bar

SSDrive drvs Sheridan File List film MicroHelp SSFile fils Sheridan Flip flpm MicroHelp Form Scroll fsrm MicroHelp Gauge gagm MicroHelp Graph gpho Other Q_Grid grdp Pioneer Horizontal hsbm MicroHelp Scroll Bar DB_HScroll hsbp Pioneer Histo hstm MicroHelp Invisible invm MicroHelp Icon Tag itgm MicroHelp Key State kstm MicroHelp Label (3d) lblm MicroHelp Line linm MicroHelp DB_List lstp Pioneer SSList lsts Sheridan MDI Control mdcm MicroHelp SSMenu mnus Sheridan Marque mrqm MicroHelp OddPic odpm MicroHelp Picture picm MicroHelp DB_Picture picp Pioneer Property pvrm MicroHelp Viewer DB_RadioGroup radp Pioneer Slider sldm MicroHelp Spinner spnm MicroHelp Spreadsheet sprm MicroHelp Stretcher strm MicroHelp Screen Saver svrm MicroHelp Switcher swtm MicroHelp Tag tagm MicroHelp Timer tmrm MicroHelp ToolBar tolm MicroHelp Tree trem MicroHelp Input (Text) txtm MicroHelp DB_Text txtp Pioneer Vertical vsbm MicroHelp Scroll Bar DB_VScroll vsbp Pioneer

drvsDriveList filmFileList filsFileList flpmButton fsrmFormScroll gagmGauge gphoGraph grdpGrid hsbmScroll hsbpScroll hstmHistograph invmInvisible itgmListBox kstmKeyState lblmLabel linmLine lstpListBox lstsListBox mdcmMDIChild mnusMenu mrqmMarque odpmPicture picmPicture picpPicture pvrmPropertyViewer radqRadioGroup sldmSlider spnmSpinner sprmSpreadsheet strmStretcher svrmSaver swtmSwitcher tagmListBox tmrmTimer tolmToolBar tremTree inpmText txtpText vsbmScroll vsbpScroll

SS3D2.VBX MHEN200.VBX SS3D2.VBX MHEN200.VBX ??? MHGR200.VBX XYGRAPH.VBX QEVBDBF.VBX MHEN200.VBX QEVBDBF.VBX MHGR200.VBX MHGR200.VBX MHAD200.VBX MHTI200.VBX MHEN200.VBX MHGR200.VBX QEVBDBF.VBX SS3D2.VBX ??? SS3D3.VBX MHTI200.VB MHGR200.VBX MHGR200.VBX QEVBDBF.VBX MHPR200.VBX QEVBDBF.VBX MHGR200.VBX MHEN200.VBX MHAD200.VBX MHAD200.VBX MHTI200.VBX ??? MHEN200.VBX MHTI200.VBX MHAD200.VBX MHEN200.VBX MHEN200.VBX QEVBDBF.VBX MHEN200.VBX QEVBDBF.VBX

Fuente: http://support.microsoft.com/kb/110264/es

Vous aimerez peut-être aussi