7 de noviembre de 2015

Creando un servidor COM de subproceso múltiple (Parte 3 de 3)

Tercera y última parte del artículo "Creando un servidor COM de subproceso múltiple" escrito por Antonio Muñoz de Burgos y Caravaca (eMans).


Parte 3 de 3

ANEXOS


READ,@...Get/Says
Comandos y funciones de menús, emergentes y barras.
MESSAGEBOX() y WAIT WINDOW


GENERAN ERRORES EN TIEMPO DE EJECUCIÓN

;@…BOX ;@…CLASS ;@…CLEAR
;@…EDIT ;@…FILL ;@…GET
;@…MENU ;@…PROMPT ;@…SAY
;@…SCROLL ;@…TO _ALIGNMENT
_ASSIST _BEAUTIFY _BOX
_CALCMEM _CALCVALUE _CONVERTER
_COVERAGE _CUROBJ _DBLCLICK
_DIARYDATE _FOXDOC _GALLERY
_GENMENU _GENPD _GENSCRN
_GETEXPR _INDENT _LMARGIN
_PADVANCE _PBPAGE _PCOLNO
_PCOPIES _PDRIVER _PDSETUP
_PECODE _PEJECT _PEPAGE
_PLENGTH _PLINENO _PLOFFSET
_PPITCH _PQUALITY _PSCODE
_PSPACING _PWAIT _RMARGIN
_RUNACTIVEDOC _SCCTEXT _SPELLCHK
_STARTUP _TABS _THROTTLE
_TRANSPORT _WRAP ACCEPT
ACTIVATE MENU ACTIVATE POPUP ACTIVATE SCREEN
ACTIVATE WINDOW AGETCLASS() AMOUSEOBJ()
ANSITOOEM() ASELOBJ() ASSERT
ASSIST BAR() BARCOUNT()
BARPROMPT() BROWSE CALL
CHANGE CLEAR DEBUG CLEAR GETS
CLEAR MACROS CLEAR MENUS CLEAR POPUPS
CLEAR PROMPT CLEAR READ CLOSE DEBUGGER
CLOSE FORMAT CLOSE MEMO CNTBAR()
CNTPAD() COL() CREATE
CREATE CLASS CREATE CLASSLIB CREATE COLOR SET
CREATE FORM CREATE LABEL CREATE MENU
CREATE PROJECT CREATE QUERY CREATE REPORT
CREATE SCREEN DEACTIVATE MENU DEACTIVATE POPUP
DEACTIVATE WINDOW DEBUG DEBUGOUT
DEFINE BAR DEFINE BOX DEFINE MENU
DEFINE PAD DEFINE POPUP DEFINE WINDOW
EDIT   FKLABEL()
FKMAX() GETBAR() GETCOLOR()
GETCP() GETDIR() GETEXPR()
GETFILE() GETFONT() GETPAD()
GETPICT() GETPRINTER() HELP
HIDE MENU HIDE POPUP HIDE WINDOW
IMESTATUS() INPUT KEYBOARD
LOAD LOCFILE() MCOL()
MDOWN() MENU MENU TO
MENU() MESSAGEBOX() Comandos MODIFY
MOUSE MOVE POPUP MOVE WINDOW
MRKBAR() MRKPAD() MROW()
MWINDOW() OBJNUM() OBJVAR()
OEMTOANSI() ON BAR() ON ESCAPE
ON EXIT Commands ON KEY ON KEY LABEL
ON PAD ON PAGE ON READERROR
ON SELECTION BAR ON SELECTION MENU ON SELECTION PAD
ON SELECTION POPUP PAD() PLAY MACRO
POP KEY POP MENU POP POPUP
POPUP() PRMBAR() PRMPAD()
PROMPT() PUSH KEY PUSH MENU
PUSH POPUP PUTFILE() RDLEVEL()
READ READ MENU READKEY()
REGIONAL RELEASE BAR RELEASE MENUS
RELEASE PAD RELEASE POPUPS RELEASE WINDOWS
RESTORE MACROS RESTORE SCREEN RESTORE WINDOW
ROW() SAVE MACROS SAVE SCREEN
SAVE WINDOWS SCROLL SHOW GET(S)
SHOW MENU SHOW OBJECT SHOW POPUP
SHOW WINDOW SIZE POPUP SIZE WINDOW
SKPBAR() SKPPAD() SUSPENDER
VARREAD() WAIT WBORDER()
WCHILD() WCOLS() WEXIST()
WFONT() WLAST() WLCOL()
WLROW() WMAXIMUM() WONTOP()
WOUTPUT() WPARENT() WREAD()
WROWS() WTITLE() WVISIBLE()
XMINIMUM() ZOOM WINDOW  


NO GENERAN ERRORES EN TIEMPO DE EJECUCIÓN

 

DOEVENTS    
SET ASSERTS SET BELL SET BORDER
SET BROWSEME SET BRSTATUS SET CONSOLE
SET COLOR SET CLEAR SET CLOCK
SET COVERAGE SET CONFIRM SET CURSOR
SET CPDIALOG SET DEBUGOUT SET DEBUG
SET DEVELOPMENT SET DELIMITERS SET DISPLAY
SET DOHISTORY SET ESCAPE SET ECHO
SET EVENTLIST SET EVENTTRACKING SET FORMAT
SET FUNCTION SET HELP SET INTENSITY
SET MARK OF SET MACDESKTOP SET MACKEY
SET MARGIN SET MESSAGE SET NOTIFY
SET ODOMETER SET PALETTE SET PDSETUP
SET READBORDER SET REFRESH SET RESOURCE
SET SAFETY SET SKIP OF SET STICKY
SET STATUS SET SYSMENU SET TALK
SET TRBETWEEN SET TYPEAHEAD SET VIEW
SET WINDOW SYS(1037) SYS(18)
SYS(103) SYS(2002) SYS(1270)
SYS(2017) SYS(4204) SYS(2016)

 

