Autor Tema: Error implementando SubClases  (Leído 1100 veces)

0 Usuarios y 1 Visitante están viendo este tema.

AxioUK

  • Megabyte
  • ***
  • Mensajes: 108
  • Reputación: +17/-1
  • Modulos GSL
    • Ver Perfil
Error implementando SubClases
« en: Agosto 31, 2014, 11:49:12 pm »
Como introducción nada más decir que me gusta mucho el control SGrid2 de vbAccelerator, y llevo un rato usándolo en muchas de mis apps, el año pasado me tope con el primer problema, no funcionaba en Win7/Vista, averiguando por ahí me enteré que habia una actualización del sSubTmr.dll (sSubTmr6.dll) que corregía el problema, descargué los fuentes, actualicé las referencias, compilé y listo! Sgrid2 funcionando en Win7, pero ahora me tope con un caso raro, registré el OCX y la DLL como admin en un PC con Win8 x64 pero no me funciona el SGrid2, ya probe casi de todo y nada, incluso Instale VB6 en esa maquina y nada ni siquiera me carga en el modo Diseño por lo que creo es problema de la DLL(en una VM con Win8 x64 lo probé y funciona bien...), de ahí me sugió la inquietud de prescindir de la DLL, encontré los fuentes de sSubTmr6 y copié el módulo y las 3 clases a los fuentes del SGrid2, pero (aquí viene el problema), entiendo muy poco (casi nada) de SubClases (Soy programador autodidacta, no por estudios  ;D ) y me arroja un error al usar la Clase ISubClass en un Sub del GSubClass:

"Error de compilación, El módulo de Objeto necesita implementar 'MsgResponse' para la interfaz 'ISubClass'"

Ya había visto y usado las Interfaces, pero nunca ví que se usara como un parámetro dentro de un Sub o Función....

Código: [Seleccionar]
'ISubClass Class Module
Option Explicit

Public Enum EMsgResponse
    emrConsume = 0&      ' Process instead of original WindowProc
    emrPostProcess = 1&  ' Process after original WindowProc
    emrPreProcess = 2&   ' Process before original WindowProc
End Enum

Public MsgResponse As EMsgResponse

Function WindowProc(ByVal hwnd As Long, _
                    ByVal iMsg As Long, _
                    ByVal wParam As Long, _
                    ByVal lParam As Long) As Long
End Function

Código: [Seleccionar]
'GSubClass Class Module

Implements ISubclass

Sub AttachMessage(iwp As ISubclass, ByVal hwnd As Long, ByVal iMsg As Long)
...
End Sub

Sub DetachMessage(iwp As ISubclass, ByVal hwnd As Long, ByVal iMsg As Long)
...
End Sub

Por Favor, a los más entendidos en esta área les agradecería si pudieran ayudarme/explicarme, así aprendo parte de VB6 que ultimamente me he visto en la necesidad de aplicar.

Saludos
« última modificación: Agosto 31, 2014, 11:55:11 pm por AxioUK »

_____________________________
Sé un poco de todo y mucho de nada... ;)

Waldo

  • Gigabyte
  • ****
  • Mensajes: 264
  • Reputación: +22/-0
    • Ver Perfil
Re:Error implementando SubClases
« Respuesta #1 en: Septiembre 01, 2014, 03:45:01 pm »
Que raro que hayas tenido tantos problemas, yo uso el Sgrid hace un par de años, nunca un problema, incluso en Win 7 y Server 2008 64 bits

AxioUK

  • Megabyte
  • ***
  • Mensajes: 108
  • Reputación: +17/-1
  • Modulos GSL
    • Ver Perfil
Re:Error implementando SubClases
« Respuesta #2 en: Septiembre 04, 2014, 07:20:44 pm »
Ningún alma caritativa?
Obligado a conseguir,traducir y leer: Subclassing and Hooking with Visual Basic, me han dicho que es bueno .... :(

_____________________________
Sé un poco de todo y mucho de nada... ;)

raul338

  • Terabyte
  • *****
  • Mensajes: 894
  • Reputación: +62/-8
  • xD fan!!!!! xD
    • Ver Perfil
    • Raul's Weblog
Re:Error implementando SubClases
« Respuesta #3 en: Septiembre 04, 2014, 09:48:13 pm »
No se como este implementado el subclassing en SGrid. Pero *capaz* podrías reemplazarlo por el cSubClass de Paul Caton (hay que desactivar el DEP en windows 8 como dijo coco )

Al menos lo veo un poco menos complicado que reinventar el subclassing.