Primera app real de Windows 8 Metro desde FWH !!!
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
Primera app real de Windows 8 Metro desde FWH !!!
Primera ventana real de Windows 8 Metro usando el API WinRT desde FWH y Harbour !!!
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
Re: Primera app real de Windows 8 Metro desde FWH !!!
Como curiosidad, aqui teneis el IID_IApplication de Metro que aún no está en ninguna parte en Google
Asi que Google, indéxalo
Code: Select all
static const IID IID_IApplication =
{
0x74B861A1, 0x7487, 0x46A9,
{ 0x9A, 0x6E, 0xC7, 0x8B, 0x51, 0x27, 0x26, 0xC5 }
};
Re: Primera app real de Windows 8 Metro desde FWH !!!
Antonio, congratulations! great.
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
Re: Primera app real de Windows 8 Metro desde FWH !!!
Para construir aplicaciones que usen el API WinRT de Windows 8, necesitamos enlazar combase.lib. Windows 8 proporciona combase.dll, y podemos extraer combase.def de esta forma:
impdef.exe combase.def combase.dll
Para construir la lib: (si usamos Borland)
implib.exe combase.lib combase.dll
Si usamos Microsoft C/C++:
lib.exe /DEF:combase.def /OUT:combase.lib
impdef.exe combase.def combase.dll
Para construir la lib: (si usamos Borland)
implib.exe combase.lib combase.dll
Si usamos Microsoft C/C++:
lib.exe /DEF:combase.def /OUT:combase.lib
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
Re: Primera app real de Windows 8 Metro desde FWH !!!
Google ya indexó IID_IApplication, vayamos ahora a por IID_IApplicationFactory
Code: Select all
static const IID IID_IApplicationFactory =
{
0x93BBE361, 0xBE5A, 0x4EE3,
{ 0xB4, 0xA3, 0x95, 0x11, 0x8D, 0xC9, 0x7A, 0x89 }
};
- Hernan Diego Ceccarelli
- Posts: 84
- Joined: Fri Oct 07, 2005 4:51 pm
- Location: Rosario - Santa Fe - Argentina
- Contact:
Re: Primera app real de Windows 8 Metro desde FWH !!!
Muy bueno Se puede usar la vieja API convencional tambien, pero, la metro habra que codificarla de manera especial Antonio ? Esa parte no la entiendo.(tampoco he investigado xD)
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
Re: Primera app real de Windows 8 Metro desde FWH !!!
Hernan,
La información que Microsoft ha ofrecido como "oficial" en realidad no es del todo cierta...
El API Win32 sigue ahi, y posiblemente siga por mucho tiempo, y de hecho el API WinRT se basa en él (esto es lo que no reconoce MS). WinRT es una evolución del modelo COM (OLE) de forma que ahora se puede tener una pseudo-herencia de clases y se han corregido deficiencias del modelo OLE anterior.
WinRT introduce un nuevo interface llamado IInspectable derivado de IUnknown. Cuando descubrí esto, lo primero que se me vino a la cabeza fué la idea de usar objetos OLE pero usando el puntero del IInspectable, pero... han quitado IIDispatch. Lo que han hecho es implementarlo forma "nativa" para que no sea lento. Asi que no "preguntan", sino que directamente se "salta" a los métodos (siempre que se pueda).
Bueno, resumiendo, en principio en las pruebas que hemos hecho, sí se puede acceder al API de Win32 , pero todo esto es provisional, y de hecho es algo que Microsoft podría bloquear. Hay que pensar que escribir un Windows nuevo desde cero sería una "locura" pues tendría muchos bugs hasta que se depurase, asi que es lógico que sigan basándose en Win32, y de paso ver la aceptación que tiene lo "nuevo"
La información que Microsoft ha ofrecido como "oficial" en realidad no es del todo cierta...
El API Win32 sigue ahi, y posiblemente siga por mucho tiempo, y de hecho el API WinRT se basa en él (esto es lo que no reconoce MS). WinRT es una evolución del modelo COM (OLE) de forma que ahora se puede tener una pseudo-herencia de clases y se han corregido deficiencias del modelo OLE anterior.
WinRT introduce un nuevo interface llamado IInspectable derivado de IUnknown. Cuando descubrí esto, lo primero que se me vino a la cabeza fué la idea de usar objetos OLE pero usando el puntero del IInspectable, pero... han quitado IIDispatch. Lo que han hecho es implementarlo forma "nativa" para que no sea lento. Asi que no "preguntan", sino que directamente se "salta" a los métodos (siempre que se pueda).
Bueno, resumiendo, en principio en las pruebas que hemos hecho, sí se puede acceder al API de Win32 , pero todo esto es provisional, y de hecho es algo que Microsoft podría bloquear. Hay que pensar que escribir un Windows nuevo desde cero sería una "locura" pues tendría muchos bugs hasta que se depurase, asi que es lógico que sigan basándose en Win32, y de paso ver la aceptación que tiene lo "nuevo"
Re: Primera app real de Windows 8 Metro desde FWH !!!
Desconocía todo sobre WinRT, ni idea, pero dejo un link sobre ello
http://geeks.ms/blogs/rfog/archive/2011 ... lo-es.aspx
http://geeks.ms/blogs/rfog/archive/2011 ... lo-es.aspx
Saludos
Rafa Carmona ( rafa.thefullARROBAgmail.com___quitalineas__)
Rafa Carmona ( rafa.thefullARROBAgmail.com___quitalineas__)
- lucasdebeltran
- Posts: 1303
- Joined: Tue Jul 21, 2009 8:12 am
- Contact:
Re: Primera app real de Windows 8 Metro desde FWH !!!
Antonio,
Muchas gracias por estar siempre al día.
Una aplicación de Windows 8 metro, ¿también se prodrá ejecutar en Windows phone?.
Salu2
Muchas gracias por estar siempre al día.
Una aplicación de Windows 8 metro, ¿también se prodrá ejecutar en Windows phone?.
Salu2
Muchas gracias. Many thanks.
Un saludo, Best regards,
Harbour 3.2.0dev, Borland C++ 5.82 y FWH 13.06 [producción]
Implementando MSVC 2010, FWH64 y ADO.
Abandonando uso xHarbour y SQLRDD.
Un saludo, Best regards,
Harbour 3.2.0dev, Borland C++ 5.82 y FWH 13.06 [producción]
Implementando MSVC 2010, FWH64 y ADO.
Abandonando uso xHarbour y SQLRDD.
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
Re: Primera app real de Windows 8 Metro desde FWH !!!
Lucas,
Se supone que si, pero aun no lo hemos probado ni hemos sabido de alguien que lo haya hecho
Se supone que si, pero aun no lo hemos probado ni hemos sabido de alguien que lo haya hecho
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
Re: Primera app real de Windows 8 Metro desde FWH !!!
Documentación para acceder via COM al Win32 desde WinRT:
http://msdn.microsoft.com/en-us/library ... s/br205757
http://msdn.microsoft.com/en-us/library ... s/br205757
-
- Posts: 105
- Joined: Thu Mar 16, 2017 4:08 pm
- Location: Ecuador
Re: Primera app real de Windows 8 Metro desde FWH !!!
Estimado AntonioAntonio Linares wrote:Para construir aplicaciones que usen el API WinRT de Windows 8, necesitamos enlazar combase.lib. Windows 8 proporciona combase.dll, y podemos extraer combase.def de esta forma:
impdef.exe combase.def combase.dll
Para construir la lib: (si usamos Borland)
implib.exe combase.lib combase.dll
Si usamos Microsoft C/C++:
lib.exe /DEF:combase.def /OUT:combase.lib
Tengo una aplicación creada con FW1708 la cual al intentar ejecutarse en Windows 7, intenta cargarse, pero muestra el mensaje "Error cargando COMBASE.DLL" y se cuelga. De lo que revisé esta DLL existe a partir de Windows 8.
Compilé la aplicación agregando esa .DLL; pero el mensaje de error me sigue apareciendo y necesito resolverlo, ya que todavía algunos usuarios tienen Win 7.
Al revisar que uso de especial en mi aplicación solo encuentro esto definido al inicio del programa:
SetBalloon(.T.) // para que los tooltip tengan forma de balón
SetResDebug(.T.)
SetGetColorFocus(CLR_PALEGREEN) // el color de los get al tener el focus
SetCbxColorFocus(CLR_LGREEN)
SkinButtons() // permite los botones nativos con otros colores
TGet():lDisColors := .F.
TGet():nClrTextDis := CLR_BLUE
TGet():nClrPaneDis := CLR_YELLOW2
Algo de esto hace obligatorio el uso de COMBASE.DLL o me puede indicar que puede cambiar para no requerir esa .DLL en Win7?
Saludos
Fernando Espinoza A.
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
Re: Primera app real de Windows 8 Metro desde FWH !!!
Fernando,
Por favor inspecciona tu EXE con esta utilidad:
https://bitbucket.org/fivetech/fivewin- ... peinfo.exe
y ahi podrás ver exactamente que funciones de cada DLL se están usando
Por favor inspecciona tu EXE con esta utilidad:
https://bitbucket.org/fivetech/fivewin- ... peinfo.exe
y ahi podrás ver exactamente que funciones de cada DLL se están usando
-
- Posts: 105
- Joined: Thu Mar 16, 2017 4:08 pm
- Location: Ecuador
Re: Primera app real de Windows 8 Metro desde FWH !!!
Estimado Antonio:
Ejecuté la aplicación PEInfo, en el resumen que aparece en formato HTML en la sección IMPORTS aparece un resumen de las DLL, pero ahí no consta COMBASE.DLL.
Saludos
Fernando Espinoza A.
Ejecuté la aplicación PEInfo, en el resumen que aparece en formato HTML en la sección IMPORTS aparece un resumen de las DLL, pero ahí no consta COMBASE.DLL.
Code: Select all
IMPORTS
Linker producer: Borland
Imports from: C:\Windows\SYSTEM32\advapi32.dll
Image Import Descriptor
Original First Thunk: 0 $0 %0
Time/Date Stamp: 0 $0 %0
Forwarder Chain: 0 $0 %0
Name: 4835392 $49C840 %10010011100100001000000
First Thunk: 4835260 $49C7BC %10010011100011110111100
No
Hint
Ordinal
Name
1. - - RegCloseKey
Imports from: C:\Windows\WinSxS\x86_microsoft.windows.common-controls_6595b64144ccf1df_6.0.10586.839_none_ea8af107b9b5cbb4\comctl32.dll
Image Import Descriptor
Original First Thunk: 0 $0 %0
Time/Date Stamp: 0 $0 %0
Forwarder Chain: 0 $0 %0
Name: 4835405 $49C84D %10010011100100001001101
First Thunk: 4835268 $49C7C4 %10010011100011111000100
No
Hint
Ordinal
Name
1. - $11
Imports from: C:\Windows\SYSTEM32\comdlg32.dll
Image Import Descriptor
Original First Thunk: 0 $0 %0
Time/Date Stamp: 0 $0 %0
Forwarder Chain: 0 $0 %0
Name: 4835418 $49C85A %10010011100100001011010
First Thunk: 4835276 $49C7CC %10010011100011111001100
No
Hint
Ordinal
Name
1. - - FindTextA
Imports from: C:\Windows\SYSTEM32\gdi32.dll
Image Import Descriptor
Original First Thunk: 0 $0 %0
Time/Date Stamp: 0 $0 %0
Forwarder Chain: 0 $0 %0
Name: 4835431 $49C867 %10010011100100001100111
First Thunk: 4835284 $49C7D4 %10010011100011111010100
No
Hint
Ordinal
Name
1. - - Arc
Imports from: C:\Windows\WinSxS\x86_microsoft.windows.gdiplus_6595b64144ccf1df_1.1.10586.1106_none_db441c35bc7e4e5e\gdiplus.dll
Image Import Descriptor
Original First Thunk: 0 $0 %0
Time/Date Stamp: 0 $0 %0
Forwarder Chain: 0 $0 %0
Name: 4835441 $49C871 %10010011100100001110001
First Thunk: 4835292 $49C7DC %10010011100011111011100
No
Hint
Ordinal
Name
1. - - GdipFree
Imports from: C:\Windows\SYSTEM32\kernel32.dll
Image Import Descriptor
Original First Thunk: 0 $0 %0
Time/Date Stamp: 0 $0 %0
Forwarder Chain: 0 $0 %0
Name: 4835453 $49C87D %10010011100100001111101
First Thunk: 4835300 $49C7E4 %10010011100011111100100
No
Hint
Ordinal
Name
1. - - LoadLibraryA
2. - - ExitProcess
3. - - GetProcAddress
4. - - VirtualProtect
Imports from: C:\Windows\SYSTEM32\msimg32.dll
Image Import Descriptor
Original First Thunk: 0 $0 %0
Time/Date Stamp: 0 $0 %0
Forwarder Chain: 0 $0 %0
Name: 4835466 $49C88A %10010011100100010001010
First Thunk: 4835320 $49C7F8 %10010011100011111111000
No
Hint
Ordinal
Name
1. - - AlphaBlend
Imports from: C:\Windows\SYSTEM32\ole32.dll
Image Import Descriptor
Original First Thunk: 0 $0 %0
Time/Date Stamp: 0 $0 %0
Forwarder Chain: 0 $0 %0
Name: 4835478 $49C896 %10010011100100010010110
First Thunk: 4835328 $49C800 %10010011100100000000000
No
Hint
Ordinal
Name
1. - - CoInitialize
Imports from: C:\Windows\SYSTEM32\oleaut32.dll
Image Import Descriptor
Original First Thunk: 0 $0 %0
Time/Date Stamp: 0 $0 %0
Forwarder Chain: 0 $0 %0
Name: 4835488 $49C8A0 %10010011100100010100000
First Thunk: 4835336 $49C808 %10010011100100000001000
No
Hint
Ordinal
Name
1. - $8
Imports from: C:\Windows\SYSTEM32\oledlg.dll
Image Import Descriptor
Original First Thunk: 0 $0 %0
Time/Date Stamp: 0 $0 %0
Forwarder Chain: 0 $0 %0
Name: 4835501 $49C8AD %10010011100100010101101
First Thunk: 4835344 $49C810 %10010011100100000010000
No
Hint
Ordinal
Name
1. - $4
Imports from: C:\Windows\SYSTEM32\shell32.dll
Image Import Descriptor
Original First Thunk: 0 $0 %0
Time/Date Stamp: 0 $0 %0
Forwarder Chain: 0 $0 %0
Name: 4835512 $49C8B8 %10010011100100010111000
First Thunk: 4835352 $49C818 %10010011100100000011000
No
Hint
Ordinal
Name
1. - - ShellAboutA
Imports from: C:\Windows\SYSTEM32\user32.dll
Image Import Descriptor
Original First Thunk: 0 $0 %0
Time/Date Stamp: 0 $0 %0
Forwarder Chain: 0 $0 %0
Name: 4835524 $49C8C4 %10010011100100011000100
First Thunk: 4835360 $49C820 %10010011100100000100000
No
Hint
Ordinal
Name
1. - - GetDC
Imports from: C:\Windows\SYSTEM32\version.dll
Image Import Descriptor
Original First Thunk: 0 $0 %0
Time/Date Stamp: 0 $0 %0
Forwarder Chain: 0 $0 %0
Name: 4835535 $49C8CF %10010011100100011001111
First Thunk: 4835368 $49C828 %10010011100100000101000
No
Hint
Ordinal
Name
1. - - VerQueryValueA
Imports from: C:\Windows\SYSTEM32\winmm.dll
Image Import Descriptor
Original First Thunk: 0 $0 %0
Time/Date Stamp: 0 $0 %0
Forwarder Chain: 0 $0 %0
Name: 4835547 $49C8DB %10010011100100011011011
First Thunk: 4835376 $49C830 %10010011100100000110000
No
Hint
Ordinal
Name
1. - - waveOutOpen
Imports from: C:\Windows\SYSTEM32\winspool.drv
Image Import Descriptor
Original First Thunk: 0 $0 %0
Time/Date Stamp: 0 $0 %0
Forwarder Chain: 0 $0 %0
Name: 4835557 $49C8E5 %10010011100100011100101
First Thunk: 4835384 $49C838 %10010011100100000111000
No
Hint
Ordinal
Name
1. - - GetPrinterA
Fernando Espinoza A.
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
Re: Primera app real de Windows 8 Metro desde FWH !!!
Fernando,
Usas algún ActiveX ó algún objeto OLE en tu aplicación ?
Usas algún ActiveX ó algún objeto OLE en tu aplicación ?