Entradas en el Registro del Sistema
(enlace del documento: Creando un Servidor COM)

Cuando registramos nuestro componente, se crean varias claves en el registro del Sistema, con las imágenes expuestas podemos ver como quedan en el registro del Sistema.

Podemos ver la Biblioteca en tiempo de ejecución que será usada en la llave: Foxruntime, la ruta donde se encuentra registrado nuestro componente, etc.

Estas entradas se registran en HKEY_CLASSES_ROOTCLSID{aquí GUID generado al compilar}

Si realizas compilaciones donde vuelvas a generar el GUID, es conveniente que previamente quites las entradas del registro, de forma contraria te encontraras que tienes el registro del Sistema con un montón de basura.
(regsvr32 /u MiComponente.dll)


Este el fichero miComponenteWeb.VBR que se ha generado al compilar el componente del ejemplo.

VERSION=1.0.0

HKEY_CLASSES_ROOTmicomponenteweb.MiComponenteWeb = micomponenteweb.MiComponenteWeb
HKEY_CLASSES_ROOTmicomponenteweb.MiComponenteWebNotInsertable
HKEY_CLASSES_ROOTmicomponenteweb.MiComponenteWebCLSID = {C735E044-08DD-4F98-A0A3-6561B4EC10DD}
HKEY_CLASSES_ROOTCLSID{C735E044-08DD-4F98-A0A3-6561B4EC10DD} = micomponenteweb.MiComponenteWeb
HKEY_CLASSES_ROOTCLSID{C735E044-08DD-4F98-A0A3-6561B4EC10DD}ProgId = micomponenteweb.MiComponenteWeb
HKEY_CLASSES_ROOTCLSID{C735E044-08DD-4F98-A0A3-6561B4EC10DD}VersionIndependentProgId = micomponenteweb.MiComponenteWeb
HKEY_CLASSES_ROOTCLSID{C735E044-08DD-4F98-A0A3-6561B4EC10DD}InProcServer32 = micomponenteweb.dll
HKEY_CLASSES_ROOTCLSID{C735E044-08DD-4F98-A0A3-6561B4EC10DD}InProcServer32"ThreadingModel" = Apartment
HKEY_CLASSES_ROOTCLSID{C735E044-08DD-4F98-A0A3-6561B4EC10DD}TypeLib = {3371A7EA-3BDA-4101-84AC-51A32B9F9E3B}
HKEY_CLASSES_ROOTCLSID{C735E044-08DD-4F98-A0A3-6561B4EC10DD}Version = 1.0
HKEY_CLASSES_ROOTCLSID{C735E044-08DD-4F98-A0A3-6561B4EC10DD}Foxruntime = VFP7T.DLL
HKEY_CLASSES_ROOTINTERFACE{5E398B91-C7E1-41DD-B66F-DE22CED073C9} = MiComponenteWeb
HKEY_CLASSES_ROOTINTERFACE{5E398B91-C7E1-41DD-B66F-DE22CED073C9}ProxyStubClsid = {00020424-0000-0000-C000-000000000046}
HKEY_CLASSES_ROOTINTERFACE{5E398B91-C7E1-41DD-B66F-DE22CED073C9}ProxyStubClsid32 = {00020424-0000-0000-C000-000000000046}
HKEY_CLASSES_ROOTINTERFACE{5E398B91-C7E1-41DD-B66F-DE22CED073C9}TypeLib = {3371A7EA-3BDA-4101-84AC-51A32B9F9E3B}
HKEY_CLASSES_ROOTINTERFACE{5E398B91-C7E1-41DD-B66F-DE22CED073C9}TypeLib"Version" = 1.0


; TypeLibrary registration
HKEY_CLASSES_ROOTTypeLib{3371A7EA-3BDA-4101-84AC-51A32B9F9E3B}
HKEY_CLASSES_ROOTTypeLib{3371A7EA-3BDA-4101-84AC-51A32B9F9E3B}1.0 = micomponenteweb Type Library
HKEY_CLASSES_ROOTTypeLib{3371A7EA-3BDA-4101-84AC-51A32B9F9E3B}1.0win32 = micomponenteweb.dll
HKEY_CLASSES_ROOTTypeLib{3371A7EA-3BDA-4101-84AC-51A32B9F9E3B}1.0FLAGS = 0
 

IMÁGENES DEL REGISTRO



Bibliografía y/o documentación adicional:

Biblioteca MSDN & Resource KIT.
Manual de Referencia de Visual FoxPro.


Antonio Muñoz de Burgos y Caravaca
www.emans.com (Web realizada en vFoxPro)
Sevilla - España
Manifestando el apoyo a la comunidad de desarrolladores de MS Visual FoxPro.
 

Todas las marcas aquí mencionadas, están registradas por sus respectivos fabricantes.

No hay comentarios. :

Publicar un comentario

Los comentarios son moderados, por lo que pueden demorar varias horas para su publicación.